prostgles-server 4.2.367 → 4.2.369
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.js +29 -2
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts +1 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.js +8 -5
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts +2 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js +8 -6
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js.map +1 -1
- package/lib/DboBuilder/QueryBuilder/getJoinQuery.ts +32 -3
- package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +8 -5
- package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +12 -10
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getJoinQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getJoinQuery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAK9D,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,QAAQ,CAAC;IACb,EAAE,EAAE,YAAY,CAAC;IACjB,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,YAAa,MAAM;;;CAMzC,CAAC;AAEF,eAAO,MAAM,mBAAmB,oCAAoC,CAAC;AACrE;;GAEG;AACH,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAgB/D,KAAK,kBAAkB,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"getJoinQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getJoinQuery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAK9D,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,QAAQ,CAAC;IACb,EAAE,EAAE,YAAY,CAAC;IACjB,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,YAAa,MAAM;;;CAMzC,CAAC;AAEF,eAAO,MAAM,mBAAmB,oCAAoC,CAAC;AACrE;;GAEG;AACH,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAgB/D,KAAK,kBAAkB,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,gBAAiB,WAAW,cAAc,IAAI,KAAG,kBAiIzE,CAAC;AAuFF,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC"}
|
|
@@ -64,7 +64,6 @@ const getJoinQuery = (viewHandler, { q1, q2 }) => {
|
|
|
64
64
|
_joinFields: firstJoinTableJoinFields,
|
|
65
65
|
});
|
|
66
66
|
const joinType = q2.isLeftJoin ? "LEFT" : "INNER";
|
|
67
|
-
const isOrJoin = firstJoinTablePath.on.length > 1;
|
|
68
67
|
const joinCondition = (0, getTableJoinQuery_1.getJoinOnCondition)({
|
|
69
68
|
on: firstJoinTablePath.on,
|
|
70
69
|
leftAlias: (0, prostgles_types_1.asName)(q1.tableAlias || q1.table),
|
|
@@ -90,6 +89,35 @@ const getJoinQuery = (viewHandler, { q1, q2 }) => {
|
|
|
90
89
|
* Used to prevent duplicates in case of OR filters
|
|
91
90
|
*/
|
|
92
91
|
const rootTableIdField = `${getSelectQuery_1.ROOT_TABLE_ALIAS}.${getSelectQuery_1.ROOT_TABLE_ROW_NUM_ID}`;
|
|
92
|
+
/**
|
|
93
|
+
* If multiple join conditions exist it's an OR join
|
|
94
|
+
* Must use LATERAL JOIN to prevent cartesian product
|
|
95
|
+
*/
|
|
96
|
+
const isOrJoin = firstJoinTablePath.on.length > 1;
|
|
97
|
+
if (isOrJoin.toString() === "true") {
|
|
98
|
+
const wrappingQuery = [
|
|
99
|
+
`SELECT `,
|
|
100
|
+
...(0, getSelectQuery_1.indentLines)([rootTableIdField, jsonAgg, ...rootNestedSort.map((d) => d.nested.wrapperQuerySortItem)], { appendCommas: true }),
|
|
101
|
+
`FROM (`,
|
|
102
|
+
...(0, getSelectQuery_1.indentLines)(innerQuery),
|
|
103
|
+
`) ${targetTableAlias}`,
|
|
104
|
+
`WHERE ${joinCondition}`,
|
|
105
|
+
`GROUP BY ${rootTableIdField}`,
|
|
106
|
+
];
|
|
107
|
+
const joinLines = [
|
|
108
|
+
`${joinType} JOIN LATERAL (`,
|
|
109
|
+
...wrappingQuery,
|
|
110
|
+
`) as ${targetTableAlias} ON TRUE`,
|
|
111
|
+
];
|
|
112
|
+
return {
|
|
113
|
+
type: "cte",
|
|
114
|
+
resultAlias: exports.JSON_AGG_FIELD_NAME,
|
|
115
|
+
joinLines,
|
|
116
|
+
cteLines: [],
|
|
117
|
+
isOrJoin,
|
|
118
|
+
firstJoinTableJoinFields,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
93
121
|
const wrappingQuery = [
|
|
94
122
|
`SELECT `,
|
|
95
123
|
...(0, getSelectQuery_1.indentLines)([
|
|
@@ -117,7 +145,6 @@ const getJoinQuery = (viewHandler, { q1, q2 }) => {
|
|
|
117
145
|
return {
|
|
118
146
|
type: "cte",
|
|
119
147
|
resultAlias: exports.JSON_AGG_FIELD_NAME,
|
|
120
|
-
// queryLines,
|
|
121
148
|
joinLines,
|
|
122
149
|
cteLines,
|
|
123
150
|
isOrJoin,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getJoinQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getJoinQuery.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AAEpD,gEAA6D;AAG7D,qDAAwF;AAExF,wEAAsE;AACtE,8CAAoD;AACpD,yDAAsD;AAQtD;;GAEG;AACI,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE;IAC5C,MAAM,KAAK,GAAG,IAAA,wBAAM,EAAC,iBAAiB,GAAG,OAAO,CAAC,CAAC;IAClD,OAAO;QACL,KAAK;QACL,UAAU,EAAE,GAAG,IAAA,wBAAM,EAAC,OAAO,CAAC,OAAO,KAAK,EAAE;KAC7C,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB;AAEW,QAAA,mBAAmB,GAAG,iCAAiC,CAAC;AACrE;;GAEG;AACU,QAAA,uBAAuB,GAAG,uBAAuB,CAAC;AAE/D,MAAM,YAAY,GAAG,CACnB,SAAiB,EACjB,SAAiB,EACjB,gBAAoC,EACpC,EAAE;IACF,MAAM,QAAQ,GAAG,gBAAgB,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;IACnE,OAAO;QACL,kEAAkE;QAClE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,IAAA,wBAAM,EAAC,QAAQ,CAAC;QACvB,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"getJoinQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getJoinQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import type { ViewHandler } from "../ViewHandler/ViewHandler";
|
|
|
6
6
|
export declare const ROOT_TABLE_ROW_NUM_ID = "prostgles_root_table_row_id";
|
|
7
7
|
export declare const ROOT_TABLE_ALIAS = "prostgles_root_table_alias";
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Create the query from NewQuery
|
|
10
10
|
* No validation/authorisation at this point
|
|
11
11
|
* */
|
|
12
12
|
export declare function getSelectQuery(viewHandler: ViewHandler, q: NewQuery, depth: number | undefined, selectParamsGroupBy: boolean): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSelectQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getSelectQuery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAG9D;;GAEG;AACH,eAAO,MAAM,qBAAqB,gCAAgC,CAAC;AACnE,eAAO,MAAM,gBAAgB,+BAA+B,CAAC;AAE7D;;;KAGK;AACL,wBAAgB,cAAc,CAC5B,WAAW,EAAE,WAAW,EACxB,CAAC,EAAE,QAAQ,EACX,KAAK,oBAAI,EACT,mBAAmB,EAAE,OAAO,GAC3B,MAAM,
|
|
1
|
+
{"version":3,"file":"getSelectQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getSelectQuery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAG9D;;GAEG;AACH,eAAO,MAAM,qBAAqB,gCAAgC,CAAC;AACnE,eAAO,MAAM,gBAAgB,+BAA+B,CAAC;AAE7D;;;KAGK;AACL,wBAAgB,cAAc,CAC5B,WAAW,EAAE,WAAW,EACxB,CAAC,EAAE,QAAQ,EACX,KAAK,oBAAI,EACT,mBAAmB,EAAE,OAAO,GAC3B,MAAM,CA0ER;AAID,KAAK,eAAe,GAAG;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AACF,eAAO,MAAM,WAAW,WACd,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,gDAC0B,eAAe,KAC7E,MAAM,EAUR,CAAC;AASF,eAAO,MAAM,mBAAmB,MAAO,QAAQ,WAA6B,CAAC;AAE7E,eAAO,MAAM,cAAc,MAAO,QAAQ,wBAAwB,OAAO,aAuBxE,CAAC"}
|
|
@@ -10,7 +10,7 @@ const getJoinQuery_1 = require("./getJoinQuery");
|
|
|
10
10
|
exports.ROOT_TABLE_ROW_NUM_ID = "prostgles_root_table_row_id";
|
|
11
11
|
exports.ROOT_TABLE_ALIAS = "prostgles_root_table_alias";
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* Create the query from NewQuery
|
|
14
14
|
* No validation/authorisation at this point
|
|
15
15
|
* */
|
|
16
16
|
function getSelectQuery(viewHandler, q, depth = 0, selectParamsGroupBy) {
|
|
@@ -37,9 +37,11 @@ function getSelectQuery(viewHandler, q, depth = 0, selectParamsGroupBy) {
|
|
|
37
37
|
let joinCtes = !parsedJoins.length ?
|
|
38
38
|
[]
|
|
39
39
|
: [
|
|
40
|
-
...parsedJoins.flatMap((j,
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
...parsedJoins.flatMap((j, joinIndex) => {
|
|
41
|
+
if (joinIndex > 0 && j.cteLines.length) {
|
|
42
|
+
return [",", ...j.cteLines];
|
|
43
|
+
}
|
|
44
|
+
return j.cteLines;
|
|
43
45
|
}),
|
|
44
46
|
];
|
|
45
47
|
if (hasOrJoins) {
|
|
@@ -48,7 +50,8 @@ function getSelectQuery(viewHandler, q, depth = 0, selectParamsGroupBy) {
|
|
|
48
50
|
`${q.table} AS (`,
|
|
49
51
|
` SELECT *, ${pkey ? (0, prostgles_types_1.asName)(pkey.name) : "ROW_NUMBER() OVER()"} as ${exports.ROOT_TABLE_ROW_NUM_ID}`,
|
|
50
52
|
` FROM ${q.table}`,
|
|
51
|
-
`)
|
|
53
|
+
`)`,
|
|
54
|
+
joinCtes.length ? "," : "",
|
|
52
55
|
...joinCtes,
|
|
53
56
|
];
|
|
54
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSelectQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getSelectQuery.ts"],"names":[],"mappings":";;;AAAA,8CAAoD;AACpD,qDAAoD;AAGpD,iDAA8C;AAE9C;;GAEG;AACU,QAAA,qBAAqB,GAAG,6BAA6B,CAAC;AACtD,QAAA,gBAAgB,GAAG,4BAA4B,CAAC;AAE7D;;;KAGK;AACL,SAAgB,cAAc,CAC5B,WAAwB,EACxB,CAAW,EACX,KAAK,GAAG,CAAC,EACT,mBAA4B;IAE5B,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAgB,CAAC,EAAE,MAAM,EAAE,IAAA,wBAAM,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhF,MAAM,WAAW,GACf,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG,IAAA,2BAAY,EAAC,WAAW,EAAE;YACvC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,wBAAgB,EAAE;YAC1C,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;YACb,mBAAmB;SACpB,CAAC,CAAC;QACH,OAAO;YACL,GAAG,EAAE;YACL,GAAG,MAAM;SACV,CAAC;IACJ,CAAC,CAAC,IAAI,EAAE,CAAC;IAEX,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CACnC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACvB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3B,OAAO,YAAY,IAAA,wBAAM,EAAC,SAAS,CAAC,IAAI,IAAI,CAAC,WAAW,cAAc,IAAA,wBAAM,EAAC,SAAS,CAAC,EAAE,CAAC;IAC5F,CAAC,CAAC,CACH,CAAC;IAEF,wGAAwG;IACxG,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEvD,IAAI,QAAQ,GACV,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACnB,EAAE;QACJ,CAAC,CAAC;YACE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"getSelectQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getSelectQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ type GetJoinOnConditionArgs = {
|
|
|
16
16
|
getLeftColName?: (col: string) => string;
|
|
17
17
|
getRightColName?: (col: string) => string;
|
|
18
18
|
};
|
|
19
|
-
export declare const
|
|
19
|
+
export declare const getJoinOnConditions: ({ on, leftAlias, rightAlias, getLeftColName, getRightColName, }: GetJoinOnConditionArgs) => string[];
|
|
20
|
+
export declare const getJoinOnCondition: (args: GetJoinOnConditionArgs) => string;
|
|
20
21
|
export {};
|
|
21
22
|
//# sourceMappingURL=getTableJoinQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTableJoinQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/getTableJoinQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,KAAK,iBAAiB,GAAG;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,cAAc,EAAE,CAAC;CACxB,CAAC;AACF,eAAO,MAAM,iBAAiB,gDAK3B,iBAAiB;iBAAkB,MAAM;WAAS,MAAM;CA8D1D,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C,CAAC;AACF,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"getTableJoinQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/getTableJoinQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,KAAK,iBAAiB,GAAG;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,cAAc,EAAE,CAAC;CACxB,CAAC;AACF,eAAO,MAAM,iBAAiB,gDAK3B,iBAAiB;iBAAkB,MAAM;WAAS,MAAM;CA8D1D,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C,CAAC;AACF,eAAO,MAAM,mBAAmB,oEAM7B,sBAAsB,aAQxB,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,sBAAsB,WAE9D,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getJoinOnCondition = exports.getTableJoinQuery = void 0;
|
|
3
|
+
exports.getJoinOnCondition = exports.getJoinOnConditions = exports.getTableJoinQuery = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
5
|
const getTableJoinQuery = ({ path, type, rootTableAlias, finalWhere, }) => {
|
|
6
6
|
const [firstPath] = path;
|
|
@@ -56,14 +56,16 @@ const getTableJoinQuery = ({ path, type, rootTableAlias, finalWhere, }) => {
|
|
|
56
56
|
};
|
|
57
57
|
};
|
|
58
58
|
exports.getTableJoinQuery = getTableJoinQuery;
|
|
59
|
-
const
|
|
60
|
-
return on
|
|
61
|
-
.map((constraint) => Object.entries(constraint)
|
|
59
|
+
const getJoinOnConditions = ({ on, leftAlias, rightAlias, getLeftColName = prostgles_types_1.asName, getRightColName = prostgles_types_1.asName, }) => {
|
|
60
|
+
return on.map((constraint) => Object.entries(constraint)
|
|
62
61
|
.map(([leftCol, rightCol]) => {
|
|
63
62
|
return `${leftAlias}.${getLeftColName(leftCol)} = ${rightAlias}.${getRightColName(rightCol)}`;
|
|
64
63
|
})
|
|
65
|
-
.join(" AND "))
|
|
66
|
-
|
|
64
|
+
.join(" AND "));
|
|
65
|
+
};
|
|
66
|
+
exports.getJoinOnConditions = getJoinOnConditions;
|
|
67
|
+
const getJoinOnCondition = (args) => {
|
|
68
|
+
return (0, exports.getJoinOnConditions)(args).join(" OR ");
|
|
67
69
|
};
|
|
68
70
|
exports.getJoinOnCondition = getJoinOnCondition;
|
|
69
71
|
//# sourceMappingURL=getTableJoinQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTableJoinQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/getTableJoinQuery.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"getTableJoinQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/getTableJoinQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,7 +48,6 @@ const getJoinTable = (
|
|
|
48
48
|
|
|
49
49
|
type GetJoinQueryResult = {
|
|
50
50
|
resultAlias: string;
|
|
51
|
-
// queryLines: string[];
|
|
52
51
|
firstJoinTableJoinFields: string[];
|
|
53
52
|
isOrJoin: boolean;
|
|
54
53
|
type: "cte";
|
|
@@ -98,7 +97,6 @@ export const getJoinQuery = (viewHandler: ViewHandler, { q1, q2 }: Args): GetJoi
|
|
|
98
97
|
|
|
99
98
|
const joinType = q2.isLeftJoin ? "LEFT" : "INNER";
|
|
100
99
|
|
|
101
|
-
const isOrJoin = firstJoinTablePath.on.length > 1;
|
|
102
100
|
const joinCondition = getJoinOnCondition({
|
|
103
101
|
on: firstJoinTablePath.on,
|
|
104
102
|
leftAlias: asName(q1.tableAlias || q1.table),
|
|
@@ -127,6 +125,38 @@ export const getJoinQuery = (viewHandler: ViewHandler, { q1, q2 }: Args): GetJoi
|
|
|
127
125
|
* Used to prevent duplicates in case of OR filters
|
|
128
126
|
*/
|
|
129
127
|
const rootTableIdField = `${ROOT_TABLE_ALIAS}.${ROOT_TABLE_ROW_NUM_ID}`;
|
|
128
|
+
/**
|
|
129
|
+
* If multiple join conditions exist it's an OR join
|
|
130
|
+
* Must use LATERAL JOIN to prevent cartesian product
|
|
131
|
+
*/
|
|
132
|
+
const isOrJoin = firstJoinTablePath.on.length > 1;
|
|
133
|
+
if (isOrJoin.toString() === "true") {
|
|
134
|
+
const wrappingQuery = [
|
|
135
|
+
`SELECT `,
|
|
136
|
+
...indentLines(
|
|
137
|
+
[rootTableIdField, jsonAgg, ...rootNestedSort.map((d) => d.nested!.wrapperQuerySortItem)],
|
|
138
|
+
{ appendCommas: true }
|
|
139
|
+
),
|
|
140
|
+
`FROM (`,
|
|
141
|
+
...indentLines(innerQuery),
|
|
142
|
+
`) ${targetTableAlias}`,
|
|
143
|
+
`WHERE ${joinCondition}`,
|
|
144
|
+
`GROUP BY ${rootTableIdField}`,
|
|
145
|
+
];
|
|
146
|
+
const joinLines = [
|
|
147
|
+
`${joinType} JOIN LATERAL (`,
|
|
148
|
+
...wrappingQuery,
|
|
149
|
+
`) as ${targetTableAlias} ON TRUE`,
|
|
150
|
+
];
|
|
151
|
+
return {
|
|
152
|
+
type: "cte",
|
|
153
|
+
resultAlias: JSON_AGG_FIELD_NAME,
|
|
154
|
+
joinLines,
|
|
155
|
+
cteLines: [],
|
|
156
|
+
isOrJoin,
|
|
157
|
+
firstJoinTableJoinFields,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
130
160
|
const wrappingQuery = [
|
|
131
161
|
`SELECT `,
|
|
132
162
|
...indentLines(
|
|
@@ -160,7 +190,6 @@ export const getJoinQuery = (viewHandler: ViewHandler, { q1, q2 }: Args): GetJoi
|
|
|
160
190
|
return {
|
|
161
191
|
type: "cte",
|
|
162
192
|
resultAlias: JSON_AGG_FIELD_NAME,
|
|
163
|
-
// queryLines,
|
|
164
193
|
joinLines,
|
|
165
194
|
cteLines,
|
|
166
195
|
isOrJoin,
|
|
@@ -11,7 +11,7 @@ export const ROOT_TABLE_ROW_NUM_ID = "prostgles_root_table_row_id";
|
|
|
11
11
|
export const ROOT_TABLE_ALIAS = "prostgles_root_table_alias";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* Create the query from NewQuery
|
|
15
15
|
* No validation/authorisation at this point
|
|
16
16
|
* */
|
|
17
17
|
export function getSelectQuery(
|
|
@@ -51,9 +51,11 @@ export function getSelectQuery(
|
|
|
51
51
|
!parsedJoins.length ?
|
|
52
52
|
[]
|
|
53
53
|
: [
|
|
54
|
-
...parsedJoins.flatMap((j,
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
...parsedJoins.flatMap((j, joinIndex) => {
|
|
55
|
+
if (joinIndex > 0 && j.cteLines.length) {
|
|
56
|
+
return [",", ...j.cteLines];
|
|
57
|
+
}
|
|
58
|
+
return j.cteLines;
|
|
57
59
|
}),
|
|
58
60
|
];
|
|
59
61
|
|
|
@@ -63,7 +65,8 @@ export function getSelectQuery(
|
|
|
63
65
|
`${q.table} AS (`,
|
|
64
66
|
` SELECT *, ${pkey ? asName(pkey.name) : "ROW_NUMBER() OVER()"} as ${ROOT_TABLE_ROW_NUM_ID}`,
|
|
65
67
|
` FROM ${q.table}`,
|
|
66
|
-
`)
|
|
68
|
+
`)`,
|
|
69
|
+
joinCtes.length ? "," : "",
|
|
67
70
|
...joinCtes,
|
|
68
71
|
];
|
|
69
72
|
}
|
|
@@ -83,20 +83,22 @@ type GetJoinOnConditionArgs = {
|
|
|
83
83
|
getLeftColName?: (col: string) => string;
|
|
84
84
|
getRightColName?: (col: string) => string;
|
|
85
85
|
};
|
|
86
|
-
export const
|
|
86
|
+
export const getJoinOnConditions = ({
|
|
87
87
|
on,
|
|
88
88
|
leftAlias,
|
|
89
89
|
rightAlias,
|
|
90
90
|
getLeftColName = asName,
|
|
91
91
|
getRightColName = asName,
|
|
92
92
|
}: GetJoinOnConditionArgs) => {
|
|
93
|
-
return on
|
|
94
|
-
.
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
93
|
+
return on.map((constraint) =>
|
|
94
|
+
Object.entries(constraint)
|
|
95
|
+
.map(([leftCol, rightCol]) => {
|
|
96
|
+
return `${leftAlias}.${getLeftColName(leftCol)} = ${rightAlias}.${getRightColName(rightCol)}`;
|
|
97
|
+
})
|
|
98
|
+
.join(" AND ")
|
|
99
|
+
);
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export const getJoinOnCondition = (args: GetJoinOnConditionArgs) => {
|
|
103
|
+
return getJoinOnConditions(args).join(" OR ");
|
|
102
104
|
};
|