linkgress-orm 0.4.40 → 0.4.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/database/bun-client.d.ts +31 -0
  2. package/dist/database/bun-client.d.ts.map +1 -1
  3. package/dist/database/bun-client.js +143 -23
  4. package/dist/database/bun-client.js.map +1 -1
  5. package/dist/database/database-client.interface.d.ts +12 -0
  6. package/dist/database/database-client.interface.d.ts.map +1 -1
  7. package/dist/database/database-client.interface.js +16 -0
  8. package/dist/database/database-client.interface.js.map +1 -1
  9. package/dist/database/index.d.ts +2 -1
  10. package/dist/database/index.d.ts.map +1 -1
  11. package/dist/database/index.js.map +1 -1
  12. package/dist/database/pg-client.d.ts +5 -2
  13. package/dist/database/pg-client.d.ts.map +1 -1
  14. package/dist/database/pg-client.js +21 -17
  15. package/dist/database/pg-client.js.map +1 -1
  16. package/dist/database/postgres-client.d.ts +9 -0
  17. package/dist/database/postgres-client.d.ts.map +1 -1
  18. package/dist/database/postgres-client.js +59 -15
  19. package/dist/database/postgres-client.js.map +1 -1
  20. package/dist/database/types.d.ts +9 -0
  21. package/dist/database/types.d.ts.map +1 -1
  22. package/dist/entity/db-context.d.ts +14 -2
  23. package/dist/entity/db-context.d.ts.map +1 -1
  24. package/dist/entity/db-context.js +55 -10
  25. package/dist/entity/db-context.js.map +1 -1
  26. package/dist/index.d.ts +42 -22
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/query/collection-strategy.interface.d.ts +6 -0
  30. package/dist/query/collection-strategy.interface.d.ts.map +1 -1
  31. package/dist/query/conditions.d.ts +5 -0
  32. package/dist/query/conditions.d.ts.map +1 -1
  33. package/dist/query/conditions.js +13 -0
  34. package/dist/query/conditions.js.map +1 -1
  35. package/dist/query/cte-builder.d.ts +50 -2
  36. package/dist/query/cte-builder.d.ts.map +1 -1
  37. package/dist/query/cte-builder.js +68 -6
  38. package/dist/query/cte-builder.js.map +1 -1
  39. package/dist/query/grouped-query.d.ts +2 -0
  40. package/dist/query/grouped-query.d.ts.map +1 -1
  41. package/dist/query/grouped-query.js +4 -0
  42. package/dist/query/grouped-query.js.map +1 -1
  43. package/dist/query/query-builder.d.ts +15 -0
  44. package/dist/query/query-builder.d.ts.map +1 -1
  45. package/dist/query/query-builder.js +129 -8
  46. package/dist/query/query-builder.js.map +1 -1
  47. package/dist/query/strategies/cte-collection-strategy.js +98 -98
  48. package/dist/query/strategies/cte-collection-strategy.js.map +1 -1
  49. package/dist/query/strategies/lateral-collection-strategy.d.ts.map +1 -1
  50. package/dist/query/strategies/lateral-collection-strategy.js +62 -58
  51. package/dist/query/strategies/lateral-collection-strategy.js.map +1 -1
  52. package/dist/query/strategies/temptable-collection-strategy.d.ts +3 -14
  53. package/dist/query/strategies/temptable-collection-strategy.d.ts.map +1 -1
  54. package/dist/query/strategies/temptable-collection-strategy.js +106 -226
  55. package/dist/query/strategies/temptable-collection-strategy.js.map +1 -1
  56. package/dist/types/custom-types.d.ts +0 -4
  57. package/dist/types/custom-types.d.ts.map +1 -1
  58. package/dist/types/custom-types.js +29 -1
  59. package/dist/types/custom-types.js.map +1 -1
  60. package/package.json +4 -1
