rawsql-ts 0.10.9-beta → 0.11.1-beta

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.
Files changed (104) hide show
  1. package/README.md +175 -47
  2. package/dist/esm/index.js +6 -0
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/index.min.js +16 -14
  5. package/dist/esm/index.min.js.map +4 -4
  6. package/dist/esm/src/index.js +6 -0
  7. package/dist/esm/src/index.js.map +1 -1
  8. package/dist/esm/src/tokenReaders/OperatorTokenReader.js +4 -0
  9. package/dist/esm/src/tokenReaders/OperatorTokenReader.js.map +1 -1
  10. package/dist/esm/src/transformers/CTEDependencyTracer.js +249 -0
  11. package/dist/esm/src/transformers/CTEDependencyTracer.js.map +1 -0
  12. package/dist/esm/src/transformers/DynamicQueryBuilder.js +155 -0
  13. package/dist/esm/src/transformers/DynamicQueryBuilder.js.map +1 -0
  14. package/dist/esm/src/transformers/JsonMappingUnifier.js +217 -0
  15. package/dist/esm/src/transformers/JsonMappingUnifier.js.map +1 -0
  16. package/dist/esm/src/transformers/ModelDrivenJsonMapping.js +103 -0
  17. package/dist/esm/src/transformers/ModelDrivenJsonMapping.js.map +1 -0
  18. package/dist/esm/src/transformers/PostgresArrayEntityCteBuilder.js +204 -16
  19. package/dist/esm/src/transformers/PostgresArrayEntityCteBuilder.js.map +1 -1
  20. package/dist/esm/src/transformers/PostgresJsonQueryBuilder.js +26 -21
  21. package/dist/esm/src/transformers/PostgresJsonQueryBuilder.js.map +1 -1
  22. package/dist/esm/src/transformers/PostgresObjectEntityCteBuilder.js +8 -5
  23. package/dist/esm/src/transformers/PostgresObjectEntityCteBuilder.js.map +1 -1
  24. package/dist/esm/src/transformers/SelectableColumnCollector.js +17 -5
  25. package/dist/esm/src/transformers/SelectableColumnCollector.js.map +1 -1
  26. package/dist/esm/src/transformers/SqlFormatter.js +1 -2
  27. package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
  28. package/dist/esm/src/transformers/TypeTransformationPostProcessor.js +342 -0
  29. package/dist/esm/src/transformers/TypeTransformationPostProcessor.js.map +1 -0
  30. package/dist/esm/src/transformers/UnifiedJsonMapping.js +57 -0
  31. package/dist/esm/src/transformers/UnifiedJsonMapping.js.map +1 -0
  32. package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js +8 -1
  33. package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
  34. package/dist/esm/src/utils/JsonSchemaValidator.js +211 -0
  35. package/dist/esm/src/utils/JsonSchemaValidator.js.map +1 -0
  36. package/dist/esm/src/utils/OperatorPrecedence.js +3 -1
  37. package/dist/esm/src/utils/OperatorPrecedence.js.map +1 -1
  38. package/dist/esm/src/utils/SchemaManager.js +0 -1
  39. package/dist/esm/src/utils/SchemaManager.js.map +1 -1
  40. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  41. package/dist/esm/types/src/index.d.ts +6 -0
  42. package/dist/esm/types/src/transformers/CTEDependencyTracer.d.ts +58 -0
  43. package/dist/esm/types/src/transformers/DynamicQueryBuilder.d.ts +108 -0
  44. package/dist/esm/types/src/transformers/JsonMappingUnifier.d.ts +95 -0
  45. package/dist/esm/types/src/transformers/ModelDrivenJsonMapping.d.ts +62 -0
  46. package/dist/esm/types/src/transformers/PostgresArrayEntityCteBuilder.d.ts +80 -1
  47. package/dist/esm/types/src/transformers/PostgresJsonQueryBuilder.d.ts +3 -2
  48. package/dist/esm/types/src/transformers/SelectableColumnCollector.d.ts +14 -3
  49. package/dist/esm/types/src/transformers/SqlFormatter.d.ts +2 -3
  50. package/dist/esm/types/src/transformers/TypeTransformationPostProcessor.d.ts +108 -0
  51. package/dist/esm/types/src/transformers/UnifiedJsonMapping.d.ts +53 -0
  52. package/dist/esm/types/src/transformers/UpstreamSelectQueryFinder.d.ts +5 -1
  53. package/dist/esm/types/src/utils/JsonSchemaValidator.d.ts +81 -0
  54. package/dist/index.min.js +16 -14
  55. package/dist/index.min.js.map +4 -4
  56. package/dist/src/index.d.ts +6 -0
  57. package/dist/src/index.js +14 -0
  58. package/dist/src/index.js.map +1 -1
  59. package/dist/src/tokenReaders/OperatorTokenReader.js +4 -0
  60. package/dist/src/tokenReaders/OperatorTokenReader.js.map +1 -1
  61. package/dist/src/transformers/CTEDependencyTracer.d.ts +58 -0
  62. package/dist/src/transformers/CTEDependencyTracer.js +253 -0
  63. package/dist/src/transformers/CTEDependencyTracer.js.map +1 -0
  64. package/dist/src/transformers/DynamicQueryBuilder.d.ts +108 -0
  65. package/dist/src/transformers/DynamicQueryBuilder.js +159 -0
  66. package/dist/src/transformers/DynamicQueryBuilder.js.map +1 -0
  67. package/dist/src/transformers/JsonMappingUnifier.d.ts +95 -0
  68. package/dist/src/transformers/JsonMappingUnifier.js +226 -0
  69. package/dist/src/transformers/JsonMappingUnifier.js.map +1 -0
  70. package/dist/src/transformers/ModelDrivenJsonMapping.d.ts +62 -0
  71. package/dist/src/transformers/ModelDrivenJsonMapping.js +110 -0
  72. package/dist/src/transformers/ModelDrivenJsonMapping.js.map +1 -0
  73. package/dist/src/transformers/PostgresArrayEntityCteBuilder.d.ts +80 -1
  74. package/dist/src/transformers/PostgresArrayEntityCteBuilder.js +204 -16
  75. package/dist/src/transformers/PostgresArrayEntityCteBuilder.js.map +1 -1
  76. package/dist/src/transformers/PostgresJsonQueryBuilder.d.ts +3 -2
  77. package/dist/src/transformers/PostgresJsonQueryBuilder.js +26 -21
  78. package/dist/src/transformers/PostgresJsonQueryBuilder.js.map +1 -1
  79. package/dist/src/transformers/PostgresObjectEntityCteBuilder.js +8 -5
  80. package/dist/src/transformers/PostgresObjectEntityCteBuilder.js.map +1 -1
  81. package/dist/src/transformers/SelectableColumnCollector.d.ts +14 -3
  82. package/dist/src/transformers/SelectableColumnCollector.js +17 -5
  83. package/dist/src/transformers/SelectableColumnCollector.js.map +1 -1
  84. package/dist/src/transformers/SqlFormatter.d.ts +2 -3
  85. package/dist/src/transformers/SqlFormatter.js +1 -2
  86. package/dist/src/transformers/SqlFormatter.js.map +1 -1
  87. package/dist/src/transformers/TypeTransformationPostProcessor.d.ts +108 -0
  88. package/dist/src/transformers/TypeTransformationPostProcessor.js +351 -0
  89. package/dist/src/transformers/TypeTransformationPostProcessor.js.map +1 -0
  90. package/dist/src/transformers/UnifiedJsonMapping.d.ts +53 -0
  91. package/dist/src/transformers/UnifiedJsonMapping.js +60 -0
  92. package/dist/src/transformers/UnifiedJsonMapping.js.map +1 -0
  93. package/dist/src/transformers/UpstreamSelectQueryFinder.d.ts +5 -1
  94. package/dist/src/transformers/UpstreamSelectQueryFinder.js +8 -1
  95. package/dist/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
  96. package/dist/src/utils/JsonSchemaValidator.d.ts +81 -0
  97. package/dist/src/utils/JsonSchemaValidator.js +215 -0
  98. package/dist/src/utils/JsonSchemaValidator.js.map +1 -0
  99. package/dist/src/utils/OperatorPrecedence.js +3 -1
  100. package/dist/src/utils/OperatorPrecedence.js.map +1 -1
  101. package/dist/src/utils/SchemaManager.js +0 -1
  102. package/dist/src/utils/SchemaManager.js.map +1 -1
  103. package/dist/tsconfig.tsbuildinfo +1 -1
  104. package/package.json +8 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelDrivenJsonMapping.js","sourceRoot":"","sources":["../../../src/transformers/ModelDrivenJsonMapping.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA2DH,8DAsFC;AAKD,gEAqBC;AApHD;;;GAGG;AACH,SAAgB,yBAAyB,CAAC,YAAoC;IAI1E,MAAM,qBAAqB,GAAa,EAAE,CAAC;IAC3C,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,6BAA6B;IAC7B,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,CAAC;IAC7D,mEAAmE;IACnE,MAAM,gBAAgB,GAAG,CACrB,SAA0B,EAC1B,WAA0B,IAAI,EAIhC,EAAE;QACA,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,MAAM,cAAc,GAAU,EAAE,CAAC;QAAC,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5F,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7B,mDAAmD;gBACnD,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;YAChC,CAAC;iBAAM,IAAI,QAAQ,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC;gBACjJ,qFAAqF;gBACrF,MAAM,WAAW,GAAG,MAAsB,CAAC;gBAC3C,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;oBAC7D,OAAO,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;oBACxC,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAChC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBACnD,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,IAAI,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC;gBAC7I,iFAAiF;gBACjF,MAAM,WAAW,GAAG,MAAsB,CAAC;gBAC3C,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;oBAC3D,OAAO,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC;oBACtC,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAChC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACjD,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,IAAI,MAAM,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;gBACnF,oCAAoC;gBACpC,MAAM,eAAe,GAAG,MAAyB,CAAC;gBAClD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;gBAEpC,MAAM,eAAe,GAAG,gBAAgB,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAE9E,cAAc,CAAC,IAAI,CAAC;oBAChB,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,0BAA0B;oBACxF,QAAQ,EAAE,QAAQ,IAAI,MAAM;oBAC5B,YAAY,EAAE,SAAS;oBACvB,gBAAgB,EAAE,eAAe,CAAC,IAAI;oBACtC,OAAO,EAAE,eAAe,CAAC,OAAO;iBACnC,CAAC,CAAC;gBAEH,yCAAyC;gBACzC,cAAc,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACjE,GAAG,MAAM;oBACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ;iBACpE,CAAC,CAAC,CAAC,CAAC;YACT,CAAC;QACL,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IACvC,CAAC,CAAC;IAEF,6BAA6B;IAC7B,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAI,oCAAoC;IACnG,MAAM,WAAW,GAAgB;QAC7B,QAAQ,EAAE,MAAM,EAAE,oBAAoB;QACtC,UAAU,EAAE;YACR,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,SAAS,CAAC,OAAO;SAC7B;QACD,cAAc,EAAE,SAAS,CAAC,cAAc;KAC3C,CAAC;IAEF,0CAA0C;IACzC,WAAmB,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;IAEtD,OAAO;QACH,WAAW;QACX,cAAc,EAAE,EAAE,qBAAqB,EAAE;KAC5C,CAAC;AACN,CAAC;AAED;;GAEG;AACH,SAAgB,0BAA0B,CAAC,OAA+B;IACtE,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,oBAAoB;IACpB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -90,8 +90,87 @@ export declare class PostgresArrayEntityCteBuilder {
90
90
  * @param entity The array entity being processed
91
91
  * @param nestedEntities All nested entities from the mapping
92
92
  * @param allEntities Map of all entities (not used in current implementation)
93
- * @param useJsonb Whether to use JSONB functions
94
93
  * @returns Object containing the JSON aggregation function
95
94
  */
96
95
  private buildAggregationDetailsForArrayEntity;
96
+ /**
97
+ * Collects array entity columns organized by depth for the GROUP BY exclusion strategy.
98
+ *
99
+ * This method creates a mapping from depth levels to sets of column names that belong to
100
+ * array entities at each depth. This is used to determine which columns should be excluded
101
+ * from GROUP BY clauses when performing array aggregation at specific depths.
102
+ *
103
+ * @param mapping The JSON mapping configuration containing all entities
104
+ * @param currentDepth The current aggregation depth being processed
105
+ * @returns A map where keys are depth levels and values are sets of column names
106
+ */
107
+ private collectArrayEntityColumnsByDepth;
108
+ /**
109
+ * Calculates the depth of an entity in the hierarchy by traversing up to the root.
110
+ *
111
+ * @param entity The entity to calculate depth for
112
+ * @param mapping The JSON mapping containing all entities
113
+ * @returns The depth level (0 for root level, 1 for first level, etc.)
114
+ */
115
+ private calculateEntityDepth;
116
+ /**
117
+ * Adds all columns from an entity to the specified depth set.
118
+ *
119
+ * @param entity The entity whose columns should be added
120
+ * @param depth The depth level to add columns to
121
+ * @param arrayEntitiesByDepth The map to update
122
+ */
123
+ private addEntityColumnsToDepthSet;
124
+ /**
125
+ * Recursively collects columns from all descendant entities under a parent entity.
126
+ *
127
+ * This method ensures that all nested entities (at any depth) under an array entity
128
+ * have their columns properly categorized by the array entity's depth level.
129
+ *
130
+ * @param parentEntityId The ID of the parent entity
131
+ * @param targetDepth The depth level to assign collected columns to
132
+ * @param mapping The JSON mapping containing all entities
133
+ * @param arrayEntitiesByDepth The map to update with collected columns
134
+ */
135
+ private collectDescendantColumns;
136
+ /**
137
+ * Processes SELECT variables to determine which should be included in GROUP BY clauses.
138
+ *
139
+ * This method implements the core logic for deciding which columns from previous CTEs
140
+ * should be included in the GROUP BY clause when performing array aggregation. It handles
141
+ * special cases for JSON columns and applies depth-based filtering to prevent over-grouping.
142
+ *
143
+ * @param prevSelects SELECT variables from the previous CTE
144
+ * @param arrayColumns Columns that are being aggregated (should be excluded from GROUP BY)
145
+ * @param arrayEntitiesByDepth Map of depth levels to their column sets
146
+ * @param currentDepth The current aggregation depth being processed
147
+ * @param selectItems Output array for SELECT items
148
+ * @param groupByItems Output array for GROUP BY items
149
+ */
150
+ private processSelectVariablesForGroupBy;
151
+ /**
152
+ * Determines whether a column should be included in the GROUP BY clause.
153
+ *
154
+ * This method applies depth-based filtering and special handling for JSON columns
155
+ * to prevent over-grouping during array aggregation. It implements heuristics for
156
+ * excluding columns that belong to nested entities within array contexts.
157
+ *
158
+ * @param columnName The name of the column to evaluate
159
+ * @param arrayEntitiesByDepth Map of depth levels to their column sets
160
+ * @param currentDepth The current aggregation depth
161
+ * @returns True if the column should be included in GROUP BY, false otherwise
162
+ */
163
+ private shouldIncludeColumnInGroupBy;
164
+ /**
165
+ * Applies heuristics to determine if an entity JSON column should be included in GROUP BY.
166
+ *
167
+ * This method uses entity numbering patterns to identify deeply nested entities
168
+ * that should be excluded from GROUP BY when processing array aggregations.
169
+ * This is a simplified heuristic approach that works for current use cases.
170
+ *
171
+ * @param columnName The JSON column name (expected format: entity_N_json)
172
+ * @param currentDepth The current aggregation depth
173
+ * @returns True if the JSON column should be included, false otherwise
174
+ */
175
+ private shouldIncludeJsonColumn;
97
176
  }
