linkgress-orm 0.1.23 → 0.2.1
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/query/collection-strategy.interface.d.ts +13 -2
- package/dist/query/collection-strategy.interface.d.ts.map +1 -1
- package/dist/query/query-builder.d.ts +23 -2
- package/dist/query/query-builder.d.ts.map +1 -1
- package/dist/query/query-builder.js +255 -23
- package/dist/query/query-builder.js.map +1 -1
- package/dist/query/strategies/cte-collection-strategy.d.ts.map +1 -1
- package/dist/query/strategies/cte-collection-strategy.js +22 -7
- package/dist/query/strategies/cte-collection-strategy.js.map +1 -1
- package/package.json +2 -2
|
@@ -190,10 +190,21 @@ export interface CollectionAggregationConfig {
|
|
|
190
190
|
*/
|
|
191
191
|
counter: number;
|
|
192
192
|
/**
|
|
193
|
-
* Navigation joins needed for multi-level navigation in collection selectors
|
|
194
|
-
* These represent JOINs to related tables (e.g., task.level.createdBy)
|
|
193
|
+
* Navigation joins needed for multi-level navigation in collection selectors.
|
|
194
|
+
* These represent JOINs to related tables (e.g., task.level.createdBy).
|
|
195
|
+
* This includes BOTH:
|
|
196
|
+
* - Navigation path joins (for LATERAL correlation with outer query)
|
|
197
|
+
* - Selector joins (for joins within the collection's own selector)
|
|
198
|
+
* Use selectorNavigationJoins for just the selector joins (needed for CTE strategy).
|
|
195
199
|
*/
|
|
196
200
|
navigationJoins?: NavigationJoin[];
|
|
201
|
+
/**
|
|
202
|
+
* Navigation joins detected from the collection's selector only.
|
|
203
|
+
* Unlike navigationJoins, this does NOT include the navigation path from outer query.
|
|
204
|
+
* CTE strategy should use this instead of navigationJoins since CTEs don't need
|
|
205
|
+
* correlation with outer query tables (they join via parent_id).
|
|
206
|
+
*/
|
|
207
|
+
selectorNavigationJoins?: NavigationJoin[];
|
|
197
208
|
}
|
|
198
209
|
/**
|
|
199
210
|
* Strategy interface for collection aggregation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-strategy.interface.d.ts","sourceRoot":"","sources":["../../src/query/collection-strategy.interface.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"collection-strategy.interface.d.ts","sourceRoot":"","sources":["../../src/query/collection-strategy.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -307,13 +307,23 @@ export declare class SelectQueryBuilder<TSelection> {
|
|
|
307
307
|
*/
|
|
308
308
|
private executeFullyOptimized;
|
|
309
309
|
/**
|
|
310
|
-
* Detect collections in the selection result
|
|
310
|
+
* Detect collections in the selection result, including nested objects.
|
|
311
|
+
* Returns collections with path information for proper result reconstruction.
|
|
311
312
|
*/
|
|
312
313
|
private detectCollections;
|
|
313
314
|
/**
|
|
314
|
-
*
|
|
315
|
+
* Recursively detect collections in nested objects
|
|
316
|
+
*/
|
|
317
|
+
private detectCollectionsRecursive;
|
|
318
|
+
/**
|
|
319
|
+
* Build base selection excluding collections but including necessary foreign keys.
|
|
320
|
+
* Handles nested collections by removing them from nested structures.
|
|
315
321
|
*/
|
|
316
322
|
private buildBaseSelection;
|
|
323
|
+
/**
|
|
324
|
+
* Recursively build base selection for nested objects, excluding collections
|
|
325
|
+
*/
|
|
326
|
+
private buildBaseSelectionRecursive;
|
|
317
327
|
/**
|
|
318
328
|
* Build collection aggregation config from CollectionQueryBuilder
|
|
319
329
|
*/
|
|
@@ -423,8 +433,19 @@ export declare class SelectQueryBuilder<TSelection> {
|
|
|
423
433
|
* Reconstruct nested objects from flat row data with path-encoded column names.
|
|
424
434
|
* Transforms { "__nested__address__street": "Main St", "__nested__address__city": "NYC" }
|
|
425
435
|
* into { address: { street: "Main St", city: "NYC" } }
|
|
436
|
+
* Also handles nested collections with paths like "__nested__content__posts"
|
|
437
|
+
* Converts numeric strings to numbers for scalar aggregation results.
|
|
426
438
|
*/
|
|
427
439
|
private reconstructNestedObjects;
|
|
440
|
+
/**
|
|
441
|
+
* Check if an object contains any CollectionQueryBuilder instances (recursively)
|
|
442
|
+
*/
|
|
443
|
+
private hasNestedCollections;
|
|
444
|
+
/**
|
|
445
|
+
* Build flat SQL SELECT parts for a nested object, excluding collections.
|
|
446
|
+
* Collections are added to collectionFields for separate handling.
|
|
447
|
+
*/
|
|
448
|
+
private tryBuildFlatNestedSelectExcludingCollections;
|
|
428
449
|
private detectAndAddJoinsFromSelection;
|
|
429
450
|
/**
|
|
430
451
|
* Collect all table aliases from a selection
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/query/query-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/query/query-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -263,7 +263,9 @@ class QueryBuilder {
|
|
|
263
263
|
// with circular relations like User->Posts->User)
|
|
264
264
|
Object.defineProperty(mock, relName, {
|
|
265
265
|
get: () => {
|
|
266
|
-
const refBuilder = new ReferenceQueryBuilder(relName, relConfig.targetTable, relConfig.foreignKeys || [relConfig.foreignKey || ''], relConfig.matches || [], relConfig.isMandatory ?? false, targetSchema, this.schemaRegistry // Pass schema registry for nested navigation resolution
|
|
266
|
+
const refBuilder = new ReferenceQueryBuilder(relName, relConfig.targetTable, relConfig.foreignKeys || [relConfig.foreignKey || ''], relConfig.matches || [], relConfig.isMandatory ?? false, targetSchema, this.schemaRegistry, // Pass schema registry for nested navigation resolution
|
|
267
|
+
[], // Empty navigation path for first level navigation
|
|
268
|
+
this.schema.name // Pass source table name for lateral join correlation
|
|
267
269
|
);
|
|
268
270
|
return refBuilder.createMockTargetRow();
|
|
269
271
|
},
|
|
@@ -423,7 +425,10 @@ class QueryBuilder {
|
|
|
423
425
|
// Non-enumerable to prevent Object.entries triggering getters (avoids stack overflow)
|
|
424
426
|
Object.defineProperty(mock, relName, {
|
|
425
427
|
get: () => {
|
|
426
|
-
const refBuilder = new ReferenceQueryBuilder(relName, relConfig.targetTable, relConfig.foreignKeys || [relConfig.foreignKey || ''], relConfig.matches || [], relConfig.isMandatory ?? false, targetSchema
|
|
428
|
+
const refBuilder = new ReferenceQueryBuilder(relName, relConfig.targetTable, relConfig.foreignKeys || [relConfig.foreignKey || ''], relConfig.matches || [], relConfig.isMandatory ?? false, targetSchema, this.schemaRegistry, // Pass schema registry for nested navigation resolution
|
|
429
|
+
[], // Empty navigation path for first level navigation
|
|
430
|
+
schema.name // Pass source table name for lateral join correlation
|
|
431
|
+
);
|
|
427
432
|
return refBuilder.createMockTargetRow();
|
|
428
433
|
},
|
|
429
434
|
enumerable: false,
|
|
@@ -805,7 +810,10 @@ class SelectQueryBuilder {
|
|
|
805
810
|
// Non-enumerable to prevent Object.entries triggering getters (avoids stack overflow)
|
|
806
811
|
Object.defineProperty(mock, relName, {
|
|
807
812
|
get: () => {
|
|
808
|
-
const refBuilder = new ReferenceQueryBuilder(relName, relConfig.targetTable, relConfig.foreignKeys || [relConfig.foreignKey || ''], relConfig.matches || [], relConfig.isMandatory ?? false, targetSchema
|
|
813
|
+
const refBuilder = new ReferenceQueryBuilder(relName, relConfig.targetTable, relConfig.foreignKeys || [relConfig.foreignKey || ''], relConfig.matches || [], relConfig.isMandatory ?? false, targetSchema, this.schemaRegistry, // Pass schema registry for nested navigation resolution
|
|
814
|
+
[], // Empty navigation path for first level navigation
|
|
815
|
+
schema.name // Pass source table name for lateral join correlation
|
|
816
|
+
);
|
|
809
817
|
return refBuilder.createMockTargetRow();
|
|
810
818
|
},
|
|
811
819
|
enumerable: false,
|
|
@@ -1192,7 +1200,23 @@ class SelectQueryBuilder {
|
|
|
1192
1200
|
for (const collection of collections) {
|
|
1193
1201
|
const resultMap = collectionResults.get(collection.name);
|
|
1194
1202
|
const parentId = baseRow.__pk_id;
|
|
1195
|
-
|
|
1203
|
+
const collectionData = resultMap?.get(parentId) || this.getDefaultValueForCollection(collection.builder);
|
|
1204
|
+
// Handle nested paths
|
|
1205
|
+
if (collection.path.length > 0) {
|
|
1206
|
+
// Navigate to the nested object and set the collection there
|
|
1207
|
+
let current = merged;
|
|
1208
|
+
for (let i = 0; i < collection.path.length; i++) {
|
|
1209
|
+
const pathPart = collection.path[i];
|
|
1210
|
+
if (!(pathPart in current)) {
|
|
1211
|
+
current[pathPart] = {};
|
|
1212
|
+
}
|
|
1213
|
+
current = current[pathPart];
|
|
1214
|
+
}
|
|
1215
|
+
current[collection.name] = collectionData;
|
|
1216
|
+
}
|
|
1217
|
+
else {
|
|
1218
|
+
merged[collection.name] = collectionData;
|
|
1219
|
+
}
|
|
1196
1220
|
}
|
|
1197
1221
|
// Remove the internal __pk_id field before returning
|
|
1198
1222
|
delete merged.__pk_id;
|
|
@@ -1324,7 +1348,23 @@ class SelectQueryBuilder {
|
|
|
1324
1348
|
for (const collection of collections) {
|
|
1325
1349
|
const resultMap = collectionResults.get(collection.name);
|
|
1326
1350
|
const parentId = baseRow.__pk_id;
|
|
1327
|
-
|
|
1351
|
+
const collectionData = resultMap?.get(parentId) || [];
|
|
1352
|
+
// Handle nested paths
|
|
1353
|
+
if (collection.path.length > 0) {
|
|
1354
|
+
// Navigate to the nested object and set the collection there
|
|
1355
|
+
let current = merged;
|
|
1356
|
+
for (let i = 0; i < collection.path.length; i++) {
|
|
1357
|
+
const pathPart = collection.path[i];
|
|
1358
|
+
if (!(pathPart in current)) {
|
|
1359
|
+
current[pathPart] = {};
|
|
1360
|
+
}
|
|
1361
|
+
current = current[pathPart];
|
|
1362
|
+
}
|
|
1363
|
+
current[collection.name] = collectionData;
|
|
1364
|
+
}
|
|
1365
|
+
else {
|
|
1366
|
+
merged[collection.name] = collectionData;
|
|
1367
|
+
}
|
|
1328
1368
|
}
|
|
1329
1369
|
delete merged.__pk_id;
|
|
1330
1370
|
return merged;
|
|
@@ -1334,35 +1374,88 @@ class SelectQueryBuilder {
|
|
|
1334
1374
|
return transformed;
|
|
1335
1375
|
}
|
|
1336
1376
|
/**
|
|
1337
|
-
* Detect collections in the selection result
|
|
1377
|
+
* Detect collections in the selection result, including nested objects.
|
|
1378
|
+
* Returns collections with path information for proper result reconstruction.
|
|
1338
1379
|
*/
|
|
1339
1380
|
detectCollections(selection) {
|
|
1340
1381
|
const collections = [];
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1382
|
+
this.detectCollectionsRecursive(selection, [], collections);
|
|
1383
|
+
return collections;
|
|
1384
|
+
}
|
|
1385
|
+
/**
|
|
1386
|
+
* Recursively detect collections in nested objects
|
|
1387
|
+
*/
|
|
1388
|
+
detectCollectionsRecursive(selection, currentPath, collections) {
|
|
1389
|
+
if (typeof selection !== 'object' || selection === null || selection instanceof conditions_1.SqlFragment) {
|
|
1390
|
+
return;
|
|
1391
|
+
}
|
|
1392
|
+
for (const [key, value] of Object.entries(selection)) {
|
|
1393
|
+
if (value instanceof CollectionQueryBuilder) {
|
|
1394
|
+
collections.push({ name: key, path: [...currentPath], builder: value });
|
|
1395
|
+
}
|
|
1396
|
+
else if (value && typeof value === 'object' && '__collectionResult' in value && 'buildCTE' in value) {
|
|
1397
|
+
// This is a CollectionResult which wraps a CollectionQueryBuilder
|
|
1398
|
+
collections.push({ name: key, path: [...currentPath], builder: value });
|
|
1399
|
+
}
|
|
1400
|
+
else if (value && typeof value === 'object' && !Array.isArray(value) && !('__dbColumnName' in value)) {
|
|
1401
|
+
// Recursively check nested objects (but not FieldRefs or arrays)
|
|
1402
|
+
this.detectCollectionsRecursive(value, [...currentPath, key], collections);
|
|
1350
1403
|
}
|
|
1351
1404
|
}
|
|
1352
|
-
return collections;
|
|
1353
1405
|
}
|
|
1354
1406
|
/**
|
|
1355
|
-
* Build base selection excluding collections but including necessary foreign keys
|
|
1407
|
+
* Build base selection excluding collections but including necessary foreign keys.
|
|
1408
|
+
* Handles nested collections by removing them from nested structures.
|
|
1356
1409
|
*/
|
|
1357
1410
|
buildBaseSelection(selection, collections) {
|
|
1358
1411
|
const baseSelection = {};
|
|
1359
|
-
|
|
1412
|
+
// Build a set of top-level collection names (for backward compatibility)
|
|
1413
|
+
const topLevelCollectionNames = new Set(collections.filter(c => c.path.length === 0).map(c => c.name));
|
|
1360
1414
|
// Always ensure we have the primary key in the base selection with a known alias
|
|
1361
1415
|
const mockRow = this._createMockRow();
|
|
1362
1416
|
baseSelection['__pk_id'] = mockRow.id; // Add primary key with a known alias
|
|
1363
1417
|
for (const [key, value] of Object.entries(selection)) {
|
|
1364
|
-
if (!
|
|
1365
|
-
|
|
1418
|
+
if (!topLevelCollectionNames.has(key)) {
|
|
1419
|
+
// For nested objects, recursively remove collections
|
|
1420
|
+
if (value && typeof value === 'object' && !Array.isArray(value) && !('__dbColumnName' in value) && !(value instanceof conditions_1.SqlFragment)) {
|
|
1421
|
+
const nestedCollections = collections.filter(c => c.path.length > 0 && c.path[0] === key);
|
|
1422
|
+
if (nestedCollections.length > 0) {
|
|
1423
|
+
// This nested object contains collections - build it recursively
|
|
1424
|
+
baseSelection[key] = this.buildBaseSelectionRecursive(value, nestedCollections, 1);
|
|
1425
|
+
}
|
|
1426
|
+
else {
|
|
1427
|
+
baseSelection[key] = value;
|
|
1428
|
+
}
|
|
1429
|
+
}
|
|
1430
|
+
else {
|
|
1431
|
+
baseSelection[key] = value;
|
|
1432
|
+
}
|
|
1433
|
+
}
|
|
1434
|
+
}
|
|
1435
|
+
return baseSelection;
|
|
1436
|
+
}
|
|
1437
|
+
/**
|
|
1438
|
+
* Recursively build base selection for nested objects, excluding collections
|
|
1439
|
+
*/
|
|
1440
|
+
buildBaseSelectionRecursive(selection, collections, depth) {
|
|
1441
|
+
const baseSelection = {};
|
|
1442
|
+
// Build a set of collection names at this depth
|
|
1443
|
+
const collectionNamesAtDepth = new Set(collections.filter(c => c.path.length === depth).map(c => c.name));
|
|
1444
|
+
for (const [key, value] of Object.entries(selection)) {
|
|
1445
|
+
if (!collectionNamesAtDepth.has(key)) {
|
|
1446
|
+
// For nested objects, continue recursively
|
|
1447
|
+
if (value && typeof value === 'object' && !Array.isArray(value) && !('__dbColumnName' in value) && !(value instanceof conditions_1.SqlFragment)) {
|
|
1448
|
+
const nestedCollections = collections.filter(c => c.path.length > depth && c.path[depth] === key);
|
|
1449
|
+
if (nestedCollections.length > 0) {
|
|
1450
|
+
baseSelection[key] = this.buildBaseSelectionRecursive(value, nestedCollections, depth + 1);
|
|
1451
|
+
}
|
|
1452
|
+
else {
|
|
1453
|
+
baseSelection[key] = value;
|
|
1454
|
+
}
|
|
1455
|
+
}
|
|
1456
|
+
else {
|
|
1457
|
+
baseSelection[key] = value;
|
|
1458
|
+
}
|
|
1366
1459
|
}
|
|
1367
1460
|
}
|
|
1368
1461
|
return baseSelection;
|
|
@@ -1817,7 +1910,9 @@ class SelectQueryBuilder {
|
|
|
1817
1910
|
Object.defineProperty(mock, relName, {
|
|
1818
1911
|
get: () => {
|
|
1819
1912
|
const refBuilder = new ReferenceQueryBuilder(relName, relConfig.targetTable, relConfig.foreignKeys || [relConfig.foreignKey || ''], relConfig.matches || [], relConfig.isMandatory ?? false, targetSchema, // Pass the target schema directly
|
|
1820
|
-
this.schemaRegistry // Pass schema registry for nested resolution
|
|
1913
|
+
this.schemaRegistry, // Pass schema registry for nested resolution
|
|
1914
|
+
[], // Empty navigation path for first level navigation
|
|
1915
|
+
this.schema.name // Pass source table name for lateral join correlation
|
|
1821
1916
|
);
|
|
1822
1917
|
// Return a mock object that exposes the target table's columns
|
|
1823
1918
|
return refBuilder.createMockTargetRow();
|
|
@@ -1990,6 +2085,8 @@ class SelectQueryBuilder {
|
|
|
1990
2085
|
* Reconstruct nested objects from flat row data with path-encoded column names.
|
|
1991
2086
|
* Transforms { "__nested__address__street": "Main St", "__nested__address__city": "NYC" }
|
|
1992
2087
|
* into { address: { street: "Main St", city: "NYC" } }
|
|
2088
|
+
* Also handles nested collections with paths like "__nested__content__posts"
|
|
2089
|
+
* Converts numeric strings to numbers for scalar aggregation results.
|
|
1993
2090
|
*/
|
|
1994
2091
|
reconstructNestedObjects(row, nestedPaths) {
|
|
1995
2092
|
if (nestedPaths.size === 0) {
|
|
@@ -2009,7 +2106,13 @@ class SelectQueryBuilder {
|
|
|
2009
2106
|
}
|
|
2010
2107
|
current = current[part];
|
|
2011
2108
|
}
|
|
2012
|
-
|
|
2109
|
+
// Convert numeric strings to numbers (for scalar aggregations like COUNT)
|
|
2110
|
+
// This handles values like "2" -> 2, "3.14" -> 3.14
|
|
2111
|
+
let finalValue = value;
|
|
2112
|
+
if (typeof value === 'string' && /^-?\d+(\.\d+)?$/.test(value)) {
|
|
2113
|
+
finalValue = +value;
|
|
2114
|
+
}
|
|
2115
|
+
current[pathParts[pathParts.length - 1]] = finalValue;
|
|
2013
2116
|
}
|
|
2014
2117
|
else {
|
|
2015
2118
|
// Regular field
|
|
@@ -2018,6 +2121,105 @@ class SelectQueryBuilder {
|
|
|
2018
2121
|
}
|
|
2019
2122
|
return result;
|
|
2020
2123
|
}
|
|
2124
|
+
/**
|
|
2125
|
+
* Check if an object contains any CollectionQueryBuilder instances (recursively)
|
|
2126
|
+
*/
|
|
2127
|
+
hasNestedCollections(obj) {
|
|
2128
|
+
if (!obj || typeof obj !== 'object' || Array.isArray(obj)) {
|
|
2129
|
+
return false;
|
|
2130
|
+
}
|
|
2131
|
+
for (const value of Object.values(obj)) {
|
|
2132
|
+
if (value instanceof CollectionQueryBuilder) {
|
|
2133
|
+
return true;
|
|
2134
|
+
}
|
|
2135
|
+
if (value && typeof value === 'object' && '__collectionResult' in value) {
|
|
2136
|
+
return true;
|
|
2137
|
+
}
|
|
2138
|
+
if (value && typeof value === 'object' && !Array.isArray(value) && !('__dbColumnName' in value)) {
|
|
2139
|
+
if (this.hasNestedCollections(value)) {
|
|
2140
|
+
return true;
|
|
2141
|
+
}
|
|
2142
|
+
}
|
|
2143
|
+
}
|
|
2144
|
+
return false;
|
|
2145
|
+
}
|
|
2146
|
+
/**
|
|
2147
|
+
* Build flat SQL SELECT parts for a nested object, excluding collections.
|
|
2148
|
+
* Collections are added to collectionFields for separate handling.
|
|
2149
|
+
*/
|
|
2150
|
+
tryBuildFlatNestedSelectExcludingCollections(obj, context, joins, selectParts, pathPrefix, nestedPaths, collectionFields) {
|
|
2151
|
+
if (!obj || typeof obj !== 'object' || Array.isArray(obj)) {
|
|
2152
|
+
return;
|
|
2153
|
+
}
|
|
2154
|
+
// Track this path as a nested object
|
|
2155
|
+
nestedPaths.add(pathPrefix);
|
|
2156
|
+
for (const [nestedKey, nestedValue] of Object.entries(obj)) {
|
|
2157
|
+
const fieldPath = `${pathPrefix}__${nestedKey}`;
|
|
2158
|
+
// Check if this is a collection - handle it separately
|
|
2159
|
+
if (nestedValue instanceof CollectionQueryBuilder || (nestedValue && typeof nestedValue === 'object' && '__collectionResult' in nestedValue)) {
|
|
2160
|
+
// Build CTE for collection and add to collectionFields
|
|
2161
|
+
const cteData = nestedValue.buildCTE ? nestedValue.buildCTE(context) : nestedValue.buildCTE(context);
|
|
2162
|
+
const isCTE = cteData.isCTE !== false;
|
|
2163
|
+
collectionFields.push({
|
|
2164
|
+
name: fieldPath, // Use full path as the name
|
|
2165
|
+
cteName: cteData.tableName || `cte_${context.cteCounter - 1}`,
|
|
2166
|
+
isCTE,
|
|
2167
|
+
joinClause: cteData.joinClause,
|
|
2168
|
+
selectExpression: cteData.selectExpression,
|
|
2169
|
+
});
|
|
2170
|
+
continue;
|
|
2171
|
+
}
|
|
2172
|
+
if (nestedValue instanceof conditions_1.SqlFragment) {
|
|
2173
|
+
// SQL Fragment - build the SQL expression
|
|
2174
|
+
const sqlBuildContext = {
|
|
2175
|
+
paramCounter: context.paramCounter,
|
|
2176
|
+
params: context.allParams,
|
|
2177
|
+
};
|
|
2178
|
+
const fragmentSql = nestedValue.buildSql(sqlBuildContext);
|
|
2179
|
+
context.paramCounter = sqlBuildContext.paramCounter;
|
|
2180
|
+
selectParts.push(`${fragmentSql} as "${fieldPath}"`);
|
|
2181
|
+
}
|
|
2182
|
+
else if (typeof nestedValue === 'object' && nestedValue !== null && '__dbColumnName' in nestedValue) {
|
|
2183
|
+
// FieldRef - extract table alias and column name
|
|
2184
|
+
const tableAlias = ('__tableAlias' in nestedValue && nestedValue.__tableAlias)
|
|
2185
|
+
? nestedValue.__tableAlias
|
|
2186
|
+
: this.schema.name;
|
|
2187
|
+
const columnName = nestedValue.__dbColumnName;
|
|
2188
|
+
// Add JOIN if needed for navigation fields
|
|
2189
|
+
if (tableAlias !== this.schema.name) {
|
|
2190
|
+
const relConfig = this.schema.relations[tableAlias];
|
|
2191
|
+
if (relConfig && !joins.find(j => j.alias === tableAlias)) {
|
|
2192
|
+
let targetSchema;
|
|
2193
|
+
if (relConfig.targetTableBuilder) {
|
|
2194
|
+
const targetTableSchema = relConfig.targetTableBuilder.build();
|
|
2195
|
+
targetSchema = targetTableSchema.schema;
|
|
2196
|
+
}
|
|
2197
|
+
joins.push({
|
|
2198
|
+
alias: tableAlias,
|
|
2199
|
+
targetTable: relConfig.targetTable,
|
|
2200
|
+
targetSchema,
|
|
2201
|
+
foreignKeys: relConfig.foreignKeys || [relConfig.foreignKey || ''],
|
|
2202
|
+
matches: relConfig.matches || [],
|
|
2203
|
+
isMandatory: relConfig.isMandatory ?? false,
|
|
2204
|
+
});
|
|
2205
|
+
}
|
|
2206
|
+
}
|
|
2207
|
+
selectParts.push(`"${tableAlias}"."${columnName}" as "${fieldPath}"`);
|
|
2208
|
+
}
|
|
2209
|
+
else if (typeof nestedValue === 'object' && nestedValue !== null && !Array.isArray(nestedValue)) {
|
|
2210
|
+
// Recursively handle deeper nested objects
|
|
2211
|
+
this.tryBuildFlatNestedSelectExcludingCollections(nestedValue, context, joins, selectParts, fieldPath, nestedPaths, collectionFields);
|
|
2212
|
+
}
|
|
2213
|
+
else if (nestedValue === undefined || nestedValue === null) {
|
|
2214
|
+
selectParts.push(`NULL as "${fieldPath}"`);
|
|
2215
|
+
}
|
|
2216
|
+
else {
|
|
2217
|
+
// Literal value (string, number, boolean)
|
|
2218
|
+
selectParts.push(`$${context.paramCounter++} as "${fieldPath}"`);
|
|
2219
|
+
context.allParams.push(nestedValue);
|
|
2220
|
+
}
|
|
2221
|
+
}
|
|
2222
|
+
}
|
|
2021
2223
|
detectAndAddJoinsFromSelection(selection, joins) {
|
|
2022
2224
|
if (!selection || typeof selection !== 'object') {
|
|
2023
2225
|
return;
|
|
@@ -2414,6 +2616,16 @@ class SelectQueryBuilder {
|
|
|
2414
2616
|
if (handled) {
|
|
2415
2617
|
continue;
|
|
2416
2618
|
}
|
|
2619
|
+
// Check if this is a nested object with collections inside
|
|
2620
|
+
// e.g., content: { posts: u.posts!.toList() }
|
|
2621
|
+
// In this case, we need to handle it specially:
|
|
2622
|
+
// - Build the non-collection parts with flat select
|
|
2623
|
+
// - Let collections be handled by the collection handler
|
|
2624
|
+
if (this.hasNestedCollections(value)) {
|
|
2625
|
+
// Build flat select for non-collection parts of the nested object
|
|
2626
|
+
this.tryBuildFlatNestedSelectExcludingCollections(value, context, joins, selectParts, `__nested__${key}`, nestedPaths, collectionFields);
|
|
2627
|
+
continue;
|
|
2628
|
+
}
|
|
2417
2629
|
}
|
|
2418
2630
|
// Otherwise, treat as literal value
|
|
2419
2631
|
selectParts.push(`$${context.paramCounter++} as "${key}"`);
|
|
@@ -2438,8 +2650,27 @@ class SelectQueryBuilder {
|
|
|
2438
2650
|
continue;
|
|
2439
2651
|
}
|
|
2440
2652
|
// Fallback to old logic for backward compatibility
|
|
2653
|
+
// Get the collection value - handle both top-level and nested paths
|
|
2654
|
+
// For nested paths like "__nested__activity__postCount", we need to navigate the selection object
|
|
2655
|
+
let collectionValue;
|
|
2656
|
+
if (name.startsWith('__nested__')) {
|
|
2657
|
+
// Parse the nested path and navigate to the collection
|
|
2658
|
+
const pathParts = name.substring('__nested__'.length).split('__');
|
|
2659
|
+
collectionValue = selection;
|
|
2660
|
+
for (const part of pathParts) {
|
|
2661
|
+
if (collectionValue && typeof collectionValue === 'object') {
|
|
2662
|
+
collectionValue = collectionValue[part];
|
|
2663
|
+
}
|
|
2664
|
+
else {
|
|
2665
|
+
collectionValue = undefined;
|
|
2666
|
+
break;
|
|
2667
|
+
}
|
|
2668
|
+
}
|
|
2669
|
+
}
|
|
2670
|
+
else {
|
|
2671
|
+
collectionValue = selection[name];
|
|
2672
|
+
}
|
|
2441
2673
|
// Check if this is an array aggregation (from toNumberList/toStringList)
|
|
2442
|
-
const collectionValue = selection[name];
|
|
2443
2674
|
const isArrayAgg = collectionValue && typeof collectionValue === 'object' && 'isArrayAggregation' in collectionValue && collectionValue.isArrayAggregation();
|
|
2444
2675
|
// Check if this is a scalar aggregation (count, sum, max, min)
|
|
2445
2676
|
const isScalarAgg = collectionValue instanceof CollectionQueryBuilder &&
|
|
@@ -4115,6 +4346,7 @@ class CollectionQueryBuilder {
|
|
|
4115
4346
|
defaultValue,
|
|
4116
4347
|
counter: context.cteCounter++,
|
|
4117
4348
|
navigationJoins: allNavigationJoins.length > 0 ? allNavigationJoins : undefined,
|
|
4349
|
+
selectorNavigationJoins: navigationJoins.length > 0 ? navigationJoins : undefined,
|
|
4118
4350
|
};
|
|
4119
4351
|
// Step 6: Call the strategy
|
|
4120
4352
|
const result = strategy.buildAggregation(config, context, client);
|