@nicia-ai/typegraph 0.58.0 → 0.60.0
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/CHANGELOG.md +42 -0
- package/README.md +15 -0
- package/dist/{atomic-mutation-program-CPcn0ZPu.d.ts → atomic-mutation-program-BNvJ13bq.d.ts} +1 -1
- package/dist/{atomic-mutation-program-AqOe51XD.d.cts → atomic-mutation-program-DOVE147J.d.cts} +1 -1
- package/dist/backend/drizzle/engine/index.cjs +8 -8
- package/dist/backend/drizzle/engine/index.d.cts +9 -9
- package/dist/backend/drizzle/engine/index.d.ts +9 -9
- package/dist/backend/drizzle/engine/index.js +3 -3
- package/dist/backend/drizzle/indexes.cjs +6 -6
- package/dist/backend/drizzle/indexes.d.cts +1 -1
- package/dist/backend/drizzle/indexes.d.ts +1 -1
- package/dist/backend/drizzle/indexes.js +2 -2
- package/dist/backend/index.d.cts +7 -7
- package/dist/backend/index.d.ts +7 -7
- package/dist/backend/postgres/index.cjs +17 -17
- package/dist/backend/postgres/index.d.cts +8 -8
- package/dist/backend/postgres/index.d.ts +8 -8
- package/dist/backend/postgres/index.js +3 -3
- package/dist/backend/postgres/pglite-store.cjs +1 -1
- package/dist/backend/postgres/pglite-store.d.cts +6 -6
- package/dist/backend/postgres/pglite-store.d.ts +6 -6
- package/dist/backend/postgres/pglite-store.js +1 -1
- package/dist/backend/postgres/pglite.cjs +5 -5
- package/dist/backend/postgres/pglite.d.cts +3 -3
- package/dist/backend/postgres/pglite.d.ts +3 -3
- package/dist/backend/postgres/pglite.js +4 -4
- package/dist/backend/sqlite/index.cjs +16 -16
- package/dist/backend/sqlite/index.d.cts +7 -7
- package/dist/backend/sqlite/index.d.ts +7 -7
- package/dist/backend/sqlite/index.js +3 -3
- package/dist/backend/sqlite/libsql.cjs +7 -7
- package/dist/backend/sqlite/libsql.d.cts +3 -3
- package/dist/backend/sqlite/libsql.d.ts +3 -3
- package/dist/backend/sqlite/libsql.js +3 -3
- package/dist/backend/sqlite/local-store.cjs +1 -1
- package/dist/backend/sqlite/local-store.d.cts +6 -6
- package/dist/backend/sqlite/local-store.d.ts +6 -6
- package/dist/backend/sqlite/local-store.js +1 -1
- package/dist/backend/sqlite/local.cjs +5 -5
- package/dist/backend/sqlite/local.d.cts +3 -3
- package/dist/backend/sqlite/local.d.ts +3 -3
- package/dist/backend/sqlite/local.js +4 -4
- package/dist/{chunk-7JUD57B4.js → chunk-2DKIJP2R.js} +1044 -84
- package/dist/chunk-2DKIJP2R.js.map +1 -0
- package/dist/{chunk-QIKO6DL5.js → chunk-2QNFFAMF.js} +3 -3
- package/dist/{chunk-QIKO6DL5.js.map → chunk-2QNFFAMF.js.map} +1 -1
- package/dist/{chunk-6BVZHDAZ.js → chunk-43DOTETB.js} +3 -3
- package/dist/{chunk-6BVZHDAZ.js.map → chunk-43DOTETB.js.map} +1 -1
- package/dist/{chunk-US3BLFWM.js → chunk-7GNPCBS2.js} +3 -3
- package/dist/{chunk-US3BLFWM.js.map → chunk-7GNPCBS2.js.map} +1 -1
- package/dist/{chunk-IV5W7LKW.cjs → chunk-A22XPVBQ.cjs} +2 -2
- package/dist/chunk-A22XPVBQ.cjs.map +1 -0
- package/dist/{chunk-CVO2ZPW5.js → chunk-B4P4DAW3.js} +4 -4
- package/dist/{chunk-CVO2ZPW5.js.map → chunk-B4P4DAW3.js.map} +1 -1
- package/dist/{chunk-FHFPUORN.cjs → chunk-CNFKFE5L.cjs} +1375 -415
- package/dist/chunk-CNFKFE5L.cjs.map +1 -0
- package/dist/{chunk-4MZQVVPX.cjs → chunk-D5CHUSW7.cjs} +33 -2
- package/dist/chunk-D5CHUSW7.cjs.map +1 -0
- package/dist/{chunk-TKEJR2UL.cjs → chunk-DWO6WZP5.cjs} +6 -6
- package/dist/{chunk-TKEJR2UL.cjs.map → chunk-DWO6WZP5.cjs.map} +1 -1
- package/dist/{chunk-GUMNJJFP.cjs → chunk-EHDLHPMK.cjs} +9 -9
- package/dist/{chunk-GUMNJJFP.cjs.map → chunk-EHDLHPMK.cjs.map} +1 -1
- package/dist/{chunk-DV24YZHG.js → chunk-FTDRMXIJ.js} +6 -6
- package/dist/{chunk-DV24YZHG.js.map → chunk-FTDRMXIJ.js.map} +1 -1
- package/dist/{chunk-BYBMDK6X.js → chunk-GYOQAV6R.js} +3 -3
- package/dist/{chunk-BYBMDK6X.js.map → chunk-GYOQAV6R.js.map} +1 -1
- package/dist/{chunk-GTW5YKFV.js → chunk-HCNC53MU.js} +3 -3
- package/dist/{chunk-GTW5YKFV.js.map → chunk-HCNC53MU.js.map} +1 -1
- package/dist/{chunk-M7TRJXFE.js → chunk-ILVXUOQY.js} +3 -3
- package/dist/{chunk-M7TRJXFE.js.map → chunk-ILVXUOQY.js.map} +1 -1
- package/dist/{chunk-FGKWXSHF.cjs → chunk-KGQVK2II.cjs} +40 -40
- package/dist/{chunk-FGKWXSHF.cjs.map → chunk-KGQVK2II.cjs.map} +1 -1
- package/dist/{chunk-BMATB57B.cjs → chunk-KW3ON5IU.cjs} +11 -11
- package/dist/{chunk-BMATB57B.cjs.map → chunk-KW3ON5IU.cjs.map} +1 -1
- package/dist/{chunk-GK62U3S5.js → chunk-LOFUF6L7.js} +3 -3
- package/dist/{chunk-GK62U3S5.js.map → chunk-LOFUF6L7.js.map} +1 -1
- package/dist/{chunk-BPYZUJX5.cjs → chunk-MTJAT6UO.cjs} +5 -5
- package/dist/{chunk-BPYZUJX5.cjs.map → chunk-MTJAT6UO.cjs.map} +1 -1
- package/dist/{chunk-YTYB5KCQ.js → chunk-OH7QRGPQ.js} +33 -2
- package/dist/chunk-OH7QRGPQ.js.map +1 -0
- package/dist/{chunk-U53HFE4L.cjs → chunk-OKA6H3B3.cjs} +22 -22
- package/dist/{chunk-U53HFE4L.cjs.map → chunk-OKA6H3B3.cjs.map} +1 -1
- package/dist/{chunk-QR6V2BXA.cjs → chunk-PTFO3JI5.cjs} +114 -114
- package/dist/{chunk-QR6V2BXA.cjs.map → chunk-PTFO3JI5.cjs.map} +1 -1
- package/dist/{chunk-C3CN2C2T.cjs → chunk-Q6ZVQWH7.cjs} +38 -38
- package/dist/{chunk-C3CN2C2T.cjs.map → chunk-Q6ZVQWH7.cjs.map} +1 -1
- package/dist/{chunk-WAG3NVD7.cjs → chunk-QBQ465OX.cjs} +12 -12
- package/dist/{chunk-WAG3NVD7.cjs.map → chunk-QBQ465OX.cjs.map} +1 -1
- package/dist/{chunk-CRROO6PK.cjs → chunk-QHP2BCBJ.cjs} +4 -4
- package/dist/{chunk-CRROO6PK.cjs.map → chunk-QHP2BCBJ.cjs.map} +1 -1
- package/dist/{chunk-HWWPL2YL.js → chunk-QWIR5533.js} +2 -2
- package/dist/chunk-QWIR5533.js.map +1 -0
- package/dist/{chunk-ZHLWPHNT.cjs → chunk-RJ3GVX73.cjs} +6 -6
- package/dist/{chunk-ZHLWPHNT.cjs.map → chunk-RJ3GVX73.cjs.map} +1 -1
- package/dist/{chunk-SYKR6MVR.cjs → chunk-T2M2S5YZ.cjs} +59 -59
- package/dist/{chunk-SYKR6MVR.cjs.map → chunk-T2M2S5YZ.cjs.map} +1 -1
- package/dist/{chunk-OESX3T5K.js → chunk-TNNDNSNH.js} +4 -4
- package/dist/{chunk-OESX3T5K.js.map → chunk-TNNDNSNH.js.map} +1 -1
- package/dist/{chunk-5C4OYYDD.js → chunk-UVQMUBZ6.js} +6 -6
- package/dist/{chunk-5C4OYYDD.js.map → chunk-UVQMUBZ6.js.map} +1 -1
- package/dist/{chunk-IV3FENV2.js → chunk-W6K6NSRT.js} +5 -5
- package/dist/{chunk-IV3FENV2.js.map → chunk-W6K6NSRT.js.map} +1 -1
- package/dist/core/index.d.cts +3 -3
- package/dist/core/index.d.ts +3 -3
- package/dist/{ddl-wlEdaCQK.d.cts → ddl-B9lzB8Zi.d.cts} +3 -3
- package/dist/{ddl-DkFrUTn_.d.ts → ddl-DuZWvxBb.d.ts} +3 -3
- package/dist/graph-extension/index.d.cts +2 -2
- package/dist/graph-extension/index.d.ts +2 -2
- package/dist/graph-merge/index.cjs +122 -122
- package/dist/graph-merge/index.d.cts +7 -6
- package/dist/graph-merge/index.d.ts +7 -6
- package/dist/graph-merge/index.js +10 -10
- package/dist/{graph-templates-B4gkXVqg.d.ts → graph-templates-ClBhrXiA.d.ts} +2 -2
- package/dist/{graph-templates-6zTU7bNe.d.cts → graph-templates-DfmKDARd.d.cts} +2 -2
- package/dist/index.cjs +73 -73
- package/dist/index.d.cts +10 -10
- package/dist/index.d.ts +10 -10
- package/dist/index.js +11 -11
- package/dist/indexes/index.cjs +8 -8
- package/dist/indexes/index.d.cts +4 -4
- package/dist/indexes/index.d.ts +4 -4
- package/dist/indexes/index.js +3 -3
- package/dist/{ingestion-import-target-im9wEB00.d.cts → ingestion-import-target-BSgJagqI.d.cts} +1 -1
- package/dist/{ingestion-import-target-SopMSm-T.d.ts → ingestion-import-target-PNw10V4T.d.ts} +1 -1
- package/dist/interchange/index.cjs +29 -29
- package/dist/interchange/index.d.cts +7 -6
- package/dist/interchange/index.d.ts +7 -6
- package/dist/interchange/index.js +6 -6
- package/dist/{local-store-impl-ARNXBBSF.cjs → local-store-impl-QGSRYFZF.cjs} +17 -17
- package/dist/{local-store-impl-ARNXBBSF.cjs.map → local-store-impl-QGSRYFZF.cjs.map} +1 -1
- package/dist/{local-store-impl-FTGRP2V7.js → local-store-impl-VEVK2VGA.js} +14 -14
- package/dist/{local-store-impl-FTGRP2V7.js.map → local-store-impl-VEVK2VGA.js.map} +1 -1
- package/dist/{pglite-store-impl-CNQZYRBC.cjs → pglite-store-impl-33CI3P3M.cjs} +17 -17
- package/dist/{pglite-store-impl-CNQZYRBC.cjs.map → pglite-store-impl-33CI3P3M.cjs.map} +1 -1
- package/dist/{pglite-store-impl-NULC2IHH.js → pglite-store-impl-RDPTOOP3.js} +14 -14
- package/dist/{pglite-store-impl-NULC2IHH.js.map → pglite-store-impl-RDPTOOP3.js.map} +1 -1
- package/dist/{postgres-Dd3TrFku.d.ts → postgres-2FBMdOE_.d.ts} +3 -3
- package/dist/{postgres-cLQPlKtp.d.cts → postgres-BR3AeXm9.d.ts} +1 -1
- package/dist/{postgres-CLPfTNYN.d.ts → postgres-CRatyTVL.d.cts} +1 -1
- package/dist/{postgres-B4VD_rVy.d.cts → postgres-lbZf0zyg.d.cts} +3 -3
- package/dist/{profile-Co154QBx.d.ts → profile-BipG05-8.d.ts} +2 -2
- package/dist/{profile-BqThShR_.d.cts → profile-DKtvxVyA.d.cts} +2 -2
- package/dist/profiler/index.d.cts +8 -7
- package/dist/profiler/index.d.ts +8 -7
- package/dist/provenance/index.cjs +15 -15
- package/dist/provenance/index.cjs.map +1 -1
- package/dist/provenance/index.d.cts +6 -5
- package/dist/provenance/index.d.ts +6 -5
- package/dist/provenance/index.js +2 -2
- package/dist/provenance/index.js.map +1 -1
- package/dist/{repair-validity-windows-BLoClfCq.d.cts → repair-validity-windows-BnSHFIsR.d.cts} +1 -1
- package/dist/{repair-validity-windows-C__28ckL.d.ts → repair-validity-windows-DfRb4gZm.d.ts} +1 -1
- package/dist/{resolve-DgFSIK99.d.ts → resolve-BbjZDYTw.d.ts} +1 -1
- package/dist/{resolve-DSUxNIqw.d.cts → resolve-mLksuBg2.d.cts} +1 -1
- package/dist/schema/index.cjs +36 -36
- package/dist/schema/index.d.cts +7 -7
- package/dist/schema/index.d.ts +7 -7
- package/dist/schema/index.js +6 -6
- package/dist/{searchable-CZKn12eY.d.cts → searchable-BEAN91Ce.d.cts} +1 -1
- package/dist/{searchable-CUWWphQI.d.ts → searchable-Bg2lMPRm.d.ts} +1 -1
- package/dist/{sqlite-mSd_eVk4.d.ts → sqlite-Cal3rHgZ.d.ts} +3 -3
- package/dist/{sqlite-RdH7w-ix.d.cts → sqlite-CvajLABd.d.cts} +1 -1
- package/dist/{sqlite-qXLIybR2.d.cts → sqlite-DQxKoWAH.d.cts} +3 -3
- package/dist/{sqlite-CoBmhiFd.d.ts → sqlite-jH5J-Jb8.d.ts} +1 -1
- package/dist/{store-BzmMsCcw.d.ts → store-B5WZ8E5m.d.ts} +313 -177
- package/dist/{store-CL6uTm_W.d.cts → store-DdhFpX53.d.cts} +313 -177
- package/dist/{types-BUoh7cc3.d.cts → types-BUA3dZ99.d.cts} +1 -1
- package/dist/{types-ClC0IFIS.d.ts → types-CPtb7KNf.d.ts} +1 -1
- package/dist/{types-Blq8PG_N.d.cts → types-Dky3sCFz.d.cts} +9 -0
- package/dist/{types-Blq8PG_N.d.ts → types-Dky3sCFz.d.ts} +9 -0
- package/dist/{where-61C-QoM8.d.ts → where-BReEkAiy.d.ts} +1 -1
- package/dist/{where-o3Me5iJx.d.cts → where-Cz11nPRu.d.cts} +1 -1
- package/package.json +2 -2
- package/dist/chunk-4MZQVVPX.cjs.map +0 -1
- package/dist/chunk-7JUD57B4.js.map +0 -1
- package/dist/chunk-FHFPUORN.cjs.map +0 -1
- package/dist/chunk-HWWPL2YL.js.map +0 -1
- package/dist/chunk-IV5W7LKW.cjs.map +0 -1
- package/dist/chunk-YTYB5KCQ.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkGDTWUVSN_cjs = require('./chunk-GDTWUVSN.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkD5CHUSW7_cjs = require('./chunk-D5CHUSW7.cjs');
|
|
5
5
|
var chunkMAYQDOZB_cjs = require('./chunk-MAYQDOZB.cjs');
|
|
6
6
|
var pgCore = require('drizzle-orm/pg-core');
|
|
7
7
|
var sqliteCore = require('drizzle-orm/sqlite-core');
|
|
@@ -53,7 +53,7 @@ function buildPostgresNodeIndexBuilders(table, indexes) {
|
|
|
53
53
|
return nodeIndexes.map((index) => {
|
|
54
54
|
const propsColumn = chunkMAYQDOZB_cjs.sql.identifier(table.props.name);
|
|
55
55
|
const systemColumn = (column) => chunkMAYQDOZB_cjs.sql.identifier(getPostgresNodeSystemColumn(table, column).name);
|
|
56
|
-
const { keys } =
|
|
56
|
+
const { keys } = chunkD5CHUSW7_cjs.compileNodeIndexKeys(
|
|
57
57
|
index,
|
|
58
58
|
"postgres",
|
|
59
59
|
propsColumn,
|
|
@@ -72,7 +72,7 @@ function buildPostgresNodeIndexBuilders(table, indexes) {
|
|
|
72
72
|
systemColumn
|
|
73
73
|
};
|
|
74
74
|
builder.where(
|
|
75
|
-
toDrizzleSql(
|
|
75
|
+
toDrizzleSql(chunkD5CHUSW7_cjs.compileIndexWhere(ctx, index.where), "postgres")
|
|
76
76
|
);
|
|
77
77
|
}
|
|
78
78
|
return builder;
|
|
@@ -85,7 +85,7 @@ function buildPostgresEdgeIndexBuilders(table, indexes) {
|
|
|
85
85
|
return edgeIndexes.map((index) => {
|
|
86
86
|
const propsColumn = chunkMAYQDOZB_cjs.sql.identifier(table.props.name);
|
|
87
87
|
const systemColumn = (column) => chunkMAYQDOZB_cjs.sql.identifier(getPostgresEdgeSystemColumn(table, column).name);
|
|
88
|
-
const { keys } =
|
|
88
|
+
const { keys } = chunkD5CHUSW7_cjs.compileEdgeIndexKeys(
|
|
89
89
|
index,
|
|
90
90
|
"postgres",
|
|
91
91
|
propsColumn,
|
|
@@ -104,7 +104,7 @@ function buildPostgresEdgeIndexBuilders(table, indexes) {
|
|
|
104
104
|
systemColumn
|
|
105
105
|
};
|
|
106
106
|
builder.where(
|
|
107
|
-
toDrizzleSql(
|
|
107
|
+
toDrizzleSql(chunkD5CHUSW7_cjs.compileIndexWhere(ctx, index.where), "postgres")
|
|
108
108
|
);
|
|
109
109
|
}
|
|
110
110
|
return builder;
|
|
@@ -197,7 +197,7 @@ function buildSqliteNodeIndexBuilders(table, indexes) {
|
|
|
197
197
|
return nodeIndexes.map((index) => {
|
|
198
198
|
const propsColumn = chunkMAYQDOZB_cjs.sql.identifier(table.props.name);
|
|
199
199
|
const systemColumn = (column) => chunkMAYQDOZB_cjs.sql.identifier(getSqliteNodeSystemColumn(table, column).name);
|
|
200
|
-
const { keys } =
|
|
200
|
+
const { keys } = chunkD5CHUSW7_cjs.compileNodeIndexKeys(
|
|
201
201
|
index,
|
|
202
202
|
"sqlite",
|
|
203
203
|
propsColumn,
|
|
@@ -216,7 +216,7 @@ function buildSqliteNodeIndexBuilders(table, indexes) {
|
|
|
216
216
|
systemColumn
|
|
217
217
|
};
|
|
218
218
|
builder.where(
|
|
219
|
-
toDrizzleSql(
|
|
219
|
+
toDrizzleSql(chunkD5CHUSW7_cjs.compileIndexWhere(ctx, index.where), "sqlite")
|
|
220
220
|
);
|
|
221
221
|
}
|
|
222
222
|
return builder;
|
|
@@ -229,7 +229,7 @@ function buildSqliteEdgeIndexBuilders(table, indexes) {
|
|
|
229
229
|
return edgeIndexes.map((index) => {
|
|
230
230
|
const propsColumn = chunkMAYQDOZB_cjs.sql.identifier(table.props.name);
|
|
231
231
|
const systemColumn = (column) => chunkMAYQDOZB_cjs.sql.identifier(getSqliteEdgeSystemColumn(table, column).name);
|
|
232
|
-
const { keys } =
|
|
232
|
+
const { keys } = chunkD5CHUSW7_cjs.compileEdgeIndexKeys(
|
|
233
233
|
index,
|
|
234
234
|
"sqlite",
|
|
235
235
|
propsColumn,
|
|
@@ -248,7 +248,7 @@ function buildSqliteEdgeIndexBuilders(table, indexes) {
|
|
|
248
248
|
systemColumn
|
|
249
249
|
};
|
|
250
250
|
builder.where(
|
|
251
|
-
toDrizzleSql(
|
|
251
|
+
toDrizzleSql(chunkD5CHUSW7_cjs.compileIndexWhere(ctx, index.where), "sqlite")
|
|
252
252
|
);
|
|
253
253
|
}
|
|
254
254
|
return builder;
|
|
@@ -388,5 +388,5 @@ exports.buildSqliteNodeIndexBuilders = buildSqliteNodeIndexBuilders;
|
|
|
388
388
|
exports.buildSqliteSystemIndexBuilders = buildSqliteSystemIndexBuilders;
|
|
389
389
|
exports.compileQueryWithDialect = compileQueryWithDialect;
|
|
390
390
|
exports.toDrizzleSql = toDrizzleSql;
|
|
391
|
-
//# sourceMappingURL=chunk-
|
|
392
|
-
//# sourceMappingURL=chunk-
|
|
391
|
+
//# sourceMappingURL=chunk-KW3ON5IU.cjs.map
|
|
392
|
+
//# sourceMappingURL=chunk-KW3ON5IU.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/backend/drizzle/execution/types.ts","../src/indexes/drizzle.ts"],"names":["isSqlFragment","renderSql","drizzleSql","bindSqlValue","throwUnsupportedSqlChunk","sql","compileNodeIndexKeys","pgUniqueIndex","pgIndex","compileIndexWhere","compileEdgeIndexKeys","sqliteUniqueIndex","sqliteIndex","SYSTEM_INDEX_DECLARATIONS","systemIndexName"],"mappings":"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","file":"chunk-BMATB57B.cjs","sourcesContent":["import { type SQL as DrizzleSql, sql as drizzleSql } from \"drizzle-orm\";\n\nimport { bindSqlValue } from \"../../../query/dialect/profile\";\nimport { type SqlDialect } from \"../../../query/dialect/types\";\nimport {\n isSqlFragment,\n renderSql,\n type SqlFragment,\n throwUnsupportedSqlChunk,\n} from \"../../../query/sql-fragment\";\nimport type {\n AtomicSqlBatchExecutor,\n CompiledAtomicSqlStatement,\n} from \"../../capabilities/atomic-sql-program\";\n\nexport type ExecutableSql = DrizzleSql | SqlFragment;\n\nexport type CompiledSqlQuery = CompiledAtomicSqlStatement;\n\n/**\n * A driver-native, all-or-nothing group of compiled statements.\n *\n * This is intentionally an optional execution surface. Most SQL drivers only\n * expose one-statement execution through Drizzle; drivers with a native batch\n * primitive can provide it without making callers guess whether a sequence is\n * actually transactional. The static name is deliberate: this hook submits a\n * complete batch to a native primitive and is not an interactive transaction\n * runner.\n */\nexport type PreparedSqlStatement = Readonly<{\n execute: <TRow>(params: readonly unknown[]) => Promise<readonly TRow[]>;\n}>;\n\nexport type SqlExecutionAdapter = Readonly<{\n compile: (query: ExecutableSql) => CompiledSqlQuery;\n execute: <TRow>(query: ExecutableSql) => Promise<readonly TRow[]>;\n executeCompiled?: <TRow>(\n compiledQuery: CompiledSqlQuery,\n ) => Promise<readonly TRow[]>;\n /** Executes all statements atomically when the native driver supports it. */\n executeAtomicBatch?: AtomicSqlBatchExecutor;\n prepare?: (sqlText: string) => PreparedSqlStatement;\n /**\n * Runs `critical` with exclusive use of the connection: no statement from\n * anywhere else can interleave with the ones it issues.\n *\n * Statement-at-a-time serialization is not enough for a *sequence* that must\n * be atomic. `SET LOCAL` around a query is the motivating case — snapshot,\n * set, select, restore. Two searches whose statements merely take turns can\n * still interleave as `A snapshot → B snapshot → A set → B set → A select`,\n * and `A` then runs under `B`'s settings.\n *\n * `critical` is handed the unqueued adapter, so it must not attempt to\n * re-enter the queue. Present only on transaction-scoped (serialized)\n * adapters; a pooled adapter needs no exclusion because every statement gets\n * its own connection.\n */\n runExclusive?: <T>(\n critical: (connection: SqlExecutionAdapter) => Promise<T>,\n ) => Promise<T>;\n /**\n * Recognizes this engine's own commit-conflict shape when it is not\n * PostgreSQL's `40001`/`40P01` SQLSTATE (or the fixed message fallback for\n * a driver that drops the code). `createSqlBackend` registers this\n * classifier against the exact backend object it returns; `isSerializationFailure`\n * (`src/utils/sql-errors.ts`) consults it before falling back to its own\n * SQLSTATE/message rules, so there remains ONE predicate every retry owner\n * calls, never a second inline check for engines this covers.\n */\n serializationFailure?: (error: unknown) => boolean;\n}>;\n\ntype SqlCompiler = Readonly<{\n sqlToQuery: (query: DrizzleSql) => CompiledSqlQuery;\n}>;\n\ntype DatabaseWithCompiler = Readonly<{\n dialect?: SqlCompiler;\n}>;\n\ntype BackendName = \"PostgreSQL\" | \"SQLite\";\n\nconst DIALECT_BY_BACKEND_NAME = {\n PostgreSQL: \"postgres\",\n SQLite: \"sqlite\",\n} as const satisfies Record<BackendName, SqlDialect>;\n\nexport function compileQueryWithDialect(\n db: unknown,\n query: ExecutableSql,\n backendName: BackendName,\n): CompiledSqlQuery {\n if (isSqlFragment(query)) {\n return renderSql(query, DIALECT_BY_BACKEND_NAME[backendName]);\n }\n const databaseWithCompiler = db as DatabaseWithCompiler;\n const compiler = databaseWithCompiler.dialect;\n if (compiler === undefined) {\n throw new Error(`${backendName} backend is missing a SQL compiler`);\n }\n return compiler.sqlToQuery(query);\n}\n\n/**\n * Translates TypeGraph's fragment IR into Drizzle's adapter-native SQL object.\n *\n * Most execution paths render directly to text and parameters. Async SQLite\n * drivers expose only Drizzle's execution method, so that adapter needs this\n * lossless bridge at its final boundary.\n */\nexport function toDrizzleSql(\n fragment: SqlFragment,\n dialect: SqlDialect,\n): DrizzleSql {\n const chunks = fragment.chunks.map((chunk) => {\n switch (chunk.kind) {\n case \"text\": {\n return drizzleSql.raw(chunk.value);\n }\n case \"identifier\": {\n // Drizzle's schema builders treat Name chunks as bare index-column\n // references and omit dialect quoting. Preserve the portable IR's\n // identifier semantics by handing the adapter an already-quoted,\n // trusted SQL token instead.\n return drizzleSql.raw(`\"${chunk.value.replaceAll('\"', '\"\"')}\"`);\n }\n case \"parameter\": {\n return drizzleSql.param(bindSqlValue(chunk.value, dialect));\n }\n case \"placeholder\": {\n return drizzleSql.placeholder(chunk.value.name);\n }\n default: {\n return throwUnsupportedSqlChunk(chunk);\n }\n }\n });\n return drizzleSql.join(chunks);\n}\n","import { type SQLWrapper } from \"drizzle-orm\";\nimport {\n index as pgIndex,\n type IndexBuilder as PgIndexBuilder,\n type PgColumn,\n uniqueIndex as pgUniqueIndex,\n} from \"drizzle-orm/pg-core\";\nimport {\n index as sqliteIndex,\n type IndexBuilder as SqliteIndexBuilder,\n type SQLiteColumn,\n uniqueIndex as sqliteUniqueIndex,\n} from \"drizzle-orm/sqlite-core\";\n\nimport { toDrizzleSql } from \"../backend/drizzle/execution/types\";\nimport { sql as portableSql, type SqlFragment } from \"../query/sql-fragment\";\nimport {\n compileEdgeIndexKeys,\n compileIndexWhere,\n compileNodeIndexKeys,\n type IndexCompilationContext,\n} from \"./compiler\";\nimport {\n SYSTEM_INDEX_DECLARATIONS,\n type SystemIndexDeclaration,\n systemIndexName,\n type SystemIndexTable,\n} from \"./system\";\nimport {\n type EdgeIndexDeclaration,\n type IndexDeclaration,\n type NodeIndexDeclaration,\n type SystemColumnName,\n} from \"./types\";\n\n// ============================================================\n// PostgreSQL (Drizzle Schema)\n// ============================================================\n\nexport function buildPostgresNodeIndexBuilders(\n table: NodeIndexTable,\n indexes: readonly IndexDeclaration[],\n): readonly PgIndexBuilder[] {\n // GIN-family declarations (method: \"gin\" / \"trigram\") are\n // materialize-only — like pgvector ANN indexes, they are a pure\n // materialization concern and never ride the Drizzle table extras.\n const nodeIndexes = indexes.filter(\n (index): index is NodeIndexDeclaration =>\n index.entity === \"node\" && index.method === undefined,\n );\n\n return nodeIndexes.map((index) => {\n const propsColumn = portableSql.identifier(table.props.name);\n const systemColumn = (column: SystemColumnName): SqlFragment =>\n portableSql.identifier(getPostgresNodeSystemColumn(table, column).name);\n\n const { keys } = compileNodeIndexKeys(\n index,\n \"postgres\",\n propsColumn,\n systemColumn,\n );\n assertNonEmpty(keys, `node index \"${index.name}\"`);\n\n const base = index.unique ? pgUniqueIndex(index.name) : pgIndex(index.name);\n\n const drizzleKeys = keys.map((key) => toDrizzleSql(key, \"postgres\"));\n assertNonEmpty(drizzleKeys, `node index \"${index.name}\"`);\n const [firstKey, ...remainingKeys] = drizzleKeys;\n const builder = base.on(firstKey, ...remainingKeys);\n\n if (index.where) {\n const ctx: IndexCompilationContext = {\n dialect: \"postgres\",\n propsColumn,\n systemColumn,\n };\n builder.where(\n toDrizzleSql(compileIndexWhere(ctx, index.where), \"postgres\"),\n );\n }\n\n return builder;\n });\n}\n\nexport function buildPostgresEdgeIndexBuilders(\n table: EdgeIndexTable,\n indexes: readonly IndexDeclaration[],\n): readonly PgIndexBuilder[] {\n const edgeIndexes = indexes.filter(\n (index): index is EdgeIndexDeclaration =>\n index.entity === \"edge\" && index.method === undefined,\n );\n\n return edgeIndexes.map((index) => {\n const propsColumn = portableSql.identifier(table.props.name);\n const systemColumn = (column: SystemColumnName): SqlFragment =>\n portableSql.identifier(getPostgresEdgeSystemColumn(table, column).name);\n\n const { keys } = compileEdgeIndexKeys(\n index,\n \"postgres\",\n propsColumn,\n systemColumn,\n );\n assertNonEmpty(keys, `edge index \"${index.name}\"`);\n\n const base = index.unique ? pgUniqueIndex(index.name) : pgIndex(index.name);\n\n const drizzleKeys = keys.map((key) => toDrizzleSql(key, \"postgres\"));\n assertNonEmpty(drizzleKeys, `edge index \"${index.name}\"`);\n const [firstKey, ...remainingKeys] = drizzleKeys;\n const builder = base.on(firstKey, ...remainingKeys);\n\n if (index.where) {\n const ctx: IndexCompilationContext = {\n dialect: \"postgres\",\n propsColumn,\n systemColumn,\n };\n builder.where(\n toDrizzleSql(compileIndexWhere(ctx, index.where), \"postgres\"),\n );\n }\n\n return builder;\n });\n}\n\nfunction getPostgresNodeSystemColumn(\n table: NodeIndexTable,\n column: SystemColumnName,\n): NamedSqlWrapper {\n switch (column) {\n case \"graph_id\": {\n return table.graphId;\n }\n case \"kind\": {\n return table.kind;\n }\n case \"id\": {\n return table.id;\n }\n case \"from_kind\":\n case \"from_id\":\n case \"to_kind\":\n case \"to_id\": {\n throw new Error(`Unsupported node system column for indexes: ${column}`);\n }\n case \"deleted_at\": {\n return table.deletedAt;\n }\n case \"valid_from\": {\n return table.validFrom;\n }\n case \"valid_to\": {\n return table.validTo;\n }\n case \"created_at\": {\n return table.createdAt;\n }\n case \"updated_at\": {\n return table.updatedAt;\n }\n case \"version\": {\n return table.version;\n }\n }\n}\n\nfunction getPostgresEdgeSystemColumn(\n table: EdgeIndexTable,\n column: SystemColumnName,\n): NamedSqlWrapper {\n switch (column) {\n case \"graph_id\": {\n return table.graphId;\n }\n case \"kind\": {\n return table.kind;\n }\n case \"id\": {\n return table.id;\n }\n case \"from_kind\": {\n return table.fromKind;\n }\n case \"from_id\": {\n return table.fromId;\n }\n case \"to_kind\": {\n return table.toKind;\n }\n case \"to_id\": {\n return table.toId;\n }\n case \"deleted_at\": {\n return table.deletedAt;\n }\n case \"valid_from\": {\n return table.validFrom;\n }\n case \"valid_to\": {\n return table.validTo;\n }\n case \"created_at\": {\n return table.createdAt;\n }\n case \"updated_at\": {\n return table.updatedAt;\n }\n case \"version\": {\n throw new Error(`Unsupported edge system column for indexes: ${column}`);\n }\n }\n}\n\n// ============================================================\n// SQLite (Drizzle Schema)\n// ============================================================\n\nexport function buildSqliteNodeIndexBuilders(\n table: NodeIndexTable,\n indexes: readonly IndexDeclaration[],\n): readonly SqliteIndexBuilder[] {\n // GIN-family declarations (method: \"gin\" / \"trigram\") are\n // materialize-only — like pgvector ANN indexes, they are a pure\n // materialization concern and never ride the Drizzle table extras.\n const nodeIndexes = indexes.filter(\n (index): index is NodeIndexDeclaration =>\n index.entity === \"node\" && index.method === undefined,\n );\n\n return nodeIndexes.map((index) => {\n const propsColumn = portableSql.identifier(table.props.name);\n const systemColumn = (column: SystemColumnName): SqlFragment =>\n portableSql.identifier(getSqliteNodeSystemColumn(table, column).name);\n\n const { keys } = compileNodeIndexKeys(\n index,\n \"sqlite\",\n propsColumn,\n systemColumn,\n );\n assertNonEmpty(keys, `node index \"${index.name}\"`);\n\n const base =\n index.unique ? sqliteUniqueIndex(index.name) : sqliteIndex(index.name);\n\n const drizzleKeys = keys.map((key) => toDrizzleSql(key, \"sqlite\"));\n assertNonEmpty(drizzleKeys, `node index \"${index.name}\"`);\n const [firstKey, ...remainingKeys] = drizzleKeys;\n const builder = base.on(firstKey, ...remainingKeys);\n\n if (index.where) {\n const ctx: IndexCompilationContext = {\n dialect: \"sqlite\",\n propsColumn,\n systemColumn,\n };\n builder.where(\n toDrizzleSql(compileIndexWhere(ctx, index.where), \"sqlite\"),\n );\n }\n\n return builder;\n });\n}\n\nexport function buildSqliteEdgeIndexBuilders(\n table: EdgeIndexTable,\n indexes: readonly IndexDeclaration[],\n): readonly SqliteIndexBuilder[] {\n const edgeIndexes = indexes.filter(\n (index): index is EdgeIndexDeclaration =>\n index.entity === \"edge\" && index.method === undefined,\n );\n\n return edgeIndexes.map((index) => {\n const propsColumn = portableSql.identifier(table.props.name);\n const systemColumn = (column: SystemColumnName): SqlFragment =>\n portableSql.identifier(getSqliteEdgeSystemColumn(table, column).name);\n\n const { keys } = compileEdgeIndexKeys(\n index,\n \"sqlite\",\n propsColumn,\n systemColumn,\n );\n assertNonEmpty(keys, `edge index \"${index.name}\"`);\n\n const base =\n index.unique ? sqliteUniqueIndex(index.name) : sqliteIndex(index.name);\n\n const drizzleKeys = keys.map((key) => toDrizzleSql(key, \"sqlite\"));\n assertNonEmpty(drizzleKeys, `edge index \"${index.name}\"`);\n const [firstKey, ...remainingKeys] = drizzleKeys;\n const builder = base.on(firstKey, ...remainingKeys);\n\n if (index.where) {\n const ctx: IndexCompilationContext = {\n dialect: \"sqlite\",\n propsColumn,\n systemColumn,\n };\n builder.where(\n toDrizzleSql(compileIndexWhere(ctx, index.where), \"sqlite\"),\n );\n }\n\n return builder;\n });\n}\n\nfunction getSqliteNodeSystemColumn(\n table: NodeIndexTable,\n column: SystemColumnName,\n): NamedSqlWrapper {\n switch (column) {\n case \"graph_id\": {\n return table.graphId;\n }\n case \"kind\": {\n return table.kind;\n }\n case \"id\": {\n return table.id;\n }\n case \"from_kind\":\n case \"from_id\":\n case \"to_kind\":\n case \"to_id\": {\n throw new Error(`Unsupported node system column for indexes: ${column}`);\n }\n case \"deleted_at\": {\n return table.deletedAt;\n }\n case \"valid_from\": {\n return table.validFrom;\n }\n case \"valid_to\": {\n return table.validTo;\n }\n case \"created_at\": {\n return table.createdAt;\n }\n case \"updated_at\": {\n return table.updatedAt;\n }\n case \"version\": {\n return table.version;\n }\n }\n}\n\nfunction getSqliteEdgeSystemColumn(\n table: EdgeIndexTable,\n column: SystemColumnName,\n): NamedSqlWrapper {\n switch (column) {\n case \"graph_id\": {\n return table.graphId;\n }\n case \"kind\": {\n return table.kind;\n }\n case \"id\": {\n return table.id;\n }\n case \"from_kind\": {\n return table.fromKind;\n }\n case \"from_id\": {\n return table.fromId;\n }\n case \"to_kind\": {\n return table.toKind;\n }\n case \"to_id\": {\n return table.toId;\n }\n case \"deleted_at\": {\n return table.deletedAt;\n }\n case \"valid_from\": {\n return table.validFrom;\n }\n case \"valid_to\": {\n return table.validTo;\n }\n case \"created_at\": {\n return table.createdAt;\n }\n case \"updated_at\": {\n return table.updatedAt;\n }\n case \"version\": {\n throw new Error(`Unsupported edge system column for indexes: ${column}`);\n }\n }\n}\n\n// ============================================================\n// System indexes (both dialects)\n// ============================================================\n//\n// The schema factories derive their system-index Drizzle builders from\n// `SYSTEM_INDEX_DECLARATIONS` so both dialects emit the same index set by\n// construction. The builders receive the table's real column objects (not\n// SQL wrappers) so the DDL generator renders plain quoted column names —\n// byte-identical to the runtime DDL `materializeSystemIndexes` emits.\n\ntype SystemIndexColumns<C extends { name: string }> = Readonly<\n Record<string, C>\n>;\n\n/**\n * Resolves a declaration's physical column names against the table's own\n * column objects by each column's `.name` — the SQL name Drizzle carries on\n * the column itself — so no naming convention sits between the declaration\n * and the schema. A column the table doesn't define throws at\n * table-construction time (exercised by the system-index parity tests).\n */\nfunction resolveSystemIndexColumns<C extends { name: string }>(\n declaration: SystemIndexDeclaration,\n columns: SystemIndexColumns<C>,\n): readonly [C, ...C[]] {\n const byPhysicalName = new Map(\n Object.values(columns).map((column) => [column.name, column]),\n );\n const resolved = declaration.columns.map((column) => {\n const value = byPhysicalName.get(column);\n if (value === undefined) {\n throw new Error(\n `System index \"${declaration.table}_${declaration.suffix}\" references ` +\n `a column \"${column}\" the ${declaration.table} table does not define`,\n );\n }\n return value;\n });\n // `declaration.columns` is non-empty by type, so `resolved` is too.\n return resolved as [C, ...C[]];\n}\n\n/**\n * The two dialect variants do no dialect-specific work (no unique, no\n * where, no expression compilation — unlike the node/edge builder pairs\n * above), so they share one body parameterized by the dialect's index\n * factory.\n */\nfunction buildSystemIndexBuilders<C extends { name: string }, B>(\n tableKey: SystemIndexTable,\n physicalTableName: string,\n columns: SystemIndexColumns<C>,\n indexFactory: (name: string) => { on: (...cols: [C, ...C[]]) => B },\n): readonly B[] {\n return SYSTEM_INDEX_DECLARATIONS.filter(\n (declaration) => declaration.table === tableKey,\n ).map((declaration) =>\n indexFactory(systemIndexName(physicalTableName, declaration.suffix)).on(\n ...resolveSystemIndexColumns(declaration, columns),\n ),\n );\n}\n\nexport function buildSqliteSystemIndexBuilders(\n tableKey: SystemIndexTable,\n physicalTableName: string,\n columns: SystemIndexColumns<SQLiteColumn>,\n): readonly SqliteIndexBuilder[] {\n return buildSystemIndexBuilders(\n tableKey,\n physicalTableName,\n columns,\n (name) => sqliteIndex(name),\n );\n}\n\nexport function buildPostgresSystemIndexBuilders(\n tableKey: SystemIndexTable,\n physicalTableName: string,\n columns: SystemIndexColumns<PgColumn>,\n): readonly PgIndexBuilder[] {\n return buildSystemIndexBuilders(\n tableKey,\n physicalTableName,\n columns,\n (name) => pgIndex(name),\n );\n}\n\n// ============================================================\n// Minimal table shapes (shared between dialect schemas)\n// ============================================================\n\ntype NamedSqlWrapper = SQLWrapper & Readonly<{ name: string }>;\n\ntype NodeIndexTable = Readonly<{\n graphId: NamedSqlWrapper;\n kind: NamedSqlWrapper;\n id: NamedSqlWrapper;\n props: NamedSqlWrapper;\n version: NamedSqlWrapper;\n validFrom: NamedSqlWrapper;\n validTo: NamedSqlWrapper;\n createdAt: NamedSqlWrapper;\n updatedAt: NamedSqlWrapper;\n deletedAt: NamedSqlWrapper;\n}>;\n\ntype EdgeIndexTable = Readonly<{\n graphId: NamedSqlWrapper;\n id: NamedSqlWrapper;\n kind: NamedSqlWrapper;\n fromKind: NamedSqlWrapper;\n fromId: NamedSqlWrapper;\n toKind: NamedSqlWrapper;\n toId: NamedSqlWrapper;\n props: NamedSqlWrapper;\n validFrom: NamedSqlWrapper;\n validTo: NamedSqlWrapper;\n createdAt: NamedSqlWrapper;\n updatedAt: NamedSqlWrapper;\n deletedAt: NamedSqlWrapper;\n}>;\n\nfunction assertNonEmpty<T>(\n values: readonly T[],\n label: string,\n): asserts values is readonly [T, ...T[]] {\n if (values.length === 0) {\n throw new Error(`Index must have at least one key (${label})`);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/backend/drizzle/execution/types.ts","../src/indexes/drizzle.ts"],"names":["isSqlFragment","renderSql","drizzleSql","bindSqlValue","throwUnsupportedSqlChunk","sql","compileNodeIndexKeys","pgUniqueIndex","pgIndex","compileIndexWhere","compileEdgeIndexKeys","sqliteUniqueIndex","sqliteIndex","SYSTEM_INDEX_DECLARATIONS","systemIndexName"],"mappings":"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","file":"chunk-KW3ON5IU.cjs","sourcesContent":["import { type SQL as DrizzleSql, sql as drizzleSql } from \"drizzle-orm\";\n\nimport { bindSqlValue } from \"../../../query/dialect/profile\";\nimport { type SqlDialect } from \"../../../query/dialect/types\";\nimport {\n isSqlFragment,\n renderSql,\n type SqlFragment,\n throwUnsupportedSqlChunk,\n} from \"../../../query/sql-fragment\";\nimport type {\n AtomicSqlBatchExecutor,\n CompiledAtomicSqlStatement,\n} from \"../../capabilities/atomic-sql-program\";\n\nexport type ExecutableSql = DrizzleSql | SqlFragment;\n\nexport type CompiledSqlQuery = CompiledAtomicSqlStatement;\n\n/**\n * A driver-native, all-or-nothing group of compiled statements.\n *\n * This is intentionally an optional execution surface. Most SQL drivers only\n * expose one-statement execution through Drizzle; drivers with a native batch\n * primitive can provide it without making callers guess whether a sequence is\n * actually transactional. The static name is deliberate: this hook submits a\n * complete batch to a native primitive and is not an interactive transaction\n * runner.\n */\nexport type PreparedSqlStatement = Readonly<{\n execute: <TRow>(params: readonly unknown[]) => Promise<readonly TRow[]>;\n}>;\n\nexport type SqlExecutionAdapter = Readonly<{\n compile: (query: ExecutableSql) => CompiledSqlQuery;\n execute: <TRow>(query: ExecutableSql) => Promise<readonly TRow[]>;\n executeCompiled?: <TRow>(\n compiledQuery: CompiledSqlQuery,\n ) => Promise<readonly TRow[]>;\n /** Executes all statements atomically when the native driver supports it. */\n executeAtomicBatch?: AtomicSqlBatchExecutor;\n prepare?: (sqlText: string) => PreparedSqlStatement;\n /**\n * Runs `critical` with exclusive use of the connection: no statement from\n * anywhere else can interleave with the ones it issues.\n *\n * Statement-at-a-time serialization is not enough for a *sequence* that must\n * be atomic. `SET LOCAL` around a query is the motivating case — snapshot,\n * set, select, restore. Two searches whose statements merely take turns can\n * still interleave as `A snapshot → B snapshot → A set → B set → A select`,\n * and `A` then runs under `B`'s settings.\n *\n * `critical` is handed the unqueued adapter, so it must not attempt to\n * re-enter the queue. Present only on transaction-scoped (serialized)\n * adapters; a pooled adapter needs no exclusion because every statement gets\n * its own connection.\n */\n runExclusive?: <T>(\n critical: (connection: SqlExecutionAdapter) => Promise<T>,\n ) => Promise<T>;\n /**\n * Recognizes this engine's own commit-conflict shape when it is not\n * PostgreSQL's `40001`/`40P01` SQLSTATE (or the fixed message fallback for\n * a driver that drops the code). `createSqlBackend` registers this\n * classifier against the exact backend object it returns; `isSerializationFailure`\n * (`src/utils/sql-errors.ts`) consults it before falling back to its own\n * SQLSTATE/message rules, so there remains ONE predicate every retry owner\n * calls, never a second inline check for engines this covers.\n */\n serializationFailure?: (error: unknown) => boolean;\n}>;\n\ntype SqlCompiler = Readonly<{\n sqlToQuery: (query: DrizzleSql) => CompiledSqlQuery;\n}>;\n\ntype DatabaseWithCompiler = Readonly<{\n dialect?: SqlCompiler;\n}>;\n\ntype BackendName = \"PostgreSQL\" | \"SQLite\";\n\nconst DIALECT_BY_BACKEND_NAME = {\n PostgreSQL: \"postgres\",\n SQLite: \"sqlite\",\n} as const satisfies Record<BackendName, SqlDialect>;\n\nexport function compileQueryWithDialect(\n db: unknown,\n query: ExecutableSql,\n backendName: BackendName,\n): CompiledSqlQuery {\n if (isSqlFragment(query)) {\n return renderSql(query, DIALECT_BY_BACKEND_NAME[backendName]);\n }\n const databaseWithCompiler = db as DatabaseWithCompiler;\n const compiler = databaseWithCompiler.dialect;\n if (compiler === undefined) {\n throw new Error(`${backendName} backend is missing a SQL compiler`);\n }\n return compiler.sqlToQuery(query);\n}\n\n/**\n * Translates TypeGraph's fragment IR into Drizzle's adapter-native SQL object.\n *\n * Most execution paths render directly to text and parameters. Async SQLite\n * drivers expose only Drizzle's execution method, so that adapter needs this\n * lossless bridge at its final boundary.\n */\nexport function toDrizzleSql(\n fragment: SqlFragment,\n dialect: SqlDialect,\n): DrizzleSql {\n const chunks = fragment.chunks.map((chunk) => {\n switch (chunk.kind) {\n case \"text\": {\n return drizzleSql.raw(chunk.value);\n }\n case \"identifier\": {\n // Drizzle's schema builders treat Name chunks as bare index-column\n // references and omit dialect quoting. Preserve the portable IR's\n // identifier semantics by handing the adapter an already-quoted,\n // trusted SQL token instead.\n return drizzleSql.raw(`\"${chunk.value.replaceAll('\"', '\"\"')}\"`);\n }\n case \"parameter\": {\n return drizzleSql.param(bindSqlValue(chunk.value, dialect));\n }\n case \"placeholder\": {\n return drizzleSql.placeholder(chunk.value.name);\n }\n default: {\n return throwUnsupportedSqlChunk(chunk);\n }\n }\n });\n return drizzleSql.join(chunks);\n}\n","import { type SQLWrapper } from \"drizzle-orm\";\nimport {\n index as pgIndex,\n type IndexBuilder as PgIndexBuilder,\n type PgColumn,\n uniqueIndex as pgUniqueIndex,\n} from \"drizzle-orm/pg-core\";\nimport {\n index as sqliteIndex,\n type IndexBuilder as SqliteIndexBuilder,\n type SQLiteColumn,\n uniqueIndex as sqliteUniqueIndex,\n} from \"drizzle-orm/sqlite-core\";\n\nimport { toDrizzleSql } from \"../backend/drizzle/execution/types\";\nimport { sql as portableSql, type SqlFragment } from \"../query/sql-fragment\";\nimport {\n compileEdgeIndexKeys,\n compileIndexWhere,\n compileNodeIndexKeys,\n type IndexCompilationContext,\n} from \"./compiler\";\nimport {\n SYSTEM_INDEX_DECLARATIONS,\n type SystemIndexDeclaration,\n systemIndexName,\n type SystemIndexTable,\n} from \"./system\";\nimport {\n type EdgeIndexDeclaration,\n type IndexDeclaration,\n type NodeIndexDeclaration,\n type SystemColumnName,\n} from \"./types\";\n\n// ============================================================\n// PostgreSQL (Drizzle Schema)\n// ============================================================\n\nexport function buildPostgresNodeIndexBuilders(\n table: NodeIndexTable,\n indexes: readonly IndexDeclaration[],\n): readonly PgIndexBuilder[] {\n // GIN-family declarations (method: \"gin\" / \"trigram\") are\n // materialize-only — like pgvector ANN indexes, they are a pure\n // materialization concern and never ride the Drizzle table extras.\n const nodeIndexes = indexes.filter(\n (index): index is NodeIndexDeclaration =>\n index.entity === \"node\" && index.method === undefined,\n );\n\n return nodeIndexes.map((index) => {\n const propsColumn = portableSql.identifier(table.props.name);\n const systemColumn = (column: SystemColumnName): SqlFragment =>\n portableSql.identifier(getPostgresNodeSystemColumn(table, column).name);\n\n const { keys } = compileNodeIndexKeys(\n index,\n \"postgres\",\n propsColumn,\n systemColumn,\n );\n assertNonEmpty(keys, `node index \"${index.name}\"`);\n\n const base = index.unique ? pgUniqueIndex(index.name) : pgIndex(index.name);\n\n const drizzleKeys = keys.map((key) => toDrizzleSql(key, \"postgres\"));\n assertNonEmpty(drizzleKeys, `node index \"${index.name}\"`);\n const [firstKey, ...remainingKeys] = drizzleKeys;\n const builder = base.on(firstKey, ...remainingKeys);\n\n if (index.where) {\n const ctx: IndexCompilationContext = {\n dialect: \"postgres\",\n propsColumn,\n systemColumn,\n };\n builder.where(\n toDrizzleSql(compileIndexWhere(ctx, index.where), \"postgres\"),\n );\n }\n\n return builder;\n });\n}\n\nexport function buildPostgresEdgeIndexBuilders(\n table: EdgeIndexTable,\n indexes: readonly IndexDeclaration[],\n): readonly PgIndexBuilder[] {\n const edgeIndexes = indexes.filter(\n (index): index is EdgeIndexDeclaration =>\n index.entity === \"edge\" && index.method === undefined,\n );\n\n return edgeIndexes.map((index) => {\n const propsColumn = portableSql.identifier(table.props.name);\n const systemColumn = (column: SystemColumnName): SqlFragment =>\n portableSql.identifier(getPostgresEdgeSystemColumn(table, column).name);\n\n const { keys } = compileEdgeIndexKeys(\n index,\n \"postgres\",\n propsColumn,\n systemColumn,\n );\n assertNonEmpty(keys, `edge index \"${index.name}\"`);\n\n const base = index.unique ? pgUniqueIndex(index.name) : pgIndex(index.name);\n\n const drizzleKeys = keys.map((key) => toDrizzleSql(key, \"postgres\"));\n assertNonEmpty(drizzleKeys, `edge index \"${index.name}\"`);\n const [firstKey, ...remainingKeys] = drizzleKeys;\n const builder = base.on(firstKey, ...remainingKeys);\n\n if (index.where) {\n const ctx: IndexCompilationContext = {\n dialect: \"postgres\",\n propsColumn,\n systemColumn,\n };\n builder.where(\n toDrizzleSql(compileIndexWhere(ctx, index.where), \"postgres\"),\n );\n }\n\n return builder;\n });\n}\n\nfunction getPostgresNodeSystemColumn(\n table: NodeIndexTable,\n column: SystemColumnName,\n): NamedSqlWrapper {\n switch (column) {\n case \"graph_id\": {\n return table.graphId;\n }\n case \"kind\": {\n return table.kind;\n }\n case \"id\": {\n return table.id;\n }\n case \"from_kind\":\n case \"from_id\":\n case \"to_kind\":\n case \"to_id\": {\n throw new Error(`Unsupported node system column for indexes: ${column}`);\n }\n case \"deleted_at\": {\n return table.deletedAt;\n }\n case \"valid_from\": {\n return table.validFrom;\n }\n case \"valid_to\": {\n return table.validTo;\n }\n case \"created_at\": {\n return table.createdAt;\n }\n case \"updated_at\": {\n return table.updatedAt;\n }\n case \"version\": {\n return table.version;\n }\n }\n}\n\nfunction getPostgresEdgeSystemColumn(\n table: EdgeIndexTable,\n column: SystemColumnName,\n): NamedSqlWrapper {\n switch (column) {\n case \"graph_id\": {\n return table.graphId;\n }\n case \"kind\": {\n return table.kind;\n }\n case \"id\": {\n return table.id;\n }\n case \"from_kind\": {\n return table.fromKind;\n }\n case \"from_id\": {\n return table.fromId;\n }\n case \"to_kind\": {\n return table.toKind;\n }\n case \"to_id\": {\n return table.toId;\n }\n case \"deleted_at\": {\n return table.deletedAt;\n }\n case \"valid_from\": {\n return table.validFrom;\n }\n case \"valid_to\": {\n return table.validTo;\n }\n case \"created_at\": {\n return table.createdAt;\n }\n case \"updated_at\": {\n return table.updatedAt;\n }\n case \"version\": {\n throw new Error(`Unsupported edge system column for indexes: ${column}`);\n }\n }\n}\n\n// ============================================================\n// SQLite (Drizzle Schema)\n// ============================================================\n\nexport function buildSqliteNodeIndexBuilders(\n table: NodeIndexTable,\n indexes: readonly IndexDeclaration[],\n): readonly SqliteIndexBuilder[] {\n // GIN-family declarations (method: \"gin\" / \"trigram\") are\n // materialize-only — like pgvector ANN indexes, they are a pure\n // materialization concern and never ride the Drizzle table extras.\n const nodeIndexes = indexes.filter(\n (index): index is NodeIndexDeclaration =>\n index.entity === \"node\" && index.method === undefined,\n );\n\n return nodeIndexes.map((index) => {\n const propsColumn = portableSql.identifier(table.props.name);\n const systemColumn = (column: SystemColumnName): SqlFragment =>\n portableSql.identifier(getSqliteNodeSystemColumn(table, column).name);\n\n const { keys } = compileNodeIndexKeys(\n index,\n \"sqlite\",\n propsColumn,\n systemColumn,\n );\n assertNonEmpty(keys, `node index \"${index.name}\"`);\n\n const base =\n index.unique ? sqliteUniqueIndex(index.name) : sqliteIndex(index.name);\n\n const drizzleKeys = keys.map((key) => toDrizzleSql(key, \"sqlite\"));\n assertNonEmpty(drizzleKeys, `node index \"${index.name}\"`);\n const [firstKey, ...remainingKeys] = drizzleKeys;\n const builder = base.on(firstKey, ...remainingKeys);\n\n if (index.where) {\n const ctx: IndexCompilationContext = {\n dialect: \"sqlite\",\n propsColumn,\n systemColumn,\n };\n builder.where(\n toDrizzleSql(compileIndexWhere(ctx, index.where), \"sqlite\"),\n );\n }\n\n return builder;\n });\n}\n\nexport function buildSqliteEdgeIndexBuilders(\n table: EdgeIndexTable,\n indexes: readonly IndexDeclaration[],\n): readonly SqliteIndexBuilder[] {\n const edgeIndexes = indexes.filter(\n (index): index is EdgeIndexDeclaration =>\n index.entity === \"edge\" && index.method === undefined,\n );\n\n return edgeIndexes.map((index) => {\n const propsColumn = portableSql.identifier(table.props.name);\n const systemColumn = (column: SystemColumnName): SqlFragment =>\n portableSql.identifier(getSqliteEdgeSystemColumn(table, column).name);\n\n const { keys } = compileEdgeIndexKeys(\n index,\n \"sqlite\",\n propsColumn,\n systemColumn,\n );\n assertNonEmpty(keys, `edge index \"${index.name}\"`);\n\n const base =\n index.unique ? sqliteUniqueIndex(index.name) : sqliteIndex(index.name);\n\n const drizzleKeys = keys.map((key) => toDrizzleSql(key, \"sqlite\"));\n assertNonEmpty(drizzleKeys, `edge index \"${index.name}\"`);\n const [firstKey, ...remainingKeys] = drizzleKeys;\n const builder = base.on(firstKey, ...remainingKeys);\n\n if (index.where) {\n const ctx: IndexCompilationContext = {\n dialect: \"sqlite\",\n propsColumn,\n systemColumn,\n };\n builder.where(\n toDrizzleSql(compileIndexWhere(ctx, index.where), \"sqlite\"),\n );\n }\n\n return builder;\n });\n}\n\nfunction getSqliteNodeSystemColumn(\n table: NodeIndexTable,\n column: SystemColumnName,\n): NamedSqlWrapper {\n switch (column) {\n case \"graph_id\": {\n return table.graphId;\n }\n case \"kind\": {\n return table.kind;\n }\n case \"id\": {\n return table.id;\n }\n case \"from_kind\":\n case \"from_id\":\n case \"to_kind\":\n case \"to_id\": {\n throw new Error(`Unsupported node system column for indexes: ${column}`);\n }\n case \"deleted_at\": {\n return table.deletedAt;\n }\n case \"valid_from\": {\n return table.validFrom;\n }\n case \"valid_to\": {\n return table.validTo;\n }\n case \"created_at\": {\n return table.createdAt;\n }\n case \"updated_at\": {\n return table.updatedAt;\n }\n case \"version\": {\n return table.version;\n }\n }\n}\n\nfunction getSqliteEdgeSystemColumn(\n table: EdgeIndexTable,\n column: SystemColumnName,\n): NamedSqlWrapper {\n switch (column) {\n case \"graph_id\": {\n return table.graphId;\n }\n case \"kind\": {\n return table.kind;\n }\n case \"id\": {\n return table.id;\n }\n case \"from_kind\": {\n return table.fromKind;\n }\n case \"from_id\": {\n return table.fromId;\n }\n case \"to_kind\": {\n return table.toKind;\n }\n case \"to_id\": {\n return table.toId;\n }\n case \"deleted_at\": {\n return table.deletedAt;\n }\n case \"valid_from\": {\n return table.validFrom;\n }\n case \"valid_to\": {\n return table.validTo;\n }\n case \"created_at\": {\n return table.createdAt;\n }\n case \"updated_at\": {\n return table.updatedAt;\n }\n case \"version\": {\n throw new Error(`Unsupported edge system column for indexes: ${column}`);\n }\n }\n}\n\n// ============================================================\n// System indexes (both dialects)\n// ============================================================\n//\n// The schema factories derive their system-index Drizzle builders from\n// `SYSTEM_INDEX_DECLARATIONS` so both dialects emit the same index set by\n// construction. The builders receive the table's real column objects (not\n// SQL wrappers) so the DDL generator renders plain quoted column names —\n// byte-identical to the runtime DDL `materializeSystemIndexes` emits.\n\ntype SystemIndexColumns<C extends { name: string }> = Readonly<\n Record<string, C>\n>;\n\n/**\n * Resolves a declaration's physical column names against the table's own\n * column objects by each column's `.name` — the SQL name Drizzle carries on\n * the column itself — so no naming convention sits between the declaration\n * and the schema. A column the table doesn't define throws at\n * table-construction time (exercised by the system-index parity tests).\n */\nfunction resolveSystemIndexColumns<C extends { name: string }>(\n declaration: SystemIndexDeclaration,\n columns: SystemIndexColumns<C>,\n): readonly [C, ...C[]] {\n const byPhysicalName = new Map(\n Object.values(columns).map((column) => [column.name, column]),\n );\n const resolved = declaration.columns.map((column) => {\n const value = byPhysicalName.get(column);\n if (value === undefined) {\n throw new Error(\n `System index \"${declaration.table}_${declaration.suffix}\" references ` +\n `a column \"${column}\" the ${declaration.table} table does not define`,\n );\n }\n return value;\n });\n // `declaration.columns` is non-empty by type, so `resolved` is too.\n return resolved as [C, ...C[]];\n}\n\n/**\n * The two dialect variants do no dialect-specific work (no unique, no\n * where, no expression compilation — unlike the node/edge builder pairs\n * above), so they share one body parameterized by the dialect's index\n * factory.\n */\nfunction buildSystemIndexBuilders<C extends { name: string }, B>(\n tableKey: SystemIndexTable,\n physicalTableName: string,\n columns: SystemIndexColumns<C>,\n indexFactory: (name: string) => { on: (...cols: [C, ...C[]]) => B },\n): readonly B[] {\n return SYSTEM_INDEX_DECLARATIONS.filter(\n (declaration) => declaration.table === tableKey,\n ).map((declaration) =>\n indexFactory(systemIndexName(physicalTableName, declaration.suffix)).on(\n ...resolveSystemIndexColumns(declaration, columns),\n ),\n );\n}\n\nexport function buildSqliteSystemIndexBuilders(\n tableKey: SystemIndexTable,\n physicalTableName: string,\n columns: SystemIndexColumns<SQLiteColumn>,\n): readonly SqliteIndexBuilder[] {\n return buildSystemIndexBuilders(\n tableKey,\n physicalTableName,\n columns,\n (name) => sqliteIndex(name),\n );\n}\n\nexport function buildPostgresSystemIndexBuilders(\n tableKey: SystemIndexTable,\n physicalTableName: string,\n columns: SystemIndexColumns<PgColumn>,\n): readonly PgIndexBuilder[] {\n return buildSystemIndexBuilders(\n tableKey,\n physicalTableName,\n columns,\n (name) => pgIndex(name),\n );\n}\n\n// ============================================================\n// Minimal table shapes (shared between dialect schemas)\n// ============================================================\n\ntype NamedSqlWrapper = SQLWrapper & Readonly<{ name: string }>;\n\ntype NodeIndexTable = Readonly<{\n graphId: NamedSqlWrapper;\n kind: NamedSqlWrapper;\n id: NamedSqlWrapper;\n props: NamedSqlWrapper;\n version: NamedSqlWrapper;\n validFrom: NamedSqlWrapper;\n validTo: NamedSqlWrapper;\n createdAt: NamedSqlWrapper;\n updatedAt: NamedSqlWrapper;\n deletedAt: NamedSqlWrapper;\n}>;\n\ntype EdgeIndexTable = Readonly<{\n graphId: NamedSqlWrapper;\n id: NamedSqlWrapper;\n kind: NamedSqlWrapper;\n fromKind: NamedSqlWrapper;\n fromId: NamedSqlWrapper;\n toKind: NamedSqlWrapper;\n toId: NamedSqlWrapper;\n props: NamedSqlWrapper;\n validFrom: NamedSqlWrapper;\n validTo: NamedSqlWrapper;\n createdAt: NamedSqlWrapper;\n updatedAt: NamedSqlWrapper;\n deletedAt: NamedSqlWrapper;\n}>;\n\nfunction assertNonEmpty<T>(\n values: readonly T[],\n label: string,\n): asserts values is readonly [T, ...T[]] {\n if (values.length === 0) {\n throw new Error(`Index must have at least one key (${label})`);\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { compileNodeIndexKeys, compileEdgeIndexKeys, compileIndexWhere, getDialect } from './chunk-
|
|
1
|
+
import { compileNodeIndexKeys, compileEdgeIndexKeys, compileIndexWhere, getDialect } from './chunk-OH7QRGPQ.js';
|
|
2
2
|
import { sql, renderSqlInline } from './chunk-CIYUFNZ6.js';
|
|
3
3
|
import { requireDefined } from './chunk-QD2JFTSL.js';
|
|
4
4
|
|
|
@@ -67,5 +67,5 @@ function quoteIdentifier(identifier) {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
export { generateEdgeIndexDDL, generateIndexDDL, generateNodeIndexDDL };
|
|
70
|
-
//# sourceMappingURL=chunk-
|
|
71
|
-
//# sourceMappingURL=chunk-
|
|
70
|
+
//# sourceMappingURL=chunk-LOFUF6L7.js.map
|
|
71
|
+
//# sourceMappingURL=chunk-LOFUF6L7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/indexes/ddl.ts"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/indexes/ddl.ts"],"names":[],"mappings":"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","file":"chunk-LOFUF6L7.js","sourcesContent":["import { getDialect } from \"../query/dialect\";\nimport { type SqlDialect } from \"../query/dialect/types\";\nimport { renderSqlInline, sql, type SqlFragment } from \"../query/sql-fragment\";\nimport { requireDefined } from \"../utils/presence\";\nimport {\n compileEdgeIndexKeys,\n compileIndexWhere,\n compileNodeIndexKeys,\n type IndexCompilationContext,\n} from \"./compiler\";\nimport {\n type EdgeIndexDeclaration,\n type NodeIndexDeclaration,\n type RelationalIndexDeclaration,\n type SystemColumnName,\n} from \"./types\";\n\nexport type GenerateIndexDdlOptions = Readonly<{\n nodesTableName?: string | undefined;\n edgesTableName?: string | undefined;\n ifNotExists?: boolean | undefined;\n /**\n * Emit `CREATE INDEX CONCURRENTLY` (Postgres only). Required for\n * `store.materializeIndexes()` so live tables don't take an\n * `AccessExclusiveLock`. Ignored on SQLite (no equivalent; SQLite is\n * single-writer regardless). When true on Postgres, the resulting\n * statement cannot be executed inside a transaction.\n */\n concurrent?: boolean | undefined;\n}>;\n\nconst INDEX_DDL_BEHAVIOR = {\n postgres: { concurrentBuilds: true, supportsGinFamily: true },\n sqlite: { concurrentBuilds: false, supportsGinFamily: false },\n} as const satisfies Record<\n SqlDialect,\n Readonly<{ concurrentBuilds: boolean; supportsGinFamily: boolean }>\n>;\n\n/**\n * Generate `CREATE INDEX` DDL for a single relational index declaration.\n *\n * Vector index declarations (`entity: \"vector\"`) are NOT handled here —\n * they go through `backend.createVectorIndex` instead because the DDL\n * is dialect-specific (`USING hnsw (...) WITH (m=..., ef_construction=...)`\n * on Postgres) and operates on the strategy's per-`(kind, field)` embedding\n * tables, not `typegraph_nodes` / `typegraph_edges`. Callers narrow to the\n * relational subset before calling this function.\n */\nexport function generateIndexDDL(\n index: RelationalIndexDeclaration,\n dialect: SqlDialect,\n options: GenerateIndexDdlOptions = {},\n): string {\n if (index.entity === \"node\") {\n return generateNodeIndexDDL(index, dialect, options);\n }\n return generateEdgeIndexDDL(index, dialect, options);\n}\n\nexport function generateNodeIndexDDL(\n index: NodeIndexDeclaration,\n dialect: SqlDialect,\n options: GenerateIndexDdlOptions = {},\n): string {\n const tableName = options.nodesTableName ?? \"typegraph_nodes\";\n return generateTableIndexDDL(index, dialect, tableName, options);\n}\n\nexport function generateEdgeIndexDDL(\n index: EdgeIndexDeclaration,\n dialect: SqlDialect,\n options: GenerateIndexDdlOptions = {},\n): string {\n const tableName = options.edgesTableName ?? \"typegraph_edges\";\n return generateTableIndexDDL(index, dialect, tableName, options);\n}\n\nfunction generateTableIndexDDL(\n index: RelationalIndexDeclaration,\n dialect: SqlDialect,\n tableName: string,\n options: GenerateIndexDdlOptions,\n): string {\n if (index.method !== undefined) {\n return generateGinFamilyIndexDDL(index, dialect, tableName, options);\n }\n const ifNotExists = options.ifNotExists ?? true;\n const propsColumn = sql.identifier(\"props\");\n const systemColumn = (column: SystemColumnName): SqlFragment =>\n sql.identifier(column);\n\n const keys =\n index.entity === \"node\" ?\n compileNodeIndexKeys(index, dialect, propsColumn, systemColumn).keys\n : compileEdgeIndexKeys(index, dialect, propsColumn, systemColumn).keys;\n\n const whereSql =\n index.where ?\n renderSqlInline(\n compileIndexWhere(\n {\n dialect,\n propsColumn,\n systemColumn,\n } satisfies IndexCompilationContext,\n index.where,\n ),\n dialect,\n )\n : undefined;\n\n const keySql = keys.map((key) => renderSqlInline(key, dialect)).join(\", \");\n const unique = index.unique ? \"UNIQUE \" : \"\";\n const concurrent =\n (\n options.concurrent === true &&\n INDEX_DDL_BEHAVIOR[dialect].concurrentBuilds\n ) ?\n \"CONCURRENTLY \"\n : \"\";\n const ifNotExistsSql = ifNotExists ? \"IF NOT EXISTS \" : \"\";\n\n const whereClause = whereSql ? ` WHERE ${whereSql}` : \"\";\n\n return `CREATE ${unique}INDEX ${concurrent}${ifNotExistsSql}${quoteIdentifier(index.name)} ON ${quoteIdentifier(tableName)} (${keySql})${whereClause};`;\n}\n\n/**\n * DDL for the GIN-family methods (`\"gin\"` / `\"trigram\"`) — a PostgreSQL\n * expression GIN over the declaration's single field.\n *\n * The indexed expression is built from the SAME dialect extraction the\n * query compiler emits for the field (`jsonExtract` → `\"props\" #> ARRAY[…]`\n * for containment, `jsonExtractText` → `#>>` for text), because Postgres\n * matches expression indexes structurally: `(props #> ARRAY['tags']) @> $1`\n * and `(props #>> ARRAY['name']) ILIKE $1 ESCAPE '\\'` both hit their GIN\n * (verified against parameterized prepared statements). No scope prefix\n * columns, uniqueness, or partial clause: a GIN indexes one expression, and\n * the query's `graph_id` / `kind` equality filters apply as residual\n * conditions over the candidate rows.\n */\nfunction generateGinFamilyIndexDDL(\n index: RelationalIndexDeclaration,\n dialect: SqlDialect,\n tableName: string,\n options: GenerateIndexDdlOptions,\n): string {\n if (!INDEX_DDL_BEHAVIOR[dialect].supportsGinFamily) {\n throw new Error(\n `Index \"${index.name}\" declares method \"${index.method}\", which ` +\n \"requires PostgreSQL. materializeIndexes() reports such \" +\n \"declarations as skipped on SQLite instead of calling this.\",\n );\n }\n const adapter = getDialect(dialect);\n const propsColumn = sql.identifier(\"props\");\n const pointer = requireDefined(index.fields[0]);\n const expression =\n index.method === \"gin\" ?\n adapter.jsonExtract(propsColumn, pointer)\n : adapter.jsonExtractText(propsColumn, pointer);\n const operatorClass =\n index.method === \"gin\" ? \"jsonb_path_ops\" : \"gin_trgm_ops\";\n const concurrent = options.concurrent === true ? \"CONCURRENTLY \" : \"\";\n const ifNotExistsSql = (options.ifNotExists ?? true) ? \"IF NOT EXISTS \" : \"\";\n return `CREATE INDEX ${concurrent}${ifNotExistsSql}${quoteIdentifier(index.name)} ON ${quoteIdentifier(tableName)} USING GIN ((${renderSqlInline(expression, dialect)}) ${operatorClass});`;\n}\n\nfunction quoteIdentifier(identifier: string): string {\n return `\"${identifier.replaceAll('\"', '\"\"')}\"`;\n}\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkGD7IWK36_cjs = require('./chunk-GD7IWK36.cjs');
|
|
4
4
|
var chunkR255UE5U_cjs = require('./chunk-R255UE5U.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkA22XPVBQ_cjs = require('./chunk-A22XPVBQ.cjs');
|
|
6
6
|
var chunkWEXAMJTA_cjs = require('./chunk-WEXAMJTA.cjs');
|
|
7
7
|
var chunkOGK7F2J3_cjs = require('./chunk-OGK7F2J3.cjs');
|
|
8
8
|
var chunkEOLNL35G_cjs = require('./chunk-EOLNL35G.cjs');
|
|
@@ -111,7 +111,7 @@ async function issuingClaims(entries, issue) {
|
|
|
111
111
|
function claimFenceRefusal(ctx, backend, entries) {
|
|
112
112
|
const gating = entries.find((entry) => entry.placement === "pre-insert");
|
|
113
113
|
if (gating === void 0) return void 0;
|
|
114
|
-
return
|
|
114
|
+
return chunkA22XPVBQ_cjs.constraintFenceRefusal(ctx, backend, gating.refusalReason);
|
|
115
115
|
}
|
|
116
116
|
function isUniquenessClaimEntry(entry) {
|
|
117
117
|
return entry.refusal.kind === "uniqueness";
|
|
@@ -1353,7 +1353,7 @@ async function applyNodeSetUpdate(ctx, args, backend) {
|
|
|
1353
1353
|
if (result.affectedCount === 0) return { affectedCount: 0 };
|
|
1354
1354
|
const sidecarItems = result.rows.map((row) => {
|
|
1355
1355
|
const props = chunkEOLNL35G_cjs.rowPropsToObject(row.props);
|
|
1356
|
-
const validatedProps =
|
|
1356
|
+
const validatedProps = chunkA22XPVBQ_cjs.validateNodeProps(schema, props, {
|
|
1357
1357
|
kind,
|
|
1358
1358
|
operation: "update",
|
|
1359
1359
|
id: row.id
|
|
@@ -1453,5 +1453,5 @@ exports.resolveNodeEmbeddingProjections = resolveNodeEmbeddingProjections;
|
|
|
1453
1453
|
exports.resolveNodeFulltextProjection = resolveNodeFulltextProjection;
|
|
1454
1454
|
exports.withNodeCreateClaims = withNodeCreateClaims;
|
|
1455
1455
|
exports.withNodeCreateClaimsBatch = withNodeCreateClaimsBatch;
|
|
1456
|
-
//# sourceMappingURL=chunk-
|
|
1457
|
-
//# sourceMappingURL=chunk-
|
|
1456
|
+
//# sourceMappingURL=chunk-MTJAT6UO.cjs.map
|
|
1457
|
+
//# sourceMappingURL=chunk-MTJAT6UO.cjs.map
|