orchid-orm 1.59.3 → 1.59.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/index.mjs CHANGED
@@ -421,7 +421,10 @@ class BelongsToVirtualColumn extends VirtualColumn {
421
421
  q,
422
422
  (as) => {
423
423
  foreignKeys.forEach((foreignKey, i) => {
424
- item[foreignKey]._sql = `(SELECT "${as}"."${primaryKeys[i]}" FROM "${as}")`;
424
+ item[foreignKey]._sql = selectCteColumnSql(
425
+ as,
426
+ primaryKeys[i]
427
+ );
425
428
  });
426
429
  },
427
430
  "create" in value ? _queryCreate(selectPKeys, value.create) : _orCreate(
@@ -436,9 +439,8 @@ class BelongsToVirtualColumn extends VirtualColumn {
436
439
  const as = getFreeAlias(q.q.withShapes, "q");
437
440
  _with(q, as, query.select(...primaryKeys).findBy(value.connect));
438
441
  foreignKeys.map((foreignKey, i) => {
439
- const selectColumn = `(SELECT "${as}"."${primaryKeys[i]}" FROM "${as}")`;
440
442
  item[foreignKey] = new RawSql(
441
- i === 0 ? `CASE WHEN (SELECT count(*) FROM "${as}") = 0 AND (SELECT 'not-found')::int = 0 THEN NULL ELSE ${selectColumn} END` : selectColumn
443
+ selectCteColumnMustExistSql(i, as, primaryKeys[i])
442
444
  );
443
445
  });
444
446
  return;
@@ -542,13 +544,18 @@ const nestedUpdate$3 = ({ query, primaryKeys, foreignKeys, len }) => {
542
544
  }
543
545
  }
544
546
  if (loadPrimaryKeys) {
545
- const record = await _queryFindBy(
546
- query.select(...loadPrimaryKeys),
547
- params.set
548
- );
549
547
  for (let i = 0, len2 = loadPrimaryKeys.length; i < len2; i++) {
550
- update[loadForeignKeys[i]] = record[loadPrimaryKeys[i]];
548
+ update[loadForeignKeys[i]] = new RawSql("");
551
549
  }
550
+ _with(
551
+ q2,
552
+ (as) => {
553
+ for (let i = 0, len2 = loadPrimaryKeys.length; i < len2; i++) {
554
+ update[loadForeignKeys[i]]._sql = selectCteColumnMustExistSql(i, as, loadPrimaryKeys[i]);
555
+ }
556
+ },
557
+ _queryFindBy(query.select(...loadPrimaryKeys), params.set)
558
+ );
552
559
  }
553
560
  } else if (params.create) {
554
561
  const q3 = query.clone();
@@ -645,6 +652,11 @@ const nestedUpdate$3 = ({ query, primaryKeys, foreignKeys, len }) => {
645
652
  }
646
653
  };
647
654
  };
655
+ const selectCteColumnSql = (cteAs, column) => `(SELECT "${cteAs}"."${column}" FROM "${cteAs}")`;
656
+ const selectCteColumnMustExistSql = (i, cteAs, column) => {
657
+ const selectColumn = selectCteColumnSql(cteAs, column);
658
+ return i === 0 ? `CASE WHEN (SELECT count(*) FROM "${cteAs}") = 0 AND (SELECT 'not-found')::int = 0 THEN NULL ELSE ${selectColumn} END` : selectColumn;
659
+ };
648
660
 
649
661
  class HasOneVirtualColumn extends VirtualColumn {
650
662
  constructor(schema, key, state) {