linkgress-orm 0.2.2 → 0.2.3
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/README.md +1 -0
- package/dist/entity/db-context.d.ts +15 -0
- package/dist/entity/db-context.d.ts.map +1 -1
- package/dist/entity/db-context.js +18 -0
- package/dist/entity/db-context.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/query/collection-strategy.interface.d.ts +18 -0
- package/dist/query/collection-strategy.interface.d.ts.map +1 -1
- package/dist/query/conditions.d.ts +45 -13
- package/dist/query/conditions.d.ts.map +1 -1
- package/dist/query/conditions.js +68 -4
- package/dist/query/conditions.js.map +1 -1
- package/dist/query/prepared-query.d.ts +66 -0
- package/dist/query/prepared-query.d.ts.map +1 -0
- package/dist/query/prepared-query.js +86 -0
- package/dist/query/prepared-query.js.map +1 -0
- package/dist/query/query-builder.d.ts +50 -0
- package/dist/query/query-builder.d.ts.map +1 -1
- package/dist/query/query-builder.js +289 -19
- 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 +19 -1
- package/dist/query/strategies/cte-collection-strategy.js.map +1 -1
- package/dist/query/strategies/temptable-collection-strategy.d.ts.map +1 -1
- package/dist/query/strategies/temptable-collection-strategy.js +21 -8
- package/dist/query/strategies/temptable-collection-strategy.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepared-query.js","sourceRoot":"","sources":["../../src/query/prepared-query.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAa,aAAa;IACxB;;;;;;;OAOG;IACH,YACmB,GAAW,EACX,cAAmC,EACnC,UAAkB,EAClB,MAAsB,EACtB,WAAuC,EACxC,IAAY;QALX,QAAG,GAAH,GAAG,CAAQ;QACX,mBAAc,GAAd,cAAc,CAAqB;QACnC,eAAU,GAAV,UAAU,CAAQ;QAClB,WAAM,GAAN,MAAM,CAAgB;QACtB,gBAAW,GAAX,WAAW,CAA4B;QACxC,SAAI,GAAJ,IAAI,CAAQ;IAC3B,CAAC;IAEJ;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,CAAC,MAAe;QAC3B,4DAA4D;QAC5D,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAChD,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,yDAAyD;YACzD,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,GAAI,MAA8B,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;CACF;AAzDD,sCAyDC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Condition, SqlFragment, FieldRef, UnwrapSelection } from './conditions';
|
|
2
|
+
import { PreparedQuery } from './prepared-query';
|
|
2
3
|
import { TableSchema } from '../schema/table-builder';
|
|
3
4
|
import type { QueryExecutor, CollectionStrategyType, OrderDirection, FluentDelete, FluentQueryUpdate } from '../entity/db-context';
|
|
4
5
|
import type { DatabaseClient } from '../database/database-client.interface';
|
|
@@ -59,6 +60,8 @@ export interface QueryContext {
|
|
|
59
60
|
allParams: any[];
|
|
60
61
|
collectionStrategy?: CollectionStrategyType;
|
|
61
62
|
executor?: QueryExecutor;
|
|
63
|
+
/** Map of placeholder names to their parameter indices (for prepared statements) */
|
|
64
|
+
placeholders?: Map<string, number>;
|
|
62
65
|
}
|
|
63
66
|
/**
|
|
64
67
|
* Query builder for a table
|
|
@@ -352,6 +355,44 @@ export declare class SelectQueryBuilder<TSelection> {
|
|
|
352
355
|
* Execute query and return first result or throw
|
|
353
356
|
*/
|
|
354
357
|
firstOrThrow(): Promise<ResolveCollectionResults<TSelection>>;
|
|
358
|
+
/**
|
|
359
|
+
* Create a prepared query for efficient reusable parameterized execution.
|
|
360
|
+
*
|
|
361
|
+
* Prepared queries build the SQL once and allow multiple executions
|
|
362
|
+
* with different parameter values. This is useful for:
|
|
363
|
+
* 1. Query building optimization - Build SQL once, execute many times
|
|
364
|
+
* 2. Type-safe placeholders - Named parameters with validation
|
|
365
|
+
* 3. Developer ergonomics - Cleaner API for reusable queries
|
|
366
|
+
*
|
|
367
|
+
* @param name - A name for the prepared query (for debugging)
|
|
368
|
+
* @returns PreparedQuery that can be executed multiple times with different parameters
|
|
369
|
+
*
|
|
370
|
+
* @example
|
|
371
|
+
* ```typescript
|
|
372
|
+
* // Create a prepared query with a placeholder
|
|
373
|
+
* const getUserById = db.users
|
|
374
|
+
* .where(u => eq(u.id, sql.placeholder('userId')))
|
|
375
|
+
* .prepare('getUserById');
|
|
376
|
+
*
|
|
377
|
+
* // Execute multiple times with different values
|
|
378
|
+
* const user1 = await getUserById.execute({ userId: 10 });
|
|
379
|
+
* const user2 = await getUserById.execute({ userId: 20 });
|
|
380
|
+
* ```
|
|
381
|
+
*
|
|
382
|
+
* @example
|
|
383
|
+
* ```typescript
|
|
384
|
+
* // Multiple placeholders
|
|
385
|
+
* const searchUsers = db.users
|
|
386
|
+
* .where(u => and(
|
|
387
|
+
* gt(u.age, sql.placeholder('minAge')),
|
|
388
|
+
* like(u.name, sql.placeholder('namePattern'))
|
|
389
|
+
* ))
|
|
390
|
+
* .prepare('searchUsers');
|
|
391
|
+
*
|
|
392
|
+
* await searchUsers.execute({ minAge: 18, namePattern: '%john%' });
|
|
393
|
+
* ```
|
|
394
|
+
*/
|
|
395
|
+
prepare<TParams extends Record<string, any> = Record<string, any>>(name: string): PreparedQuery<ResolveCollectionResults<TSelection>, TParams>;
|
|
355
396
|
/**
|
|
356
397
|
* Delete records matching the current WHERE condition
|
|
357
398
|
* Returns a fluent builder that can be awaited directly or chained with .returning()
|
|
@@ -481,6 +522,11 @@ export declare class SelectQueryBuilder<TSelection> {
|
|
|
481
522
|
* Transform collection items applying fromDriver mappers
|
|
482
523
|
*/
|
|
483
524
|
private transformCollectionItems;
|
|
525
|
+
/**
|
|
526
|
+
* Transform a nested collection value (from firstOrDefault or toList inside another collection)
|
|
527
|
+
* Applies custom mappers to fields within the nested collection result.
|
|
528
|
+
*/
|
|
529
|
+
private transformNestedCollectionValue;
|
|
484
530
|
/**
|
|
485
531
|
* Transform CTE aggregation items applying fromDriver mappers from selection metadata
|
|
486
532
|
*/
|
|
@@ -724,6 +770,10 @@ export declare class CollectionQueryBuilder<TItem = any> {
|
|
|
724
770
|
* Get target table schema
|
|
725
771
|
*/
|
|
726
772
|
getTargetTableSchema(): TableSchema | undefined;
|
|
773
|
+
/**
|
|
774
|
+
* Get target table name
|
|
775
|
+
*/
|
|
776
|
+
getTargetTable(): string;
|
|
727
777
|
/**
|
|
728
778
|
* Get selected field configs (for mapper lookup during transformation)
|
|
729
779
|
*/
|
|
@@ -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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"}
|
|
@@ -6,6 +6,7 @@ exports.getRelationEntriesForSchema = getRelationEntriesForSchema;
|
|
|
6
6
|
exports.getTargetSchemaForRelation = getTargetSchemaForRelation;
|
|
7
7
|
exports.createNestedFieldRefProxy = createNestedFieldRefProxy;
|
|
8
8
|
const conditions_1 = require("./conditions");
|
|
9
|
+
const prepared_query_1 = require("./prepared-query");
|
|
9
10
|
const db_context_1 = require("../entity/db-context");
|
|
10
11
|
const query_utils_1 = require("./query-utils");
|
|
11
12
|
const subquery_1 = require("./subquery");
|
|
@@ -1200,7 +1201,28 @@ class SelectQueryBuilder {
|
|
|
1200
1201
|
for (const collection of collections) {
|
|
1201
1202
|
const resultMap = collectionResults.get(collection.name);
|
|
1202
1203
|
const parentId = baseRow.__pk_id;
|
|
1203
|
-
const
|
|
1204
|
+
const rawData = resultMap?.get(parentId);
|
|
1205
|
+
// Check if this is a single result (firstOrDefault) - return first item or null
|
|
1206
|
+
const isSingleResult = collection.builder.isSingleResult();
|
|
1207
|
+
let collectionData;
|
|
1208
|
+
if (isSingleResult) {
|
|
1209
|
+
// For single results, rawData might already be an object (from temp table strategy)
|
|
1210
|
+
// or might be an array (from other strategies) that we need to extract the first item from
|
|
1211
|
+
if (rawData === undefined || rawData === null) {
|
|
1212
|
+
collectionData = null;
|
|
1213
|
+
}
|
|
1214
|
+
else if (Array.isArray(rawData)) {
|
|
1215
|
+
collectionData = rawData.length > 0 ? rawData[0] : null;
|
|
1216
|
+
}
|
|
1217
|
+
else {
|
|
1218
|
+
// Already a single object
|
|
1219
|
+
collectionData = rawData;
|
|
1220
|
+
}
|
|
1221
|
+
}
|
|
1222
|
+
else {
|
|
1223
|
+
// For list results, ensure we return an array
|
|
1224
|
+
collectionData = rawData || this.getDefaultValueForCollection(collection.builder);
|
|
1225
|
+
}
|
|
1204
1226
|
// Handle nested paths
|
|
1205
1227
|
if (collection.path.length > 0) {
|
|
1206
1228
|
// Navigate to the nested object and set the collection there
|
|
@@ -1348,7 +1370,28 @@ class SelectQueryBuilder {
|
|
|
1348
1370
|
for (const collection of collections) {
|
|
1349
1371
|
const resultMap = collectionResults.get(collection.name);
|
|
1350
1372
|
const parentId = baseRow.__pk_id;
|
|
1351
|
-
const
|
|
1373
|
+
const rawData = resultMap?.get(parentId);
|
|
1374
|
+
// Check if this is a single result (firstOrDefault) - return first item or null
|
|
1375
|
+
const isSingleResult = collection.builder.isSingleResult();
|
|
1376
|
+
let collectionData;
|
|
1377
|
+
if (isSingleResult) {
|
|
1378
|
+
// For single results, rawData might already be an object (from temp table strategy)
|
|
1379
|
+
// or might be an array (from other strategies) that we need to extract the first item from
|
|
1380
|
+
if (rawData === undefined || rawData === null) {
|
|
1381
|
+
collectionData = null;
|
|
1382
|
+
}
|
|
1383
|
+
else if (Array.isArray(rawData)) {
|
|
1384
|
+
collectionData = rawData.length > 0 ? rawData[0] : null;
|
|
1385
|
+
}
|
|
1386
|
+
else {
|
|
1387
|
+
// Already a single object
|
|
1388
|
+
collectionData = rawData;
|
|
1389
|
+
}
|
|
1390
|
+
}
|
|
1391
|
+
else {
|
|
1392
|
+
// For list results, ensure we return an array
|
|
1393
|
+
collectionData = rawData || [];
|
|
1394
|
+
}
|
|
1352
1395
|
// Handle nested paths
|
|
1353
1396
|
if (collection.path.length > 0) {
|
|
1354
1397
|
// Navigate to the nested object and set the collection there
|
|
@@ -1577,6 +1620,74 @@ class SelectQueryBuilder {
|
|
|
1577
1620
|
}
|
|
1578
1621
|
return result;
|
|
1579
1622
|
}
|
|
1623
|
+
/**
|
|
1624
|
+
* Create a prepared query for efficient reusable parameterized execution.
|
|
1625
|
+
*
|
|
1626
|
+
* Prepared queries build the SQL once and allow multiple executions
|
|
1627
|
+
* with different parameter values. This is useful for:
|
|
1628
|
+
* 1. Query building optimization - Build SQL once, execute many times
|
|
1629
|
+
* 2. Type-safe placeholders - Named parameters with validation
|
|
1630
|
+
* 3. Developer ergonomics - Cleaner API for reusable queries
|
|
1631
|
+
*
|
|
1632
|
+
* @param name - A name for the prepared query (for debugging)
|
|
1633
|
+
* @returns PreparedQuery that can be executed multiple times with different parameters
|
|
1634
|
+
*
|
|
1635
|
+
* @example
|
|
1636
|
+
* ```typescript
|
|
1637
|
+
* // Create a prepared query with a placeholder
|
|
1638
|
+
* const getUserById = db.users
|
|
1639
|
+
* .where(u => eq(u.id, sql.placeholder('userId')))
|
|
1640
|
+
* .prepare('getUserById');
|
|
1641
|
+
*
|
|
1642
|
+
* // Execute multiple times with different values
|
|
1643
|
+
* const user1 = await getUserById.execute({ userId: 10 });
|
|
1644
|
+
* const user2 = await getUserById.execute({ userId: 20 });
|
|
1645
|
+
* ```
|
|
1646
|
+
*
|
|
1647
|
+
* @example
|
|
1648
|
+
* ```typescript
|
|
1649
|
+
* // Multiple placeholders
|
|
1650
|
+
* const searchUsers = db.users
|
|
1651
|
+
* .where(u => and(
|
|
1652
|
+
* gt(u.age, sql.placeholder('minAge')),
|
|
1653
|
+
* like(u.name, sql.placeholder('namePattern'))
|
|
1654
|
+
* ))
|
|
1655
|
+
* .prepare('searchUsers');
|
|
1656
|
+
*
|
|
1657
|
+
* await searchUsers.execute({ minAge: 18, namePattern: '%john%' });
|
|
1658
|
+
* ```
|
|
1659
|
+
*/
|
|
1660
|
+
prepare(name) {
|
|
1661
|
+
// Build query with placeholder tracking
|
|
1662
|
+
const context = {
|
|
1663
|
+
ctes: new Map(),
|
|
1664
|
+
cteCounter: 0,
|
|
1665
|
+
paramCounter: 1,
|
|
1666
|
+
allParams: [],
|
|
1667
|
+
placeholders: new Map(),
|
|
1668
|
+
collectionStrategy: this.collectionStrategy,
|
|
1669
|
+
executor: this.executor,
|
|
1670
|
+
};
|
|
1671
|
+
// Analyze the selector to extract nested queries
|
|
1672
|
+
const mockRow = this._createMockRow();
|
|
1673
|
+
const selectionResult = this.selector(mockRow);
|
|
1674
|
+
// Build the query - this populates context.placeholders
|
|
1675
|
+
const { sql, nestedPaths } = this.buildQuery(selectionResult, context);
|
|
1676
|
+
// Create transform function (closure over schema, selection, nestedPaths)
|
|
1677
|
+
const transformFn = (rows) => {
|
|
1678
|
+
// If rawResult is enabled, return raw rows without any processing
|
|
1679
|
+
if (this.executor?.getOptions().rawResult) {
|
|
1680
|
+
return rows;
|
|
1681
|
+
}
|
|
1682
|
+
// Reconstruct nested objects from flat row data (if any)
|
|
1683
|
+
if (nestedPaths.size > 0) {
|
|
1684
|
+
rows = rows.map(row => this.reconstructNestedObjects(row, nestedPaths));
|
|
1685
|
+
}
|
|
1686
|
+
// Transform results
|
|
1687
|
+
return this.transformResults(rows, selectionResult);
|
|
1688
|
+
};
|
|
1689
|
+
return new prepared_query_1.PreparedQuery(sql, context.placeholders || new Map(), context.paramCounter - 1, this.client, transformFn, name);
|
|
1690
|
+
}
|
|
1580
1691
|
/**
|
|
1581
1692
|
* Delete records matching the current WHERE condition
|
|
1582
1693
|
* Returns a fluent builder that can be awaited directly or chained with .returning()
|
|
@@ -2702,10 +2813,14 @@ class SelectQueryBuilder {
|
|
|
2702
2813
|
let whereClause = '';
|
|
2703
2814
|
if (this.whereCond) {
|
|
2704
2815
|
const condBuilder = new conditions_1.ConditionBuilder();
|
|
2705
|
-
const { sql, params } = condBuilder.build(this.whereCond, context.paramCounter);
|
|
2816
|
+
const { sql, params, placeholders, paramCounter: newParamCounter } = condBuilder.build(this.whereCond, context.paramCounter, context.placeholders);
|
|
2706
2817
|
whereClause = `WHERE ${sql}`;
|
|
2707
|
-
context.paramCounter
|
|
2818
|
+
context.paramCounter = newParamCounter; // Use returned counter (handles both params and placeholders)
|
|
2708
2819
|
context.allParams.push(...params);
|
|
2820
|
+
// Update placeholders from the condition builder (for prepared statements)
|
|
2821
|
+
if (placeholders) {
|
|
2822
|
+
context.placeholders = placeholders;
|
|
2823
|
+
}
|
|
2709
2824
|
}
|
|
2710
2825
|
// Build ORDER BY clause
|
|
2711
2826
|
let orderByClause = '';
|
|
@@ -2761,9 +2876,12 @@ class SelectQueryBuilder {
|
|
|
2761
2876
|
const joinTypeStr = manualJoin.type === 'INNER' ? 'INNER JOIN' : 'LEFT JOIN';
|
|
2762
2877
|
// Build ON condition
|
|
2763
2878
|
const condBuilder = new conditions_1.ConditionBuilder();
|
|
2764
|
-
const { sql: condSql, params: condParams } = condBuilder.build(manualJoin.condition, context.paramCounter);
|
|
2765
|
-
context.paramCounter
|
|
2879
|
+
const { sql: condSql, params: condParams, placeholders: joinPlaceholders, paramCounter: newParamCounter } = condBuilder.build(manualJoin.condition, context.paramCounter, context.placeholders);
|
|
2880
|
+
context.paramCounter = newParamCounter; // Use returned counter (handles both params and placeholders)
|
|
2766
2881
|
context.allParams.push(...condParams);
|
|
2882
|
+
if (joinPlaceholders) {
|
|
2883
|
+
context.placeholders = joinPlaceholders;
|
|
2884
|
+
}
|
|
2767
2885
|
// Check if this is a CTE join
|
|
2768
2886
|
if (manualJoin.cte) {
|
|
2769
2887
|
// Join with CTE - use CTE name directly
|
|
@@ -3127,6 +3245,18 @@ class SelectQueryBuilder {
|
|
|
3127
3245
|
}
|
|
3128
3246
|
}
|
|
3129
3247
|
}
|
|
3248
|
+
// Build cache of nested collection info (fields that are themselves nested collections)
|
|
3249
|
+
// This is used for recursive transformation of nested collection results
|
|
3250
|
+
const nestedCollectionCache = new Map();
|
|
3251
|
+
if (selectedFieldConfigs) {
|
|
3252
|
+
for (const field of selectedFieldConfigs) {
|
|
3253
|
+
if (field.nestedCollectionInfo) {
|
|
3254
|
+
nestedCollectionCache.set(field.alias, field.nestedCollectionInfo);
|
|
3255
|
+
}
|
|
3256
|
+
}
|
|
3257
|
+
}
|
|
3258
|
+
// Get schema registry for nested collection transformation
|
|
3259
|
+
const schemaRegistry = collectionBuilder.getSchemaRegistry() || this.schemaRegistry;
|
|
3130
3260
|
// Transform items using pre-built mapper cache
|
|
3131
3261
|
const results = new Array(items.length);
|
|
3132
3262
|
let i = items.length;
|
|
@@ -3140,13 +3270,114 @@ class SelectQueryBuilder {
|
|
|
3140
3270
|
transformedItem[key] = mapper.fromDriver(value);
|
|
3141
3271
|
}
|
|
3142
3272
|
else {
|
|
3143
|
-
|
|
3273
|
+
// Check if this field is a nested collection that needs recursive transformation
|
|
3274
|
+
const nestedInfo = nestedCollectionCache.get(key);
|
|
3275
|
+
if (nestedInfo && value !== null && value !== undefined && schemaRegistry) {
|
|
3276
|
+
transformedItem[key] = this.transformNestedCollectionValue(value, nestedInfo, schemaRegistry);
|
|
3277
|
+
}
|
|
3278
|
+
else {
|
|
3279
|
+
transformedItem[key] = value;
|
|
3280
|
+
}
|
|
3144
3281
|
}
|
|
3145
3282
|
}
|
|
3146
3283
|
results[i] = transformedItem;
|
|
3147
3284
|
}
|
|
3148
3285
|
return results;
|
|
3149
3286
|
}
|
|
3287
|
+
/**
|
|
3288
|
+
* Transform a nested collection value (from firstOrDefault or toList inside another collection)
|
|
3289
|
+
* Applies custom mappers to fields within the nested collection result.
|
|
3290
|
+
*/
|
|
3291
|
+
transformNestedCollectionValue(value, nestedInfo, schemaRegistry) {
|
|
3292
|
+
const nestedSchema = schemaRegistry.get(nestedInfo.targetTable);
|
|
3293
|
+
if (!nestedSchema?.columnMetadataCache) {
|
|
3294
|
+
return value; // No schema info, return as-is
|
|
3295
|
+
}
|
|
3296
|
+
const columnCache = nestedSchema.columnMetadataCache;
|
|
3297
|
+
const selectedFieldConfigs = nestedInfo.selectedFieldConfigs;
|
|
3298
|
+
// Build mapper cache for nested collection fields
|
|
3299
|
+
const mapperCache = new Map();
|
|
3300
|
+
// First, add mappers from selected field configs (for aliased/navigation fields)
|
|
3301
|
+
if (selectedFieldConfigs) {
|
|
3302
|
+
for (const field of selectedFieldConfigs) {
|
|
3303
|
+
if (field.propertyName) {
|
|
3304
|
+
let mapper = null;
|
|
3305
|
+
if (field.sourceTable) {
|
|
3306
|
+
// Navigation field - look up from source table's schema
|
|
3307
|
+
const navSchema = schemaRegistry.get(field.sourceTable);
|
|
3308
|
+
if (navSchema?.columnMetadataCache) {
|
|
3309
|
+
const cached = navSchema.columnMetadataCache.get(field.propertyName);
|
|
3310
|
+
if (cached?.hasMapper) {
|
|
3311
|
+
mapper = cached.mapper;
|
|
3312
|
+
}
|
|
3313
|
+
}
|
|
3314
|
+
}
|
|
3315
|
+
else {
|
|
3316
|
+
// Regular field from target schema
|
|
3317
|
+
const cached = columnCache.get(field.propertyName);
|
|
3318
|
+
if (cached?.hasMapper) {
|
|
3319
|
+
mapper = cached.mapper;
|
|
3320
|
+
}
|
|
3321
|
+
}
|
|
3322
|
+
if (mapper) {
|
|
3323
|
+
mapperCache.set(field.alias, mapper);
|
|
3324
|
+
}
|
|
3325
|
+
}
|
|
3326
|
+
}
|
|
3327
|
+
}
|
|
3328
|
+
// Also add direct property matches from target schema
|
|
3329
|
+
for (const [propertyName, cached] of columnCache) {
|
|
3330
|
+
if (!mapperCache.has(propertyName) && cached.hasMapper) {
|
|
3331
|
+
mapperCache.set(propertyName, cached.mapper);
|
|
3332
|
+
}
|
|
3333
|
+
}
|
|
3334
|
+
// Build cache for any deeply nested collections
|
|
3335
|
+
const deeplyNestedCache = new Map();
|
|
3336
|
+
if (selectedFieldConfigs) {
|
|
3337
|
+
for (const field of selectedFieldConfigs) {
|
|
3338
|
+
if (field.nestedCollectionInfo) {
|
|
3339
|
+
deeplyNestedCache.set(field.alias, field.nestedCollectionInfo);
|
|
3340
|
+
}
|
|
3341
|
+
}
|
|
3342
|
+
}
|
|
3343
|
+
// Transform the value(s)
|
|
3344
|
+
const transformItem = (item) => {
|
|
3345
|
+
if (item === null || item === undefined) {
|
|
3346
|
+
return item;
|
|
3347
|
+
}
|
|
3348
|
+
const transformedItem = {};
|
|
3349
|
+
for (const key in item) {
|
|
3350
|
+
const fieldValue = item[key];
|
|
3351
|
+
const mapper = mapperCache.get(key);
|
|
3352
|
+
if (mapper) {
|
|
3353
|
+
transformedItem[key] = mapper.fromDriver(fieldValue);
|
|
3354
|
+
}
|
|
3355
|
+
else {
|
|
3356
|
+
// Check for deeply nested collections
|
|
3357
|
+
const deepNestedInfo = deeplyNestedCache.get(key);
|
|
3358
|
+
if (deepNestedInfo && fieldValue !== null && fieldValue !== undefined) {
|
|
3359
|
+
transformedItem[key] = this.transformNestedCollectionValue(fieldValue, deepNestedInfo, schemaRegistry);
|
|
3360
|
+
}
|
|
3361
|
+
else {
|
|
3362
|
+
transformedItem[key] = fieldValue;
|
|
3363
|
+
}
|
|
3364
|
+
}
|
|
3365
|
+
}
|
|
3366
|
+
return transformedItem;
|
|
3367
|
+
};
|
|
3368
|
+
if (nestedInfo.isSingleResult) {
|
|
3369
|
+
// Single item (firstOrDefault)
|
|
3370
|
+
return transformItem(value);
|
|
3371
|
+
}
|
|
3372
|
+
else if (Array.isArray(value)) {
|
|
3373
|
+
// Array of items (toList)
|
|
3374
|
+
return value.map(transformItem);
|
|
3375
|
+
}
|
|
3376
|
+
else {
|
|
3377
|
+
// Single object that should be treated as single result
|
|
3378
|
+
return transformItem(value);
|
|
3379
|
+
}
|
|
3380
|
+
}
|
|
3150
3381
|
/**
|
|
3151
3382
|
* Transform CTE aggregation items applying fromDriver mappers from selection metadata
|
|
3152
3383
|
*/
|
|
@@ -3237,10 +3468,13 @@ class SelectQueryBuilder {
|
|
|
3237
3468
|
let whereClause = '';
|
|
3238
3469
|
if (this.whereCond) {
|
|
3239
3470
|
const condBuilder = new conditions_1.ConditionBuilder();
|
|
3240
|
-
const { sql, params } = condBuilder.build(this.whereCond, context.paramCounter);
|
|
3471
|
+
const { sql, params, placeholders, paramCounter: newParamCounter } = condBuilder.build(this.whereCond, context.paramCounter, context.placeholders);
|
|
3241
3472
|
whereClause = `WHERE ${sql}`;
|
|
3242
|
-
context.paramCounter
|
|
3473
|
+
context.paramCounter = newParamCounter; // Use returned counter (handles both params and placeholders)
|
|
3243
3474
|
context.allParams.push(...params);
|
|
3475
|
+
if (placeholders) {
|
|
3476
|
+
context.placeholders = placeholders;
|
|
3477
|
+
}
|
|
3244
3478
|
}
|
|
3245
3479
|
// Build FROM clause with JOINs
|
|
3246
3480
|
let fromClause = `FROM "${this.schema.name}"`;
|
|
@@ -3248,9 +3482,12 @@ class SelectQueryBuilder {
|
|
|
3248
3482
|
for (const manualJoin of this.manualJoins) {
|
|
3249
3483
|
const joinTypeStr = manualJoin.type === 'INNER' ? 'INNER JOIN' : 'LEFT JOIN';
|
|
3250
3484
|
const condBuilder = new conditions_1.ConditionBuilder();
|
|
3251
|
-
const { sql: condSql, params: condParams } = condBuilder.build(manualJoin.condition, context.paramCounter);
|
|
3252
|
-
context.paramCounter
|
|
3485
|
+
const { sql: condSql, params: condParams, placeholders: joinPlaceholders, paramCounter: newJoinParamCounter } = condBuilder.build(manualJoin.condition, context.paramCounter, context.placeholders);
|
|
3486
|
+
context.paramCounter = newJoinParamCounter; // Use returned counter (handles both params and placeholders)
|
|
3253
3487
|
context.allParams.push(...condParams);
|
|
3488
|
+
if (joinPlaceholders) {
|
|
3489
|
+
context.placeholders = joinPlaceholders;
|
|
3490
|
+
}
|
|
3254
3491
|
// Check if this is a subquery join
|
|
3255
3492
|
if (manualJoin.isSubquery && manualJoin.subquery) {
|
|
3256
3493
|
const subqueryBuildContext = {
|
|
@@ -3279,10 +3516,13 @@ class SelectQueryBuilder {
|
|
|
3279
3516
|
let whereClause = '';
|
|
3280
3517
|
if (this.whereCond) {
|
|
3281
3518
|
const condBuilder = new conditions_1.ConditionBuilder();
|
|
3282
|
-
const { sql, params } = condBuilder.build(this.whereCond, context.paramCounter);
|
|
3519
|
+
const { sql, params, placeholders, paramCounter: newParamCounter } = condBuilder.build(this.whereCond, context.paramCounter, context.placeholders);
|
|
3283
3520
|
whereClause = `WHERE ${sql}`;
|
|
3284
|
-
context.paramCounter
|
|
3521
|
+
context.paramCounter = newParamCounter; // Use returned counter (handles both params and placeholders)
|
|
3285
3522
|
context.allParams.push(...params);
|
|
3523
|
+
if (placeholders) {
|
|
3524
|
+
context.placeholders = placeholders;
|
|
3525
|
+
}
|
|
3286
3526
|
}
|
|
3287
3527
|
// Build FROM clause with JOINs
|
|
3288
3528
|
let fromClause = `FROM "${this.schema.name}"`;
|
|
@@ -3290,9 +3530,12 @@ class SelectQueryBuilder {
|
|
|
3290
3530
|
for (const manualJoin of this.manualJoins) {
|
|
3291
3531
|
const joinTypeStr = manualJoin.type === 'INNER' ? 'INNER JOIN' : 'LEFT JOIN';
|
|
3292
3532
|
const condBuilder = new conditions_1.ConditionBuilder();
|
|
3293
|
-
const { sql: condSql, params: condParams } = condBuilder.build(manualJoin.condition, context.paramCounter);
|
|
3294
|
-
context.paramCounter
|
|
3533
|
+
const { sql: condSql, params: condParams, placeholders: joinPlaceholders, paramCounter: newJoinParamCounter } = condBuilder.build(manualJoin.condition, context.paramCounter, context.placeholders);
|
|
3534
|
+
context.paramCounter = newJoinParamCounter; // Use returned counter (handles both params and placeholders)
|
|
3295
3535
|
context.allParams.push(...condParams);
|
|
3536
|
+
if (joinPlaceholders) {
|
|
3537
|
+
context.placeholders = joinPlaceholders;
|
|
3538
|
+
}
|
|
3296
3539
|
// Check if this is a subquery join
|
|
3297
3540
|
if (manualJoin.isSubquery && manualJoin.subquery) {
|
|
3298
3541
|
const subqueryBuildContext = {
|
|
@@ -3338,12 +3581,13 @@ class SelectQueryBuilder {
|
|
|
3338
3581
|
asSubquery(mode = 'table') {
|
|
3339
3582
|
// Create a function that builds the subquery SQL when called
|
|
3340
3583
|
const sqlBuilder = (outerContext) => {
|
|
3341
|
-
// Create a fresh context for this subquery
|
|
3584
|
+
// Create a fresh context for this subquery, inheriting placeholders from outer context
|
|
3342
3585
|
const context = {
|
|
3343
3586
|
ctes: new Map(),
|
|
3344
3587
|
cteCounter: 0,
|
|
3345
3588
|
paramCounter: outerContext.paramCounter,
|
|
3346
3589
|
allParams: outerContext.params,
|
|
3590
|
+
placeholders: outerContext.placeholders, // Pass placeholders through for prepared statements
|
|
3347
3591
|
executor: this.executor,
|
|
3348
3592
|
};
|
|
3349
3593
|
// Analyze the selector to extract nested queries
|
|
@@ -3833,6 +4077,12 @@ class CollectionQueryBuilder {
|
|
|
3833
4077
|
getTargetTableSchema() {
|
|
3834
4078
|
return this.targetTableSchema;
|
|
3835
4079
|
}
|
|
4080
|
+
/**
|
|
4081
|
+
* Get target table name
|
|
4082
|
+
*/
|
|
4083
|
+
getTargetTable() {
|
|
4084
|
+
return this.targetTable;
|
|
4085
|
+
}
|
|
3836
4086
|
/**
|
|
3837
4087
|
* Get selected field configs (for mapper lookup during transformation)
|
|
3838
4088
|
*/
|
|
@@ -4111,6 +4361,7 @@ class CollectionQueryBuilder {
|
|
|
4111
4361
|
const sqlBuildContext = {
|
|
4112
4362
|
paramCounter: context.paramCounter,
|
|
4113
4363
|
params: context.allParams,
|
|
4364
|
+
placeholders: context.placeholders, // Pass placeholders for prepared statements
|
|
4114
4365
|
};
|
|
4115
4366
|
const fragmentSql = field.buildSql(sqlBuildContext);
|
|
4116
4367
|
context.paramCounter = sqlBuildContext.paramCounter;
|
|
@@ -4157,10 +4408,25 @@ class CollectionQueryBuilder {
|
|
|
4157
4408
|
cteName: nestedResult.tableName,
|
|
4158
4409
|
joinClause: nestedJoinClause,
|
|
4159
4410
|
},
|
|
4411
|
+
// Store nested collection info for recursive mapper transformation
|
|
4412
|
+
nestedCollectionInfo: {
|
|
4413
|
+
targetTable: field.getTargetTable(),
|
|
4414
|
+
selectedFieldConfigs: field.getSelectedFieldConfigs(),
|
|
4415
|
+
isSingleResult: field.isSingleResult(),
|
|
4416
|
+
},
|
|
4160
4417
|
};
|
|
4161
4418
|
}
|
|
4162
4419
|
// The nested collection becomes a correlated subquery in SELECT
|
|
4163
|
-
return {
|
|
4420
|
+
return {
|
|
4421
|
+
alias,
|
|
4422
|
+
expression: nestedResult.selectExpression || nestedResult.sql,
|
|
4423
|
+
// Store nested collection info for recursive mapper transformation
|
|
4424
|
+
nestedCollectionInfo: {
|
|
4425
|
+
targetTable: field.getTargetTable(),
|
|
4426
|
+
selectedFieldConfigs: field.getSelectedFieldConfigs(),
|
|
4427
|
+
isSingleResult: field.isSingleResult(),
|
|
4428
|
+
},
|
|
4429
|
+
};
|
|
4164
4430
|
}
|
|
4165
4431
|
else if (typeof field === 'object' && field !== null && '__dbColumnName' in field) {
|
|
4166
4432
|
// FieldRef object - use database column name with optional table alias
|
|
@@ -4245,12 +4511,15 @@ class CollectionQueryBuilder {
|
|
|
4245
4511
|
let whereParams;
|
|
4246
4512
|
if (this.whereCond) {
|
|
4247
4513
|
const condBuilder = new conditions_1.ConditionBuilder();
|
|
4248
|
-
const { sql, params } = condBuilder.build(this.whereCond, context.paramCounter);
|
|
4514
|
+
const { sql, params, placeholders, paramCounter: newParamCounter } = condBuilder.build(this.whereCond, context.paramCounter, context.placeholders);
|
|
4249
4515
|
whereClause = sql;
|
|
4250
4516
|
whereParams = params;
|
|
4251
|
-
context.paramCounter
|
|
4517
|
+
context.paramCounter = newParamCounter; // Use returned counter (handles both params and placeholders)
|
|
4252
4518
|
localParams.push(...params);
|
|
4253
4519
|
context.allParams.push(...params);
|
|
4520
|
+
if (placeholders) {
|
|
4521
|
+
context.placeholders = placeholders;
|
|
4522
|
+
}
|
|
4254
4523
|
}
|
|
4255
4524
|
// Step 3: Build ORDER BY clauses SQL (without ORDER BY keyword)
|
|
4256
4525
|
// We need two versions:
|
|
@@ -4341,6 +4610,7 @@ class CollectionQueryBuilder {
|
|
|
4341
4610
|
whereParams, // Pass WHERE clause parameters
|
|
4342
4611
|
orderByClause,
|
|
4343
4612
|
orderByClauseAlias, // For json_agg ORDER BY which uses aliases
|
|
4613
|
+
orderByFields: this.orderByFields.length > 0 ? this.orderByFields : undefined, // For including ORDER BY columns in inner SELECT
|
|
4344
4614
|
limitValue: this.limitValue,
|
|
4345
4615
|
offsetValue: this.offsetValue,
|
|
4346
4616
|
isDistinct: this.isDistinct,
|