linkgress-orm 0.2.3 → 0.2.5
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/entity/db-context.d.ts +32 -0
- package/dist/entity/db-context.d.ts.map +1 -1
- package/dist/entity/db-context.js +258 -1
- package/dist/entity/db-context.js.map +1 -1
- package/dist/query/conditions.d.ts +12 -0
- package/dist/query/conditions.d.ts.map +1 -1
- package/dist/query/conditions.js +26 -0
- package/dist/query/conditions.js.map +1 -1
- package/dist/query/query-builder.d.ts +33 -3
- package/dist/query/query-builder.d.ts.map +1 -1
- package/dist/query/query-builder.js +353 -21
- 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 +67 -23
- package/dist/query/strategies/cte-collection-strategy.js.map +1 -1
- package/dist/query/strategies/lateral-collection-strategy.d.ts +9 -0
- package/dist/query/strategies/lateral-collection-strategy.d.ts.map +1 -1
- package/dist/query/strategies/lateral-collection-strategy.js +187 -70
- package/dist/query/strategies/lateral-collection-strategy.js.map +1 -1
- package/dist/query/strategies/temptable-collection-strategy.d.ts +5 -0
- package/dist/query/strategies/temptable-collection-strategy.d.ts.map +1 -1
- package/dist/query/strategies/temptable-collection-strategy.js +27 -10
- package/dist/query/strategies/temptable-collection-strategy.js.map +1 -1
- package/package.json +1 -1
|
@@ -62,6 +62,12 @@ export interface QueryContext {
|
|
|
62
62
|
executor?: QueryExecutor;
|
|
63
63
|
/** Map of placeholder names to their parameter indices (for prepared statements) */
|
|
64
64
|
placeholders?: Map<string, number>;
|
|
65
|
+
/**
|
|
66
|
+
* Map of original table names to their LATERAL aliases.
|
|
67
|
+
* Used by nested LATERALs to reference parent collection tables correctly.
|
|
68
|
+
* Example: { "posts": "lateral_0_posts" }
|
|
69
|
+
*/
|
|
70
|
+
lateralTableAliasMap?: Map<string, string>;
|
|
65
71
|
}
|
|
66
72
|
/**
|
|
67
73
|
* Query builder for a table
|
|
@@ -291,6 +297,11 @@ export declare class SelectQueryBuilder<TSelection> {
|
|
|
291
297
|
* Get count of rows from the query
|
|
292
298
|
*/
|
|
293
299
|
count(): Promise<number>;
|
|
300
|
+
/**
|
|
301
|
+
* Check if any rows match the query
|
|
302
|
+
* More efficient than count() > 0 as it can stop after finding one row
|
|
303
|
+
*/
|
|
304
|
+
exists(): Promise<boolean>;
|
|
294
305
|
/**
|
|
295
306
|
* Execute query and return results as array
|
|
296
307
|
* Collection results are automatically resolved to arrays
|
|
@@ -433,14 +444,33 @@ export declare class SelectQueryBuilder<TSelection> {
|
|
|
433
444
|
update(data: Partial<Record<string, any>>): FluentQueryUpdate<TSelection>;
|
|
434
445
|
/**
|
|
435
446
|
* Build RETURNING clause for delete/update operations
|
|
447
|
+
* @param returning - The returning configuration
|
|
448
|
+
* @param qualifyWithTable - If true, qualify column names with the main table name (needed for DELETE with USING)
|
|
436
449
|
* @internal
|
|
437
450
|
*/
|
|
438
|
-
private
|
|
451
|
+
private buildUpdateDeleteReturningClause;
|
|
439
452
|
/**
|
|
440
453
|
* Map row results for delete/update RETURNING clause
|
|
441
454
|
* @internal
|
|
442
455
|
*/
|
|
443
456
|
private mapDeleteReturningResults;
|
|
457
|
+
/**
|
|
458
|
+
* Detect if a RETURNING selector uses navigation properties
|
|
459
|
+
* Returns navigation info if found, null otherwise
|
|
460
|
+
* @internal
|
|
461
|
+
*/
|
|
462
|
+
private detectNavigationInReturning;
|
|
463
|
+
/**
|
|
464
|
+
* Build RETURNING clause with navigation property support using CTE
|
|
465
|
+
* @internal
|
|
466
|
+
*/
|
|
467
|
+
private buildReturningWithNavigation;
|
|
468
|
+
/**
|
|
469
|
+
* Map RETURNING results with navigation properties
|
|
470
|
+
* Applies type mappers based on source table schemas
|
|
471
|
+
* @internal
|
|
472
|
+
*/
|
|
473
|
+
private mapReturningResultsWithNavigation;
|
|
444
474
|
/**
|
|
445
475
|
* Create mock row for analysis
|
|
446
476
|
* @internal
|
|
@@ -536,9 +566,9 @@ export declare class SelectQueryBuilder<TSelection> {
|
|
|
536
566
|
*/
|
|
537
567
|
private buildAggregationQuery;
|
|
538
568
|
/**
|
|
539
|
-
* Build count
|
|
569
|
+
* Build aggregate query (count or exists)
|
|
540
570
|
*/
|
|
541
|
-
private
|
|
571
|
+
private buildAggregateQuery;
|
|
542
572
|
/**
|
|
543
573
|
* Convert this query to a subquery that can be used in WHERE, SELECT, JOIN, or FROM clauses
|
|
544
574
|
*
|
|
@@ -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":"AAAA,OAAO,EAAE,SAAS,EAAoB,WAAW,EAAmB,QAAQ,EAAE,eAAe,EAAoC,MAAM,cAAc,CAAC;AACtJ,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,cAAc,EAAiB,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGlJ,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAS,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAA+B,aAAa,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAmBlH;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAUlF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAMrF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE;IAAE,kBAAkB,CAAC,EAAE;QAAE,KAAK,IAAI,WAAW,CAAA;KAAE,CAAA;CAAE,GAAG,WAAW,GAAG,SAAS,CAWtK;AAKD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAgDjE;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,oFAAoF;IACpF,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAeD;;GAEG;AACH,qBAAa,YAAY,CAAC,OAAO,SAAS,WAAW,EAAE,IAAI,GAAG,GAAG;IAC/D,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,SAAS,CAAC,CAA6B;IAC/C,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,aAAa,CAA2D;IAChF,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,kBAAkB,CAAC,CAAyB;IACpD,OAAO,CAAC,cAAc,CAAC,CAA2B;IAGlD,OAAO,CAAC,cAAc,CAAC,CAAM;gBAEjB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,oBAAoB,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,sBAAsB,EAAE,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAcxV;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;OAGG;IACH,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,UAAU,GAAG,kBAAkB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAmBxG;;;OAGG;IACH,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,SAAS,GAAG,IAAI;IAWhD;;OAEG;IACH,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC;IAmBrD;;;OAGG;IACH,cAAc,IAAI,GAAG;IAuGrB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,EACzB,UAAU,EAAE;QAAE,UAAU,EAAE,MAAM,WAAW,CAAA;KAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EACzE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,EACnD,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,EACnD,KAAK,CAAC,EAAE,MAAM,GACb,kBAAkB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IA4ElD;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,EAC1B,UAAU,EAAE;QAAE,UAAU,EAAE,MAAM,WAAW,CAAA;KAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EACzE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,EACnD,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,EACnD,KAAK,CAAC,EAAE,MAAM,GACb,kBAAkB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IA4ElD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA+E7B;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK3B;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,GAAG,IAAI;IAC5C,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,IAAI;IAC9C,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;CAOtE;AAED;;GAEG;AACH,qBAAa,kBAAkB,CAAC,UAAU;IACxC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,aAAa,CAA2D;IAChF,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,cAAc,CAAC,CAA2B;IAClD,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,kBAAkB,CAAC,CAAyB;IAEpD;;OAEG;IACH,OAAO,CAAC,qBAAqB;gBAK3B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,UAAU,EAClC,SAAS,CAAC,EAAE,SAAS,EACrB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC,EAC7D,QAAQ,CAAC,EAAE,aAAa,EACxB,WAAW,CAAC,EAAE,oBAAoB,EAAE,EACpC,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,OAAO,EACpB,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACzC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EACnB,kBAAkB,CAAC,EAAE,sBAAsB;IAkB7C;;;OAGG;IACH,MAAM,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,aAAa,GAAG,kBAAkB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAyBvH;;;;OAIG;IACH,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,GAAG,IAAI;IAe/C;;;;;;;;;OASG;IACH,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;IAUjC;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK3B;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,CAAC,GAAG,IAAI;IAClD,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,CAAC,EAAE,GAAG,IAAI;IACpD,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;IAe3E;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY,EAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,YAAY,GAC1C,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC;IAahD;;;;;;OAMG;IACH,gBAAgB,CAAC,eAAe,EAAE,aAAa,EAC7C,QAAQ,EAAE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,EAC5C,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,KAAK,SAAS,EAClE,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,KAAK,aAAa,GACpE,kBAAkB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAkDrD;;;;OAIG;IAEH,QAAQ,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,aAAa,EACxD,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,EACzB,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,EACzD,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,aAAa,GAC3D,kBAAkB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAErD,QAAQ,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,aAAa,EACxD,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,EACzD,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,aAAa,EAC5D,KAAK,EAAE,MAAM,GACZ,kBAAkB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAErD,QAAQ,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,aAAa,EACxD,UAAU,EAAE;QAAE,UAAU,EAAE,MAAM,WAAW,CAAA;KAAE,EAC7C,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,EACzD,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,aAAa,EAC5D,KAAK,CAAC,EAAE,MAAM,GACb,kBAAkB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IA2ErD;;OAEG;IACH,OAAO,CAAC,WAAW;IAoDnB;;;;;;OAMG;IACH,iBAAiB,CAAC,eAAe,EAAE,aAAa,EAC9C,QAAQ,EAAE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,EAC5C,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,KAAK,SAAS,EAClE,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,KAAK,aAAa,GACpE,kBAAkB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAiDrD;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,aAAa,EAC7B,UAAU,EAAE;QAAE,UAAU,EAAE,MAAM,WAAW,CAAA;KAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EACzE,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,EACzD,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,aAAa,EAC5D,KAAK,CAAC,EAAE,MAAM,GACb,kBAAkB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IA0DrD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA+E7B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAmDhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyD3B;;OAEG;IACH,cAAc,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC;IAwB9G;;OAEG;IACG,GAAG,CAAC,OAAO,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAgCjG;;OAEG;IACG,GAAG,CAAC,OAAO,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAgCjG;;OAEG;IACG,GAAG,CAAC,OAAO,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAgCjG;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAkB9B;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAkBhC;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,CAAC;IAyC/D;;OAEG;YACW,kBAAkB;IAyChC;;OAEG;YACW,qBAAqB;IAoKnC;;;OAGG;YACW,qBAAqB;IAkMnC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAsBlC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA+BnC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4C7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAkBpC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAKnE;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAI5E;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAQnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,OAAO,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/D,IAAI,EAAE,MAAM,GACX,aAAa,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IA6C/D;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC;IA4IlC;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,UAAU,CAAC;IA2HzE;;;;;OAKG;IACH,OAAO,CAAC,gCAAgC;IAwCxC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAyCjC;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IA2DnC;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAkHpC;;;;OAIG;IACH,OAAO,CAAC,iCAAiC;IA6CzC;;;OAGG;IACH,cAAc,IAAI,GAAG;IAuIrB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAgE3B;;;OAGG;IACH;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,wBAAwB;IA0FhC;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAoChC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;;OAGG;IACH,OAAO,CAAC,4CAA4C;IAqFpD,OAAO,CAAC,8BAA8B;IAatC;;OAEG;IACH,OAAO,CAAC,gCAAgC;IA8BxC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAsEnC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IA+BtC;;OAEG;IACH,OAAO,CAAC,UAAU;IAudlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyOxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAmHhC;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IAiGtC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAkEpC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiE7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgF3B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,UAAU,CAAC,KAAK,SAAS,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,EAC7D,IAAI,GAAE,KAAwB,GAC7B,QAAQ,CAAC,KAAK,SAAS,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,KAAK,SAAS,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,EAAE,GAAG,wBAAwB,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;IAyCzK;;;OAGG;IACH,OAAO,CAAC,qBAAqB;CAuB9B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,KAAK;IACrC,QAAQ,CAAC,kBAAkB,EAAE,IAAI,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;CAC5B;AAUD;;;;GAIG;AACH,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,YAAY,EAAE,IAAI,CAAA;CAAE,GACtD,KAAK,GACL,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,GAC1B,KAAK,GACL,CAAC,SAAS;IAAE,OAAO,IAAI,MAAM,CAAC,CAAA;CAAE,GAChC,CAAC,SAAS,CAAC,GACX,IAAI,GACJ,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GACrD,IAAI,GACJ,KAAK,GACL,KAAK,CAAC;AAEV;;GAEG;AACH,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,OAAO,IAAI,MAAM,CAAA;CAAE,GACrD,IAAI,GACJ,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAA;CAAE,GACpD,IAAI,GACJ,CAAC,SAAS;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAChC,IAAI,GACJ,CAAC,SAAS;IAAE,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,GAAG,GAAG,CAAA;CAAE,GAC1C,IAAI,GACJ,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3C,IAAI,GACJ,CAAC,SAAS;IAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GACvC,IAAI,GACJ,KAAK,CAAC;AAEV;;GAEG;AACH,KAAK,WAAW,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,GACjD,IAAI,GACJ,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,GAC/B,IAAI,GACJ,KAAK,CAAC;AAEV;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAC9D,CAAC,GACD,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAC9B,CAAC,GACD,CAAC,SAAS,gBAAgB,CAAC,GAAG,CAAC,GAC/B,CAAC,GACD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACxB,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAC1B,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GACjC,CAAC,GACD,CAAC,SAAS,MAAM,GAChB,WAAW,CAAC,CAAC,CAAC,SAAS,IAAI,GAC3B,CAAC,GACD;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC1C,CAAC,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;KACvC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,MAAM,KAAK,CAAC,GACxD,gBAAgB,CAAC,KAAK,CAAC,EAAE,GACzB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,qBAAa,qBAAqB,CAAC,KAAK,GAAG,GAAG;IAC5C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAc;IACxC,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,cAAc,CAAC,CAA2B;IAElD,OAAO,CAAC,cAAc,CAAmB;IAEzC,OAAO,CAAC,WAAW,CAAS;gBAG1B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,EAAE,OAAO,EACpB,iBAAiB,CAAC,EAAE,WAAW,EAC/B,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACzC,cAAc,CAAC,EAAE,cAAc,EAAE,EACjC,WAAW,CAAC,EAAE,MAAM;IAqBtB;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAItB;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,oBAAoB,IAAI,WAAW,GAAG,SAAS;IAI/C;;;OAGG;IACH,mBAAmB,IAAI,GAAG;CA+H3B;AAED;;GAEG;AACH,qBAAa,sBAAsB,CAAC,KAAK,GAAG,GAAG;IAC7C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAc;IACxC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,CAAqB;IACtC,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,aAAa,CAA2D;IAChF,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,eAAe,CAAC,CAAkC;IAC1D,OAAO,CAAC,iBAAiB,CAAC,CAAsB;IAChD,OAAO,CAAC,cAAc,CAAC,CAA2B;IAElD,OAAO,CAAC,cAAc,CAAmB;IAGzC,OAAO,CAAC,eAAe,CAAC,CAAM;IAE9B,OAAO,CAAC,qBAAqB,CAAC,CAAkB;gBAG9C,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,iBAAiB,CAAC,EAAE,WAAW,EAC/B,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACzC,cAAc,CAAC,EAAE,cAAc,EAAE;IAuBnC;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,UAAU,GAAG,sBAAsB,CAAC,UAAU,CAAC;IAoB7F;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,UAAU,GAAG,sBAAsB,CAAC,UAAU,CAAC;IAMrG;;;OAGG;IACH,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,GAAG,IAAI;IAYlD;;OAEG;IACH,OAAO,CAAC,cAAc;IAkGtB;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK3B;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,IAAI;IAC9C,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,GAAG,IAAI;IAChD,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI;IAQvE;;OAEG;IACH;;;OAGG;IACH,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,UAAU,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC;IASnF;;;OAGG;IACH,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,UAAU,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC;IASnF;;;OAGG;IACH,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,UAAU,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC;IASnF;;;OAGG;IACH,KAAK,IAAI,WAAW,CAAC,MAAM,CAAC;IAK5B;;OAEG;IACH,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;IASrD;;OAEG;IACH,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;IASrD;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC;IAU9C;;;OAGG;IACH,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC;IAS7D;;OAEG;IACH,oBAAoB,IAAI,WAAW,GAAG,SAAS;IAI/C;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,uBAAuB,IAAI,aAAa,EAAE,GAAG,SAAS;IAItD;;OAEG;IACH,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS;IAIzD;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAI7B;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,kBAAkB,IAAI,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS;IAIjE;;OAEG;IACH,oBAAoB,IAAI,QAAQ,GAAG,QAAQ,GAAG,SAAS;IAIvD;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAoD7B;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAiCpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyCzB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAkE9B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA6D1B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;CAmVjM"}
|
|
@@ -1044,14 +1044,30 @@ class SelectQueryBuilder {
|
|
|
1044
1044
|
allParams: [],
|
|
1045
1045
|
executor: this.executor,
|
|
1046
1046
|
};
|
|
1047
|
-
|
|
1048
|
-
const { sql, params } = this.buildCountQuery(context);
|
|
1049
|
-
// Execute
|
|
1047
|
+
const { sql, params } = this.buildAggregateQuery(context, 'count');
|
|
1050
1048
|
const result = this.executor
|
|
1051
1049
|
? await this.executor.query(sql, params)
|
|
1052
1050
|
: await this.client.query(sql, params);
|
|
1053
1051
|
return parseInt(result.rows[0]?.count ?? '0', 10);
|
|
1054
1052
|
}
|
|
1053
|
+
/**
|
|
1054
|
+
* Check if any rows match the query
|
|
1055
|
+
* More efficient than count() > 0 as it can stop after finding one row
|
|
1056
|
+
*/
|
|
1057
|
+
async exists() {
|
|
1058
|
+
const context = {
|
|
1059
|
+
ctes: new Map(),
|
|
1060
|
+
cteCounter: 0,
|
|
1061
|
+
paramCounter: 1,
|
|
1062
|
+
allParams: [],
|
|
1063
|
+
executor: this.executor,
|
|
1064
|
+
};
|
|
1065
|
+
const { sql, params } = this.buildAggregateQuery(context, 'exists');
|
|
1066
|
+
const result = this.executor
|
|
1067
|
+
? await this.executor.query(sql, params)
|
|
1068
|
+
: await this.client.query(sql, params);
|
|
1069
|
+
return result.rows[0]?.exists === true;
|
|
1070
|
+
}
|
|
1055
1071
|
/**
|
|
1056
1072
|
* Execute query and return results as array
|
|
1057
1073
|
* Collection results are automatically resolved to arrays
|
|
@@ -1712,14 +1728,63 @@ class SelectQueryBuilder {
|
|
|
1712
1728
|
if (!queryBuilder.whereCond) {
|
|
1713
1729
|
throw new Error('Delete requires a WHERE condition. Use where() before delete().');
|
|
1714
1730
|
}
|
|
1731
|
+
// Detect navigation property joins from WHERE condition
|
|
1732
|
+
const whereJoins = [];
|
|
1733
|
+
queryBuilder.detectAndAddJoinsFromCondition(queryBuilder.whereCond, whereJoins);
|
|
1715
1734
|
const condBuilder = new conditions_1.ConditionBuilder();
|
|
1716
1735
|
const { sql: whereSql, params: whereParams } = condBuilder.build(queryBuilder.whereCond, 1);
|
|
1717
|
-
|
|
1736
|
+
const qualifiedTableName = queryBuilder.getQualifiedTableName(queryBuilder.schema.name, queryBuilder.schema.schema);
|
|
1737
|
+
// Build USING clause for navigation properties (PostgreSQL syntax for DELETE with JOINs)
|
|
1738
|
+
let usingClause = '';
|
|
1739
|
+
let joinConditions = [];
|
|
1740
|
+
for (const join of whereJoins) {
|
|
1741
|
+
const sourceTable = join.sourceAlias || queryBuilder.schema.name;
|
|
1742
|
+
const joinTableName = queryBuilder.getQualifiedTableName(join.targetTable, join.targetSchema);
|
|
1743
|
+
if (usingClause) {
|
|
1744
|
+
usingClause += `, ${joinTableName} AS "${join.alias}"`;
|
|
1745
|
+
}
|
|
1746
|
+
else {
|
|
1747
|
+
usingClause = `USING ${joinTableName} AS "${join.alias}"`;
|
|
1748
|
+
}
|
|
1749
|
+
// Build ON conditions as part of WHERE clause
|
|
1750
|
+
for (let i = 0; i < join.foreignKeys.length; i++) {
|
|
1751
|
+
const fk = join.foreignKeys[i];
|
|
1752
|
+
const match = join.matches[i];
|
|
1753
|
+
joinConditions.push(`"${sourceTable}"."${fk}" = "${join.alias}"."${match}"`);
|
|
1754
|
+
}
|
|
1755
|
+
}
|
|
1756
|
+
// Combine join conditions with the original WHERE clause
|
|
1757
|
+
const fullWhereClause = joinConditions.length > 0
|
|
1758
|
+
? `${joinConditions.join(' AND ')} AND ${whereSql}`
|
|
1759
|
+
: whereSql;
|
|
1760
|
+
// Check if RETURNING uses navigation properties
|
|
1761
|
+
const navigationInfo = returning && returning !== 'count' && returning !== true
|
|
1762
|
+
? queryBuilder.detectNavigationInReturning(returning)
|
|
1763
|
+
: null;
|
|
1764
|
+
if (navigationInfo) {
|
|
1765
|
+
// Use CTE-based approach for navigation properties in RETURNING
|
|
1766
|
+
let deleteSql = `DELETE FROM ${qualifiedTableName}`;
|
|
1767
|
+
if (usingClause) {
|
|
1768
|
+
deleteSql += ` ${usingClause}`;
|
|
1769
|
+
}
|
|
1770
|
+
deleteSql += ` WHERE ${fullWhereClause}`;
|
|
1771
|
+
const { sql, params } = queryBuilder.buildReturningWithNavigation(deleteSql, whereParams, returning, navigationInfo);
|
|
1772
|
+
const result = queryBuilder.executor
|
|
1773
|
+
? await queryBuilder.executor.query(sql, params)
|
|
1774
|
+
: await queryBuilder.client.query(sql, params);
|
|
1775
|
+
return queryBuilder.mapReturningResultsWithNavigation(result.rows, returning, navigationInfo.navigationFields);
|
|
1776
|
+
}
|
|
1777
|
+
// Standard RETURNING (no navigation properties)
|
|
1778
|
+
// Qualify columns with table name when using USING clause to avoid ambiguity
|
|
1779
|
+
const hasJoins = whereJoins.length > 0;
|
|
1718
1780
|
const returningClause = returning !== 'count'
|
|
1719
|
-
? queryBuilder.
|
|
1781
|
+
? queryBuilder.buildUpdateDeleteReturningClause(returning, hasJoins)
|
|
1720
1782
|
: undefined;
|
|
1721
|
-
|
|
1722
|
-
|
|
1783
|
+
let sql = `DELETE FROM ${qualifiedTableName}`;
|
|
1784
|
+
if (usingClause) {
|
|
1785
|
+
sql += ` ${usingClause}`;
|
|
1786
|
+
}
|
|
1787
|
+
sql += ` WHERE ${fullWhereClause}`;
|
|
1723
1788
|
if (returningClause) {
|
|
1724
1789
|
sql += ` RETURNING ${returningClause.sql}`;
|
|
1725
1790
|
}
|
|
@@ -1804,11 +1869,24 @@ class SelectQueryBuilder {
|
|
|
1804
1869
|
const condBuilder = new conditions_1.ConditionBuilder();
|
|
1805
1870
|
const { sql: whereSql, params: whereParams } = condBuilder.build(queryBuilder.whereCond, paramIndex);
|
|
1806
1871
|
values.push(...whereParams);
|
|
1807
|
-
|
|
1872
|
+
const qualifiedTableName = queryBuilder.getQualifiedTableName(queryBuilder.schema.name, queryBuilder.schema.schema);
|
|
1873
|
+
// Check if RETURNING uses navigation properties
|
|
1874
|
+
const navigationInfo = returning && returning !== 'count' && returning !== true
|
|
1875
|
+
? queryBuilder.detectNavigationInReturning(returning)
|
|
1876
|
+
: null;
|
|
1877
|
+
if (navigationInfo) {
|
|
1878
|
+
// Use CTE-based approach for navigation properties in RETURNING
|
|
1879
|
+
const updateSql = `UPDATE ${qualifiedTableName} SET ${setClauses.join(', ')} WHERE ${whereSql}`;
|
|
1880
|
+
const { sql, params } = queryBuilder.buildReturningWithNavigation(updateSql, values, returning, navigationInfo);
|
|
1881
|
+
const result = queryBuilder.executor
|
|
1882
|
+
? await queryBuilder.executor.query(sql, params)
|
|
1883
|
+
: await queryBuilder.client.query(sql, params);
|
|
1884
|
+
return queryBuilder.mapReturningResultsWithNavigation(result.rows, returning, navigationInfo.navigationFields);
|
|
1885
|
+
}
|
|
1886
|
+
// Standard RETURNING (no navigation properties)
|
|
1808
1887
|
const returningClause = returning !== 'count'
|
|
1809
|
-
? queryBuilder.
|
|
1888
|
+
? queryBuilder.buildUpdateDeleteReturningClause(returning)
|
|
1810
1889
|
: undefined;
|
|
1811
|
-
const qualifiedTableName = queryBuilder.getQualifiedTableName(queryBuilder.schema.name, queryBuilder.schema.schema);
|
|
1812
1890
|
let sql = `UPDATE ${qualifiedTableName} SET ${setClauses.join(', ')} WHERE ${whereSql}`;
|
|
1813
1891
|
if (returningClause) {
|
|
1814
1892
|
sql += ` RETURNING ${returningClause.sql}`;
|
|
@@ -1848,16 +1926,19 @@ class SelectQueryBuilder {
|
|
|
1848
1926
|
}
|
|
1849
1927
|
/**
|
|
1850
1928
|
* Build RETURNING clause for delete/update operations
|
|
1929
|
+
* @param returning - The returning configuration
|
|
1930
|
+
* @param qualifyWithTable - If true, qualify column names with the main table name (needed for DELETE with USING)
|
|
1851
1931
|
* @internal
|
|
1852
1932
|
*/
|
|
1853
|
-
|
|
1933
|
+
buildUpdateDeleteReturningClause(returning, qualifyWithTable = false) {
|
|
1854
1934
|
if (returning === undefined) {
|
|
1855
1935
|
return null;
|
|
1856
1936
|
}
|
|
1937
|
+
const tablePrefix = qualifyWithTable ? `"${this.schema.name}".` : '';
|
|
1857
1938
|
if (returning === true) {
|
|
1858
1939
|
// Return all columns
|
|
1859
1940
|
const columns = Object.values(this.schema.columns).map(col => col.build().name);
|
|
1860
|
-
const sql = columns.map(name =>
|
|
1941
|
+
const sql = columns.map(name => `${tablePrefix}"${name}"`).join(', ');
|
|
1861
1942
|
return { sql, columns };
|
|
1862
1943
|
}
|
|
1863
1944
|
// Selector function - extract selected columns
|
|
@@ -1871,7 +1952,7 @@ class SelectQueryBuilder {
|
|
|
1871
1952
|
if (field && typeof field === 'object' && '__dbColumnName' in field) {
|
|
1872
1953
|
const dbName = field.__dbColumnName;
|
|
1873
1954
|
columns.push(alias);
|
|
1874
|
-
sqlParts.push(
|
|
1955
|
+
sqlParts.push(`${tablePrefix}"${dbName}" AS "${alias}"`);
|
|
1875
1956
|
}
|
|
1876
1957
|
}
|
|
1877
1958
|
return { sql: sqlParts.join(', '), columns };
|
|
@@ -1918,6 +1999,197 @@ class SelectQueryBuilder {
|
|
|
1918
1999
|
return mapped;
|
|
1919
2000
|
});
|
|
1920
2001
|
}
|
|
2002
|
+
/**
|
|
2003
|
+
* Detect if a RETURNING selector uses navigation properties
|
|
2004
|
+
* Returns navigation info if found, null otherwise
|
|
2005
|
+
* @internal
|
|
2006
|
+
*/
|
|
2007
|
+
detectNavigationInReturning(returning) {
|
|
2008
|
+
if (returning === true) {
|
|
2009
|
+
// Full entity returning doesn't need navigation support
|
|
2010
|
+
return null;
|
|
2011
|
+
}
|
|
2012
|
+
// Analyze the returning selector
|
|
2013
|
+
const mockRow = this._createMockRow();
|
|
2014
|
+
const selectedMock = this.selector(mockRow);
|
|
2015
|
+
const selection = returning(selectedMock);
|
|
2016
|
+
if (typeof selection !== 'object' || selection === null) {
|
|
2017
|
+
return null;
|
|
2018
|
+
}
|
|
2019
|
+
const navigationFields = new Map();
|
|
2020
|
+
const allTableAliases = new Set();
|
|
2021
|
+
// Check each field in the selection for navigation properties
|
|
2022
|
+
for (const [alias, field] of Object.entries(selection)) {
|
|
2023
|
+
if (field && typeof field === 'object' && '__dbColumnName' in field && '__tableAlias' in field) {
|
|
2024
|
+
const tableAlias = field.__tableAlias;
|
|
2025
|
+
if (tableAlias && tableAlias !== this.schema.name) {
|
|
2026
|
+
allTableAliases.add(tableAlias);
|
|
2027
|
+
navigationFields.set(alias, {
|
|
2028
|
+
tableAlias,
|
|
2029
|
+
dbColumnName: field.__dbColumnName,
|
|
2030
|
+
schemaTable: field.__sourceTable,
|
|
2031
|
+
});
|
|
2032
|
+
}
|
|
2033
|
+
// Also collect intermediate navigation aliases for multi-level navigation
|
|
2034
|
+
if ('__navigationAliases' in field && Array.isArray(field.__navigationAliases)) {
|
|
2035
|
+
for (const navAlias of field.__navigationAliases) {
|
|
2036
|
+
if (navAlias && navAlias !== this.schema.name) {
|
|
2037
|
+
allTableAliases.add(navAlias);
|
|
2038
|
+
}
|
|
2039
|
+
}
|
|
2040
|
+
}
|
|
2041
|
+
}
|
|
2042
|
+
}
|
|
2043
|
+
if (navigationFields.size === 0) {
|
|
2044
|
+
return null;
|
|
2045
|
+
}
|
|
2046
|
+
// Resolve navigation joins
|
|
2047
|
+
const joins = [];
|
|
2048
|
+
this.resolveJoinsForTableAliases(allTableAliases, joins);
|
|
2049
|
+
return { hasNavigation: true, selection, joins, navigationFields };
|
|
2050
|
+
}
|
|
2051
|
+
/**
|
|
2052
|
+
* Build RETURNING clause with navigation property support using CTE
|
|
2053
|
+
* @internal
|
|
2054
|
+
*/
|
|
2055
|
+
buildReturningWithNavigation(mutationSql, mutationParams, returning, navigationInfo) {
|
|
2056
|
+
// Build the CTE wrapping the mutation
|
|
2057
|
+
// First, collect all columns needed from the main table in the mutation's RETURNING
|
|
2058
|
+
const mainTableColumns = new Set();
|
|
2059
|
+
const selectParts = [];
|
|
2060
|
+
const mockRow = this._createMockRow();
|
|
2061
|
+
const selectedMock = this.selector(mockRow);
|
|
2062
|
+
const selection = returning(selectedMock);
|
|
2063
|
+
// For each selected field, determine if it's from main table or navigation
|
|
2064
|
+
for (const [alias, field] of Object.entries(selection)) {
|
|
2065
|
+
if (field && typeof field === 'object' && '__dbColumnName' in field) {
|
|
2066
|
+
const tableAlias = field.__tableAlias;
|
|
2067
|
+
const dbColumnName = field.__dbColumnName;
|
|
2068
|
+
if (!tableAlias || tableAlias === this.schema.name) {
|
|
2069
|
+
// Main table column - add to CTE RETURNING and final SELECT
|
|
2070
|
+
mainTableColumns.add(dbColumnName);
|
|
2071
|
+
selectParts.push(`"__mutation__"."${dbColumnName}" AS "${alias}"`);
|
|
2072
|
+
}
|
|
2073
|
+
else {
|
|
2074
|
+
// Navigation column - will be joined in outer query
|
|
2075
|
+
selectParts.push(`"${tableAlias}"."${dbColumnName}" AS "${alias}"`);
|
|
2076
|
+
}
|
|
2077
|
+
}
|
|
2078
|
+
}
|
|
2079
|
+
// We also need to include foreign keys for joins that aren't already in the selection
|
|
2080
|
+
for (const join of navigationInfo.joins) {
|
|
2081
|
+
for (const fk of join.foreignKeys) {
|
|
2082
|
+
// Find the db column name for this foreign key
|
|
2083
|
+
const colEntry = Object.entries(this.schema.columns).find(([propName, _]) => propName === fk);
|
|
2084
|
+
if (colEntry) {
|
|
2085
|
+
const config = colEntry[1].build();
|
|
2086
|
+
const dbColName = config.name;
|
|
2087
|
+
mainTableColumns.add(dbColName);
|
|
2088
|
+
}
|
|
2089
|
+
else {
|
|
2090
|
+
// FK might be the db column name directly
|
|
2091
|
+
mainTableColumns.add(fk);
|
|
2092
|
+
}
|
|
2093
|
+
}
|
|
2094
|
+
}
|
|
2095
|
+
// Also include foreign keys from intermediate joins (join to another join)
|
|
2096
|
+
for (const join of navigationInfo.joins) {
|
|
2097
|
+
if (join.sourceAlias && join.sourceAlias !== this.schema.name) {
|
|
2098
|
+
// This join comes from another join, we need to include those FK columns too
|
|
2099
|
+
// Find the source join
|
|
2100
|
+
const sourceJoin = navigationInfo.joins.find(j => j.alias === join.sourceAlias);
|
|
2101
|
+
if (sourceJoin) {
|
|
2102
|
+
// We need the source table's FK columns in our RETURNING if the source is the main table
|
|
2103
|
+
// But if source is itself a navigation, we handle it in the outer SELECT
|
|
2104
|
+
}
|
|
2105
|
+
}
|
|
2106
|
+
}
|
|
2107
|
+
// Build RETURNING clause for CTE with all needed columns from main table
|
|
2108
|
+
const cteReturningCols = Array.from(mainTableColumns).map(col => `"${col}"`).join(', ');
|
|
2109
|
+
// Add RETURNING to the mutation SQL for CTE
|
|
2110
|
+
const mutationWithReturning = `${mutationSql} RETURNING ${cteReturningCols}`;
|
|
2111
|
+
// Build the JOINs for the outer SELECT
|
|
2112
|
+
const joinClauses = [];
|
|
2113
|
+
for (const join of navigationInfo.joins) {
|
|
2114
|
+
const sourceAlias = join.sourceAlias === this.schema.name ? '__mutation__' : `"${join.sourceAlias}"`;
|
|
2115
|
+
const qualifiedJoinTable = this.getQualifiedTableName(join.targetTable, join.targetSchema);
|
|
2116
|
+
// Find the db column names for the foreign keys
|
|
2117
|
+
const joinConditions = [];
|
|
2118
|
+
for (let i = 0; i < join.foreignKeys.length; i++) {
|
|
2119
|
+
const fk = join.foreignKeys[i];
|
|
2120
|
+
const match = join.matches[i] || 'id';
|
|
2121
|
+
// Convert property name to db column name for FK
|
|
2122
|
+
let fkDbCol = fk;
|
|
2123
|
+
const colEntry = Object.entries(this.schema.columns).find(([propName, _]) => propName === fk);
|
|
2124
|
+
if (colEntry) {
|
|
2125
|
+
const config = colEntry[1].build();
|
|
2126
|
+
fkDbCol = config.name;
|
|
2127
|
+
}
|
|
2128
|
+
// For source that's the mutation CTE
|
|
2129
|
+
if (join.sourceAlias === this.schema.name || !join.sourceAlias) {
|
|
2130
|
+
joinConditions.push(`"__mutation__"."${fkDbCol}" = "${join.alias}"."${match}"`);
|
|
2131
|
+
}
|
|
2132
|
+
else {
|
|
2133
|
+
// Source is another joined table
|
|
2134
|
+
joinConditions.push(`"${join.sourceAlias}"."${fk}" = "${join.alias}"."${match}"`);
|
|
2135
|
+
}
|
|
2136
|
+
}
|
|
2137
|
+
const joinType = join.isMandatory ? 'INNER JOIN' : 'LEFT JOIN';
|
|
2138
|
+
joinClauses.push(`${joinType} ${qualifiedJoinTable} AS "${join.alias}" ON ${joinConditions.join(' AND ')}`);
|
|
2139
|
+
}
|
|
2140
|
+
// Build the final CTE query
|
|
2141
|
+
const sql = `WITH "__mutation__" AS (
|
|
2142
|
+
${mutationWithReturning}
|
|
2143
|
+
)
|
|
2144
|
+
SELECT ${selectParts.join(', ')}
|
|
2145
|
+
FROM "__mutation__"
|
|
2146
|
+
${joinClauses.join('\n')}`;
|
|
2147
|
+
return { sql, params: mutationParams };
|
|
2148
|
+
}
|
|
2149
|
+
/**
|
|
2150
|
+
* Map RETURNING results with navigation properties
|
|
2151
|
+
* Applies type mappers based on source table schemas
|
|
2152
|
+
* @internal
|
|
2153
|
+
*/
|
|
2154
|
+
mapReturningResultsWithNavigation(rows, returning, navigationFields) {
|
|
2155
|
+
return rows.map(row => {
|
|
2156
|
+
const mapped = {};
|
|
2157
|
+
for (const [key, value] of Object.entries(row)) {
|
|
2158
|
+
// Check if this is a navigation field
|
|
2159
|
+
const navInfo = navigationFields.get(key);
|
|
2160
|
+
if (navInfo && navInfo.schemaTable && this.schemaRegistry) {
|
|
2161
|
+
// Try to get mapper from the navigation target's schema
|
|
2162
|
+
const targetSchema = this.schemaRegistry.get(navInfo.schemaTable);
|
|
2163
|
+
if (targetSchema) {
|
|
2164
|
+
// Find the column and its mapper
|
|
2165
|
+
const colEntry = Object.entries(targetSchema.columns).find(([_, col]) => {
|
|
2166
|
+
const config = col.build();
|
|
2167
|
+
return config.name === navInfo.dbColumnName;
|
|
2168
|
+
});
|
|
2169
|
+
if (colEntry) {
|
|
2170
|
+
const config = colEntry[1].build();
|
|
2171
|
+
mapped[key] = config.mapper ? config.mapper.fromDriver(value) : value;
|
|
2172
|
+
continue;
|
|
2173
|
+
}
|
|
2174
|
+
}
|
|
2175
|
+
}
|
|
2176
|
+
// Try to find column by alias or name in main schema
|
|
2177
|
+
const colEntry = Object.entries(this.schema.columns).find(([propName, col]) => {
|
|
2178
|
+
const config = col.build();
|
|
2179
|
+
return propName === key || config.name === key;
|
|
2180
|
+
});
|
|
2181
|
+
if (colEntry) {
|
|
2182
|
+
const [, col] = colEntry;
|
|
2183
|
+
const config = col.build();
|
|
2184
|
+
mapped[key] = config.mapper ? config.mapper.fromDriver(value) : value;
|
|
2185
|
+
}
|
|
2186
|
+
else {
|
|
2187
|
+
mapped[key] = value;
|
|
2188
|
+
}
|
|
2189
|
+
}
|
|
2190
|
+
return mapped;
|
|
2191
|
+
});
|
|
2192
|
+
}
|
|
1921
2193
|
/**
|
|
1922
2194
|
* Create mock row for analysis
|
|
1923
2195
|
* @internal
|
|
@@ -2485,6 +2757,15 @@ class SelectQueryBuilder {
|
|
|
2485
2757
|
allTableAliases.add(tableAlias);
|
|
2486
2758
|
}
|
|
2487
2759
|
}
|
|
2760
|
+
// Also collect intermediate navigation aliases for multi-level navigation (e.g., task.level.name)
|
|
2761
|
+
// The field ref may have __navigationAliases containing all aliases in the path
|
|
2762
|
+
if ('__navigationAliases' in fieldRef && Array.isArray(fieldRef.__navigationAliases)) {
|
|
2763
|
+
for (const navAlias of fieldRef.__navigationAliases) {
|
|
2764
|
+
if (navAlias && navAlias !== this.schema.name) {
|
|
2765
|
+
allTableAliases.add(navAlias);
|
|
2766
|
+
}
|
|
2767
|
+
}
|
|
2768
|
+
}
|
|
2488
2769
|
}
|
|
2489
2770
|
// Resolve all joins through the schema graph
|
|
2490
2771
|
this.resolveJoinsForTableAliases(allTableAliases, joins);
|
|
@@ -3509,9 +3790,12 @@ class SelectQueryBuilder {
|
|
|
3509
3790
|
};
|
|
3510
3791
|
}
|
|
3511
3792
|
/**
|
|
3512
|
-
* Build count
|
|
3793
|
+
* Build aggregate query (count or exists)
|
|
3513
3794
|
*/
|
|
3514
|
-
|
|
3795
|
+
buildAggregateQuery(context, type) {
|
|
3796
|
+
// Detect navigation property joins from WHERE condition
|
|
3797
|
+
const joins = [];
|
|
3798
|
+
this.detectAndAddJoinsFromCondition(this.whereCond, joins);
|
|
3515
3799
|
// Build WHERE clause
|
|
3516
3800
|
let whereClause = '';
|
|
3517
3801
|
if (this.whereCond) {
|
|
@@ -3525,7 +3809,8 @@ class SelectQueryBuilder {
|
|
|
3525
3809
|
}
|
|
3526
3810
|
}
|
|
3527
3811
|
// Build FROM clause with JOINs
|
|
3528
|
-
|
|
3812
|
+
const qualifiedTableName = this.getQualifiedTableName(this.schema.name, this.schema.schema);
|
|
3813
|
+
let fromClause = `FROM ${qualifiedTableName}`;
|
|
3529
3814
|
// Add manual JOINs
|
|
3530
3815
|
for (const manualJoin of this.manualJoins) {
|
|
3531
3816
|
const joinTypeStr = manualJoin.type === 'INNER' ? 'INNER JOIN' : 'LEFT JOIN';
|
|
@@ -3550,7 +3835,30 @@ class SelectQueryBuilder {
|
|
|
3550
3835
|
fromClause += `\n${joinTypeStr} "${manualJoin.table}" AS "${manualJoin.alias}" ON ${condSql}`;
|
|
3551
3836
|
}
|
|
3552
3837
|
}
|
|
3553
|
-
|
|
3838
|
+
// Add JOINs for navigation properties referenced in WHERE clause
|
|
3839
|
+
for (const join of joins) {
|
|
3840
|
+
const joinType = join.isMandatory ? 'INNER JOIN' : 'LEFT JOIN';
|
|
3841
|
+
// Build ON clause for the join
|
|
3842
|
+
// For multi-level navigation, use the sourceAlias (the intermediate table)
|
|
3843
|
+
// For direct navigation, use the main table name
|
|
3844
|
+
const sourceTable = join.sourceAlias || this.schema.name;
|
|
3845
|
+
const onConditions = [];
|
|
3846
|
+
for (let i = 0; i < join.foreignKeys.length; i++) {
|
|
3847
|
+
const fk = join.foreignKeys[i];
|
|
3848
|
+
const match = join.matches[i];
|
|
3849
|
+
onConditions.push(`"${sourceTable}"."${fk}" = "${join.alias}"."${match}"`);
|
|
3850
|
+
}
|
|
3851
|
+
// Use schema-qualified table name if schema is specified
|
|
3852
|
+
const joinTableName = this.getQualifiedTableName(join.targetTable, join.targetSchema);
|
|
3853
|
+
fromClause += `\n${joinType} ${joinTableName} AS "${join.alias}" ON ${onConditions.join(' AND ')}`;
|
|
3854
|
+
}
|
|
3855
|
+
// Build SELECT clause based on type
|
|
3856
|
+
const selectClause = type === 'count'
|
|
3857
|
+
? 'SELECT COUNT(*) as count'
|
|
3858
|
+
: 'SELECT EXISTS(SELECT 1';
|
|
3859
|
+
const sql = type === 'count'
|
|
3860
|
+
? `${selectClause}\n${fromClause}\n${whereClause}`.trim()
|
|
3861
|
+
: `${selectClause}\n${fromClause}\n${whereClause})`.trim();
|
|
3554
3862
|
return {
|
|
3555
3863
|
sql,
|
|
3556
3864
|
params: context.allParams,
|
|
@@ -3716,6 +4024,9 @@ class ReferenceQueryBuilder {
|
|
|
3716
4024
|
}
|
|
3717
4025
|
}
|
|
3718
4026
|
const sourceTable = this.targetTable; // Actual table name for schema lookup
|
|
4027
|
+
// Collect all navigation aliases from the path leading to this reference
|
|
4028
|
+
// This is needed for WHERE conditions that use multi-level navigation (e.g., task.level.name)
|
|
4029
|
+
const navigationAliases = this.navigationPath.map(nav => nav.alias);
|
|
3719
4030
|
for (const [colName, dbColumnName] of columnNameMap) {
|
|
3720
4031
|
const mapper = columnMappers[colName];
|
|
3721
4032
|
Object.defineProperty(mock, colName, {
|
|
@@ -3728,6 +4039,7 @@ class ReferenceQueryBuilder {
|
|
|
3728
4039
|
__tableAlias: tableAlias, // Alias for SQL generation
|
|
3729
4040
|
__sourceTable: sourceTable, // Actual table name for mapper lookup
|
|
3730
4041
|
__mapper: mapper, // Include mapper for toDriver transformation in conditions
|
|
4042
|
+
__navigationAliases: navigationAliases, // All intermediate navigation aliases for JOIN resolution
|
|
3731
4043
|
};
|
|
3732
4044
|
}
|
|
3733
4045
|
return cached;
|
|
@@ -3891,7 +4203,10 @@ class CollectionQueryBuilder {
|
|
|
3891
4203
|
// Performance: Lazy-cache FieldRef objects
|
|
3892
4204
|
const fieldRefCache = {};
|
|
3893
4205
|
// Add columns - include tableAlias for unambiguous column references in WHERE clauses
|
|
3894
|
-
|
|
4206
|
+
// Use a special marker alias for the collection's own table that can be rewritten later
|
|
4207
|
+
// This allows distinguishing between outer table references and inner collection references
|
|
4208
|
+
// when both target the same table (e.g., post.user.posts where both are "posts" table)
|
|
4209
|
+
const tableAlias = `__collection_${this.targetTable}__`;
|
|
3895
4210
|
for (const [colName, dbColumnName] of columnNameMap) {
|
|
3896
4211
|
Object.defineProperty(mock, colName, {
|
|
3897
4212
|
get() {
|
|
@@ -4342,6 +4657,20 @@ class CollectionQueryBuilder {
|
|
|
4342
4657
|
// Determine strategy type - default to 'lateral' if not specified
|
|
4343
4658
|
const strategyType = context.collectionStrategy || 'lateral';
|
|
4344
4659
|
const strategy = collection_strategy_factory_1.CollectionStrategyFactory.getStrategy(strategyType);
|
|
4660
|
+
// For LATERAL strategy, reserve the counter early and register the table alias
|
|
4661
|
+
// This allows nested collections to reference this collection's aliased table
|
|
4662
|
+
let reservedCounter;
|
|
4663
|
+
if (strategyType === 'lateral') {
|
|
4664
|
+
reservedCounter = context.cteCounter++;
|
|
4665
|
+
const lateralAlias = `lateral_${reservedCounter}`;
|
|
4666
|
+
const innerTableAlias = `${lateralAlias}_${this.relationName}`;
|
|
4667
|
+
// Initialize the map if needed
|
|
4668
|
+
if (!context.lateralTableAliasMap) {
|
|
4669
|
+
context.lateralTableAliasMap = new Map();
|
|
4670
|
+
}
|
|
4671
|
+
// Register this collection's table alias for nested collections to reference
|
|
4672
|
+
context.lateralTableAliasMap.set(this.targetTable, innerTableAlias);
|
|
4673
|
+
}
|
|
4345
4674
|
// Build selected fields configuration (supports nested objects)
|
|
4346
4675
|
const selectedFieldConfigs = [];
|
|
4347
4676
|
const localParams = [];
|
|
@@ -4434,8 +4763,10 @@ class CollectionQueryBuilder {
|
|
|
4434
4763
|
const tableAlias = field.__tableAlias;
|
|
4435
4764
|
const fieldName = field.__fieldName; // Property name for mapper lookup
|
|
4436
4765
|
const sourceTable = field.__sourceTable; // Actual table name for schema lookup
|
|
4437
|
-
// If tableAlias differs from the target table, it's a navigation property reference
|
|
4438
|
-
|
|
4766
|
+
// If tableAlias differs from the target table (or its collection marker), it's a navigation property reference
|
|
4767
|
+
// The collection marker is `__collection_tableName__` and should be treated as the target table
|
|
4768
|
+
const collectionMarker = `__collection_${this.targetTable}__`;
|
|
4769
|
+
if (tableAlias && tableAlias !== this.targetTable && tableAlias !== collectionMarker) {
|
|
4439
4770
|
return { alias, expression: `"${tableAlias}"."${dbColumnName}"`, propertyName: fieldName, sourceTable };
|
|
4440
4771
|
}
|
|
4441
4772
|
return { alias, expression: `"${dbColumnName}"`, propertyName: fieldName };
|
|
@@ -4619,7 +4950,8 @@ class CollectionQueryBuilder {
|
|
|
4619
4950
|
aggregateField,
|
|
4620
4951
|
arrayField,
|
|
4621
4952
|
defaultValue,
|
|
4622
|
-
counter
|
|
4953
|
+
// Use the reserved counter for LATERAL strategy, otherwise increment as before
|
|
4954
|
+
counter: reservedCounter !== undefined ? reservedCounter : context.cteCounter++,
|
|
4623
4955
|
navigationJoins: allNavigationJoins.length > 0 ? allNavigationJoins : undefined,
|
|
4624
4956
|
selectorNavigationJoins: navigationJoins.length > 0 ? navigationJoins : undefined,
|
|
4625
4957
|
};
|