orchid-orm 1.59.3 → 1.59.4
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.d.ts +73 -83
- package/dist/index.js +20 -8
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +20 -8
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
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 =
|
|
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
|
|
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]] =
|
|
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) {
|