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.
@@ -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 collectionData = resultMap?.get(parentId) || this.getDefaultValueForCollection(collection.builder);
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 collectionData = resultMap?.get(parentId) || [];
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 += params.length;
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 += condParams.length;
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
- transformedItem[key] = value;
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 += params.length;
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 += condParams.length;
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 += params.length;
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 += condParams.length;
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 { alias, expression: nestedResult.selectExpression || nestedResult.sql };
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 += params.length;
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,