@nicia-ai/typegraph 0.35.0 → 0.37.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/dist/backend/postgres/index.cjs +24 -24
- package/dist/backend/postgres/index.d.cts +6 -6
- package/dist/backend/postgres/index.d.ts +6 -6
- package/dist/backend/postgres/index.js +11 -11
- package/dist/backend/postgres/pglite.cjs +16 -16
- package/dist/backend/postgres/pglite.d.cts +3 -3
- package/dist/backend/postgres/pglite.d.ts +3 -3
- package/dist/backend/postgres/pglite.js +11 -11
- package/dist/backend/sqlite/index.cjs +22 -21
- package/dist/backend/sqlite/index.d.cts +11 -9
- package/dist/backend/sqlite/index.d.ts +11 -9
- package/dist/backend/sqlite/index.js +10 -9
- package/dist/backend/sqlite/libsql.cjs +15 -14
- package/dist/backend/sqlite/libsql.cjs.map +1 -1
- package/dist/backend/sqlite/libsql.d.cts +3 -3
- package/dist/backend/sqlite/libsql.d.ts +3 -3
- package/dist/backend/sqlite/libsql.js +11 -10
- package/dist/backend/sqlite/libsql.js.map +1 -1
- package/dist/backend/sqlite/local.cjs +30 -23
- package/dist/backend/sqlite/local.cjs.map +1 -1
- package/dist/backend/sqlite/local.d.cts +3 -3
- package/dist/backend/sqlite/local.d.ts +3 -3
- package/dist/backend/sqlite/local.js +18 -11
- package/dist/backend/sqlite/local.js.map +1 -1
- package/dist/{chunk-TCOCYN2P.cjs → chunk-27SSDCEP.cjs} +14 -14
- package/dist/{chunk-TCOCYN2P.cjs.map → chunk-27SSDCEP.cjs.map} +1 -1
- package/dist/{chunk-5AQIKK56.cjs → chunk-2N6EOBTH.cjs} +16 -16
- package/dist/{chunk-5AQIKK56.cjs.map → chunk-2N6EOBTH.cjs.map} +1 -1
- package/dist/{chunk-FN35DLCN.cjs → chunk-3C2RYI6L.cjs} +13 -107
- package/dist/chunk-3C2RYI6L.cjs.map +1 -0
- package/dist/{chunk-4JEZZJ6S.cjs → chunk-3DS7Z4T4.cjs} +39 -39
- package/dist/{chunk-4JEZZJ6S.cjs.map → chunk-3DS7Z4T4.cjs.map} +1 -1
- package/dist/{chunk-BLZDPRXT.cjs → chunk-3GH67G4Z.cjs} +5 -5
- package/dist/{chunk-BLZDPRXT.cjs.map → chunk-3GH67G4Z.cjs.map} +1 -1
- package/dist/{chunk-K3PPLHY7.js → chunk-3RWZPJKV.js} +24 -9
- package/dist/chunk-3RWZPJKV.js.map +1 -0
- package/dist/{chunk-QWEUYILR.js → chunk-3SLPDKHQ.js} +4 -4
- package/dist/chunk-3SLPDKHQ.js.map +1 -0
- package/dist/{chunk-5A6FNS6N.cjs → chunk-3XXGYU62.cjs} +11 -11
- package/dist/{chunk-5A6FNS6N.cjs.map → chunk-3XXGYU62.cjs.map} +1 -1
- package/dist/{chunk-JBTOYDMN.js → chunk-44TA22QT.js} +58 -11
- package/dist/chunk-44TA22QT.js.map +1 -0
- package/dist/{chunk-UES55P7G.js → chunk-552KNYQJ.js} +2652 -409
- package/dist/chunk-552KNYQJ.js.map +1 -0
- package/dist/{chunk-VPYHY3LJ.cjs → chunk-5KEQ74YU.cjs} +14 -14
- package/dist/chunk-5KEQ74YU.cjs.map +1 -0
- package/dist/{chunk-Q5TEXCTB.js → chunk-5KPNWT6X.js} +3 -3
- package/dist/{chunk-Q5TEXCTB.js.map → chunk-5KPNWT6X.js.map} +1 -1
- package/dist/{chunk-MP2JQKSG.js → chunk-5PNMDJ7J.js} +108 -5
- package/dist/chunk-5PNMDJ7J.js.map +1 -0
- package/dist/{chunk-AW4A3P5A.cjs → chunk-5VQM6VWP.cjs} +2 -2
- package/dist/{chunk-AW4A3P5A.cjs.map → chunk-5VQM6VWP.cjs.map} +1 -1
- package/dist/{chunk-A3W7QG7K.js → chunk-5WWVZMVX.js} +2 -2
- package/dist/{chunk-A3W7QG7K.js.map → chunk-5WWVZMVX.js.map} +1 -1
- package/dist/{chunk-FACJJWGF.cjs → chunk-6EEO3OVU.cjs} +7 -7
- package/dist/{chunk-FACJJWGF.cjs.map → chunk-6EEO3OVU.cjs.map} +1 -1
- package/dist/{chunk-LGEALRC6.cjs → chunk-BVRDGYXQ.cjs} +113 -4
- package/dist/chunk-BVRDGYXQ.cjs.map +1 -0
- package/dist/{chunk-GSQ6NPH6.cjs → chunk-DEFQM7JU.cjs} +7 -7
- package/dist/{chunk-GSQ6NPH6.cjs.map → chunk-DEFQM7JU.cjs.map} +1 -1
- package/dist/{chunk-EM3CWPND.cjs → chunk-DIQ3AV5W.cjs} +574 -268
- package/dist/chunk-DIQ3AV5W.cjs.map +1 -0
- package/dist/{chunk-FPIZFYHE.js → chunk-EXU3RASM.js} +74 -15
- package/dist/chunk-EXU3RASM.js.map +1 -0
- package/dist/{chunk-H7YNSMA7.cjs → chunk-HAHNRASW.cjs} +20 -2
- package/dist/chunk-HAHNRASW.cjs.map +1 -0
- package/dist/{chunk-FL472AMI.cjs → chunk-IP3CGGPA.cjs} +8 -8
- package/dist/{chunk-FL472AMI.cjs.map → chunk-IP3CGGPA.cjs.map} +1 -1
- package/dist/{chunk-4TOD4LBZ.cjs → chunk-IPSVVTWT.cjs} +94 -35
- package/dist/chunk-IPSVVTWT.cjs.map +1 -0
- package/dist/{chunk-RGP33ZJ5.js → chunk-IXGYRP2P.js} +184 -92
- package/dist/chunk-IXGYRP2P.js.map +1 -0
- package/dist/{chunk-3TWF3SH4.js → chunk-J4IUSYFF.js} +251 -121
- package/dist/chunk-J4IUSYFF.js.map +1 -0
- package/dist/{chunk-O7UN7OXA.cjs → chunk-JBNOGRKW.cjs} +318 -188
- package/dist/chunk-JBNOGRKW.cjs.map +1 -0
- package/dist/{chunk-WDBCBWC4.js → chunk-K3Q3LJY3.js} +520 -221
- package/dist/chunk-K3Q3LJY3.js.map +1 -0
- package/dist/{chunk-OR5ZA5WP.js → chunk-K5UBVGJN.js} +4 -4
- package/dist/{chunk-OR5ZA5WP.js.map → chunk-K5UBVGJN.js.map} +1 -1
- package/dist/{chunk-UZV3AZKF.js → chunk-KQJ54OG5.js} +3 -3
- package/dist/{chunk-UZV3AZKF.js.map → chunk-KQJ54OG5.js.map} +1 -1
- package/dist/{chunk-QOTI55H7.js → chunk-L7HQ2OSI.js} +4 -4
- package/dist/{chunk-QOTI55H7.js.map → chunk-L7HQ2OSI.js.map} +1 -1
- package/dist/{chunk-55MZDDZV.js → chunk-M6VES7V6.js} +4 -4
- package/dist/{chunk-55MZDDZV.js.map → chunk-M6VES7V6.js.map} +1 -1
- package/dist/{chunk-J7WFGBJR.cjs → chunk-NBP2WTJW.cjs} +3249 -1006
- package/dist/chunk-NBP2WTJW.cjs.map +1 -0
- package/dist/{chunk-CK5BVQOW.cjs → chunk-NUIG3BCV.cjs} +100 -85
- package/dist/chunk-NUIG3BCV.cjs.map +1 -0
- package/dist/{chunk-EMF62TZG.cjs → chunk-NXQFATMF.cjs} +269 -177
- package/dist/chunk-NXQFATMF.cjs.map +1 -0
- package/dist/{chunk-KBGQIPRQ.js → chunk-PC2UBAUB.js} +20 -3
- package/dist/chunk-PC2UBAUB.js.map +1 -0
- package/dist/chunk-QARBLBXT.cjs +219 -0
- package/dist/chunk-QARBLBXT.cjs.map +1 -0
- package/dist/{chunk-6FR2MMS6.js → chunk-QERAIDRJ.js} +45 -4
- package/dist/chunk-QERAIDRJ.js.map +1 -0
- package/dist/chunk-QSXTWU4U.cjs +12 -0
- package/dist/{chunk-GUR2FNB5.cjs.map → chunk-QSXTWU4U.cjs.map} +1 -1
- package/dist/{chunk-QNKSQTKQ.js → chunk-RCVLFTCT.js} +49 -19
- package/dist/chunk-RCVLFTCT.js.map +1 -0
- package/dist/{chunk-VSPCZAXF.js → chunk-RRSNR3TP.js} +3 -3
- package/dist/{chunk-VSPCZAXF.js.map → chunk-RRSNR3TP.js.map} +1 -1
- package/dist/{chunk-WJT7OU7E.cjs → chunk-TGOMW4MB.cjs} +129 -98
- package/dist/chunk-TGOMW4MB.cjs.map +1 -0
- package/dist/{chunk-KMI7LYAF.js → chunk-TKT2XHED.js} +8 -8
- package/dist/{chunk-KMI7LYAF.js.map → chunk-TKT2XHED.js.map} +1 -1
- package/dist/{chunk-RGPG7EOJ.js → chunk-TPF25IG6.js} +3 -3
- package/dist/{chunk-RGPG7EOJ.js.map → chunk-TPF25IG6.js.map} +1 -1
- package/dist/{chunk-5SEGFTZX.js → chunk-UGZUAYAR.js} +3 -3
- package/dist/{chunk-5SEGFTZX.js.map → chunk-UGZUAYAR.js.map} +1 -1
- package/dist/{chunk-VHMPG6UL.js → chunk-UXLSNRYL.js} +11 -105
- package/dist/chunk-UXLSNRYL.js.map +1 -0
- package/dist/{chunk-FRV5Q5IO.js → chunk-UYQMBBWJ.js} +3 -3
- package/dist/{chunk-FRV5Q5IO.js.map → chunk-UYQMBBWJ.js.map} +1 -1
- package/dist/{chunk-UUT7UN2N.cjs → chunk-VGDDG3XJ.cjs} +7 -7
- package/dist/{chunk-UUT7UN2N.cjs.map → chunk-VGDDG3XJ.cjs.map} +1 -1
- package/dist/{chunk-CZQ3FO2Q.js → chunk-VKGKDOKR.js} +56 -21
- package/dist/chunk-VKGKDOKR.js.map +1 -0
- package/dist/{chunk-CTTSDJLY.cjs → chunk-VL2V6PEN.cjs} +11 -11
- package/dist/{chunk-CTTSDJLY.cjs.map → chunk-VL2V6PEN.cjs.map} +1 -1
- package/dist/{chunk-XOX22WHL.cjs → chunk-WOJMKB3N.cjs} +125 -90
- package/dist/chunk-WOJMKB3N.cjs.map +1 -0
- package/dist/{chunk-UMDVATGY.cjs → chunk-WWFHO375.cjs} +6 -6
- package/dist/{chunk-UMDVATGY.cjs.map → chunk-WWFHO375.cjs.map} +1 -1
- package/dist/{chunk-I7ZUZKFD.js → chunk-XGPUQ56G.js} +3 -3
- package/dist/{chunk-I7ZUZKFD.js.map → chunk-XGPUQ56G.js.map} +1 -1
- package/dist/{chunk-D7ZEOS56.cjs → chunk-XGU7DZDA.cjs} +74 -14
- package/dist/chunk-XGU7DZDA.cjs.map +1 -0
- package/dist/{chunk-S55OV6PW.cjs → chunk-XPCZADMT.cjs} +54 -11
- package/dist/chunk-XPCZADMT.cjs.map +1 -0
- package/dist/{chunk-T2WUSPDA.js → chunk-XWV4JT34.js} +3 -3
- package/dist/{chunk-T2WUSPDA.js.map → chunk-XWV4JT34.js.map} +1 -1
- package/dist/chunk-YTSN73ND.js +212 -0
- package/dist/chunk-YTSN73ND.js.map +1 -0
- package/dist/{ddl-CZz7a0E8.d.cts → ddl-BD-ZfKeX.d.cts} +3 -3
- package/dist/{ddl-C2rZ-Aen.d.ts → ddl-CS0KUVwB.d.ts} +3 -3
- package/dist/{extension-types-ixRpJVUp.d.cts → extension-types-BM2ACfYO.d.cts} +6 -1
- package/dist/{extension-types-ixRpJVUp.d.ts → extension-types-BM2ACfYO.d.ts} +6 -1
- package/dist/{fulltext-strategy-CDkSSYhq.d.cts → fulltext-strategy-C27vXaeB.d.cts} +127 -8
- package/dist/{fulltext-strategy-B57yvC5Q.d.ts → fulltext-strategy-DebsMrqg.d.ts} +127 -8
- package/dist/graph-extension/index.cjs +19 -19
- package/dist/graph-extension/index.d.cts +4 -4
- package/dist/graph-extension/index.d.ts +4 -4
- package/dist/graph-extension/index.js +4 -4
- package/dist/graph-merge/index.cjs +88 -88
- package/dist/graph-merge/index.cjs.map +1 -1
- package/dist/graph-merge/index.d.cts +6 -6
- package/dist/graph-merge/index.d.ts +6 -6
- package/dist/graph-merge/index.js +19 -19
- package/dist/graph-merge/index.js.map +1 -1
- package/dist/{index-Bks_3HHK.d.cts → index-BPM59vsg.d.cts} +119 -7
- package/dist/{index-6CSUAq-x.d.ts → index-BeacbPoe.d.ts} +119 -7
- package/dist/index.cjs +230 -185
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -11
- package/dist/index.d.ts +11 -11
- package/dist/index.js +53 -40
- package/dist/index.js.map +1 -1
- package/dist/indexes/index.cjs +30 -21
- package/dist/indexes/index.d.cts +5 -5
- package/dist/indexes/index.d.ts +5 -5
- package/dist/indexes/index.js +8 -7
- package/dist/interchange/index.cjs +208 -30
- package/dist/interchange/index.cjs.map +1 -1
- package/dist/interchange/index.d.cts +25 -8
- package/dist/interchange/index.d.ts +25 -8
- package/dist/interchange/index.js +191 -11
- package/dist/interchange/index.js.map +1 -1
- package/dist/{manager-DwQi8eV0.d.cts → manager-D00_NXvT.d.ts} +11 -2
- package/dist/{manager-ejUCB52T.d.ts → manager-nU1vTJLy.d.cts} +11 -2
- package/dist/{materialize-indexes-B4e9360H.d.cts → materialize-indexes-CuR3gAZb.d.cts} +8 -2
- package/dist/{materialize-indexes-te9TPMMJ.d.ts → materialize-indexes-zK2J_flP.d.ts} +8 -2
- package/dist/{postgres-DQ5R6rzV.d.ts → postgres-IaBA4RgE.d.ts} +1 -1
- package/dist/{postgres-CfEqsRMp.d.cts → postgres-YrYmPlaU.d.cts} +1 -1
- package/dist/profiler/index.cjs +3 -3
- package/dist/profiler/index.d.cts +7 -7
- package/dist/profiler/index.d.ts +7 -7
- package/dist/profiler/index.js +2 -2
- package/dist/provenance/index.cjs +32 -33
- package/dist/provenance/index.cjs.map +1 -1
- package/dist/provenance/index.d.cts +5 -5
- package/dist/provenance/index.d.ts +5 -5
- package/dist/provenance/index.js +5 -6
- package/dist/provenance/index.js.map +1 -1
- package/dist/schema/index.cjs +35 -35
- package/dist/schema/index.d.cts +7 -7
- package/dist/schema/index.d.ts +7 -7
- package/dist/schema/index.js +11 -11
- package/dist/{sqlite-DvQndLky.d.ts → sqlite-BUOHPx7p.d.ts} +1 -1
- package/dist/{sqlite-D7zBinNR.d.cts → sqlite-Pp8O19WE.d.cts} +1 -1
- package/dist/{store-view-CKbHFRnn.d.ts → store-view-ANL6mTph.d.ts} +457 -57
- package/dist/{store-view-BSpqvAxK.d.cts → store-view-X96Rd00T.d.cts} +457 -57
- package/dist/{types-Bv9DcS_E.d.cts → types-r-Zyq2Hz.d.cts} +2 -2
- package/dist/{types-CoxuV7EJ.d.ts → types-wsvuBgPK.d.ts} +2 -2
- package/dist/where-CJOpJj3a.d.ts +36 -0
- package/dist/where-K3uBP33l.d.cts +36 -0
- package/package.json +1 -1
- package/dist/chunk-3TWF3SH4.js.map +0 -1
- package/dist/chunk-4TOD4LBZ.cjs.map +0 -1
- package/dist/chunk-6FR2MMS6.js.map +0 -1
- package/dist/chunk-CK5BVQOW.cjs.map +0 -1
- package/dist/chunk-CZQ3FO2Q.js.map +0 -1
- package/dist/chunk-D7ZEOS56.cjs.map +0 -1
- package/dist/chunk-EM3CWPND.cjs.map +0 -1
- package/dist/chunk-EMF62TZG.cjs.map +0 -1
- package/dist/chunk-EOLERH7Y.cjs +0 -40
- package/dist/chunk-EOLERH7Y.cjs.map +0 -1
- package/dist/chunk-FN35DLCN.cjs.map +0 -1
- package/dist/chunk-FPIZFYHE.js.map +0 -1
- package/dist/chunk-GUR2FNB5.cjs +0 -12
- package/dist/chunk-H7YNSMA7.cjs.map +0 -1
- package/dist/chunk-J7WFGBJR.cjs.map +0 -1
- package/dist/chunk-JBTOYDMN.js.map +0 -1
- package/dist/chunk-K3PPLHY7.js.map +0 -1
- package/dist/chunk-KBGQIPRQ.js.map +0 -1
- package/dist/chunk-LGEALRC6.cjs.map +0 -1
- package/dist/chunk-MP2JQKSG.js.map +0 -1
- package/dist/chunk-O7UN7OXA.cjs.map +0 -1
- package/dist/chunk-QNKSQTKQ.js.map +0 -1
- package/dist/chunk-QWEUYILR.js.map +0 -1
- package/dist/chunk-RGP33ZJ5.js.map +0 -1
- package/dist/chunk-S55OV6PW.cjs.map +0 -1
- package/dist/chunk-UES55P7G.js.map +0 -1
- package/dist/chunk-UT3S4SEN.js +0 -31
- package/dist/chunk-UT3S4SEN.js.map +0 -1
- package/dist/chunk-VHMPG6UL.js.map +0 -1
- package/dist/chunk-VPYHY3LJ.cjs.map +0 -1
- package/dist/chunk-WDBCBWC4.js.map +0 -1
- package/dist/chunk-WJT7OU7E.cjs.map +0 -1
- package/dist/chunk-XOX22WHL.cjs.map +0 -1
- package/dist/where-7RKFOsXt.d.ts +0 -11
- package/dist/where-DdMIXOtH.d.cts +0 -11
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { tables,
|
|
2
|
-
import { pgvectorStrategy, assertPgvectorEfSearch } from './chunk-
|
|
3
|
-
import { createNodeRowMapper, POSTGRES_ROW_MAPPER_CONFIG, createEdgeRowMapper, createUniqueRowMapper, createSchemaVersionRowMapper, quoteIdentifier, nowIso, coerceNumericScore } from './chunk-
|
|
4
|
-
import { tsvectorStrategy, assertVectorSearchLimit, buildFulltextCapabilities, buildVectorCapabilities } from './chunk-
|
|
5
|
-
import { shouldForceCustomPlan, annIndexScanTypes } from './chunk-
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { getTableName, sql, and, eq, isNull, inArray } from 'drizzle-orm';
|
|
1
|
+
import { tables, createPostgresOperationStrategy, createCachedTableExistence, createContributionMaterializer, gateFulltextMethods, lockPostgresTrustedImportTables, assertTrustedImportDatabaseEmpty, suspendPostgresSecondaryIndexes, createPostgresTrustedImportSession, restoreSecondaryIndexes, analyzeImportedTables, EMBEDDING_UPSERT_PARAM_COUNT, createCommonOperationBackend, vectorSlotFromParams, hybridCandidatesRef, mapVectorWriteError, mapHybridSearchRow, generatePgCreateTableSQL, mapContributionMaterializationRow, POSTGRES_CONTRIBUTION_MAT_TIMESTAMPS, buildContributionInsertValues, buildContributionOnConflictSet, assertAdoptedDialect, buildKindRemovalInsertValues, POSTGRES_KIND_REMOVAL_TIMESTAMPS, buildKindRemovalOnConflictSet, mapKindRemovalRow, buildMaterializationInsertValues, POSTGRES_INDEX_MAT_TIMESTAMPS, buildMaterializationOnConflictSet, mapMaterializationRow, generatePostgresDDL, vectorSlotFromDropIndexParams, vectorSlotFromCreateIndexParams, gateFulltext, compileQueryWithDialect, getOrCreateLru } from './chunk-K3Q3LJY3.js';
|
|
2
|
+
import { pgvectorStrategy, assertPgvectorEfSearch } from './chunk-5KPNWT6X.js';
|
|
3
|
+
import { createNodeRowMapper, POSTGRES_ROW_MAPPER_CONFIG, createEdgeRowMapper, createUniqueRowMapper, createSchemaVersionRowMapper, quoteIdentifier, nowIso, coerceNumericScore } from './chunk-M6VES7V6.js';
|
|
4
|
+
import { tsvectorStrategy, assertVectorSearchLimit, buildFulltextCapabilities, buildVectorCapabilities } from './chunk-EXU3RASM.js';
|
|
5
|
+
import { normalizeGraphAnalyticsCapabilities, createBackendOverlay, POSTGRES_MAX_BIND_PARAMETERS, INTERNAL_TEMPORARY_WRITES, POSTGRES_CAPABILITIES, shouldForceCustomPlan, chunk, annIndexScanTypes } from './chunk-44TA22QT.js';
|
|
6
|
+
import { isMissingTableError, isInsufficientResourcesError } from './chunk-XGPUQ56G.js';
|
|
7
|
+
import { ConfigurationError, CompilerInvariantError, TransactionClosedError } from './chunk-5PNMDJ7J.js';
|
|
8
|
+
import { getTableName, sql, eq, and, isNull, inArray } from 'drizzle-orm';
|
|
10
9
|
import { PgDatabase, PgTransaction } from 'drizzle-orm/pg-core';
|
|
11
10
|
|
|
12
11
|
// src/backend/drizzle/execution/postgres-execution.ts
|
|
@@ -23,8 +22,14 @@ function isPgNativeClient(candidate) {
|
|
|
23
22
|
function isPgliteClient(candidate) {
|
|
24
23
|
return typeof candidate === "object" && hasFunctionProperty(candidate, "query") && hasFunctionProperty(candidate, "dumpDataDir");
|
|
25
24
|
}
|
|
25
|
+
function transactionSession(carrier) {
|
|
26
|
+
return carrier.session ?? carrier._?.session;
|
|
27
|
+
}
|
|
28
|
+
function hasPgliteSession(carrier) {
|
|
29
|
+
return transactionSession(carrier)?.constructor?.name === "PgliteSession";
|
|
30
|
+
}
|
|
26
31
|
function isPostgresJsClient(candidate) {
|
|
27
|
-
return typeof candidate === "function" && hasFunctionProperty(candidate, "unsafe") && hasFunctionProperty(candidate, "begin");
|
|
32
|
+
return typeof candidate === "function" && hasFunctionProperty(candidate, "unsafe") && (hasFunctionProperty(candidate, "begin") || hasFunctionProperty(candidate, "savepoint"));
|
|
28
33
|
}
|
|
29
34
|
function isNeonHttpClient(db) {
|
|
30
35
|
const candidate = db.$client;
|
|
@@ -103,12 +108,14 @@ function adaptPostgresJsClient(sql2) {
|
|
|
103
108
|
}
|
|
104
109
|
};
|
|
105
110
|
}
|
|
106
|
-
function resolvePgClient(db, prepareStatements, cacheMax) {
|
|
111
|
+
function resolvePgClient(db, prepareStatements, cacheMax, useTransactionClient) {
|
|
107
112
|
if (isNeonHttpClient(db)) {
|
|
108
113
|
return void 0;
|
|
109
114
|
}
|
|
110
|
-
const
|
|
111
|
-
|
|
115
|
+
const carrier = db;
|
|
116
|
+
const client = carrier.$client ?? (useTransactionClient ? transactionSession(carrier)?.client : void 0);
|
|
117
|
+
if (isPgliteClient(client) || useTransactionClient && hasPgliteSession(carrier)) {
|
|
118
|
+
if (!isPgNativeClient(client)) return void 0;
|
|
112
119
|
return wrapNodePgClientUnnamed(client);
|
|
113
120
|
}
|
|
114
121
|
if (isPgNativeClient(client)) {
|
|
@@ -137,7 +144,12 @@ function createPgPreparedStatement(pgClient, sqlText) {
|
|
|
137
144
|
function createPostgresExecutionAdapter(db, options = {}) {
|
|
138
145
|
const prepareStatements = options.prepareStatements ?? true;
|
|
139
146
|
const cacheMax = options.preparedStatementCacheMax ?? DEFAULT_POSTGRES_STATEMENT_CACHE_MAX;
|
|
140
|
-
const pgClient = resolvePgClient(
|
|
147
|
+
const pgClient = resolvePgClient(
|
|
148
|
+
db,
|
|
149
|
+
prepareStatements,
|
|
150
|
+
cacheMax,
|
|
151
|
+
options.useTransactionClient ?? false
|
|
152
|
+
);
|
|
141
153
|
function compile(query) {
|
|
142
154
|
return compileQueryWithDialect(db, query, "PostgreSQL");
|
|
143
155
|
}
|
|
@@ -284,18 +296,23 @@ function createPostgresBackend(db, options = {}) {
|
|
|
284
296
|
const tables2 = options.tables ?? tables;
|
|
285
297
|
const fulltextStrategy = options.fulltext ?? tsvectorStrategy;
|
|
286
298
|
const vectorStrategy = options.vector === false ? void 0 : options.vector ?? pgvectorStrategy;
|
|
287
|
-
const vectorSlotLatch = vectorStrategy === void 0 ? void 0 : createVectorSlotLatch();
|
|
288
299
|
const iterativeScanProbe = createIterativeScanProbe();
|
|
289
300
|
const baseCapabilities = buildPostgresCapabilities(
|
|
290
301
|
fulltextStrategy,
|
|
291
302
|
vectorStrategy
|
|
292
303
|
);
|
|
293
|
-
const httpOnlyOverrides = isNeonHttpClient(db) ? {
|
|
294
|
-
|
|
304
|
+
const httpOnlyOverrides = isNeonHttpClient(db) ? {
|
|
305
|
+
transactions: false,
|
|
306
|
+
graphAnalytics: {
|
|
307
|
+
...baseCapabilities.graphAnalytics ?? { mathFunctions: true },
|
|
308
|
+
supported: false
|
|
309
|
+
}
|
|
310
|
+
} : {};
|
|
311
|
+
const capabilities = normalizeGraphAnalyticsCapabilities({
|
|
295
312
|
...baseCapabilities,
|
|
296
313
|
...httpOnlyOverrides,
|
|
297
314
|
...options.capabilities
|
|
298
|
-
};
|
|
315
|
+
});
|
|
299
316
|
const adapterOptions = {
|
|
300
317
|
...options.prepareStatements === void 0 ? {} : { prepareStatements: options.prepareStatements },
|
|
301
318
|
...options.preparedStatementCacheMax === void 0 ? {} : { preparedStatementCacheMax: options.preparedStatementCacheMax }
|
|
@@ -326,18 +343,6 @@ function createPostgresBackend(db, options = {}) {
|
|
|
326
343
|
tables2,
|
|
327
344
|
fulltextStrategy
|
|
328
345
|
);
|
|
329
|
-
const operations = createPostgresOperationBackend({
|
|
330
|
-
db,
|
|
331
|
-
executionAdapter,
|
|
332
|
-
adapterOptions,
|
|
333
|
-
operationStrategy,
|
|
334
|
-
tableNames,
|
|
335
|
-
capabilities,
|
|
336
|
-
fulltextStrategy,
|
|
337
|
-
vectorStrategy,
|
|
338
|
-
vectorSlotLatch,
|
|
339
|
-
iterativeScanProbe
|
|
340
|
-
});
|
|
341
346
|
const recordedTableExists = createCachedTableExistence(
|
|
342
347
|
async (tableName) => {
|
|
343
348
|
const rows = await executionAdapter.execute(
|
|
@@ -347,36 +352,6 @@ function createPostgresBackend(db, options = {}) {
|
|
|
347
352
|
},
|
|
348
353
|
{ cacheExisting: false }
|
|
349
354
|
);
|
|
350
|
-
function runSchemaWriteTransaction(graphId, fn) {
|
|
351
|
-
if (!capabilities.transactions) {
|
|
352
|
-
throw new ConfigurationError(
|
|
353
|
-
"commitSchemaVersion and setActiveVersion require atomic transactions, but this Postgres backend does not provide them. The drizzle-orm/neon-http driver communicates over HTTP and cannot hold a session across statements; use drizzle-orm/neon-serverless (websocket) for transactional writes.",
|
|
354
|
-
{
|
|
355
|
-
backend: "postgres",
|
|
356
|
-
capability: "transactions",
|
|
357
|
-
supportsTransactions: false
|
|
358
|
-
}
|
|
359
|
-
);
|
|
360
|
-
}
|
|
361
|
-
return db.transaction(async (tx) => {
|
|
362
|
-
await tx.execute(sql`SELECT pg_advisory_xact_lock(hashtext(${graphId}))`);
|
|
363
|
-
const { backend: txBackend, drainAndClose } = createTransactionBackend({
|
|
364
|
-
db: tx,
|
|
365
|
-
adapterOptions,
|
|
366
|
-
operationStrategy,
|
|
367
|
-
tableNames,
|
|
368
|
-
capabilities,
|
|
369
|
-
fulltextStrategy,
|
|
370
|
-
vectorStrategy,
|
|
371
|
-
iterativeScanProbe
|
|
372
|
-
});
|
|
373
|
-
try {
|
|
374
|
-
return await fn(txBackend);
|
|
375
|
-
} finally {
|
|
376
|
-
await drainAndClose();
|
|
377
|
-
}
|
|
378
|
-
});
|
|
379
|
-
}
|
|
380
355
|
const matTable = tables2.contributionMaterializations;
|
|
381
356
|
async function ensureContributionMaterializationsTableImpl() {
|
|
382
357
|
await db.execute(sql.raw(generatePgCreateTableSQL(matTable)));
|
|
@@ -397,6 +372,15 @@ function createPostgresBackend(db, options = {}) {
|
|
|
397
372
|
POSTGRES_CONTRIBUTION_MAT_TIMESTAMPS.decode
|
|
398
373
|
);
|
|
399
374
|
}
|
|
375
|
+
async function getContributionMaterializationRows(graphId) {
|
|
376
|
+
const rows = await db.select().from(matTable).where(eq(matTable.graphId, graphId));
|
|
377
|
+
return rows.map(
|
|
378
|
+
(row) => mapContributionMaterializationRow(
|
|
379
|
+
row,
|
|
380
|
+
POSTGRES_CONTRIBUTION_MAT_TIMESTAMPS.decode
|
|
381
|
+
)
|
|
382
|
+
);
|
|
383
|
+
}
|
|
400
384
|
async function recordContributionMaterializationRow(params) {
|
|
401
385
|
await db.insert(matTable).values(
|
|
402
386
|
buildContributionInsertValues(
|
|
@@ -416,17 +400,72 @@ function createPostgresBackend(db, options = {}) {
|
|
|
416
400
|
)
|
|
417
401
|
});
|
|
418
402
|
}
|
|
403
|
+
async function deleteContributionMaterializationRow(identity) {
|
|
404
|
+
await db.delete(matTable).where(
|
|
405
|
+
and(
|
|
406
|
+
eq(matTable.graphId, identity.graphId),
|
|
407
|
+
eq(matTable.logicalName, identity.logicalName),
|
|
408
|
+
eq(matTable.owner, identity.owner),
|
|
409
|
+
eq(matTable.tableName, identity.tableName)
|
|
410
|
+
)
|
|
411
|
+
);
|
|
412
|
+
}
|
|
419
413
|
const contributionMaterializer = createContributionMaterializer({
|
|
420
414
|
dialect: "postgres",
|
|
421
415
|
fulltextStrategy,
|
|
422
416
|
fulltextTableName: tables2.fulltextTableName,
|
|
417
|
+
vectorStrategy,
|
|
423
418
|
execDdl: async (statement) => {
|
|
424
419
|
await db.execute(sql.raw(statement));
|
|
425
420
|
},
|
|
426
421
|
ensureMarkerTable: ensureContributionMaterializationsTableImpl,
|
|
427
|
-
|
|
428
|
-
recordMarker: recordContributionMaterializationRow
|
|
422
|
+
getMarkers: getContributionMaterializationRows,
|
|
423
|
+
recordMarker: recordContributionMaterializationRow,
|
|
424
|
+
deleteMarker: deleteContributionMaterializationRow
|
|
429
425
|
});
|
|
426
|
+
const operations = createPostgresOperationBackend({
|
|
427
|
+
db,
|
|
428
|
+
executionAdapter,
|
|
429
|
+
adapterOptions,
|
|
430
|
+
operationStrategy,
|
|
431
|
+
tableNames,
|
|
432
|
+
capabilities,
|
|
433
|
+
fulltextStrategy,
|
|
434
|
+
vectorStrategy,
|
|
435
|
+
contributionMaterializer,
|
|
436
|
+
iterativeScanProbe
|
|
437
|
+
});
|
|
438
|
+
function runSchemaWriteTransaction(graphId, fn) {
|
|
439
|
+
if (!capabilities.transactions) {
|
|
440
|
+
throw new ConfigurationError(
|
|
441
|
+
"commitSchemaVersion and setActiveVersion require atomic transactions, but this Postgres backend does not provide them. The drizzle-orm/neon-http driver communicates over HTTP and cannot hold a session across statements; use drizzle-orm/neon-serverless (websocket) for transactional writes.",
|
|
442
|
+
{
|
|
443
|
+
backend: "postgres",
|
|
444
|
+
capability: "transactions",
|
|
445
|
+
supportsTransactions: false
|
|
446
|
+
}
|
|
447
|
+
);
|
|
448
|
+
}
|
|
449
|
+
return db.transaction(async (tx) => {
|
|
450
|
+
await tx.execute(sql`SELECT pg_advisory_xact_lock(hashtext(${graphId}))`);
|
|
451
|
+
const { backend: txBackend, drainAndClose } = createTransactionBackend({
|
|
452
|
+
db: tx,
|
|
453
|
+
adapterOptions,
|
|
454
|
+
operationStrategy,
|
|
455
|
+
tableNames,
|
|
456
|
+
capabilities,
|
|
457
|
+
fulltextStrategy,
|
|
458
|
+
vectorStrategy,
|
|
459
|
+
contributionMaterializer,
|
|
460
|
+
iterativeScanProbe
|
|
461
|
+
});
|
|
462
|
+
try {
|
|
463
|
+
return await fn(txBackend);
|
|
464
|
+
} finally {
|
|
465
|
+
await drainAndClose();
|
|
466
|
+
}
|
|
467
|
+
});
|
|
468
|
+
}
|
|
430
469
|
function bindTransactionBackend(tx) {
|
|
431
470
|
const { backend: backend2, drainAndClose } = createTransactionBackend({
|
|
432
471
|
db: tx,
|
|
@@ -436,6 +475,7 @@ function createPostgresBackend(db, options = {}) {
|
|
|
436
475
|
capabilities,
|
|
437
476
|
fulltextStrategy,
|
|
438
477
|
vectorStrategy,
|
|
478
|
+
contributionMaterializer,
|
|
439
479
|
iterativeScanProbe
|
|
440
480
|
});
|
|
441
481
|
return {
|
|
@@ -448,6 +488,40 @@ function createPostgresBackend(db, options = {}) {
|
|
|
448
488
|
}
|
|
449
489
|
const backend = {
|
|
450
490
|
...operations,
|
|
491
|
+
...capabilities.transactions && executionAdapter.executeCompiled !== void 0 ? {
|
|
492
|
+
async trustedImport(fn) {
|
|
493
|
+
return backend.transaction(async (tx, rawSql) => {
|
|
494
|
+
const trustedExecutionAdapter = createPostgresExecutionAdapter(
|
|
495
|
+
rawSql,
|
|
496
|
+
{ ...adapterOptions, useTransactionClient: true }
|
|
497
|
+
);
|
|
498
|
+
const executeCompiled = trustedExecutionAdapter.executeCompiled;
|
|
499
|
+
if (executeCompiled === void 0) {
|
|
500
|
+
throw new ConfigurationError(
|
|
501
|
+
"Trusted import could not bind raw execution to the PostgreSQL transaction.",
|
|
502
|
+
{ capability: "trustedImport", dialect: "postgres" }
|
|
503
|
+
);
|
|
504
|
+
}
|
|
505
|
+
const trustedTx = createBackendOverlay(tx, {
|
|
506
|
+
executeRaw(sqlText, params) {
|
|
507
|
+
return executeCompiled({ params, sql: sqlText });
|
|
508
|
+
}
|
|
509
|
+
});
|
|
510
|
+
await lockPostgresTrustedImportTables(trustedTx, tableNames);
|
|
511
|
+
await assertTrustedImportDatabaseEmpty(trustedTx, tableNames);
|
|
512
|
+
const indexDefinitions = await suspendPostgresSecondaryIndexes(
|
|
513
|
+
trustedTx,
|
|
514
|
+
tableNames
|
|
515
|
+
);
|
|
516
|
+
const result = await fn(
|
|
517
|
+
createPostgresTrustedImportSession(trustedTx, tableNames)
|
|
518
|
+
);
|
|
519
|
+
await restoreSecondaryIndexes(trustedTx, indexDefinitions);
|
|
520
|
+
await analyzeImportedTables(trustedTx, tableNames);
|
|
521
|
+
return result;
|
|
522
|
+
});
|
|
523
|
+
}
|
|
524
|
+
} : {},
|
|
451
525
|
async bootstrapTables() {
|
|
452
526
|
const statements = generatePostgresDDL(tables2, fulltextStrategy);
|
|
453
527
|
for (const statement of statements) {
|
|
@@ -544,10 +618,7 @@ function createPostgresBackend(db, options = {}) {
|
|
|
544
618
|
)
|
|
545
619
|
).onConflictDoUpdate({
|
|
546
620
|
target: t.indexName,
|
|
547
|
-
set: buildMaterializationOnConflictSet(
|
|
548
|
-
t.materializedAt,
|
|
549
|
-
params.materializedAt
|
|
550
|
-
)
|
|
621
|
+
set: buildMaterializationOnConflictSet(params.materializedAt)
|
|
551
622
|
});
|
|
552
623
|
},
|
|
553
624
|
async ensureContributionMaterializationsTable() {
|
|
@@ -607,6 +678,27 @@ function createPostgresBackend(db, options = {}) {
|
|
|
607
678
|
async ensureFulltextTable(graphId) {
|
|
608
679
|
await contributionMaterializer.ensureRuntimeContributions(graphId);
|
|
609
680
|
},
|
|
681
|
+
// Vector counterparts of the runtime-contribution methods. Present
|
|
682
|
+
// only when a vector strategy is wired (omitted under `vector: false`,
|
|
683
|
+
// mirroring the embedding/search methods), so a no-vector backend
|
|
684
|
+
// doesn't advertise vector materialization it can't perform.
|
|
685
|
+
...vectorStrategy === void 0 ? {} : {
|
|
686
|
+
async ensureVectorSlotContribution(slot, options_) {
|
|
687
|
+
await contributionMaterializer.ensureVectorSlot(slot, options_);
|
|
688
|
+
},
|
|
689
|
+
async ensureVectorSlotContributions(slots, options_) {
|
|
690
|
+
await contributionMaterializer.ensureVectorSlots(slots, options_);
|
|
691
|
+
},
|
|
692
|
+
async assertVectorSlotInitialized(slot) {
|
|
693
|
+
await contributionMaterializer.assertVectorSlot(slot);
|
|
694
|
+
},
|
|
695
|
+
async assertVectorSlotsInitialized(slots) {
|
|
696
|
+
await contributionMaterializer.assertVectorSlots(slots);
|
|
697
|
+
},
|
|
698
|
+
async deleteVectorSlotContribution(slot) {
|
|
699
|
+
await contributionMaterializer.dropVectorSlot(slot);
|
|
700
|
+
}
|
|
701
|
+
},
|
|
610
702
|
async getReconciliationMarker(graphId) {
|
|
611
703
|
const t = tables2.reconciliationMarkers;
|
|
612
704
|
const rows = await db.select().from(t).where(eq(t.graphId, graphId));
|
|
@@ -649,8 +741,20 @@ function createPostgresBackend(db, options = {}) {
|
|
|
649
741
|
);
|
|
650
742
|
},
|
|
651
743
|
async transaction(fn, options2) {
|
|
652
|
-
const
|
|
653
|
-
|
|
744
|
+
const temporaryWrites = options2?.temporaryWrites === INTERNAL_TEMPORARY_WRITES;
|
|
745
|
+
if (temporaryWrites && options2.accessMode !== "read_only") {
|
|
746
|
+
throw new ConfigurationError(
|
|
747
|
+
"Temporary-write transactions must be semantically read-only.",
|
|
748
|
+
{ dialect: "postgres" }
|
|
749
|
+
);
|
|
750
|
+
}
|
|
751
|
+
const txConfig = options2?.isolationLevel !== void 0 || options2?.accessMode !== void 0 || temporaryWrites ? {
|
|
752
|
+
...options2.isolationLevel === void 0 ? {} : {
|
|
753
|
+
isolationLevel: options2.isolationLevel.replace("_", " ")
|
|
754
|
+
},
|
|
755
|
+
...options2.accessMode === void 0 && !temporaryWrites ? {} : {
|
|
756
|
+
accessMode: temporaryWrites ? "read write" : options2.accessMode.replace("_", " ")
|
|
757
|
+
}
|
|
654
758
|
} : void 0;
|
|
655
759
|
return db.transaction(async (tx) => {
|
|
656
760
|
const { backend: txBackend, drainAndClose } = bindTransactionBackend(tx);
|
|
@@ -723,7 +827,7 @@ function createPostgresOperationBackend(options) {
|
|
|
723
827
|
capabilities,
|
|
724
828
|
fulltextStrategy,
|
|
725
829
|
vectorStrategy,
|
|
726
|
-
|
|
830
|
+
contributionMaterializer,
|
|
727
831
|
iterativeScanProbe
|
|
728
832
|
} = options;
|
|
729
833
|
async function execAll(query) {
|
|
@@ -819,12 +923,6 @@ function createPostgresOperationBackend(options) {
|
|
|
819
923
|
return txAdapter.execute(query);
|
|
820
924
|
});
|
|
821
925
|
}
|
|
822
|
-
async function ensureVectorSlotStorage(slot) {
|
|
823
|
-
if (vectorStrategy === void 0 || vectorSlotLatch === void 0) return;
|
|
824
|
-
await vectorSlotLatch.ensure(vectorStrategy, slot, async (statement) => {
|
|
825
|
-
await execRun(sql.raw(statement));
|
|
826
|
-
});
|
|
827
|
-
}
|
|
828
926
|
const batchConfig = {
|
|
829
927
|
checkUniqueBatchChunkSize: POSTGRES_CHECK_UNIQUE_BATCH_CHUNK_SIZE,
|
|
830
928
|
edgeInsertBatchSize: POSTGRES_EDGE_INSERT_BATCH_SIZE,
|
|
@@ -868,7 +966,7 @@ function createPostgresOperationBackend(options) {
|
|
|
868
966
|
const vectorEmbeddingMethods = vectorStrategy === void 0 ? {} : {
|
|
869
967
|
async upsertEmbedding(params) {
|
|
870
968
|
const slot = vectorSlotFromParams(params);
|
|
871
|
-
await
|
|
969
|
+
await contributionMaterializer.assertVectorSlot(slot);
|
|
872
970
|
const statements = vectorStrategy.buildUpsert(slot, params, nowIso());
|
|
873
971
|
try {
|
|
874
972
|
for (const statement of statements) {
|
|
@@ -881,7 +979,7 @@ function createPostgresOperationBackend(options) {
|
|
|
881
979
|
async upsertEmbeddingBatch(params) {
|
|
882
980
|
if (params.rows.length === 0) return;
|
|
883
981
|
const slot = vectorSlotFromParams(params);
|
|
884
|
-
await
|
|
982
|
+
await contributionMaterializer.assertVectorSlot(slot);
|
|
885
983
|
const rowsById = new Map(
|
|
886
984
|
params.rows.map((row) => [row.nodeId, row])
|
|
887
985
|
);
|
|
@@ -922,7 +1020,7 @@ function createPostgresOperationBackend(options) {
|
|
|
922
1020
|
},
|
|
923
1021
|
async deleteEmbedding(params) {
|
|
924
1022
|
const slot = vectorSlotFromParams(params);
|
|
925
|
-
await
|
|
1023
|
+
await contributionMaterializer.assertVectorSlot(slot);
|
|
926
1024
|
const statements = vectorStrategy.buildDelete(slot, params);
|
|
927
1025
|
for (const statement of statements) {
|
|
928
1026
|
await execRun(statement);
|
|
@@ -932,7 +1030,6 @@ function createPostgresOperationBackend(options) {
|
|
|
932
1030
|
assertVectorSearchLimit(params.limit);
|
|
933
1031
|
assertPgvectorEfSearch(params.efSearch);
|
|
934
1032
|
const slot = vectorSlotFromParams(params);
|
|
935
|
-
await ensureVectorSlotStorage(slot);
|
|
936
1033
|
const query = vectorStrategy.buildSearch(
|
|
937
1034
|
slot,
|
|
938
1035
|
params,
|
|
@@ -971,7 +1068,6 @@ function createPostgresOperationBackend(options) {
|
|
|
971
1068
|
metric: params.vector.metric,
|
|
972
1069
|
indexType: params.vector.indexType
|
|
973
1070
|
});
|
|
974
|
-
await ensureVectorSlotStorage(slot);
|
|
975
1071
|
const candidates = params.candidates ?? operationStrategy.buildLiveNodeIds(
|
|
976
1072
|
params.graphId,
|
|
977
1073
|
params.nodeKind
|
|
@@ -1027,7 +1123,7 @@ function createPostgresOperationBackend(options) {
|
|
|
1027
1123
|
async createVectorIndex(params) {
|
|
1028
1124
|
if (vectorStrategy === void 0) return;
|
|
1029
1125
|
const slot = vectorSlotFromCreateIndexParams(params);
|
|
1030
|
-
await
|
|
1126
|
+
await contributionMaterializer.ensureVectorSlot(slot);
|
|
1031
1127
|
const indexStatement = vectorStrategy.buildCreateIndex?.(slot, {
|
|
1032
1128
|
concurrent: params.concurrent === true
|
|
1033
1129
|
});
|
|
@@ -1047,9 +1143,7 @@ function createPostgresOperationBackend(options) {
|
|
|
1047
1143
|
slot.fieldPath
|
|
1048
1144
|
)
|
|
1049
1145
|
);
|
|
1050
|
-
await execRun(
|
|
1051
|
-
sql`ALTER TABLE ${table} SET (parallel_workers = 0)`
|
|
1052
|
-
);
|
|
1146
|
+
await execRun(sql`ALTER TABLE ${table} SET (parallel_workers = 0)`);
|
|
1053
1147
|
try {
|
|
1054
1148
|
await execRun(indexStatement);
|
|
1055
1149
|
} finally {
|
|
@@ -1134,9 +1228,7 @@ function createPostgresOperationBackend(options) {
|
|
|
1134
1228
|
const overrides = [];
|
|
1135
1229
|
for (const indexType of annTypes) {
|
|
1136
1230
|
if (indexType !== "hnsw" && indexType !== "ivfflat") continue;
|
|
1137
|
-
overrides.push(
|
|
1138
|
-
...await vectorSearchGucOverrides({ indexType })
|
|
1139
|
-
);
|
|
1231
|
+
overrides.push(...await vectorSearchGucOverrides({ indexType }));
|
|
1140
1232
|
}
|
|
1141
1233
|
return runVectorSearch(overrides, query);
|
|
1142
1234
|
}
|
|
@@ -1161,14 +1253,14 @@ function createTransactionBackend(options) {
|
|
|
1161
1253
|
capabilities: options.capabilities,
|
|
1162
1254
|
fulltextStrategy: options.fulltextStrategy,
|
|
1163
1255
|
vectorStrategy: options.vectorStrategy,
|
|
1164
|
-
|
|
1165
|
-
// The probe is process-wide truth, so
|
|
1166
|
-
//
|
|
1256
|
+
contributionMaterializer: options.contributionMaterializer,
|
|
1257
|
+
// The probe is process-wide truth, so the outer instance's is reused
|
|
1258
|
+
// rather than a fresh one per transaction.
|
|
1167
1259
|
iterativeScanProbe: options.iterativeScanProbe
|
|
1168
1260
|
});
|
|
1169
1261
|
return { backend, drainAndClose: txExecutionAdapter.drainAndClose };
|
|
1170
1262
|
}
|
|
1171
1263
|
|
|
1172
1264
|
export { createPostgresBackend };
|
|
1173
|
-
//# sourceMappingURL=chunk-
|
|
1174
|
-
//# sourceMappingURL=chunk-
|
|
1265
|
+
//# sourceMappingURL=chunk-IXGYRP2P.js.map
|
|
1266
|
+
//# sourceMappingURL=chunk-IXGYRP2P.js.map
|