@@ -1 +1 @@
1
- {"version":3,"file":"temptable-collection-strategy.d.ts","sourceRoot":"","sources":["../../../src/query/strategies/temptable-collection-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,2BAA2B,EAE5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,2BAA4B,YAAW,mBAAmB;IACrE,OAAO,IAAI,sBAAsB;IAIjC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAM/B;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAgB5B,iBAAiB,IAAI,OAAO;IAKtB,gBAAgB,CACpB,MAAM,EAAE,2BAA2B,EACnC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,2BAA2B,CAAC;IAevC;;;;;;OAMG;YACW,8BAA8B;IA6G5C;;;OAGG;YACW,sBAAsB;IAsEpC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAsC3B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyBjC;;;;;;OAMG;IACH,OAAO,CAAC,yCAAyC;IA0CjD;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAyD5B;;OAEG;IACH,OAAO,CAAC,iCAAiC;IA4CzC;;;OAGG;IACH,OAAO,CAAC,WAAW;IA0BnB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IA6DhC;;OAEG;IACH,OAAO,CAAC,qCAAqC;IAsC7C;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IA4ChC;;OAEG;IACH,OAAO,CAAC,qCAAqC;IAmC7C;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA8CjC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;CAqBlC"}
1
+ {"version":3,"file":"temptable-collection-strategy.d.ts","sourceRoot":"","sources":["../../../src/query/strategies/temptable-collection-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,2BAA2B,EAE5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,2BAA4B,YAAW,mBAAmB;IACrE,OAAO,IAAI,sBAAsB;IAIjC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAM/B;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAgB5B,iBAAiB,IAAI,OAAO;IAKtB,gBAAgB,CACpB,MAAM,EAAE,2BAA2B,EACnC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,2BAA2B,CAAC;IAevC;;;;;;;OAOG;YACW,8BAA8B;IAmE5C;;;OAGG;YACW,sBAAsB;IAsEpC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAsC3B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyBjC;;;;;;OAMG;IACH,OAAO,CAAC,yCAAyC;IAmDjD;;;OAGG;IACH,OAAO,CAAC,WAAW;IA0BnB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IA6DhC;;OAEG;IACH,OAAO,CAAC,qCAAqC;IAsC7C;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IA+ChC;;OAEG;IACH,OAAO,CAAC,qCAAqC;IAsC7C;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA8CjC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;CAqBlC"}
@@ -92,8 +92,9 @@ class TempTableCollectionStrategy {
92
92
  * Build aggregation using multi-statement query (single round trip)
93
93
  * Supported by postgres.js using .simple() mode
94
94
  *
95
- * For JSONB/array collections: fetches raw rows and groups in JavaScript (fast!)
96
- * For scalar aggregations: uses database aggregation (necessary)
95
+ * Uses the same server-side aggregation SQL as the legacy path (json_agg /
96
+ * scalar aggregates) so both execution modes return identical values; only
97
+ * the transport differs (one multi-statement round trip vs several queries).
97
98
  */
98
99
  async buildAggregationMultiStatement(config, context, client) {
99
100
  const tempTableName = `tmp_parent_ids_${config.counter}`;
@@ -101,23 +102,21 @@ class TempTableCollectionStrategy {
101
102
  const aggregationSQL = this.buildAggregationSQLWithInterpolatedParams(config, tempTableName);
102
103
  // Build the value placeholders for INSERT (interpolate integer parent IDs - safe)
103
104
  const valuePlaceholders = config.parentIds.map(id => `(${id})`).join(',');
104
- // Determine if we're doing client-side grouping (JSONB/array) or server-side (scalar)
105
- const isClientSideGrouping = config.aggregationType === 'jsonb' || config.aggregationType === 'array';
106
105
  // Combine everything into a single multi-statement query
107
- const multiStatementSQL = `
108
- -- Create temporary table for parent IDs
109
- CREATE TEMP TABLE ${tempTableName} (
110
- id integer PRIMARY KEY
111
- ) ON COMMIT DROP;
112
-
113
- -- Insert parent IDs
114
- INSERT INTO ${tempTableName} VALUES ${valuePlaceholders};
115
-
116
- -- Query and return the data
117
- ${aggregationSQL};
118
-
119
- -- Cleanup
120
- DROP TABLE IF EXISTS ${tempTableName};
106
+ const multiStatementSQL = `
107
+ -- Create temporary table for parent IDs
108
+ CREATE TEMP TABLE ${tempTableName} (
109
+ id integer PRIMARY KEY
110
+ ) ON COMMIT DROP;
111
+
112
+ -- Insert parent IDs
113
+ INSERT INTO ${tempTableName} VALUES ${valuePlaceholders};
114
+
115
+ -- Query and return the data
116
+ ${aggregationSQL};
117
+
118
+ -- Cleanup
119
+ DROP TABLE IF EXISTS ${tempTableName};
121
120
  `.trim();
122
121
  // Execute multi-statement query using querySimple (no parameters)
123
122
  const executor = context.executor || client;
@@ -135,52 +134,11 @@ DROP TABLE IF EXISTS ${tempTableName};
135
134
  // Final fallback: regular query
136
135
  result = await executor.query(multiStatementSQL, []);
137
136
  }
138
- // Group results by parent_id
137
+ // Group results by parent_id — every aggregation type returns
138
+ // (parent_id, data) rows, aggregated server-side.
139
139
  const dataMap = new Map();
140
- if (isClientSideGrouping) {
141
- // Client-side grouping for JSONB/array - much faster than json_agg!
142
- if (config.aggregationType === 'jsonb') {
143
- if (config.isSingleResult) {
144
- // For firstOrDefault(), take only the first row per parent
145
- for (const row of result.rows) {
146
- const parentId = row.parent_id;
147
- // Only set if not already set (first row wins)
148
- if (!dataMap.has(parentId)) {
149
- const { parent_id, ...rowData } = row;
150
- dataMap.set(parentId, rowData); // Single object, not array
151
- }
152
- }
153
- }
154
- else {
155
- // Group rows by parent_id and build arrays
156
- for (const row of result.rows) {
157
- const parentId = row.parent_id;
158
- if (!dataMap.has(parentId)) {
159
- dataMap.set(parentId, []);
160
- }
161
- // Extract the actual data (everything except parent_id)
162
- const { parent_id, ...rowData } = row;
163
- dataMap.get(parentId).push(rowData);
164
- }
165
- }
166
- }
167
- else if (config.aggregationType === 'array') {
168
- // Group rows by parent_id and extract array field
169
- const arrayField = config.arrayField;
170
- for (const row of result.rows) {
171
- const parentId = row.parent_id;
172
- if (!dataMap.has(parentId)) {
173
- dataMap.set(parentId, []);
174
- }
175
- dataMap.get(parentId).push(row[arrayField]);
176
- }
177
- }
178
- }
179
- else {
180
- // Server-side aggregation (scalar) - data already aggregated
181
- for (const row of result.rows) {
182
- dataMap.set(row.parent_id, row.data);
183
- }
140
+ for (const row of result.rows) {
141
+ dataMap.set(row.parent_id, row.data);
184
142
  }
185
143
  // Return result with fetched data
186
144
  return {
@@ -201,10 +159,10 @@ DROP TABLE IF EXISTS ${tempTableName};
201
159
  async buildAggregationLegacy(config, context, client) {
202
160
  const tempTableName = `tmp_parent_ids_${config.counter}`;
203
161
  // Create temp table (without ON COMMIT DROP to persist across queries in the same session)
204
- const createTableSQL = `
205
- CREATE TEMP TABLE IF NOT EXISTS ${tempTableName} (
206
- id integer PRIMARY KEY
207
- )
162
+ const createTableSQL = `
163
+ CREATE TEMP TABLE IF NOT EXISTS ${tempTableName} (
164
+ id integer PRIMARY KEY
165
+ )
208
166
  `.trim();
209
167
  // Use executor from context if available for query logging
210
168
  if (context.executor) {
@@ -233,9 +191,9 @@ CREATE TEMP TABLE IF NOT EXISTS ${tempTableName} (
233
191
  const selectExpression = `"${tempTableName}_agg".data`;
234
192
  // Execute aggregation query and store results in another temp table
235
193
  const aggTempTableName = `${tempTableName}_agg`;
236
- const createAggTableSQL = `
237
- CREATE TEMP TABLE ${aggTempTableName} AS
238
- ${aggregationSQL}
194
+ const createAggTableSQL = `
195
+ CREATE TEMP TABLE ${aggTempTableName} AS
196
+ ${aggregationSQL}
239
197
  `.trim();
240
198
  // Use executor from context if available for query logging
241
199
  if (context.executor) {
@@ -333,12 +291,20 @@ ${aggregationSQL}
333
291
  configWithInterpolatedParams.whereClause = interpolatedWhere;
334
292
  configWithInterpolatedParams.whereParams = []; // Clear params since they're now interpolated
335
293
  }
336
- // For multi-statement optimization: use simple SELECT instead of aggregation
337
- // This allows us to group in JavaScript which is much faster than json_agg
294
+ // Use the SAME server-side aggregation SQL as the legacy path so both
295
+ // execution modes produce identical value semantics (json_agg turns
296
+ // numerics into JSON numbers and timestamps into ISO strings — client-side
297
+ // row grouping used to leak driver-native values like numeric strings and
298
+ // Date objects, diverging from the CTE/lateral/legacy strategies).
338
299
  switch (config.aggregationType) {
339
300
  case 'jsonb':
301
+ return this.buildJsonbAggregationSQL(configWithInterpolatedParams, tempTableName);
340
302
  case 'array':
341
- return this.buildSimpleSelectSQL(configWithInterpolatedParams, tempTableName);
303
+ // json_agg instead of array_agg: identical element values for the
304
+ // list use-cases (toNumberList/toStringList), and it keeps native
305
+ // Postgres arrays off the wire — Bun's SQL client cannot decode
306
+ // binary array results (see debug/bun-sql-binary-array-repro.ts).
307
+ return this.buildArrayAggregationSQL(configWithInterpolatedParams, tempTableName, true);
342
308
  case 'count':
343
309
  case 'min':
344
310
  case 'max':
@@ -352,94 +318,6 @@ ${aggregationSQL}
352
318
  throw new Error(`Unknown aggregation type: ${config.aggregationType}`);
353
319
  }
354
320
  }
355
- /**
356
- * Build a simple SELECT query without aggregation
357
- * Results will be grouped in JavaScript for better performance
358
- *
359
- * When LIMIT/OFFSET is specified, uses ROW_NUMBER() window function to correctly
360
- * apply pagination per parent row (not globally).
361
- */
362
- buildSimpleSelectSQL(config, tempTableName) {
363
- const { selectedFields, targetTable, foreignKey, whereClause, orderByClause, limitValue, offsetValue } = config;
364
- // Helper to collect all leaf fields from a potentially nested structure
365
- const collectLeafFields = (fields, prefix = '') => {
366
- const result = [];
367
- for (const field of fields) {
368
- const fullAlias = prefix ? `${prefix}__${field.alias}` : field.alias;
369
- if (field.nested) {
370
- result.push(...collectLeafFields(field.nested, fullAlias));
371
- }
372
- else if (field.expression) {
373
- result.push({ alias: fullAlias, expression: field.expression });
374
- }
375
- }
376
- return result;
377
- };
378
- const leafFields = collectLeafFields(selectedFields);
379
- // Build SELECT fields (rewrite collection markers)
380
- const selectFields = leafFields
381
- .map(f => {
382
- const rewrittenExpr = this.rewriteCollectionMarker(f.expression, targetTable) || f.expression;
383
- return `${rewrittenExpr} as "${f.alias}"`;
384
- })
385
- .join(', ');
386
- // Build WHERE clause (rewrite collection markers)
387
- const rewrittenWhereClause = this.rewriteCollectionMarker(whereClause, targetTable);
388
- const additionalWhere = this.buildAdditionalWhere(config, targetTable, rewrittenWhereClause);
389
- // Build ORDER BY clause
390
- const orderBySQL = orderByClause ? `ORDER BY ${orderByClause}` : `ORDER BY "id" DESC`;
391
- // If LIMIT or OFFSET is specified, use ROW_NUMBER() for per-parent pagination
392
- if (limitValue !== undefined || offsetValue !== undefined) {
393
- return this.buildSimpleSelectSQLWithRowNumber(config, tempTableName, selectFields, additionalWhere, orderBySQL);
394
- }
395
- // No LIMIT/OFFSET - use simple SELECT
396
- const sql = `
397
- SELECT
398
- "${foreignKey}" as parent_id,
399
- ${selectFields}
400
- FROM "${targetTable}"
401
- WHERE "${foreignKey}" IN (SELECT id FROM ${tempTableName})${additionalWhere}
402
- ${orderBySQL}
403
- `.trim();
404
- return sql;
405
- }
406
- /**
407
- * Build simple SELECT with ROW_NUMBER() for per-parent LIMIT/OFFSET
408
- */
409
- buildSimpleSelectSQLWithRowNumber(config, tempTableName, selectFields, additionalWhere, orderBySQL) {
410
- const { targetTable, foreignKey, orderByClause, limitValue, offsetValue } = config;
411
- // Build ORDER BY for ROW_NUMBER() - use the order clause or default to id DESC
412
- const rowNumberOrderBy = orderByClause || `"id" DESC`;
413
- // Build the row number filter condition
414
- const offset = offsetValue || 0;
415
- let rowNumberFilter;
416
- if (limitValue !== undefined) {
417
- rowNumberFilter = `WHERE "__rn" > ${offset} AND "__rn" <= ${offset + limitValue}`;
418
- }
419
- else {
420
- rowNumberFilter = `WHERE "__rn" > ${offset}`;
421
- }
422
- const sql = `
423
- SELECT
424
- parent_id,
425
- ${selectFields.split(', ').map(f => {
426
- // Extract just the alias part for outer select
427
- const match = f.match(/as "([^"]+)"$/);
428
- return match ? `"${match[1]}"` : f;
429
- }).join(', ')}
430
- FROM (
431
- SELECT
432
- "${foreignKey}" as parent_id,
433
- ${selectFields},
434
- ROW_NUMBER() OVER (PARTITION BY "${foreignKey}" ORDER BY ${rowNumberOrderBy}) as "__rn"
435
- FROM "${targetTable}"
436
- WHERE "${foreignKey}" IN (SELECT id FROM ${tempTableName})${additionalWhere}
437
- ) sub
438
- ${rowNumberFilter}
439
- ${orderBySQL.replace(/ORDER BY/i, 'ORDER BY')}
440
- `.trim();
441
- return sql;
442
- }
443
321
  /**
444
322
  * Safely escape a value for SQL interpolation
445
323
  * Used only in multi-statement queries with .simple() mode
@@ -517,19 +395,19 @@ ${orderBySQL.replace(/ORDER BY/i, 'ORDER BY')}
517
395
  return this.buildJsonbAggregationSQLWithRowNumber(config, tempTableName, jsonbObjectExpr, additionalWhere);
518
396
  }
519
397
  // No LIMIT/OFFSET - use simple aggregation
520
- const sql = `
521
- SELECT
522
- t."${foreignKey}" as parent_id,
523
- json_agg(
524
- ${jsonbObjectExpr}${jsonbAggOrderBy}
525
- ) as data
526
- FROM (
527
- SELECT *
528
- FROM "${targetTable}"
529
- WHERE "${foreignKey}" IN (SELECT id FROM ${tempTableName})${additionalWhere}
530
- ${orderBySQL}
531
- ) t
532
- GROUP BY t."${foreignKey}"
398
+ const sql = `
399
+ SELECT
400
+ t."${foreignKey}" as parent_id,
401
+ json_agg(
402
+ ${jsonbObjectExpr}${jsonbAggOrderBy}
403
+ ) as data
404
+ FROM (
405
+ SELECT *
406
+ FROM "${targetTable}"
407
+ WHERE "${foreignKey}" IN (SELECT id FROM ${tempTableName})${additionalWhere}
408
+ ${orderBySQL}
409
+ ) t
410
+ GROUP BY t."${foreignKey}"
533
411
  `.trim();
534
412
  return sql;
535
413
  }
@@ -549,19 +427,19 @@ GROUP BY t."${foreignKey}"
549
427
  else {
550
428
  rowNumberFilter = `WHERE "__rn" > ${offset}`;
551
429
  }
552
- const sql = `
553
- SELECT
554
- t."${foreignKey}" as parent_id,
555
- json_agg(
556
- ${jsonbObjectExpr}
557
- ) as data
558
- FROM (
559
- SELECT *, ROW_NUMBER() OVER (PARTITION BY "${foreignKey}" ORDER BY ${rowNumberOrderBy}) as "__rn"
560
- FROM "${targetTable}"
561
- WHERE "${foreignKey}" IN (SELECT id FROM ${tempTableName})${additionalWhere}
562
- ) t
563
- ${rowNumberFilter}
564
- GROUP BY t."${foreignKey}"
430
+ const sql = `
431
+ SELECT
432
+ t."${foreignKey}" as parent_id,
433
+ json_agg(
434
+ ${jsonbObjectExpr}
435
+ ) as data
436
+ FROM (
437
+ SELECT *, ROW_NUMBER() OVER (PARTITION BY "${foreignKey}" ORDER BY ${rowNumberOrderBy}) as "__rn"
438
+ FROM "${targetTable}"
439
+ WHERE "${foreignKey}" IN (SELECT id FROM ${tempTableName})${additionalWhere}
440
+ ) t
441
+ ${rowNumberFilter}
442
+ GROUP BY t."${foreignKey}"
565
443
  `.trim();
566
444
  return sql;
567
445
  }
@@ -571,7 +449,7 @@ GROUP BY t."${foreignKey}"
571
449
  * When LIMIT/OFFSET is specified, uses ROW_NUMBER() window function to correctly
572
450
  * apply pagination per parent row (not globally).
573
451
  */
574
- buildArrayAggregationSQL(config, tempTableName) {
452
+ buildArrayAggregationSQL(config, tempTableName, useJsonAgg = false) {
575
453
  const { arrayField, targetTable, foreignKey, whereClause, orderByClause, orderByClauseAlias, limitValue, offsetValue } = config;
576
454
  if (!arrayField) {
577
455
  throw new Error('arrayField is required for array aggregation');
@@ -585,27 +463,28 @@ GROUP BY t."${foreignKey}"
585
463
  const arrayAggOrderBy = orderByClauseAlias ? ` ORDER BY ${orderByClauseAlias}` : '';
586
464
  // If LIMIT or OFFSET is specified, use ROW_NUMBER() for per-parent pagination
587
465
  if (limitValue !== undefined || offsetValue !== undefined) {
588
- return this.buildArrayAggregationSQLWithRowNumber(config, tempTableName, additionalWhere);
466
+ return this.buildArrayAggregationSQLWithRowNumber(config, tempTableName, additionalWhere, useJsonAgg);
589
467
  }
468
+ const aggFn = useJsonAgg ? 'json_agg' : 'array_agg';
590
469
  // No LIMIT/OFFSET - use simple aggregation
591
- const sql = `
592
- SELECT
593
- t."${foreignKey}" as parent_id,
594
- array_agg(t."${arrayField}"${arrayAggOrderBy}) as data
595
- FROM (
596
- SELECT "${foreignKey}", "${arrayField}"
597
- FROM "${targetTable}"
598
- WHERE "${foreignKey}" IN (SELECT id FROM ${tempTableName})${additionalWhere}
599
- ${orderBySQL}
600
- ) t
601
- GROUP BY t."${foreignKey}"
470
+ const sql = `
471
+ SELECT
472
+ t."${foreignKey}" as parent_id,
473
+ ${aggFn}(t."${arrayField}"${arrayAggOrderBy}) as data
474
+ FROM (
475
+ SELECT "${foreignKey}", "${arrayField}"
476
+ FROM "${targetTable}"
477
+ WHERE "${foreignKey}" IN (SELECT id FROM ${tempTableName})${additionalWhere}
478
+ ${orderBySQL}
479
+ ) t
480
+ GROUP BY t."${foreignKey}"
602
481
  `.trim();
603
482
  return sql;
604
483
  }
605
484
  /**
606
485
  * Build array aggregation with ROW_NUMBER() for per-parent LIMIT/OFFSET
607
486
  */
608
- buildArrayAggregationSQLWithRowNumber(config, tempTableName, additionalWhere) {
487
+ buildArrayAggregationSQLWithRowNumber(config, tempTableName, additionalWhere, useJsonAgg = false) {
609
488
  const { arrayField, targetTable, foreignKey, orderByClause, limitValue, offsetValue } = config;
610
489
  // Build ORDER BY for ROW_NUMBER() - use the order clause or default to id DESC
611
490
  const rowNumberOrderBy = orderByClause || `"id" DESC`;
@@ -618,17 +497,18 @@ GROUP BY t."${foreignKey}"
618
497
  else {
619
498
  rowNumberFilter = `WHERE "__rn" > ${offset}`;
620
499
  }
621
- const sql = `
622
- SELECT
623
- t."${foreignKey}" as parent_id,
624
- array_agg(t."${arrayField}") as data
625
- FROM (
626
- SELECT "${foreignKey}", "${arrayField}", ROW_NUMBER() OVER (PARTITION BY "${foreignKey}" ORDER BY ${rowNumberOrderBy}) as "__rn"
627
- FROM "${targetTable}"
628
- WHERE "${foreignKey}" IN (SELECT id FROM ${tempTableName})${additionalWhere}
629
- ) t
630
- ${rowNumberFilter}
631
- GROUP BY t."${foreignKey}"
500
+ const aggFn = useJsonAgg ? 'json_agg' : 'array_agg';
501
+ const sql = `
502
+ SELECT
503
+ t."${foreignKey}" as parent_id,
504
+ ${aggFn}(t."${arrayField}") as data
505
+ FROM (
506
+ SELECT "${foreignKey}", "${arrayField}", ROW_NUMBER() OVER (PARTITION BY "${foreignKey}" ORDER BY ${rowNumberOrderBy}) as "__rn"
507
+ FROM "${targetTable}"
508
+ WHERE "${foreignKey}" IN (SELECT id FROM ${tempTableName})${additionalWhere}
509
+ ) t
510
+ ${rowNumberFilter}
511
+ GROUP BY t."${foreignKey}"
632
512
  `.trim();
633
513
  return sql;
634
514
  }
@@ -665,13 +545,13 @@ GROUP BY t."${foreignKey}"
665
545
  default:
666
546
  throw new Error(`Unknown aggregation type: ${aggregationType}`);
667
547
  }
668
- const sql = `
669
- SELECT
670
- tmp.id as parent_id,
671
- COALESCE(${aggregateExpression}, ${config.defaultValue}) as data
672
- FROM ${tempTableName} tmp
673
- LEFT JOIN "${targetTable}" ON "${targetTable}"."${foreignKey}" = tmp.id${additionalWhere}
674
- GROUP BY tmp.id
548
+ const sql = `
549
+ SELECT
550
+ tmp.id as parent_id,
551
+ COALESCE(${aggregateExpression}, ${config.defaultValue}) as data
552
+ FROM ${tempTableName} tmp
553
+ LEFT JOIN "${targetTable}" ON "${targetTable}"."${foreignKey}" = tmp.id${additionalWhere}
554
+ GROUP BY tmp.id
675
555
  `.trim();
676
556
  return sql;
677
557
  }
@@ -684,13 +564,13 @@ GROUP BY tmp.id
684
564
  // Build WHERE clause (rewrite collection markers)
685
565
  const rewrittenWhereClause = this.rewriteCollectionMarker(whereClause, targetTable);
686
566
  const additionalWhere = this.buildAdditionalWhere(config, targetTable, rewrittenWhereClause);
687
- const sql = `
688
- SELECT
689
- tmp.id as parent_id,
690
- COALESCE(bool_or(("${targetTable}"."${foreignKey}" IS NOT NULL)), false) as data
691
- FROM ${tempTableName} tmp
692
- LEFT JOIN "${targetTable}" ON "${targetTable}"."${foreignKey}" = tmp.id${additionalWhere}
693
- GROUP BY tmp.id
567
+ const sql = `
568
+ SELECT
569
+ tmp.id as parent_id,
570
+ COALESCE(bool_or(("${targetTable}"."${foreignKey}" IS NOT NULL)), false) as data
571
+ FROM ${tempTableName} tmp
572
+ LEFT JOIN "${targetTable}" ON "${targetTable}"."${foreignKey}" = tmp.id${additionalWhere}
573
+ GROUP BY tmp.id
694
574
  `.trim();
695
575
  return sql;
696
576
  }
@@ -1 +1 @@
1
- {"version":3,"file":"temptable-collection-strategy.js","sourceRoot":"","sources":["../../../src/query/strategies/temptable-collection-strategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"temptable-collection-strategy.js","sourceRoot":"","sources":["../../../src/query/strategies/temptable-collection-strategy.ts"],"names":[],"mappings":"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"}
@@ -51,10 +51,6 @@ export declare function customType<TData = any, TDriver = any>(config: {
51
51
  * Note: PostgreSQL drivers return jsonb as already-parsed objects
52
52
  */
53
53
  export declare const json: <T = any>() => CustomTypeBuilder<T, T>;
54
- /**
55
- * Array type
56
- * Note: PostgreSQL drivers return arrays as already-parsed
57
- */
58
54
  export declare const array: <T = any>(itemType: string) => CustomTypeBuilder<T[], T[]>;
59
55
  /**
60
56
  * Enum type
@@ -1 +1 @@
1
- {"version":3,"file":"custom-types.d.ts","sourceRoot":"","sources":["../../src/types/custom-types.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,KAAK,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IACpD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IAEhC;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,iBAAiB,CAAC,KAAK,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IAErD,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;QACpC,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC;KACvC;IAGH;;OAEG;IACH,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;IAQrC;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;CACF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG,EAAE,MAAM,EAAE;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IACpC,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC;CACvC,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAEpC;AAED;;GAEG;AAEH;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,GAAG,GAAG,8BAKxB,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,GAAG,GAAG,EAAE,UAAU,MAAM,gCAK3C,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,EACvC,UAAU,MAAM,EAChB,QAAQ,SAAS,CAAC,EAAE,iCAMlB,CAAC;AAEL;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,eAAO,MAAM,KAAK,wCASd,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,YAAY,MAAM,wCASrC,CAAC;AAEL;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,QAAQ,2CA4BjB,CAAC"}
1
+ {"version":3,"file":"custom-types.d.ts","sourceRoot":"","sources":["../../src/types/custom-types.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,KAAK,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IACpD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IAEhC;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,iBAAiB,CAAC,KAAK,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IAErD,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;QACpC,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC;KACvC;IAGH;;OAEG;IACH,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;IAQrC;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;CACF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG,EAAE,MAAM,EAAE;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IACpC,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,CAAC;CACvC,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAEpC;AAED;;GAEG;AAEH;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,GAAG,GAAG,8BAKxB,CAAC;AA+BL,eAAO,MAAM,KAAK,GAAI,CAAC,GAAG,GAAG,EAAE,UAAU,MAAM,gCAS3C,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,EACvC,UAAU,MAAM,EAChB,QAAQ,SAAS,CAAC,EAAE,iCAMlB,CAAC;AAEL;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,eAAO,MAAM,KAAK,wCASd,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,YAAY,MAAM,wCASrC,CAAC;AAEL;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,QAAQ,2CA4BjB,CAAC"}
@@ -50,9 +50,37 @@ exports.json = json;
50
50
  * Array type
51
51
  * Note: PostgreSQL drivers return arrays as already-parsed
52
52
  */
53
+ /**
54
+ * Serialize a JS array into a PostgreSQL array literal ('{1,2,3}',
55
+ * '{"a","b"}', nested arrays recursively). Strings are quoted with
56
+ * backslash/quote escaping; null/undefined elements become NULL.
57
+ */
58
+ const toPgArrayLiteral = (values) => {
59
+ const parts = values.map((value) => {
60
+ if (value === null || value === undefined) {
61
+ return 'NULL';
62
+ }
63
+ if (Array.isArray(value)) {
64
+ return toPgArrayLiteral(value);
65
+ }
66
+ if (typeof value === 'number' || typeof value === 'bigint') {
67
+ return String(value);
68
+ }
69
+ if (typeof value === 'boolean') {
70
+ return value ? 't' : 'f';
71
+ }
72
+ const text = value instanceof Date ? value.toISOString() : String(value);
73
+ return `"${text.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
74
+ });
75
+ return `{${parts.join(',')}}`;
76
+ };
53
77
  const array = (itemType) => customType({
54
78
  dataType: `${itemType}[]`,
55
- toDriver: (value) => value, // Driver accepts arrays directly
79
+ // Serialize to a PG array literal STRING: every driver accepts it (the
80
+ // server casts text -> array), unlike raw JS arrays — postgres.js/pg
81
+ // serialize those themselves, but Bun's SQL client sends them as JSON
82
+ // (binary mode: protocol error 08P01; text mode: "1,2,3" without braces).
83
+ toDriver: (value) => (value == null ? value : toPgArrayLiteral(value)),
56
84
  fromDriver: (value) => value, // Driver returns parsed arrays
57
85
  });
58
86
  exports.array = array;
@@ -1 +1 @@
1
- {"version":3,"file":"custom-types.js","sourceRoot":"","sources":["../../src/types/custom-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-types.js","sourceRoot":"","sources":["../../src/types/custom-types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linkgress-orm",
3
- "version": "0.4.40",
3
+ "version": "0.4.42",
4
4
  "description": "A lightweight, type-safe ORM for PostgreSQL with LINQ-style queries and automatic type inference",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -21,6 +21,8 @@
21
21
  "watch:dev": "tsc --project tsconfig.dev.json --watch",
22
22
  "migrate": "ts-node debug/schema/migration.ts",
23
23
  "test": "jest",
24
+ "test:bun": "bun tests-bun/run-jest-suite.ts",
25
+ "test:bun:contract": "bun test tests-bun/",
24
26
  "test:watch": "jest --watch",
25
27
  "test:coverage": "jest --coverage",
26
28
  "test:verbose": "jest --verbose",
@@ -52,6 +54,7 @@
52
54
  },
53
55
  "devDependencies": {
54
56
  "@jest/globals": "^30.2.0",
57
+ "@types/bun": "^1.3.14",
55
58
  "@types/jest": "^30.0.0",
56
59
  "@types/node": "^20.0.0",
57
60
  "@types/pg": "^8.10.0",