Skip to content

Commit 479217b

Browse files
dependabot[bot]slifty
authored andcommitted
Bump sqlfluff from 4.1.0 to 4.2.0 in /sqlfluff
Bumps [sqlfluff](https://github.com/sqlfluff/sqlfluff) from 4.1.0 to 4.2.0. - [Release notes](https://github.com/sqlfluff/sqlfluff/releases) - [Changelog](https://github.com/sqlfluff/sqlfluff/blob/main/CHANGELOG.md) - [Commits](sqlfluff/sqlfluff@4.1.0...4.2.0) --- updated-dependencies: - dependency-name: sqlfluff dependency-version: 4.2.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
1 parent 02a98b1 commit 479217b

12 files changed

Lines changed: 98 additions & 41 deletions

.sqlfluff

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,7 @@ status = 'pending'
4747
memberFunderShortCode = 'placeholder'
4848
baseFieldShortCode = 'placeholder'
4949
userKeycloakUserId = '00000000-0000-0000-0000-000000000000'
50+
bulkUploadTaskId = 1
51+
isCollaborative = false
52+
sensitivityFilter_list = NULL
53+
sensitivityFilter_negated = false

sqlfluff/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
sqlfluff==4.1.0
1+
sqlfluff==4.2.0
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
const isPlainObject = (value: unknown): value is Record<string, unknown> => {
2+
if (value === null || typeof value !== 'object') {
3+
return false;
4+
}
5+
const prototype: unknown = Object.getPrototypeOf(value);
6+
return prototype === Object.prototype || prototype === null;
7+
};
8+
9+
/**
10+
* Flattens nested plain-object parameters into a single-level map with
11+
* `_`-joined keys (e.g. `{ a: { b: 1 } }` -> `{ a_b: 1 }`). Arrays, Dates,
12+
* and other non-plain objects are treated as leaf values and passed through
13+
* unchanged.
14+
*
15+
* This exists so query SQL can reference nested parameter attributes with
16+
* `_` rather than `.` (which sqlfluff misparses as a table-qualified column
17+
* reference) while callers continue to pass structured objects.
18+
*/
19+
const flattenParameters = (
20+
source: Record<string, unknown>,
21+
): Record<string, unknown> => {
22+
const result: Record<string, unknown> = {};
23+
const visit = (value: unknown, prefix: string): void => {
24+
if (isPlainObject(value)) {
25+
for (const [key, nested] of Object.entries(value)) {
26+
visit(nested, prefix === '' ? key : `${prefix}_${key}`);
27+
}
28+
return;
29+
}
30+
result[prefix] = value;
31+
};
32+
visit(source, '');
33+
return result;
34+
};
35+
36+
export { flattenParameters };

src/database/operations/generators/generateCreateItemOperation.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
getIsAdministratorFromAuthContext,
55
getKeycloakUserIdFromAuthContext,
66
} from '../../../types';
7+
import { flattenParameters } from './flattenParameters';
78
import type { AuthIdentityAndRole, JsonResultSet } from '../../../types';
89
import type { TinyPg } from 'tinypg';
910

@@ -73,7 +74,10 @@ const generateCreateItemOperation =
7374
...operationQueryParameters,
7475
};
7576

76-
const result = await db.sql<JsonResultSet<T>>(queryName, queryParameters);
77+
const result = await db.sql<JsonResultSet<T>>(
78+
queryName,
79+
flattenParameters(queryParameters),
80+
);
7781
const {
7882
rows: [wrappedObject],
7983
} = result;

src/database/operations/generators/generateExistsOperation.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {
22
getIsAdministratorFromAuthContext,
33
getKeycloakUserIdFromAuthContext,
44
} from '../../../types';
5+
import { flattenParameters } from './flattenParameters';
56
import type { AuthIdentityAndRole } from '../../../types';
67
import type { TinyPg } from 'tinypg';
78

@@ -52,12 +53,16 @@ const generateExistsOperation =
5253
}, {});
5354
const {
5455
rows: [row],
55-
} = await db.sql<ExistsResult>(queryName, {
56-
authContextKeycloakUserId: getKeycloakUserIdFromAuthContext(authContext),
57-
authContextIsAdministrator:
58-
getIsAdministratorFromAuthContext(authContext),
59-
...inputAttributeQueryParameters,
60-
});
56+
} = await db.sql<ExistsResult>(
57+
queryName,
58+
flattenParameters({
59+
authContextKeycloakUserId:
60+
getKeycloakUserIdFromAuthContext(authContext),
61+
authContextIsAdministrator:
62+
getIsAdministratorFromAuthContext(authContext),
63+
...inputAttributeQueryParameters,
64+
}),
65+
);
6166
return row?.result ?? false;
6267
};
6368

