prostgles-server 4.1.47 → 4.1.49
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 +2 -2
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.js +36 -16
- package/dist/DboBuilder/QueryBuilder/getJoinQuery.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.js +6 -1
- package/dist/DboBuilder/QueryBuilder/getSelectQuery.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts +8 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js +8 -4
- package/dist/DboBuilder/ViewHandler/getTableJoinQuery.js.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareSortItems.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler/prepareSortItems.js +2 -0
- package/dist/DboBuilder/ViewHandler/prepareSortItems.js.map +1 -1
- package/lib/DboBuilder/QueryBuilder/getJoinQuery.ts +44 -16
- package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +8 -1
- package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +16 -8
- package/lib/DboBuilder/ViewHandler/prepareSortItems.ts +2 -0
- package/package.json +1 -1
- package/tests/client/PID.txt +1 -1
- package/tests/server/package-lock.json +1 -1
|
@@ -14,11 +14,11 @@ export declare const getJoinCol: (colName: string) => {
|
|
|
14
14
|
rootSelect: string;
|
|
15
15
|
};
|
|
16
16
|
/**
|
|
17
|
-
Returns join query
|
|
17
|
+
Returns join query. All inner join tables will be prefixed with path index unless it's the final target table which is aliased using the q2 tableAlias
|
|
18
18
|
|
|
19
19
|
LEFT JOIN (
|
|
20
20
|
SELECT [target table select + join fields]
|
|
21
|
-
FROM first_join
|
|
21
|
+
FROM first_join/target_table
|
|
22
22
|
JOIN ..next_joins ON ...
|
|
23
23
|
JOIN target_table
|
|
24
24
|
) target_table
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getJoinQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getJoinQuery.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,QAAQ,CAAC;IACb,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,YAAa,MAAM;;;CAMzC,CAAA;
|
|
1
|
+
{"version":3,"file":"getJoinQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getJoinQuery.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,QAAQ,CAAC;IACb,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,YAAa,MAAM;;;CAMzC,CAAA;AASD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,gBAAiB,WAAW,qBAAqB,IAAI;gBAAiB,MAAM,EAAE;2BAAyB,MAAM,EAAE;;CA2EvI,CAAA"}
|
|
@@ -10,19 +10,25 @@ const getTableJoinQuery_1 = require("../ViewHandler/getTableJoinQuery");
|
|
|
10
10
|
* Rename all join columns to prevent name clash
|
|
11
11
|
*/
|
|
12
12
|
const getJoinCol = (colName) => {
|
|
13
|
-
const alias = (0, prostgles_types_1.asName)("
|
|
13
|
+
const alias = (0, prostgles_types_1.asName)("prgl_join_col__" + colName);
|
|
14
14
|
return {
|
|
15
15
|
alias,
|
|
16
16
|
rootSelect: `${(0, prostgles_types_1.asName)(colName)} AS ${alias}`,
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
19
|
exports.getJoinCol = getJoinCol;
|
|
20
|
+
const getJoinTable = (tableName, pathIndex, isLastTableAlias) => {
|
|
21
|
+
return {
|
|
22
|
+
name: (0, prostgles_types_1.asName)(tableName),
|
|
23
|
+
alias: (0, prostgles_types_1.asName)(isLastTableAlias ?? `p${pathIndex}__${tableName}`),
|
|
24
|
+
};
|
|
25
|
+
};
|
|
20
26
|
/**
|
|
21
|
-
Returns join query
|
|
27
|
+
Returns join query. All inner join tables will be prefixed with path index unless it's the final target table which is aliased using the q2 tableAlias
|
|
22
28
|
|
|
23
29
|
LEFT JOIN (
|
|
24
30
|
SELECT [target table select + join fields]
|
|
25
|
-
FROM first_join
|
|
31
|
+
FROM first_join/target_table
|
|
26
32
|
JOIN ..next_joins ON ...
|
|
27
33
|
JOIN target_table
|
|
28
34
|
) target_table
|
|
@@ -30,15 +36,24 @@ exports.getJoinCol = getJoinCol;
|
|
|
30
36
|
*/
|
|
31
37
|
const getJoinQuery = (viewHandler, { q1, q2, depth }) => {
|
|
32
38
|
const paths = (0, parseJoinPath_1.parseJoinPath)({ rootTable: q1.table, rawPath: q2.joinPath, viewHandler: viewHandler, allowMultiOrJoin: true, addShortestJoinIfMissing: true, });
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
const
|
|
39
|
+
const targetTableAliasRaw = q2.tableAlias || q2.table;
|
|
40
|
+
const targetTableAlias = (0, prostgles_types_1.asName)(targetTableAliasRaw);
|
|
41
|
+
const firstJoinTablePath = paths[0];
|
|
42
|
+
const firstJoinTableJoinFields = firstJoinTablePath.on.flatMap(condObj => Object.entries(condObj).map(([source, target]) => target));
|
|
43
|
+
const { rootSelectItems, limitFieldName } = getSelectFields({
|
|
44
|
+
q: q2,
|
|
45
|
+
firstJoinTableAlias: getJoinTable(firstJoinTablePath.table, 0, paths.length === 1 ? targetTableAliasRaw : undefined).alias,
|
|
46
|
+
_joinFields: firstJoinTableJoinFields
|
|
47
|
+
});
|
|
36
48
|
const joinType = q2.isLeftJoin ? "LEFT" : "INNER";
|
|
37
49
|
const innerQuery = paths.flatMap((path, i) => {
|
|
38
50
|
const isLast = i === paths.length - 1;
|
|
39
51
|
const targetQueryExtraQueries = [];
|
|
40
|
-
const prevTableAlias = !i
|
|
41
|
-
const tableAlias =
|
|
52
|
+
// const prevTableAlias = !i? (q1.tableAlias ?? q1.table) : `t${i-1}`;
|
|
53
|
+
// const tableAlias = isLast? targetTableAlias : asName(`t${i}`);
|
|
54
|
+
const prevTable = getJoinTable(!i ? (q1.tableAlias ?? q1.table) : paths[i - 1].table, i - 1, undefined);
|
|
55
|
+
// const tableAlias = isLast? targetTableAlias : asName(path.table);
|
|
56
|
+
const table = getJoinTable(path.table, i, isLast ? targetTableAliasRaw : undefined);
|
|
42
57
|
if (isLast) {
|
|
43
58
|
if (q2.where) {
|
|
44
59
|
targetQueryExtraQueries.push(q2.where);
|
|
@@ -57,30 +72,35 @@ const getJoinQuery = (viewHandler, { q1, q2, depth }) => {
|
|
|
57
72
|
`SELECT `,
|
|
58
73
|
` /* Join fields + select */`,
|
|
59
74
|
` ${rootSelectItems.map(s => s.query)}`,
|
|
60
|
-
`FROM ${
|
|
75
|
+
`FROM ${table.name} ${table.alias}`,
|
|
61
76
|
...targetQueryExtraQueries
|
|
62
77
|
];
|
|
63
78
|
}
|
|
64
79
|
return [
|
|
65
|
-
`${joinType} JOIN ${
|
|
66
|
-
`ON ${(0, getTableJoinQuery_1.getJoinOnCondition)(path.on,
|
|
80
|
+
`${joinType} JOIN ${table.name} ${table.alias}`,
|
|
81
|
+
`ON ${(0, getTableJoinQuery_1.getJoinOnCondition)({ on: path.on, leftAlias: prevTable.alias, rightAlias: table.alias })}`,
|
|
67
82
|
...targetQueryExtraQueries
|
|
68
83
|
];
|
|
69
84
|
});
|
|
70
85
|
const queryLines = [
|
|
71
86
|
`${joinType} JOIN (`,
|
|
72
87
|
...(0, getSelectQuery_1.indentLines)(innerQuery, 2),
|
|
73
|
-
`) ${
|
|
74
|
-
`ON ${(0, getTableJoinQuery_1.getJoinOnCondition)(
|
|
88
|
+
`) ${targetTableAlias}`,
|
|
89
|
+
`ON ${(0, getTableJoinQuery_1.getJoinOnCondition)({
|
|
90
|
+
on: firstJoinTablePath.on,
|
|
91
|
+
leftAlias: (0, prostgles_types_1.asName)(q1.tableAlias || q1.table),
|
|
92
|
+
rightAlias: targetTableAlias,
|
|
93
|
+
getRightColName: (col) => (0, exports.getJoinCol)(col).alias
|
|
94
|
+
})}`
|
|
75
95
|
];
|
|
76
96
|
return {
|
|
77
97
|
queryLines,
|
|
78
98
|
limitFieldName,
|
|
79
|
-
targetTableJoinFields,
|
|
99
|
+
targetTableJoinFields: firstJoinTableJoinFields,
|
|
80
100
|
};
|
|
81
101
|
};
|
|
82
102
|
exports.getJoinQuery = getJoinQuery;
|
|
83
|
-
const getSelectFields = (q, _joinFields) => {
|
|
103
|
+
const getSelectFields = ({ q, firstJoinTableAlias, _joinFields }) => {
|
|
84
104
|
const targetTableAlias = (q.tableAlias || q.table);
|
|
85
105
|
const limitFieldName = q.limit ? "prostgles_nested_limit" : undefined;
|
|
86
106
|
const requiredJoinFields = Array.from(new Set(_joinFields));
|
|
@@ -99,7 +119,7 @@ const getSelectFields = (q, _joinFields) => {
|
|
|
99
119
|
getQuery: (tableAlias) => (0, QueryBuilder_1.asNameAlias)(f, tableAlias),
|
|
100
120
|
selected: false,
|
|
101
121
|
isJoinCol: true,
|
|
102
|
-
query: `${
|
|
122
|
+
query: `${firstJoinTableAlias}.${(0, exports.getJoinCol)(f).rootSelect}`,
|
|
103
123
|
})));
|
|
104
124
|
if (limitFieldName) {
|
|
105
125
|
const getQuery = (tableAlias) => `ROW_NUMBER() OVER( PARTITION BY ${requiredJoinFields.map(f => (0, QueryBuilder_1.asNameAlias)(f, tableAlias))}) AS ${(0, prostgles_types_1.asName)(limitFieldName)}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getJoinQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getJoinQuery.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AACpD,gEAA6D;AAC7D,iDAAiF;AACjF,qDAA+C;AAE/C,wEAAsE;AAStE;;GAEG;AACI,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE;IAC5C,MAAM,KAAK,GAAG,IAAA,wBAAM,EAAC,
|
|
1
|
+
{"version":3,"file":"getJoinQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getJoinQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSelectQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getSelectQuery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAe,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD;;;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":"AAGA,OAAO,EAAE,QAAQ,EAAe,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD;;;KAGK;AACL,wBAAgB,cAAc,CAC5B,WAAW,EAAE,WAAW,EACxB,CAAC,EAAE,QAAQ,EACX,KAAK,oBAAI,EACT,mBAAmB,EAAE,OAAO,GAC3B,MAAM,CAsDR;AAGD,eAAO,MAAM,WAAW,WAAY,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,EAAE,kDAAwC,MAAM,EAA4F,CAAC;AAG5M,eAAO,MAAM,mBAAmB,MAAO,QAAQ,WAA6B,CAAC;AAG7E,eAAO,MAAM,cAAc,MAAO,QAAQ,wBAAwB,OAAO,aAmBxE,CAAA"}
|
|
@@ -14,7 +14,12 @@ function getSelectQuery(viewHandler, q, depth = 0, selectParamsGroupBy) {
|
|
|
14
14
|
const rootTableAlias = 'prostgles_root_table_alias';
|
|
15
15
|
const rootSelect = q.select.filter(s => s.selected).map(s => [s.getQuery(rootTableAlias), " AS ", (0, prostgles_types_1.asName)(s.alias)].join(""));
|
|
16
16
|
const parsedJoins = q.joins?.flatMap(q2 => {
|
|
17
|
-
const parsed = (0, getJoinQuery_1.getJoinQuery)(viewHandler, {
|
|
17
|
+
const parsed = (0, getJoinQuery_1.getJoinQuery)(viewHandler, {
|
|
18
|
+
q1: { ...q, tableAlias: rootTableAlias },
|
|
19
|
+
q2: { ...q2 },
|
|
20
|
+
depth: depth + 1,
|
|
21
|
+
selectParamsGroupBy: shouldGroupBy
|
|
22
|
+
});
|
|
18
23
|
return {
|
|
19
24
|
...q2,
|
|
20
25
|
...parsed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSelectQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getSelectQuery.ts"],"names":[],"mappings":";;;AACA,iDAA+C;AAC/C,qDAAoD;AACpD,iDAAuD;AAEvD,iDAA0D;AAE1D;;;KAGK;AACL,SAAgB,cAAc,CAC5B,WAAwB,EACxB,CAAW,EACX,KAAK,GAAG,CAAC,EACT,mBAA4B;IAG5B,MAAM,aAAa,GAAG,mBAAmB,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC;IAC/D,MAAM,cAAc,GAAG,4BAA4B,CAAC;IACpD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,IAAA,wBAAM,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7H,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE;QACxC,MAAM,MAAM,GAAG,IAAA,2BAAY,
|
|
1
|
+
{"version":3,"file":"getSelectQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/getSelectQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,13 @@ export declare const getTableJoinQuery: ({ path, type, aliasSufix, rootTableAlia
|
|
|
10
10
|
targetAlias: string;
|
|
11
11
|
query: string;
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
type GetJoinOnConditionArgs = {
|
|
14
|
+
on: Record<string, string>[];
|
|
15
|
+
leftAlias: string;
|
|
16
|
+
rightAlias: string;
|
|
17
|
+
getLeftColName?: (col: string) => string;
|
|
18
|
+
getRightColName?: (col: string) => string;
|
|
19
|
+
};
|
|
20
|
+
export declare const getJoinOnCondition: ({ on, leftAlias, rightAlias, getLeftColName, getRightColName }: GetJoinOnConditionArgs) => string;
|
|
14
21
|
export {};
|
|
15
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,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,KAAK,iBAAiB,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,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,CAAA;AACD,eAAO,MAAM,iBAAiB,2DAA4D,iBAAiB;iBAAkB,MAAM;WAAS,MAAM;CA2DjJ,CAAA;
|
|
1
|
+
{"version":3,"file":"getTableJoinQuery.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/getTableJoinQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,KAAK,iBAAiB,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,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,CAAA;AACD,eAAO,MAAM,iBAAiB,2DAA4D,iBAAiB;iBAAkB,MAAM;WAAS,MAAM;CA2DjJ,CAAA;AAED,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,CAAA;AACD,eAAO,MAAM,kBAAkB,mEAAsF,sBAAsB,WAI1I,CAAA"}
|
|
@@ -14,7 +14,7 @@ const getTableJoinQuery = ({ path, type, aliasSufix, rootTableAlias, finalWhere
|
|
|
14
14
|
const tableName = (0, prostgles_types_1.asName)(table);
|
|
15
15
|
const tableAlias = getTableAlias(table);
|
|
16
16
|
const prevTableAlias = i === 0 ? rootTableAlias : getTableAlias(path[i - 1].table);
|
|
17
|
-
const onCondition = (0, exports.getJoinOnCondition)(on, prevTableAlias, tableAlias);
|
|
17
|
+
const onCondition = (0, exports.getJoinOnCondition)({ on, leftAlias: prevTableAlias, rightAlias: tableAlias });
|
|
18
18
|
const isExists = type === "EXISTS";
|
|
19
19
|
const joinType = isExists ? "INNER" : type;
|
|
20
20
|
const keyword = `${joinType} JOIN`;
|
|
@@ -24,7 +24,11 @@ const getTableJoinQuery = ({ path, type, aliasSufix, rootTableAlias, finalWhere
|
|
|
24
24
|
* first path joins to target table through inner joins
|
|
25
25
|
*/
|
|
26
26
|
const whereJoinCondition = (isLast && isExists) ?
|
|
27
|
-
`WHERE (${(0, exports.getJoinOnCondition)(
|
|
27
|
+
`WHERE (${(0, exports.getJoinOnCondition)({
|
|
28
|
+
on: firstPath.on,
|
|
29
|
+
leftAlias: rootTableAlias,
|
|
30
|
+
rightAlias: getTableAlias(firstPath.table)
|
|
31
|
+
})})` : "";
|
|
28
32
|
const tableSelect = (isExists && isLast) ? [
|
|
29
33
|
`(`,
|
|
30
34
|
`SELECT *`,
|
|
@@ -51,9 +55,9 @@ const getTableJoinQuery = ({ path, type, aliasSufix, rootTableAlias, finalWhere
|
|
|
51
55
|
};
|
|
52
56
|
};
|
|
53
57
|
exports.getTableJoinQuery = getTableJoinQuery;
|
|
54
|
-
const getJoinOnCondition = (on, leftAlias, rightAlias, getRightColName =
|
|
58
|
+
const getJoinOnCondition = ({ on, leftAlias, rightAlias, getLeftColName = prostgles_types_1.asName, getRightColName = prostgles_types_1.asName }) => {
|
|
55
59
|
return on.map(constraint => Object.entries(constraint).map(([leftCol, rightCol]) => {
|
|
56
|
-
return `${leftAlias}.${leftCol} = ${rightAlias}.${getRightColName(rightCol)}`;
|
|
60
|
+
return `${leftAlias}.${getLeftColName(leftCol)} = ${rightAlias}.${getRightColName(rightCol)}`;
|
|
57
61
|
}).join(" AND ")).join(" OR ");
|
|
58
62
|
};
|
|
59
63
|
exports.getJoinOnCondition = getJoinOnCondition;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTableJoinQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/getTableJoinQuery.ts"],"names":[],"mappings":";;;AAAA,qDAAmD;AAU5C,MAAM,iBAAiB,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAqB,EAA0C,EAAE;IAErJ,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACzB,IAAG,CAAC,SAAS,EAAC;QACZ,MAAM,yCAAyC,CAAC;KACjD;IACD,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAA,wBAAM,EAAC,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;IAE1E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;QAC1C,IAAG,CAAC,EAAE;YAAE,MAAM,YAAY,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAA,wBAAM,EAAC,KAAK,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC;QAEjF,MAAM,WAAW,GAAG,IAAA,0BAAkB,EAAC,EAAE,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"getTableJoinQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/getTableJoinQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareSortItems.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/prepareSortItems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAwC,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIjF,eAAO,MAAM,gBAAgB,eACf,OAAO,GAAG,SAAS,gBACjB,MAAM,EAAE,cACV,MAAM,GAAG,SAAS,UACtB,mBAAmB,EAAE,eAChB,YAAY,EAAE,KAC1B,QAAQ,
|
|
1
|
+
{"version":3,"file":"prepareSortItems.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/prepareSortItems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAwC,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIjF,eAAO,MAAM,gBAAgB,eACf,OAAO,GAAG,SAAS,gBACjB,MAAM,EAAE,cACV,MAAM,GAAG,SAAS,UACtB,mBAAmB,EAAE,eAChB,YAAY,EAAE,KAC1B,QAAQ,EA+FV,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareSortItems.js","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/prepareSortItems.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prepareSortItems.js","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/prepareSortItems.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,18 +16,26 @@ type Args = {
|
|
|
16
16
|
* Rename all join columns to prevent name clash
|
|
17
17
|
*/
|
|
18
18
|
export const getJoinCol = (colName: string) => {
|
|
19
|
-
const alias = asName("
|
|
19
|
+
const alias = asName("prgl_join_col__" + colName);
|
|
20
20
|
return {
|
|
21
21
|
alias,
|
|
22
22
|
rootSelect: `${asName(colName)} AS ${alias}`,
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
+
|
|
26
|
+
const getJoinTable = (tableName: string, pathIndex: number, isLastTableAlias: string | undefined) => {
|
|
27
|
+
return {
|
|
28
|
+
name: asName(tableName),
|
|
29
|
+
alias: asName(isLastTableAlias ?? `p${pathIndex}__${tableName}`),
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
25
33
|
/**
|
|
26
|
-
Returns join query
|
|
34
|
+
Returns join query. All inner join tables will be prefixed with path index unless it's the final target table which is aliased using the q2 tableAlias
|
|
27
35
|
|
|
28
36
|
LEFT JOIN (
|
|
29
37
|
SELECT [target table select + join fields]
|
|
30
|
-
FROM first_join
|
|
38
|
+
FROM first_join/target_table
|
|
31
39
|
JOIN ..next_joins ON ...
|
|
32
40
|
JOIN target_table
|
|
33
41
|
) target_table
|
|
@@ -36,18 +44,28 @@ export const getJoinCol = (colName: string) => {
|
|
|
36
44
|
export const getJoinQuery = (viewHandler: ViewHandler, { q1, q2, depth }: Args): { queryLines: string[]; targetTableJoinFields: string[]; limitFieldName?: string; } => {
|
|
37
45
|
const paths = parseJoinPath({ rootTable: q1.table, rawPath: q2.joinPath, viewHandler: viewHandler, allowMultiOrJoin: true, addShortestJoinIfMissing: true, })
|
|
38
46
|
|
|
39
|
-
const
|
|
47
|
+
const targetTableAliasRaw = q2.tableAlias || q2.table;
|
|
48
|
+
const targetTableAlias = asName(targetTableAliasRaw);
|
|
40
49
|
|
|
41
|
-
const
|
|
42
|
-
const
|
|
50
|
+
const firstJoinTablePath = paths[0]!;
|
|
51
|
+
const firstJoinTableJoinFields = firstJoinTablePath.on.flatMap(condObj => Object.entries(condObj).map(([source, target]) => target));
|
|
52
|
+
const { rootSelectItems, limitFieldName } = getSelectFields({
|
|
53
|
+
q: q2,
|
|
54
|
+
firstJoinTableAlias: getJoinTable(firstJoinTablePath.table, 0, paths.length === 1? targetTableAliasRaw : undefined).alias,
|
|
55
|
+
_joinFields: firstJoinTableJoinFields
|
|
56
|
+
});
|
|
43
57
|
|
|
44
58
|
const joinType = q2.isLeftJoin? "LEFT" : "INNER";
|
|
45
59
|
const innerQuery = paths.flatMap((path, i) => {
|
|
46
60
|
|
|
47
61
|
const isLast = i === paths.length - 1;
|
|
48
62
|
const targetQueryExtraQueries: string[] = [];
|
|
49
|
-
const prevTableAlias = !i? (q1.tableAlias ?? q1.table) : `t${i-1}`;
|
|
50
|
-
const tableAlias =
|
|
63
|
+
// const prevTableAlias = !i? (q1.tableAlias ?? q1.table) : `t${i-1}`;
|
|
64
|
+
// const tableAlias = isLast? targetTableAlias : asName(`t${i}`);
|
|
65
|
+
|
|
66
|
+
const prevTable = getJoinTable(!i? (q1.tableAlias ?? q1.table) : paths[i-1]!.table, i-1, undefined);
|
|
67
|
+
// const tableAlias = isLast? targetTableAlias : asName(path.table);
|
|
68
|
+
const table = getJoinTable(path.table, i, isLast? targetTableAliasRaw : undefined);
|
|
51
69
|
|
|
52
70
|
if(isLast){
|
|
53
71
|
if(q2.where){
|
|
@@ -69,14 +87,14 @@ export const getJoinQuery = (viewHandler: ViewHandler, { q1, q2, depth }: Args):
|
|
|
69
87
|
`SELECT `,
|
|
70
88
|
` /* Join fields + select */`,
|
|
71
89
|
` ${rootSelectItems.map(s => s.query)}`,
|
|
72
|
-
`FROM ${
|
|
90
|
+
`FROM ${table.name} ${table.alias}`,
|
|
73
91
|
...targetQueryExtraQueries
|
|
74
92
|
]
|
|
75
93
|
}
|
|
76
94
|
|
|
77
95
|
return [
|
|
78
|
-
`${joinType} JOIN ${
|
|
79
|
-
`ON ${getJoinOnCondition(path.on,
|
|
96
|
+
`${joinType} JOIN ${table.name} ${table.alias}`,
|
|
97
|
+
`ON ${getJoinOnCondition({ on: path.on, leftAlias: prevTable.alias, rightAlias: table.alias})}`,
|
|
80
98
|
...targetQueryExtraQueries
|
|
81
99
|
]
|
|
82
100
|
});
|
|
@@ -84,19 +102,29 @@ export const getJoinQuery = (viewHandler: ViewHandler, { q1, q2, depth }: Args):
|
|
|
84
102
|
const queryLines = [
|
|
85
103
|
`${joinType} JOIN (`,
|
|
86
104
|
...indentLines(innerQuery, 2),
|
|
87
|
-
`) ${
|
|
88
|
-
`ON ${getJoinOnCondition(
|
|
105
|
+
`) ${targetTableAlias}`,
|
|
106
|
+
`ON ${getJoinOnCondition({
|
|
107
|
+
on: firstJoinTablePath.on,
|
|
108
|
+
leftAlias: asName(q1.tableAlias || q1.table),
|
|
109
|
+
rightAlias: targetTableAlias,
|
|
110
|
+
getRightColName: (col) => getJoinCol(col).alias
|
|
111
|
+
})}`
|
|
89
112
|
];
|
|
90
113
|
|
|
91
114
|
return {
|
|
92
115
|
queryLines,
|
|
93
116
|
limitFieldName,
|
|
94
|
-
targetTableJoinFields,
|
|
117
|
+
targetTableJoinFields: firstJoinTableJoinFields,
|
|
95
118
|
}
|
|
96
119
|
}
|
|
97
120
|
|
|
98
121
|
|
|
99
|
-
|
|
122
|
+
type GetSelectFieldsArgs = {
|
|
123
|
+
q: NewQueryJoin | NewQuery;
|
|
124
|
+
firstJoinTableAlias: string;
|
|
125
|
+
_joinFields: string[];
|
|
126
|
+
}
|
|
127
|
+
const getSelectFields = ({ q, firstJoinTableAlias, _joinFields }: GetSelectFieldsArgs) => {
|
|
100
128
|
const targetTableAlias = (q.tableAlias || q.table);
|
|
101
129
|
const limitFieldName = q.limit? "prostgles_nested_limit" : undefined;
|
|
102
130
|
const requiredJoinFields = Array.from(new Set(_joinFields))
|
|
@@ -115,7 +143,7 @@ const getSelectFields = (q: NewQueryJoin | NewQuery, _joinFields: string[]) => {
|
|
|
115
143
|
getQuery: (tableAlias) => asNameAlias(f, tableAlias),
|
|
116
144
|
selected: false,
|
|
117
145
|
isJoinCol: true,
|
|
118
|
-
query: `${
|
|
146
|
+
query: `${firstJoinTableAlias}.${getJoinCol(f).rootSelect}`,
|
|
119
147
|
})));
|
|
120
148
|
|
|
121
149
|
if(limitFieldName){
|
|
@@ -21,7 +21,14 @@ export function getSelectQuery(
|
|
|
21
21
|
const rootSelect = q.select.filter(s => s.selected).map(s => [s.getQuery(rootTableAlias), " AS ", asName(s.alias)].join(""));
|
|
22
22
|
|
|
23
23
|
const parsedJoins = q.joins?.flatMap(q2 => {
|
|
24
|
-
const parsed = getJoinQuery(
|
|
24
|
+
const parsed = getJoinQuery(
|
|
25
|
+
viewHandler, {
|
|
26
|
+
q1: { ...q, tableAlias: rootTableAlias },
|
|
27
|
+
q2: { ...q2 },
|
|
28
|
+
depth: depth + 1,
|
|
29
|
+
selectParamsGroupBy: shouldGroupBy
|
|
30
|
+
}
|
|
31
|
+
);
|
|
25
32
|
return {
|
|
26
33
|
...q2,
|
|
27
34
|
...parsed
|
|
@@ -22,7 +22,7 @@ export const getTableJoinQuery = ({ path, type, aliasSufix, rootTableAlias, fina
|
|
|
22
22
|
const tableAlias = getTableAlias(table);
|
|
23
23
|
const prevTableAlias = i === 0? rootTableAlias : getTableAlias(path[i-1]!.table);
|
|
24
24
|
|
|
25
|
-
const onCondition = getJoinOnCondition(on, prevTableAlias, tableAlias);
|
|
25
|
+
const onCondition = getJoinOnCondition({ on, leftAlias: prevTableAlias, rightAlias: tableAlias });
|
|
26
26
|
|
|
27
27
|
const isExists = type === "EXISTS"
|
|
28
28
|
const joinType = isExists? "INNER" : type;
|
|
@@ -34,11 +34,11 @@ export const getTableJoinQuery = ({ path, type, aliasSufix, rootTableAlias, fina
|
|
|
34
34
|
* first path joins to target table through inner joins
|
|
35
35
|
*/
|
|
36
36
|
const whereJoinCondition = (isLast && isExists) ?
|
|
37
|
-
`WHERE (${getJoinOnCondition(
|
|
38
|
-
firstPath.on,
|
|
39
|
-
rootTableAlias,
|
|
40
|
-
getTableAlias(firstPath.table)
|
|
41
|
-
)})` : "";
|
|
37
|
+
`WHERE (${getJoinOnCondition({
|
|
38
|
+
on: firstPath.on,
|
|
39
|
+
leftAlias: rootTableAlias,
|
|
40
|
+
rightAlias: getTableAlias(firstPath.table)
|
|
41
|
+
})})` : "";
|
|
42
42
|
|
|
43
43
|
const tableSelect = (isExists && isLast)? [
|
|
44
44
|
`(`,
|
|
@@ -68,8 +68,16 @@ export const getTableJoinQuery = ({ path, type, aliasSufix, rootTableAlias, fina
|
|
|
68
68
|
targetAlias: getTableAlias(path.at(-1)!.table)
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
|
|
71
|
+
|
|
72
|
+
type GetJoinOnConditionArgs = {
|
|
73
|
+
on: Record<string, string>[];
|
|
74
|
+
leftAlias: string;
|
|
75
|
+
rightAlias: string;
|
|
76
|
+
getLeftColName?: (col: string) => string;
|
|
77
|
+
getRightColName?: (col: string) => string;
|
|
78
|
+
}
|
|
79
|
+
export const getJoinOnCondition = ({ on, leftAlias, rightAlias, getLeftColName = asName, getRightColName = asName }: GetJoinOnConditionArgs ) => {
|
|
72
80
|
return on.map(constraint => Object.entries(constraint).map(([leftCol, rightCol]) => {
|
|
73
|
-
return `${leftAlias}.${leftCol} = ${rightAlias}.${getRightColName(rightCol)}`;
|
|
81
|
+
return `${leftAlias}.${getLeftColName(leftCol)} = ${rightAlias}.${getRightColName(rightCol)}`;
|
|
74
82
|
}).join(" AND ")).join(" OR ")
|
|
75
83
|
}
|
package/package.json
CHANGED
package/tests/client/PID.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
74758
|