prostgles-server 4.1.47 → 4.1.48

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.
@@ -18,7 +18,7 @@ export declare const getJoinCol: (colName: string) => {
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;AACD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,gBAAiB,WAAW,qBAAqB,IAAI;gBAAiB,MAAM,EAAE;2BAAyB,MAAM,EAAE;;CA4DvI,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)("prgl_join_col_" + colName);
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
27
  Returns join query:
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 targetTableAlias = (q2.tableAlias || q2.table);
34
- const targetTableJoinFields = paths.at(-1).on.flatMap(condObj => Object.entries(condObj).map(([source, target]) => target));
35
- const { rootSelectItems, limitFieldName } = getSelectFields(q2, targetTableJoinFields);
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 ? (q1.tableAlias ?? q1.table) : `t${i - 1}`;
41
- const tableAlias = (0, prostgles_types_1.asName)(isLast ? targetTableAlias : `t${i}`);
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 ${(0, prostgles_types_1.asName)(path.table)} ${tableAlias}`,
75
+ `FROM ${table.name} ${table.alias}`,
61
76
  ...targetQueryExtraQueries
62
77
  ];
63
78
  }
64
79
  return [
65
- `${joinType} JOIN ${(0, prostgles_types_1.asName)(path.table)} ${tableAlias}`,
66
- `ON ${(0, getTableJoinQuery_1.getJoinOnCondition)(path.on, (0, prostgles_types_1.asName)(prevTableAlias), tableAlias)}`,
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
- `) ${(0, prostgles_types_1.asName)(targetTableAlias)}`,
74
- `ON ${(0, getTableJoinQuery_1.getJoinOnCondition)(paths.at(-1).on, (0, prostgles_types_1.asName)(q1.tableAlias || q1.table), (0, prostgles_types_1.asName)(targetTableAlias), (col) => (0, exports.getJoinCol)(col).alias)}`
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: `${(0, prostgles_types_1.asName)(targetTableAlias)}.${(0, exports.getJoinCol)(f).rootSelect}`,
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":"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"}
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,CA+CR;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"}
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, { q1: { ...q, tableAlias: rootTableAlias }, q2, depth: depth + 1, selectParamsGroupBy: shouldGroupBy });
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":"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"}
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,EACzB,WAAW,EAAE;YACX,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE;YACxC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;YACb,KAAK,EAAE,KAAK,GAAG,CAAC;YAChB,mBAAmB,EAAE,aAAa;SACnC,CACF,CAAC;QACF,OAAO;YACL,GAAG,EAAE;YACL,GAAG,MAAM;SACV,CAAA;IACH,CAAC,CAAC,IAAI,EAAE,CAAC;IAET,MAAM,KAAK,GAAG;QACV,UAAU,UAAU,CAAC,MAAM,CACzB,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAA;YAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,0BAAW,EAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;YACrG,gEAAgE;YAChE,MAAM,aAAa,GAAG,yBAAyB,cAAc,QAAQ,CAAC;YACtE;;;iBAGK;YACL,MAAM,6BAA6B,GAAG,IAAI,CAAC,qBAAqB;iBAC7D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,IAAI,IAAA,yBAAU,EAAC,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC;iBAC3D,MAAM,CAAC,IAAI,CAAC,cAAc,CAAA,CAAC,CAAC,CAAC,GAAG,IAAA,0BAAW,EAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBACrG,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA,CAAC,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,0BAAW,EAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YAC5H,OAAO,CAAC,sBAAsB,aAAa,KAAK,aAAa,mBAAmB,6BAA6B,qBAAqB,SAAS,EAAE,CAAC,CAAC;QACjJ,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;QACb,SAAS;QACT,aAAa;QACb,UAAU,CAAC,CAAC,KAAK,EAAE;QACnB,KAAK,CAAC,CAAC,KAAK,EAAE;QACd,KAAK,cAAc,EAAE;QACrB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QACzC,GAAG,IAAA,sBAAc,EAAC,CAAC,EAAE,mBAAmB,CAAC;QACzC,GAAG,IAAA,wBAAW,EAAC,CAAC,CAAC,YAAY,CAAC;QAC9B,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,GAAG,CAAC,CAAC,CAAC,MAAM,CAAA,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC;IAEF,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AA3DD,wCA2DC;AAED,MAAM,UAAU,GAAG,CAAC,cAAsB,EAAE,GAAW,EAAE,SAAS,GAAG,MAAM,EAAU,EAAE,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAC1I,MAAM,WAAW,GAAG,CAAC,MAAqC,EAAG,cAAc,GAAG,CAAC,EAAC,SAAS,GAAG,GAAG,EAAY,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,GAAa,EAAE,SAAS,CAAC,CAAC,CAAC;AAA/L,QAAA,WAAW,eAAoL;AAC5M,MAAM,mBAAmB,GAAG,CAAC,MAAqC,EAAE,cAAc,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,SAAS,GAAG,GAAG,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/L,MAAM,aAAa,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AAC7F,MAAM,mBAAmB,GAAG,CAAC,CAAW,EAAE,EAAE,CAAC,IAAA,wBAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAAhE,QAAA,mBAAmB,uBAA6C;AAGtE,MAAM,cAAc,GAAG,CAAC,CAAW,EAAE,mBAA6B,EAAE,EAAE;IAE3E,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;IAE7E,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE;QAEvF,qDAAqD;QACrD,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,YAAY,IAAI,QAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBAC/F,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;aACxC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,CAAA,CAAC,CAAC,GAAG,CAAC,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,2BAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KAC9J;IAED,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAnBY,QAAA,cAAc,kBAmB1B"}
@@ -10,6 +10,13 @@ export declare const getTableJoinQuery: ({ path, type, aliasSufix, rootTableAlia
10
10
  targetAlias: string;
11
11
  query: string;
12
12
  };
13
- export declare const getJoinOnCondition: (on: Record<string, string>[], leftAlias: string, rightAlias: string, getRightColName?: (col: string) => string) => string;
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;AACD,eAAO,MAAM,kBAAkB,OAAQ,OAAO,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,MAAM,cAAc,MAAM,0BAAyB,MAAM,KAAK,MAAM,WAI/I,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)(firstPath.on, rootTableAlias, getTableAlias(firstPath.table))})` : "";
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 = (col) => col) => {
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":"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"}
1
+ {"version":3,"file":"getTableJoinQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/ViewHandler/getTableJoinQuery.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("prgl_join_col_" + colName);
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
34
  Returns join query:
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 targetTableAlias = (q2.tableAlias || q2.table);
47
+ const targetTableAliasRaw = q2.tableAlias || q2.table;
48
+ const targetTableAlias = asName(targetTableAliasRaw);
40
49
 
41
- const targetTableJoinFields = paths.at(-1)!.on.flatMap(condObj => Object.entries(condObj).map(([source, target]) => target));
42
- const { rootSelectItems, limitFieldName } = getSelectFields(q2, targetTableJoinFields);
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 = asName(isLast? targetTableAlias : `t${i}`);
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 ${asName(path.table)} ${tableAlias}`,
90
+ `FROM ${table.name} ${table.alias}`,
73
91
  ...targetQueryExtraQueries
74
92
  ]
75
93
  }
76
94
 
77
95
  return [
78
- `${joinType} JOIN ${asName(path.table)} ${tableAlias}`,
79
- `ON ${getJoinOnCondition(path.on, asName(prevTableAlias), tableAlias)}`,
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
- `) ${asName(targetTableAlias)}`,
88
- `ON ${getJoinOnCondition(paths.at(-1)!.on, asName(q1.tableAlias || q1.table), asName(targetTableAlias), (col) => getJoinCol(col).alias)}`
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
- const getSelectFields = (q: NewQueryJoin | NewQuery, _joinFields: string[]) => {
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: `${asName(targetTableAlias)}.${getJoinCol(f).rootSelect}`,
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(viewHandler, { q1: { ...q, tableAlias: rootTableAlias }, q2, depth: depth + 1, selectParamsGroupBy: shouldGroupBy });
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
- export const getJoinOnCondition = (on: Record<string, string>[], leftAlias: string, rightAlias: string, getRightColName: (col: string) => string = (col) => col) => {
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.1.47",
3
+ "version": "4.1.48",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1 +1 @@
1
- 4281
1
+ 33662
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "../..": {
23
23
  "name": "prostgles-server",
24
- "version": "4.1.46",
24
+ "version": "4.1.47",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
27
  "@types/express": "^4.17.13",