src/database/operations/generators/generateHasPermissionOperation.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {
22
getIsAdministratorFromAuthContext,
33
getKeycloakUserIdFromAuthContext,
44
} from '../../../types';
5+
import { flattenParameters } from './flattenParameters';
56
import type {
67
AuthIdentityAndRole,
78
PermissionGrantEntityType,
@@ -41,13 +42,16 @@ const generateHasPermissionOperation =
4142
getIsAdministratorFromAuthContext(authContext);
4243
const {
4344
rows: [row],
44-
} = await db.sql<HasPermissionResult>(queryName, {
45-
userKeycloakUserId: authContextKeycloakUserId,
46-
isAdministrator: authContextIsAdministrator,
47-
[entityIdParamName]: entityId,
48-
permission,
49-
scope,
50-
});
45+
} = await db.sql<HasPermissionResult>(
46+
queryName,
47+
flattenParameters({
48+
userKeycloakUserId: authContextKeycloakUserId,
49+
isAdministrator: authContextIsAdministrator,
50+
[entityIdParamName]: entityId,
51+
permission,
52+
scope,
53+
}),
54+
);
5155
return row?.hasPermission ?? false;
5256
};
5357

src/database/operations/generators/generateLoadBundleOperation.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
getIsAdministratorFromAuthContext,
44
getKeycloakUserIdFromAuthContext,
55
} from '../../../types';
6+
import { flattenParameters } from './flattenParameters';
67
import type {
78
AuthIdentityAndRole,
89
Bundle,
@@ -46,7 +47,7 @@ const generateLoadBundleOperation = <T, P extends [...args: unknown[]]>(
4647
);
4748
const { rows } = await db.sql<PaginatedJsonResultSet<T>>(
4849
queryName,
49-
queryParameters,
50+
flattenParameters(queryParameters),
5051
);
5152
const [firstRow] = rows;
5253
const total = Number(firstRow?.total ?? '0');

src/database/operations/generators/generateLoadItemOperation.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
getIsAdministratorFromAuthContext,
55
getKeycloakUserIdFromAuthContext,
66
} from '../../../types';
7+
import { flattenParameters } from './flattenParameters';
78
import type { AuthIdentityAndRole, JsonResultSet } from '../../../types';
89
import type { TinyPg } from 'tinypg';
910

@@ -46,7 +47,10 @@ const generateLoadItemOperation =
4647
},
4748
);
4849

49-
const result = await db.sql<JsonResultSet<T>>(queryName, queryParameters);
50+
const result = await db.sql<JsonResultSet<T>>(
51+
queryName,
52+
flattenParameters(queryParameters),
53+
);
5054
const {
5155
rows: [wrappedObject],
5256
} = result;

src/database/operations/generators/generateRemoveItemOperation.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
getIsAdministratorFromAuthContext,
55
getKeycloakUserIdFromAuthContext,
66
} from '../../../types';
7+
import { flattenParameters } from './flattenParameters';
78
import type { AuthIdentityAndRole, JsonResultSet } from '../../../types';
89
import type { TinyPg } from 'tinypg';
910

@@ -46,7 +47,10 @@ const generateRemoveItemOperation =
4647
},
4748
);
4849

49-
const result = await db.sql<JsonResultSet<T>>(queryName, queryParameters);
50+
const result = await db.sql<JsonResultSet<T>>(
51+
queryName,
52+
flattenParameters(queryParameters),
53+
);
5054
const {
5155
rows: [wrappedRemovedObject],
5256
} = result;

src/database/operations/generators/generateUpsertItemOperation.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
getIsAdministratorFromAuthContext,
55
getKeycloakUserIdFromAuthContext,
66
} from '../../../types';
7+
import { flattenParameters } from './flattenParameters';
78
import type {
89
AuthIdentityAndRole,
910
UpsertJsonResultSet,
@@ -79,7 +80,7 @@ const generateUpsertItemOperation =
7980

8081
const result = await db.sql<UpsertJsonResultSet<T>>(
8182
queryName,
82-
queryParameters,
83+
flattenParameters(queryParameters),
8384
);
8485
const {
8586
rows: [wrappedObject],

0 commit comments

Comments
 (0)