@@ -150,29 +150,48 @@ class PostgresArrayEntityCteBuilder {
150
150
  buildDepthCte(infos, currentCteAlias, currentCtes, depth, mapping) {
151
151
  var _a;
152
152
  // Collect columns that will be compressed into arrays
153
+ // This includes both direct columns and columns from nested entities within the array
153
154
  const arrayColumns = new Set();
154
155
  infos.forEach(info => {
156
+ // Add direct columns from the array entity
155
157
  Object.values(info.entity.columns).forEach(col => arrayColumns.add(col));
158
+ // Also add columns from all nested entities within this array entity
159
+ const collectNestedColumns = (parentEntityId) => {
160
+ mapping.nestedEntities
161
+ .filter(nestedEntity => nestedEntity.parentId === parentEntityId)
162
+ .forEach(nestedEntity => {
163
+ Object.values(nestedEntity.columns).forEach(column => {
164
+ const columnName = typeof column === 'string' ? column : column.column;
165
+ arrayColumns.add(columnName);
166
+ });
167
+ // Recursively collect from deeper nested entities
168
+ collectNestedColumns(nestedEntity.id);
169
+ });
170
+ };
171
+ collectNestedColumns(info.entity.id);
156
172
  });
157
173
  // Get columns from previous CTE
158
174
  const prevCte = (_a = currentCtes.find(c => c.aliasExpression.table.name === currentCteAlias)) === null || _a === void 0 ? void 0 : _a.query;
159
175
  if (!prevCte) {
160
176
  throw new Error(`CTE not found: ${currentCteAlias}`);
161
177
  }
162
- const prevSelects = new SelectValueCollector_1.SelectValueCollector(null, currentCtes).collect(prevCte);
163
- // Build SELECT items: columns that are NOT being compressed (for GROUP BY)
178
+ const prevSelects = new SelectValueCollector_1.SelectValueCollector(null, currentCtes).collect(prevCte); // Build SELECT items: columns that are NOT being compressed (for GROUP BY)
164
179
  const groupByItems = [];
165
180
  const selectItems = [];
166
- prevSelects.forEach(sv => {
167
- if (!arrayColumns.has(sv.name)) {
168
- selectItems.push(new Clause_1.SelectItem(new ValueComponent_1.ColumnReference(null, new ValueComponent_1.IdentifierString(sv.name)), sv.name));
169
- groupByItems.push(new ValueComponent_1.ColumnReference(null, new ValueComponent_1.IdentifierString(sv.name)));
170
- }
181
+ // Get columns from the current level's array entities that will be aggregated
182
+ // These should be included in GROUP BY since they're being processed at this level
183
+ const currentLevelArrayColumns = new Set();
184
+ infos.forEach(info => {
185
+ Object.values(info.entity.columns).forEach(col => currentLevelArrayColumns.add(col));
171
186
  });
187
+ // Collect array entity columns organized by depth for GROUP BY exclusion strategy
188
+ const arrayEntityColumns = this.collectArrayEntityColumnsByDepth(mapping, depth);
189
+ // Process existing SELECT variables to determine which should be included in GROUP BY
190
+ this.processSelectVariablesForGroupBy(prevSelects, arrayColumns, arrayEntityColumns, depth, selectItems, groupByItems);
172
191
  // Add JSON aggregation columns for each array entity at this depth
173
192
  for (const info of infos) {
174
- const agg = this.buildAggregationDetailsForArrayEntity(info.entity, mapping.nestedEntities, new Map(), // allEntities - not needed for array aggregation
175
- mapping.useJsonb);
193
+ const agg = this.buildAggregationDetailsForArrayEntity(info.entity, mapping.nestedEntities, new Map() // allEntities - not needed for array aggregation
194
+ );
176
195
  selectItems.push(new Clause_1.SelectItem(agg.jsonAgg, info.entity.propertyName));
177
196
  }
178
197
  // Create the new CTE
@@ -195,12 +214,11 @@ class PostgresArrayEntityCteBuilder {
195
214
  * @param entity The array entity being processed
196
215
  * @param nestedEntities All nested entities from the mapping
197
216
  * @param allEntities Map of all entities (not used in current implementation)
198
- * @param useJsonb Whether to use JSONB functions
199
217
  * @returns Object containing the JSON aggregation function
200
218
  */
201
- buildAggregationDetailsForArrayEntity(entity, nestedEntities, allEntities, useJsonb = false) {
202
- // Build JSON object for array elements
203
- const jsonBuildFunction = useJsonb ? "jsonb_build_object" : "json_build_object";
219
+ buildAggregationDetailsForArrayEntity(entity, nestedEntities, allEntities) {
220
+ // Build JSON object for array elements using JSONB functions
221
+ const jsonBuildFunction = "jsonb_build_object";
204
222
  const args = [];
205
223
  // Add the entity's own columns
206
224
  Object.entries(entity.columns).forEach(([jsonKey, sqlColumn]) => {
@@ -213,7 +231,8 @@ class PostgresArrayEntityCteBuilder {
213
231
  args.push(new ValueComponent_1.LiteralValue(childEntity.propertyName));
214
232
  if (childEntity.relationshipType === "object") {
215
233
  // For object relationships, use pre-computed JSON column
216
- const jsonColumnName = `${childEntity.name.toLowerCase()}_json`;
234
+ // Use entity ID instead of name to avoid naming conflicts
235
+ const jsonColumnName = `${childEntity.id.toLowerCase()}_json`;
217
236
  args.push(new ValueComponent_1.ColumnReference(null, new ValueComponent_1.IdentifierString(jsonColumnName)));
218
237
  }
219
238
  else if (childEntity.relationshipType === "array") {
@@ -223,11 +242,180 @@ class PostgresArrayEntityCteBuilder {
223
242
  });
224
243
  // Create JSON object
225
244
  const jsonObject = new ValueComponent_1.FunctionCall(null, new ValueComponent_1.RawString(jsonBuildFunction), new ValueComponent_1.ValueList(args), null);
226
- // Create JSON aggregation
227
- const jsonAggFunction = useJsonb ? "jsonb_agg" : "json_agg";
245
+ // Create JSON aggregation using JSONB with NULL filtering
246
+ // Use FILTER clause to exclude rows where primary key is NULL (no actual data)
247
+ const jsonAggFunction = "jsonb_agg";
248
+ // Find the primary column (typically the first column) to use for NULL filtering
249
+ const primaryColumn = Object.values(entity.columns)[0];
250
+ // For now, create standard jsonb_agg and handle NULL filtering in post-processing
251
+ // TODO: Implement proper FILTER clause support in SQL AST
228
252
  const jsonAgg = new ValueComponent_1.FunctionCall(null, new ValueComponent_1.RawString(jsonAggFunction), new ValueComponent_1.ValueList([jsonObject]), null);
229
253
  return { jsonAgg };
230
254
  }
255
+ /**
256
+ * Collects array entity columns organized by depth for the GROUP BY exclusion strategy.
257
+ *
258
+ * This method creates a mapping from depth levels to sets of column names that belong to
259
+ * array entities at each depth. This is used to determine which columns should be excluded
260
+ * from GROUP BY clauses when performing array aggregation at specific depths.
261
+ *
262
+ * @param mapping The JSON mapping configuration containing all entities
263
+ * @param currentDepth The current aggregation depth being processed
264
+ * @returns A map where keys are depth levels and values are sets of column names
265
+ */
266
+ collectArrayEntityColumnsByDepth(mapping, currentDepth) {
267
+ const arrayEntitiesByDepth = new Map(); // Initialize depth maps for current and deeper levels
268
+ // Use a reasonable maximum depth limit to avoid infinite loops
269
+ const maxDepth = Math.max(currentDepth + 3, 5); // Allow up to 3 additional levels or minimum 5 levels
270
+ for (let d = currentDepth; d <= maxDepth; d++) {
271
+ arrayEntitiesByDepth.set(d, new Set());
272
+ }
273
+ // Process all array entities to collect their columns by depth
274
+ mapping.nestedEntities
275
+ .filter(entity => entity.relationshipType === 'array')
276
+ .forEach(entity => {
277
+ // Calculate entity depth in the hierarchy
278
+ const entityDepth = this.calculateEntityDepth(entity, mapping);
279
+ if (!arrayEntitiesByDepth.has(entityDepth)) {
280
+ arrayEntitiesByDepth.set(entityDepth, new Set());
281
+ }
282
+ // Add direct columns from the array entity
283
+ this.addEntityColumnsToDepthSet(entity, entityDepth, arrayEntitiesByDepth);
284
+ // Collect columns from all descendant entities recursively
285
+ this.collectDescendantColumns(entity.id, entityDepth, mapping, arrayEntitiesByDepth);
286
+ });
287
+ return arrayEntitiesByDepth;
288
+ }
289
+ /**
290
+ * Calculates the depth of an entity in the hierarchy by traversing up to the root.
291
+ *
292
+ * @param entity The entity to calculate depth for
293
+ * @param mapping The JSON mapping containing all entities
294
+ * @returns The depth level (0 for root level, 1 for first level, etc.)
295
+ */
296
+ calculateEntityDepth(entity, mapping) {
297
+ let entityDepth = 0;
298
+ let currentEntity = entity;
299
+ while (currentEntity.parentId && currentEntity.parentId !== mapping.rootEntity.id) {
300
+ entityDepth++;
301
+ currentEntity = mapping.nestedEntities.find(e => e.id === currentEntity.parentId) || currentEntity;
302
+ }
303
+ return entityDepth;
304
+ }
305
+ /**
306
+ * Adds all columns from an entity to the specified depth set.
307
+ *
308
+ * @param entity The entity whose columns should be added
309
+ * @param depth The depth level to add columns to
310
+ * @param arrayEntitiesByDepth The map to update
311
+ */
312
+ addEntityColumnsToDepthSet(entity, depth, arrayEntitiesByDepth) {
313
+ Object.values(entity.columns).forEach(column => {
314
+ const columnName = typeof column === 'string' ? column : column.column;
315
+ arrayEntitiesByDepth.get(depth).add(columnName);
316
+ });
317
+ }
318
+ /**
319
+ * Recursively collects columns from all descendant entities under a parent entity.
320
+ *
321
+ * This method ensures that all nested entities (at any depth) under an array entity
322
+ * have their columns properly categorized by the array entity's depth level.
323
+ *
324
+ * @param parentEntityId The ID of the parent entity
325
+ * @param targetDepth The depth level to assign collected columns to
326
+ * @param mapping The JSON mapping containing all entities
327
+ * @param arrayEntitiesByDepth The map to update with collected columns
328
+ */
329
+ collectDescendantColumns(parentEntityId, targetDepth, mapping, arrayEntitiesByDepth) {
330
+ mapping.nestedEntities
331
+ .filter(nestedEntity => nestedEntity.parentId === parentEntityId)
332
+ .forEach(nestedEntity => {
333
+ // Add all columns from this descendant to the target depth
334
+ this.addEntityColumnsToDepthSet(nestedEntity, targetDepth, arrayEntitiesByDepth);
335
+ // Recursively collect from deeper nested entities
336
+ this.collectDescendantColumns(nestedEntity.id, targetDepth, mapping, arrayEntitiesByDepth);
337
+ });
338
+ }
339
+ /**
340
+ * Processes SELECT variables to determine which should be included in GROUP BY clauses.
341
+ *
342
+ * This method implements the core logic for deciding which columns from previous CTEs
343
+ * should be included in the GROUP BY clause when performing array aggregation. It handles
344
+ * special cases for JSON columns and applies depth-based filtering to prevent over-grouping.
345
+ *
346
+ * @param prevSelects SELECT variables from the previous CTE
347
+ * @param arrayColumns Columns that are being aggregated (should be excluded from GROUP BY)
348
+ * @param arrayEntitiesByDepth Map of depth levels to their column sets
349
+ * @param currentDepth The current aggregation depth being processed
350
+ * @param selectItems Output array for SELECT items
351
+ * @param groupByItems Output array for GROUP BY items
352
+ */
353
+ processSelectVariablesForGroupBy(prevSelects, arrayColumns, arrayEntitiesByDepth, currentDepth, selectItems, groupByItems) {
354
+ prevSelects.forEach(sv => {
355
+ if (!arrayColumns.has(sv.name)) {
356
+ const shouldInclude = this.shouldIncludeColumnInGroupBy(sv.name, arrayEntitiesByDepth, currentDepth);
357
+ if (shouldInclude) {
358
+ selectItems.push(new Clause_1.SelectItem(new ValueComponent_1.ColumnReference(null, new ValueComponent_1.IdentifierString(sv.name)), sv.name));
359
+ groupByItems.push(new ValueComponent_1.ColumnReference(null, new ValueComponent_1.IdentifierString(sv.name)));
360
+ }
361
+ }
362
+ });
363
+ }
364
+ /**
365
+ * Determines whether a column should be included in the GROUP BY clause.
366
+ *
367
+ * This method applies depth-based filtering and special handling for JSON columns
368
+ * to prevent over-grouping during array aggregation. It implements heuristics for
369
+ * excluding columns that belong to nested entities within array contexts.
370
+ *
371
+ * @param columnName The name of the column to evaluate
372
+ * @param arrayEntitiesByDepth Map of depth levels to their column sets
373
+ * @param currentDepth The current aggregation depth
374
+ * @returns True if the column should be included in GROUP BY, false otherwise
375
+ */
376
+ shouldIncludeColumnInGroupBy(columnName, arrayEntitiesByDepth, currentDepth) {
377
+ const isJsonColumn = columnName.endsWith('_json');
378
+ let shouldInclude = true;
379
+ // Check if this column belongs to array entities at current depth or deeper
380
+ // These columns are being aggregated and should not be in GROUP BY
381
+ for (const [entityDepth, columns] of arrayEntitiesByDepth.entries()) {
382
+ if (entityDepth >= currentDepth && columns.has(columnName)) {
383
+ shouldInclude = false;
384
+ break;
385
+ }
386
+ }
387
+ // Special handling for JSON columns to prevent over-grouping
388
+ if (isJsonColumn && columnName.startsWith('entity_')) {
389
+ shouldInclude = this.shouldIncludeJsonColumn(columnName, currentDepth);
390
+ }
391
+ // Always include non-entity JSON columns (e.g., computed columns)
392
+ return shouldInclude || (isJsonColumn && !columnName.startsWith('entity_'));
393
+ }
394
+ /**
395
+ * Applies heuristics to determine if an entity JSON column should be included in GROUP BY.
396
+ *
397
+ * This method uses entity numbering patterns to identify deeply nested entities
398
+ * that should be excluded from GROUP BY when processing array aggregations.
399
+ * This is a simplified heuristic approach that works for current use cases.
400
+ *
401
+ * @param columnName The JSON column name (expected format: entity_N_json)
402
+ * @param currentDepth The current aggregation depth
403
+ * @returns True if the JSON column should be included, false otherwise
404
+ */
405
+ shouldIncludeJsonColumn(columnName, currentDepth) {
406
+ const entityMatch = columnName.match(/entity_(\d+)_json/);
407
+ if (!entityMatch) {
408
+ return true;
409
+ }
410
+ // For depth > 0, exclude JSON columns from highly nested entities
411
+ // This heuristic assumes entities with higher numbers are more deeply nested
412
+ if (currentDepth > 0) {
413
+ const entityNumber = parseInt(entityMatch[1]);
414
+ // Entities with numbers > 2 are typically nested within arrays and should be excluded
415
+ return entityNumber <= 2;
416
+ }
417
+ return true;
418
+ }
231
419
  }
232
420
  exports.PostgresArrayEntityCteBuilder = PostgresArrayEntityCteBuilder;
233
421
  // Constants for consistent naming conventions
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresArrayEntityCteBuilder.js","sourceRoot":"","sources":["../../../src/transformers/PostgresArrayEntityCteBuilder.ts"],"names":[],"mappings":";;;AAAA,6CAA0J;AAC1J,mEAAgE;AAChE,6DAA+I;AAG/I,iEAA8D;AAY9D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAa,6BAA6B;IAItC;;;;;;;OAOG;IACI,oBAAoB,CACvB,SAAwB,EACxB,qBAA6B,EAC7B,WAA2C,EAC3C,OAAoB;QAEpB,IAAI,WAAW,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;QACjC,IAAI,eAAe,GAAG,qBAAqB,CAAC;QAE5C,2CAA2C;QAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,2BAA2B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAEhF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;QACvE,CAAC;QAED,2DAA2D;QAC3D,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAEpE,mDAAmD;QACnD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAExE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;YAE1C,2CAA2C;YAC3C,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,aAAa,CAC3C,KAAK,EACL,eAAe,EACf,WAAW,EACX,KAAK,EACL,OAAO,CACV,CAAC;YAEF,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,eAAe,GAAG,WAAW,CAAC;QAClC,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;IACvE,CAAC;IAED;;;;;;;;;;OAUG;IACK,2BAA2B,CAC/B,OAAoB,EACpB,WAA2C;QAE3C,MAAM,gBAAgB,GAAgC,EAAE,CAAC;QAEzD,mDAAmD;QACnD,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAU,EAAE;YAC1C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM;gBAAE,OAAO,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAAE,OAAO,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC;QAEF,yCAAyC;QACzC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAChC,IAAI,EAAE,CAAC,gBAAgB,KAAK,OAAO,EAAE,CAAC;gBAClC,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAClD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,QAAS,CAAC,CAAC;gBAEnD,IAAI,CAAC,kBAAkB,IAAI,CAAC,YAAY,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CAAC,sCAAsC,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,QAAQ,cAAc,CAAC,CAAC;gBAC9G,CAAC;gBAED,kDAAkD;gBAClD,6EAA6E;gBAC7E,2EAA2E;gBAC3E,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC7D,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC,uCAAuC,YAAY,CAAC,IAAI,UAAU,YAAY,CAAC,EAAE,sFAAsF,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;gBACxM,CAAC;gBACD,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAElD,gBAAgB,CAAC,IAAI,CAAC;oBAClB,MAAM,EAAE,kBAAkB;oBAC1B,YAAY,EAAE,YAAY;oBAC1B,qBAAqB,EAAE,qBAAqB;oBAC5C,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;iBACzB,CAAC,CAAC;YACP,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,6FAA6F;QAC7F,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;OAUG;IACK,oBAAoB,CACxB,UAAuC;QAEvC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAuC,CAAC;QAEvE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACnC,CAAC;YACD,eAAe,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,aAAa,CACjB,KAAkC,EAClC,eAAuB,EACvB,WAA0B,EAC1B,KAAa,EACb,OAAoB;;QAEpB,sDAAsD;QACtD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,gCAAgC;QAChC,MAAM,OAAO,GAAG,MAAA,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,0CAAE,KAAK,CAAC;QAC/F,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,eAAe,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,2CAAoB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEjF,2EAA2E;QAC3E,MAAM,YAAY,GAAqB,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAiB,EAAE,CAAC;QAErC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,WAAW,CAAC,IAAI,CAAC,IAAI,mBAAU,CAAC,IAAI,gCAAe,CAAC,IAAI,EAAE,IAAI,iCAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpG,YAAY,CAAC,IAAI,CAAC,IAAI,gCAAe,CAAC,IAAI,EAAE,IAAI,iCAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChF,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,mEAAmE;QACnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,qCAAqC,CAClD,IAAI,CAAC,MAAM,EACX,OAAO,CAAC,cAAc,EACtB,IAAI,GAAG,EAAE,EAAE,iDAAiD;YAC5D,OAAO,CAAC,QAAQ,CACnB,CAAC;YACF,WAAW,CAAC,IAAI,CAAC,IAAI,mBAAU,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,qBAAqB;QACrB,MAAM,QAAQ,GAAG,GAAG,6BAA6B,CAAC,gBAAgB,GAAG,KAAK,EAAE,CAAC;QAC7E,MAAM,SAAS,GAAG,IAAI,qCAAiB,CAAC;YACpC,YAAY,EAAE,IAAI,qBAAY,CAAC,WAAW,CAAC;YAC3C,UAAU,EAAE,IAAI,mBAAU,CACtB,IAAI,yBAAgB,CAChB,IAAI,oBAAW,CAAC,IAAI,EAAE,IAAI,iCAAgB,CAAC,eAAe,CAAC,CAAC,EAC5D,IAAI,CACP,EACD,IAAI,CACP;YACD,aAAa,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,sBAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;SAClF,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,oBAAW,CAAC,SAAS,EAAE,IAAI,8BAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAExF,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,qCAAqC,CACzC,MAAyB,EACzB,cAAqB,EACrB,WAA2C,EAC3C,WAAoB,KAAK;QAEzB,uCAAuC;QACvC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAChF,MAAM,IAAI,GAAqB,EAAE,CAAC;QAElC,+BAA+B;QAC/B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE;YAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,6BAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,IAAI,gCAAe,CAAC,IAAI,EAAE,IAAI,iCAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,gEAAgE;QAChE,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAE/E,aAAa,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,IAAI,6BAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;YAEtD,IAAI,WAAW,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;gBAC5C,yDAAyD;gBACzD,MAAM,cAAc,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;gBAChE,IAAI,CAAC,IAAI,CAAC,IAAI,gCAAe,CAAC,IAAI,EAAE,IAAI,iCAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC/E,CAAC;iBAAM,IAAI,WAAW,CAAC,gBAAgB,KAAK,OAAO,EAAE,CAAC;gBAClD,mDAAmD;gBACnD,IAAI,CAAC,IAAI,CAAC,IAAI,gCAAe,CAAC,IAAI,EAAE,IAAI,iCAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACzF,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,UAAU,GAAG,IAAI,6BAAY,CAAC,IAAI,EAAE,IAAI,0BAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI,0BAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAEvG,0BAA0B;QAC1B,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,6BAAY,CAC5B,IAAI,EACJ,IAAI,0BAAS,CAAC,eAAe,CAAC,EAC9B,IAAI,0BAAS,CAAC,CAAC,UAAU,CAAC,CAAC,EAC3B,IAAI,CACP,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,CAAC;IACvB,CAAC;;AA/QL,sEAgRC;AA/QG,8CAA8C;AACtB,8CAAgB,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"PostgresArrayEntityCteBuilder.js","sourceRoot":"","sources":["../../../src/transformers/PostgresArrayEntityCteBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { SimpleSelectQuery } from '../models/SimpleSelectQuery';
2
+ import { SelectQuery } from '../models/SelectQuery';
2
3
  /**
3
4
  * Universal JSON mapping definition for creating any level of JSON structures.
4
5
  * Supports flat arrays, nested objects, and unlimited hierarchical structures.
@@ -22,7 +23,6 @@ export interface JsonMapping {
22
23
  [jsonKey: string]: string;
23
24
  };
24
25
  }>;
25
- useJsonb?: boolean;
26
26
  resultFormat?: "array" | "single";
27
27
  emptyResult?: string;
28
28
  }
@@ -43,10 +43,11 @@ export declare class PostgresJsonQueryBuilder {
43
43
  private validateMapping;
44
44
  /**
45
45
  * Build JSON query from original query and mapping configuration.
46
- * @param originalQuery Original query to transform
46
+ * @param originalQuery Original query to transform (can be any SelectQuery type)
47
47
  * @param mapping JSON mapping configuration
48
48
  * @returns Transformed query with JSON aggregation
49
49
  */
50
+ buildJsonQuery(originalQuery: SelectQuery, mapping: JsonMapping): SimpleSelectQuery;
50
51
  buildJsonQuery(originalQuery: SimpleSelectQuery, mapping: JsonMapping): SimpleSelectQuery;
51
52
  /**
52
53
  * Build JSON query from original query and mapping configuration.
@@ -7,6 +7,7 @@ const ValueComponent_1 = require("../models/ValueComponent");
7
7
  const SelectValueCollector_1 = require("./SelectValueCollector");
8
8
  const PostgresObjectEntityCteBuilder_1 = require("./PostgresObjectEntityCteBuilder");
9
9
  const PostgresArrayEntityCteBuilder_1 = require("./PostgresArrayEntityCteBuilder");
10
+ const QueryBuilder_1 = require("./QueryBuilder");
10
11
  /**
11
12
  * PostgreSQL JSON query builder that transforms SimpleSelectQuery into queries
12
13
  * that return JSON arrays or single JSON objects using PostgreSQL JSON functions.
@@ -27,10 +28,11 @@ class PostgresJsonQueryBuilder {
27
28
  const collector = new SelectValueCollector_1.SelectValueCollector();
28
29
  const selectedValues = collector.collect(query);
29
30
  // sv.name is the alias or derived name
30
- const availableColumns = new Set(selectedValues.map(sv => sv.name));
31
- // Check root entity columns
31
+ const availableColumns = new Set(selectedValues.map(sv => sv.name)); // Check root entity columns
32
32
  for (const jsonKey in mapping.rootEntity.columns) {
33
- const sourceColumn = mapping.rootEntity.columns[jsonKey];
33
+ const columnDef = mapping.rootEntity.columns[jsonKey];
34
+ // Handle both string and object formats
35
+ const sourceColumn = typeof columnDef === 'string' ? columnDef : columnDef.column;
34
36
  if (!availableColumns.has(sourceColumn)) {
35
37
  throw new Error(`Validation Error: Column "${sourceColumn}" for JSON key "${jsonKey}" in root entity "${mapping.rootEntity.name}" not found in the query's select list.`);
36
38
  }
@@ -50,7 +52,9 @@ class PostgresJsonQueryBuilder {
50
52
  throw new Error(`Validation Error: Parent entity with ID "${entity.parentId}" for nested entity "${entity.name}" (ID: ${entity.id}) not found.`);
51
53
  }
52
54
  for (const jsonKey in entity.columns) {
53
- const sourceColumn = entity.columns[jsonKey];
55
+ const columnDef = entity.columns[jsonKey];
56
+ // Handle both string and object formats
57
+ const sourceColumn = typeof columnDef === 'string' ? columnDef : columnDef.column;
54
58
  if (!availableColumns.has(sourceColumn)) {
55
59
  throw new Error(`Validation Error: Column "${sourceColumn}" for JSON key "${jsonKey}" in nested entity "${entity.name}" (ID: ${entity.id}) not found in the query's select list.`);
56
60
  }
@@ -76,14 +80,12 @@ class PostgresJsonQueryBuilder {
76
80
  }
77
81
  }
78
82
  }
79
- /**
80
- * Build JSON query from original query and mapping configuration.
81
- * @param originalQuery Original query to transform
82
- * @param mapping JSON mapping configuration
83
- * @returns Transformed query with JSON aggregation
84
- */
85
83
  buildJsonQuery(originalQuery, mapping) {
86
- return this.buildJsonWithCteStrategy(originalQuery, mapping);
84
+ // Convert any SelectQuery to SimpleSelectQuery using QueryBuilder
85
+ const simpleQuery = originalQuery instanceof SimpleSelectQuery_1.SimpleSelectQuery
86
+ ? originalQuery
87
+ : QueryBuilder_1.QueryBuilder.buildSimpleQuery(originalQuery);
88
+ return this.buildJsonWithCteStrategy(simpleQuery, mapping);
87
89
  }
88
90
  /**
89
91
  * Build JSON query from original query and mapping configuration.
@@ -152,10 +154,9 @@ class PostgresJsonQueryBuilder {
152
154
  throw new Error(`Root entity ${mapping.rootEntity.id} not found`);
153
155
  }
154
156
  if (mapping.resultFormat === "array" || !mapping.resultFormat) {
155
- // Step 4.1a: Create a CTE that wraps the final result as the root object
156
- // No alias needed for single table SELECT
157
+ // Step 4.1a: Create a CTE that wraps the final result as the root object // No alias needed for single table SELECT
157
158
  const rootObjectBuilderExpression = this.buildEntityJsonObject(rootEntity, null, // No source alias for single table
158
- mapping.nestedEntities, allEntities, mapping.useJsonb);
159
+ mapping.nestedEntities, allEntities);
159
160
  const rootObjectSelectItem = new Clause_1.SelectItem(rootObjectBuilderExpression, mapping.rootName);
160
161
  const rootObjectCte = new Clause_1.CommonTable(new SimpleSelectQuery_1.SimpleSelectQuery({
161
162
  selectClause: new Clause_1.SelectClause([rootObjectSelectItem]),
@@ -164,7 +165,7 @@ class PostgresJsonQueryBuilder {
164
165
  }), new Clause_1.SourceAliasExpression(rootObjectCteAlias, null), null);
165
166
  currentCtes.push(rootObjectCte);
166
167
  // Step 4.1b: Aggregate all the root objects
167
- const aggregationFunc = mapping.useJsonb ? "jsonb_agg" : "json_agg";
168
+ const aggregationFunc = "jsonb_agg"; // Always use JSONB
168
169
  const aggregateExpression = new ValueComponent_1.FunctionCall(null, new ValueComponent_1.RawString(aggregationFunc), new ValueComponent_1.ValueList([new ValueComponent_1.ColumnReference(null, new ValueComponent_1.IdentifierString(mapping.rootName))]), null);
169
170
  return new SimpleSelectQuery_1.SimpleSelectQuery({
170
171
  withClause: new Clause_1.WithClause(false, currentCtes),
@@ -177,7 +178,7 @@ class PostgresJsonQueryBuilder {
177
178
  else {
178
179
  // For a single object result, create root object CTE without alias
179
180
  const rootObjectBuilderExpression = this.buildEntityJsonObject(rootEntity, null, // No source alias for single table
180
- mapping.nestedEntities, allEntities, mapping.useJsonb);
181
+ mapping.nestedEntities, allEntities);
181
182
  const rootObjectSelectItem = new Clause_1.SelectItem(rootObjectBuilderExpression, mapping.rootName);
182
183
  const rootObjectCte = new Clause_1.CommonTable(new SimpleSelectQuery_1.SimpleSelectQuery({
183
184
  selectClause: new Clause_1.SelectClause([rootObjectSelectItem]),
@@ -199,10 +200,13 @@ class PostgresJsonQueryBuilder {
199
200
  /**
200
201
  * Build JSON object for entity, using parent JSON columns when available
201
202
  */
202
- buildEntityJsonObject(entity, sourceAlias, nestedEntities, allEntities, useJsonb = false) {
203
- const jsonBuildFunction = useJsonb ? "jsonb_build_object" : "json_build_object";
204
- const args = []; // Add the entity's own columns
205
- Object.entries(entity.columns).forEach(([jsonKey, sqlColumn]) => {
203
+ buildEntityJsonObject(entity, sourceAlias, nestedEntities, allEntities) {
204
+ const jsonBuildFunction = "jsonb_build_object";
205
+ const args = [];
206
+ // Add the entity's own columns
207
+ Object.entries(entity.columns).forEach(([jsonKey, columnDef]) => {
208
+ // Handle both string and object formats
209
+ const sqlColumn = typeof columnDef === 'string' ? columnDef : columnDef.column;
206
210
  args.push(new ValueComponent_1.LiteralValue(jsonKey));
207
211
  args.push(new ValueComponent_1.ColumnReference(null, new ValueComponent_1.IdentifierString(sqlColumn)));
208
212
  });
@@ -215,7 +219,8 @@ class PostgresJsonQueryBuilder {
215
219
  args.push(new ValueComponent_1.LiteralValue(childEntity.propertyName));
216
220
  if (childEntity.relationshipType === "object") {
217
221
  // For object relationships, use pre-computed JSON column
218
- const jsonColumnName = `${child.name.toLowerCase()}_json`;
222
+ // Use entity ID instead of name to avoid naming conflicts
223
+ const jsonColumnName = `${child.id.toLowerCase()}_json`;
219
224
  args.push(new ValueComponent_1.ColumnReference(null, new ValueComponent_1.IdentifierString(jsonColumnName)));
220
225
  }
221
226
  else if (childEntity.relationshipType === "array") {
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresJsonQueryBuilder.js","sourceRoot":"","sources":["../../../src/transformers/PostgresJsonQueryBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresJsonQueryBuilder.js","sourceRoot":"","sources":["../../../src/transformers/PostgresJsonQueryBuilder.ts"],"names":[],"mappings":";;;AAAA,6CAAmM;AACnM,mEAAgE;AAEhE,6DAAwO;AACxO,iEAA8D;AAC9D,qFAAqG;AACrG,mFAAgF;AAChF,iDAA8C;AAyB9C;;;GAGG;AACH,MAAa,wBAAwB;IAKjC;QACI,IAAI,CAAC,oBAAoB,GAAG,IAAI,2CAAoB,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,sBAAsB,GAAG,IAAI,+DAA8B,EAAE,CAAC;QACnE,IAAI,CAAC,qBAAqB,GAAG,IAAI,6DAA6B,EAAE,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACK,eAAe,CAAC,KAAwB,EAAE,OAAoB;;QAClE,MAAM,SAAS,GAAG,IAAI,2CAAoB,EAAE,CAAC;QAC7C,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEhD,uCAAuC;QACvC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAQ,4BAA4B;QACxG,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtD,wCAAwC;YACxC,MAAM,YAAY,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,SAAiB,CAAC,MAAM,CAAC;YAC3F,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,6BAA6B,YAAY,mBAAmB,OAAO,qBAAqB,OAAO,CAAC,UAAU,CAAC,IAAI,yCAAyC,CAAC,CAAC;YAC9K,CAAC;QACL,CAAC;QAED,6DAA6D;QAC7D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAoB,CAAC;QAExD,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAChC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACrB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,4CAA4C,MAAM,CAAC,QAAQ,wBAAwB,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC;YACrJ,CAAC;YAED,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC1C,wCAAwC;gBACxC,MAAM,YAAY,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,SAAiB,CAAC,MAAM,CAAC;gBAC3F,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CAAC,6BAA6B,YAAY,mBAAmB,OAAO,uBAAuB,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,EAAE,yCAAyC,CAAC,CAAC;gBACvL,CAAC;YACL,CAAC;QACL,CAAC;QAED,sEAAsE;QACtE,sEAAsE;QACtE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxG,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YAClC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;YACrF,MAAM,wBAAwB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;YACnG,IAAI,wBAAwB,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,QAAQ,KAAK,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,0CAAE,IAAI,CAAC;gBAC9I,MAAM,IAAI,KAAK,CAAC,oCAAoC,UAAU,UAAU,QAAQ,8DAA8D,CAAC,CAAC;YACpJ,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;YACxC,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;gBACjC,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;oBACxC,MAAM,UAAU,GAAG,QAAQ,KAAK,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,0CAAE,IAAI,CAAC;oBAC9I,MAAM,IAAI,KAAK,CAAC,oCAAoC,UAAU,UAAU,QAAQ,kCAAkC,KAAK,CAAC,YAAY,qBAAqB,CAAC,CAAC;gBAC/J,CAAC;gBACD,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;IACL,CAAC;IAUM,cAAc,CAAC,aAA8C,EAAE,OAAoB;QACtF,kEAAkE;QAClE,MAAM,WAAW,GAAG,aAAa,YAAY,qCAAiB;YAC1D,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,2BAAY,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAEnD,OAAO,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;OAMG;IACI,SAAS,CAAC,aAAgC,EAAE,OAAoB;QACnE,OAAO,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED;;;;;OAKG;IACK,wBAAwB,CAC5B,aAAgC,EAChC,OAAoB;QAEpB,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAE7C,yDAAyD;QACzD,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAE7E,IAAI,iBAAiB,GAAkB,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,uBAAuB,GAAG,eAAe,CAAC;QAE9C,qCAAqC;QACrC,MAAM,WAAW,GAAG,IAAI,GAAG,EAA6B,CAAC;QACzD,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChH,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAQ,mEAAmE;QACjM,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,CACxE,UAAU,EACV,WAAW,EACX,OAAO,CACV,CAAC;QACF,oFAAoF;QACpF,uEAAuE;QACvE,iBAAiB,GAAG,kBAAkB,CAAC,IAAI,CAAC;QAC5C,uBAAuB,GAAG,kBAAkB,CAAC,YAAY,CAAC;QAE1D,gEAAgE;QAChE,MAAM,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,CACvE,iBAAiB,EACjB,uBAAuB,EACvB,WAAW,EACX,OAAO,CACV,CAAC;QACF,iBAAiB,GAAG,mBAAmB,CAAC,WAAW,CAAC;QACpD,uBAAuB,GAAG,mBAAmB,CAAC,YAAY,CAAC;QAE3D,gEAAgE;QAChE,OAAO,IAAI,CAAC,qBAAqB,CAC7B,iBAAiB,EACjB,uBAAuB,EACvB,WAAW,EACX,OAAO,CACV,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CAAC,aAAgC;QACrD,MAAM,cAAc,GAAG,cAAc,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,oBAAW,CAC7B,aAAa,EACb,IAAI,8BAAqB,CAAC,cAAc,EAAE,IAAI,CAAC,EAC/C,IAAI,CACP,CAAC;QACF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;IACtE,CAAC;IAED;;;;;;;;OAQG;IACK,qBAAqB,CACzB,aAA4B,EAC5B,yBAAiC,EACjC,WAA2C,EAC3C,OAAoB;QAEpB,MAAM,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;QAEvC,gDAAgD;QAChD,MAAM,kBAAkB,GAAG,YAAY,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC;QACpG,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,eAAe,OAAO,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC5D,+HAA+H;YAC/H,MAAM,2BAA2B,GAAG,IAAI,CAAC,qBAAqB,CAC1D,UAAU,EACV,IAAI,EAAG,mCAAmC;YAC1C,OAAO,CAAC,cAAc,EACtB,WAAW,CACd,CAAC;YAEF,MAAM,oBAAoB,GAAG,IAAI,mBAAU,CAAC,2BAA2B,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3F,MAAM,aAAa,GAAG,IAAI,oBAAW,CACjC,IAAI,qCAAiB,CAAC;gBAClB,YAAY,EAAE,IAAI,qBAAY,CAAC,CAAC,oBAAoB,CAAC,CAAC;gBACtD,UAAU,EAAE,IAAI,mBAAU,CACtB,IAAI,yBAAgB,CAChB,IAAI,oBAAW,CAAC,IAAI,EAAE,IAAI,iCAAgB,CAAC,yBAAyB,CAAC,CAAC,EACtE,IAAI,CAAE,WAAW;iBACpB,EACD,IAAI,CACP;aACJ,CAAC,EACF,IAAI,8BAAqB,CAAC,kBAAkB,EAAE,IAAI,CAAC,EACnD,IAAI,CACP,CAAC;YACF,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEhC,4CAA4C;YAC5C,MAAM,eAAe,GAAG,WAAW,CAAC,CAAE,mBAAmB;YACzD,MAAM,mBAAmB,GAAG,IAAI,6BAAY,CACxC,IAAI,EACJ,IAAI,0BAAS,CAAC,eAAe,CAAC,EAC9B,IAAI,0BAAS,CAAC,CAAC,IAAI,gCAAe,CAAC,IAAI,EAAE,IAAI,iCAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAClF,IAAI,CACP,CAAC;YAEF,OAAO,IAAI,qCAAiB,CAAC;gBACzB,UAAU,EAAE,IAAI,mBAAU,CAAC,KAAK,EAAE,WAAW,CAAC;gBAC9C,YAAY,EAAE,IAAI,qBAAY,CAAC;oBAC3B,IAAI,mBAAU,CAAC,mBAAmB,EAAE,GAAG,OAAO,CAAC,QAAQ,QAAQ,CAAC;iBACnE,CAAC;gBACF,UAAU,EAAE,IAAI,mBAAU,CACtB,IAAI,yBAAgB,CAAC,IAAI,oBAAW,CAAC,IAAI,EAAE,IAAI,iCAAgB,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,EAC3F,IAAI,CACP;aACJ,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,mEAAmE;YACnE,MAAM,2BAA2B,GAAG,IAAI,CAAC,qBAAqB,CAC1D,UAAU,EACV,IAAI,EAAG,mCAAmC;YAC1C,OAAO,CAAC,cAAc,EACtB,WAAW,CACd,CAAC;YAEF,MAAM,oBAAoB,GAAG,IAAI,mBAAU,CAAC,2BAA2B,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3F,MAAM,aAAa,GAAG,IAAI,oBAAW,CACjC,IAAI,qCAAiB,CAAC;gBAClB,YAAY,EAAE,IAAI,qBAAY,CAAC,CAAC,oBAAoB,CAAC,CAAC;gBACtD,UAAU,EAAE,IAAI,mBAAU,CACtB,IAAI,yBAAgB,CAChB,IAAI,oBAAW,CAAC,IAAI,EAAE,IAAI,iCAAgB,CAAC,yBAAyB,CAAC,CAAC,EACtE,IAAI,CAAE,WAAW;iBACpB,EACD,IAAI,CACP;aACJ,CAAC,EACF,IAAI,8BAAqB,CAAC,kBAAkB,EAAE,IAAI,CAAC,EACnD,IAAI,CACP,CAAC;YACF,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEhC,wDAAwD;YACxD,OAAO,IAAI,qCAAiB,CAAC;gBACzB,UAAU,EAAE,IAAI,mBAAU,CAAC,KAAK,EAAE,WAAW,CAAC;gBAC9C,YAAY,EAAE,IAAI,qBAAY,CAAC;oBAC3B,IAAI,mBAAU,CAAC,IAAI,gCAAe,CAAC,IAAI,EAAE,IAAI,iCAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;iBACtG,CAAC;gBACF,UAAU,EAAE,IAAI,mBAAU,CACtB,IAAI,yBAAgB,CAAC,IAAI,oBAAW,CAAC,IAAI,EAAE,IAAI,iCAAgB,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,EAC3F,IAAI,CACP;gBACD,WAAW,EAAE,IAAI,oBAAW,CAAC,IAAI,6BAAY,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;aACjF,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED;;OAEG;IACK,qBAAqB,CACzB,MAAyB,EACzB,WAA0B,EAC1B,cAA6C,EAC7C,WAA2C;QAE3C,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;QAC/C,MAAM,IAAI,GAAqB,EAAE,CAAC;QAElC,+BAA+B;QAC/B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE;YAC5D,wCAAwC;YACxC,MAAM,SAAS,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,SAAiB,CAAC,MAAM,CAAC;YACxF,IAAI,CAAC,IAAI,CAAC,IAAI,6BAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,IAAI,gCAAe,CAAC,IAAI,EAAE,IAAI,iCAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,gEAAgE;QAChE,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAE/E,aAAa,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK;gBAAE,OAAO;YAEnB,IAAI,CAAC,IAAI,CAAC,IAAI,6BAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;YAAC,IAAI,WAAW,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;gBACnG,yDAAyD;gBACzD,0DAA0D;gBAC1D,MAAM,cAAc,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC;gBACxD,IAAI,CAAC,IAAI,CAAC,IAAI,gCAAe,CAAC,IAAI,EAAE,IAAI,iCAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC/E,CAAC;iBAAM,IAAI,WAAW,CAAC,gBAAgB,KAAK,OAAO,EAAE,CAAC;gBAClD,mDAAmD;gBACnD,IAAI,CAAC,IAAI,CAAC,IAAI,gCAAe,CAAC,IAAI,EAAE,IAAI,iCAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACzF,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,6BAAY,CAAC,IAAI,EAAE,IAAI,0BAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI,0BAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/F,CAAC;CACJ;AApUD,4DAoUC"}
@@ -187,12 +187,13 @@ class PostgresObjectEntityCteBuilder {
187
187
  // Add child object relationships
188
188
  this.addChildObjectRelationships(entity, jsonObjectArgs, mapping, allEntities);
189
189
  // Create JSON object
190
- const jsonObject = this.createJsonObject(jsonObjectArgs, mapping.useJsonb);
190
+ const jsonObject = this.createJsonObject(jsonObjectArgs);
191
191
  // Build NULL condition and CASE expression
192
192
  const nullCondition = this.buildNullCondition(nullChecks);
193
193
  const caseExpr = this.createCaseExpression(nullCondition, jsonObject);
194
194
  // Add JSON object as named column
195
- const jsonColumnName = `${entity.name.toLowerCase()}${PostgresObjectEntityCteBuilder.JSON_COLUMN_SUFFIX}`;
195
+ // Use entity ID instead of name to avoid naming conflicts
196
+ const jsonColumnName = `${entity.id.toLowerCase()}${PostgresObjectEntityCteBuilder.JSON_COLUMN_SUFFIX}`;
196
197
  return new Clause_1.SelectItem(caseExpr, jsonColumnName);
197
198
  }
198
199
  /**
@@ -248,7 +249,8 @@ class PostgresObjectEntityCteBuilder {
248
249
  const child = allEntities.get(childEntity.id);
249
250
  if (child) {
250
251
  jsonObjectArgs.push(new ValueComponent_1.LiteralValue(childEntity.propertyName));
251
- const jsonColumnName = `${child.name.toLowerCase()}${PostgresObjectEntityCteBuilder.JSON_COLUMN_SUFFIX}`;
252
+ // Use entity ID instead of name to avoid naming conflicts
253
+ const jsonColumnName = `${child.id.toLowerCase()}${PostgresObjectEntityCteBuilder.JSON_COLUMN_SUFFIX}`;
252
254
  jsonObjectArgs.push(new ValueComponent_1.ColumnReference(null, new ValueComponent_1.IdentifierString(jsonColumnName)));
253
255
  }
254
256
  });
@@ -256,8 +258,9 @@ class PostgresObjectEntityCteBuilder {
256
258
  /**
257
259
  * Create JSON object function call
258
260
  */
259
- createJsonObject(args, useJsonb = false) {
260
- const jsonBuildFunction = useJsonb ? "jsonb_build_object" : "json_build_object";
261
+ createJsonObject(args) {
262
+ const jsonBuildFunction = "jsonb_build_object";
263
+ // Always use JSONB
261
264
  return new ValueComponent_1.FunctionCall(null, new ValueComponent_1.RawString(jsonBuildFunction), new ValueComponent_1.ValueList(args), null);
262
265
  }
263
266
  /**