@quereus/quereus 4.20.3 → 4.21.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/README.md +2 -0
- package/dist/src/common/constants.d.ts +8 -1
- package/dist/src/common/constants.d.ts.map +1 -1
- package/dist/src/common/constants.js +7 -0
- package/dist/src/common/constants.js.map +1 -1
- package/dist/src/core/database.d.ts +4 -1
- package/dist/src/core/database.d.ts.map +1 -1
- package/dist/src/core/database.js +10 -4
- package/dist/src/core/database.js.map +1 -1
- package/dist/src/core/statement.d.ts +12 -0
- package/dist/src/core/statement.d.ts.map +1 -1
- package/dist/src/core/statement.js +20 -2
- package/dist/src/core/statement.js.map +1 -1
- package/dist/src/func/builtins/scalar.d.ts.map +1 -1
- package/dist/src/func/builtins/scalar.js +3 -0
- package/dist/src/func/builtins/scalar.js.map +1 -1
- package/dist/src/func/registration.d.ts +4 -0
- package/dist/src/func/registration.d.ts.map +1 -1
- package/dist/src/func/registration.js +11 -1
- package/dist/src/func/registration.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/planner/analysis/change-scope.d.ts +58 -2
- package/dist/src/planner/analysis/change-scope.d.ts.map +1 -1
- package/dist/src/planner/analysis/change-scope.js +94 -73
- package/dist/src/planner/analysis/change-scope.js.map +1 -1
- package/dist/src/planner/analysis/non-det-functions.d.ts +10 -0
- package/dist/src/planner/analysis/non-det-functions.d.ts.map +1 -0
- package/dist/src/planner/analysis/non-det-functions.js +17 -0
- package/dist/src/planner/analysis/non-det-functions.js.map +1 -0
- package/dist/src/planner/analysis/value-provenance.d.ts +119 -0
- package/dist/src/planner/analysis/value-provenance.d.ts.map +1 -0
- package/dist/src/planner/analysis/value-provenance.js +406 -0
- package/dist/src/planner/analysis/value-provenance.js.map +1 -0
- package/dist/src/planner/analysis/write-scope.d.ts +150 -0
- package/dist/src/planner/analysis/write-scope.d.ts.map +1 -0
- package/dist/src/planner/analysis/write-scope.js +95 -0
- package/dist/src/planner/analysis/write-scope.js.map +1 -0
- package/dist/src/planner/analysis/write-site-analysis.d.ts +67 -0
- package/dist/src/planner/analysis/write-site-analysis.d.ts.map +1 -0
- package/dist/src/planner/analysis/write-site-analysis.js +354 -0
- package/dist/src/planner/analysis/write-site-analysis.js.map +1 -0
- package/dist/src/planner/building/delete.d.ts.map +1 -1
- package/dist/src/planner/building/delete.js +9 -1
- package/dist/src/planner/building/delete.js.map +1 -1
- package/dist/src/planner/building/insert.d.ts.map +1 -1
- package/dist/src/planner/building/insert.js +8 -1
- package/dist/src/planner/building/insert.js.map +1 -1
- package/dist/src/planner/building/update.d.ts.map +1 -1
- package/dist/src/planner/building/update.js +9 -2
- package/dist/src/planner/building/update.js.map +1 -1
- package/dist/src/planner/nodes/dml-executor-node.d.ts +18 -1
- package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/dml-executor-node.js +12 -2
- package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
- package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
- package/dist/src/runtime/emit/dml-executor.js +39 -12
- package/dist/src/runtime/emit/dml-executor.js.map +1 -1
- package/dist/src/schema/assertion.d.ts +3 -1
- package/dist/src/schema/assertion.d.ts.map +1 -1
- package/dist/src/schema/assertion.js.map +1 -1
- package/dist/src/vtab/table.d.ts +16 -0
- package/dist/src/vtab/table.d.ts.map +1 -1
- package/dist/src/vtab/table.js +7 -0
- package/dist/src/vtab/table.js.map +1 -1
- package/package.json +3 -3
|
@@ -6,6 +6,7 @@ import { SequenceNode } from '../nodes/sequence-node.js';
|
|
|
6
6
|
import { PlanNodeType } from '../nodes/plan-node-type.js';
|
|
7
7
|
import { FunctionFlags } from '../../common/constants.js';
|
|
8
8
|
import { extractBindings } from './binding-extractor.js';
|
|
9
|
+
import { classifyNonDetFunction } from './non-det-functions.js';
|
|
9
10
|
import { relationKeyOf } from './relation-key.js';
|
|
10
11
|
import { extractConstraintsForTable } from './constraint-extractor.js';
|
|
11
12
|
import { planTimeLiteralValue } from './predicate-shape.js';
|
|
@@ -49,13 +50,6 @@ export function scalarTypeFromPortable(p) {
|
|
|
49
50
|
};
|
|
50
51
|
}
|
|
51
52
|
/* --- Constants ----------------------------------------------------------- */
|
|
52
|
-
const KNOWN_TIME_FUNCS = new Set([
|
|
53
|
-
'now', 'current_timestamp', 'current_time', 'current_date',
|
|
54
|
-
'date', 'time', 'datetime', 'julianday',
|
|
55
|
-
'epoch_s', 'epoch_ms', 'epoch_s_frac',
|
|
56
|
-
'strftime',
|
|
57
|
-
]);
|
|
58
|
-
const KNOWN_RANDOM_FUNCS = new Set(['random', 'randomblob']);
|
|
59
53
|
const DML_NODE_TYPES = new Set([
|
|
60
54
|
PlanNodeType.Update,
|
|
61
55
|
PlanNodeType.Insert,
|
|
@@ -72,46 +66,30 @@ const DML_NODE_TYPES = new Set([
|
|
|
72
66
|
*/
|
|
73
67
|
export function analyzeChangeScope(plan, options) {
|
|
74
68
|
const dmlWithoutReturning = isDmlWithoutReturning(plan);
|
|
75
|
-
const { perRelation } = extractBindings(plan);
|
|
76
|
-
const tableRefs = collectTableRefs(plan);
|
|
77
|
-
const columnsByRelKey = collectColumnReads(plan, tableRefs);
|
|
78
|
-
const nonDetSources = [];
|
|
79
|
-
const unboundParams = new Set();
|
|
80
|
-
collectNonDeterminism(plan, nonDetSources, unboundParams, perRelation);
|
|
81
|
-
const watches = [];
|
|
82
69
|
// Source-union scopes for any incremental-MV backing references encountered;
|
|
83
70
|
// folded into the result below so they union/dedup against direct reads of
|
|
84
71
|
// the same source table.
|
|
85
72
|
const mvSourceScopes = [];
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
const mvScope = options?.resolveMaterializedViewSource?.(table);
|
|
101
|
-
if (mvScope) {
|
|
102
|
-
mvSourceScopes.push(mvScope);
|
|
103
|
-
continue;
|
|
104
|
-
}
|
|
105
|
-
const colIndices = columnsByRelKey.get(relKey);
|
|
106
|
-
const columns = buildColumnSet(ref, colIndices);
|
|
107
|
-
const scope = buildScopeForMode(plan, ref, relKey, mode, unboundParams);
|
|
108
|
-
watches.push({ table, columns, scope });
|
|
109
|
-
}
|
|
110
|
-
}
|
|
73
|
+
const resolveMv = options?.resolveMaterializedViewSource;
|
|
74
|
+
// An MV's backing table is row-time maintained from its sources. Replace the
|
|
75
|
+
// backing-table watch with the MV's source-union scope so a watcher fires on
|
|
76
|
+
// a SOURCE mutation. Widening, not a prerequisite: maintenance records its
|
|
77
|
+
// realized backing deltas into the change log, so a direct backing watch
|
|
78
|
+
// would fire too (see MaterializedViewSourceResolver).
|
|
79
|
+
const projectMaintainedTable = (_ref, watch) => {
|
|
80
|
+
const mvScope = resolveMv?.(watch.table);
|
|
81
|
+
if (!mvScope)
|
|
82
|
+
return watch;
|
|
83
|
+
mvSourceScopes.push(mvScope);
|
|
84
|
+
return undefined;
|
|
85
|
+
};
|
|
86
|
+
const reads = analyzeReads(plan, dmlWithoutReturning ? {} : { refineWatch: projectMaintainedTable });
|
|
111
87
|
let scope = {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
88
|
+
// A write without RETURNING serves no rows, so there is nothing to watch; its
|
|
89
|
+
// parameters still count (see isDmlWithoutReturning).
|
|
90
|
+
watches: dmlWithoutReturning ? [] : reads.watches,
|
|
91
|
+
nonDeterministicSources: reads.nonDeterministicSources,
|
|
92
|
+
unboundParameters: reads.unboundParameters,
|
|
115
93
|
};
|
|
116
94
|
for (const mvScope of mvSourceScopes) {
|
|
117
95
|
scope = unionScopes(scope, mvScope);
|
|
@@ -121,6 +99,44 @@ export function analyzeChangeScope(plan, options) {
|
|
|
121
99
|
}
|
|
122
100
|
return scope;
|
|
123
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* The one plan walker behind both {@link analyzeChangeScope} (which adds the
|
|
104
|
+
* DML-without-RETURNING gate and the maintained-table projection) and write-scope
|
|
105
|
+
* (which reads a write site's inputs through it). Walks `root` as given — no
|
|
106
|
+
* optimizer pass is run here.
|
|
107
|
+
*/
|
|
108
|
+
export function analyzeReads(root, options = {}) {
|
|
109
|
+
const { perRelation } = extractBindings(root);
|
|
110
|
+
const tableRefs = collectTableRefs(root, options.followRelations ?? true);
|
|
111
|
+
const columnsByRelKey = collectColumnReads(root, tableRefs, options.wholeRowOutputs ?? true);
|
|
112
|
+
const nonDetSources = [];
|
|
113
|
+
const unboundParams = new Set();
|
|
114
|
+
collectNonDeterminism(root, nonDetSources, unboundParams, perRelation);
|
|
115
|
+
const watches = [];
|
|
116
|
+
for (const ref of tableRefs) {
|
|
117
|
+
const relKey = relationKeyOf(ref);
|
|
118
|
+
const mode = perRelation.get(relKey);
|
|
119
|
+
if (!mode)
|
|
120
|
+
continue;
|
|
121
|
+
const built = {
|
|
122
|
+
table: qualifiedNameOf(ref.tableSchema),
|
|
123
|
+
columns: buildColumnSet(ref, columnsByRelKey.get(relKey)),
|
|
124
|
+
scope: buildScopeForMode(root, ref, relKey, mode, unboundParams),
|
|
125
|
+
};
|
|
126
|
+
const watch = options.refineWatch ? options.refineWatch(ref, built) : built;
|
|
127
|
+
if (watch)
|
|
128
|
+
watches.push(watch);
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
watches: normalizeWatches(watches),
|
|
132
|
+
nonDeterministicSources: normalizeNonDet(nonDetSources),
|
|
133
|
+
unboundParameters: sortedDedupParamIndices(unboundParams),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/** The lowercased qualified name a scope reports a table under. */
|
|
137
|
+
export function qualifiedNameOf(schema) {
|
|
138
|
+
return { schema: schema.schemaName.toLowerCase(), table: schema.name.toLowerCase() };
|
|
139
|
+
}
|
|
124
140
|
/**
|
|
125
141
|
* Detects an UPDATE/INSERT/DELETE plan with no RETURNING clause: such a plan
|
|
126
142
|
* doesn't surface table state to the caller, so watches are empty (but
|
|
@@ -173,7 +189,7 @@ function isDmlWithoutReturning(plan) {
|
|
|
173
189
|
* `extractBindings`, so the relation-key *label* must stay the shared one
|
|
174
190
|
* (`relationKeyOf`).
|
|
175
191
|
*/
|
|
176
|
-
function collectTableRefs(plan) {
|
|
192
|
+
function collectTableRefs(plan, followRelations) {
|
|
177
193
|
const out = [];
|
|
178
194
|
const seen = new Set();
|
|
179
195
|
const visited = new Set();
|
|
@@ -194,8 +210,10 @@ function collectTableRefs(plan) {
|
|
|
194
210
|
// too so a FROM-position DML's write target is captured in the outer
|
|
195
211
|
// statement's ChangeScope. See `docs/change-scope.md` § DML write-target
|
|
196
212
|
// propagation.
|
|
197
|
-
|
|
198
|
-
|
|
213
|
+
if (followRelations) {
|
|
214
|
+
for (const r of node.getRelations())
|
|
215
|
+
walk(r);
|
|
216
|
+
}
|
|
199
217
|
}
|
|
200
218
|
walk(plan);
|
|
201
219
|
return out;
|
|
@@ -207,7 +225,7 @@ function collectTableRefs(plan) {
|
|
|
207
225
|
* the plan serves the table's whole row to its output (a `select *` /
|
|
208
226
|
* non-enumerable star — see below).
|
|
209
227
|
*/
|
|
210
|
-
function collectColumnReads(plan, tableRefs) {
|
|
228
|
+
function collectColumnReads(plan, tableRefs, wholeRowOutputs) {
|
|
211
229
|
const result = new Map();
|
|
212
230
|
const attrToRelKeyAndIdx = new Map();
|
|
213
231
|
const refByRelKey = new Map();
|
|
@@ -235,6 +253,8 @@ function collectColumnReads(plan, tableRefs) {
|
|
|
235
253
|
visit(c);
|
|
236
254
|
}
|
|
237
255
|
visit(plan);
|
|
256
|
+
if (!wholeRowOutputs)
|
|
257
|
+
return result;
|
|
238
258
|
// `select *` (and any unresolved/whole-row star projection) is elided by the
|
|
239
259
|
// planner to a passthrough that forwards the base table's OWN attribute ids
|
|
240
260
|
// straight to the plan output, with no intervening ColumnReferenceNode — so
|
|
@@ -285,18 +305,8 @@ function collectNonDeterminism(plan, out, unboundParams, perRelation) {
|
|
|
285
305
|
function visit(node) {
|
|
286
306
|
if (node instanceof ScalarFunctionCallNode) {
|
|
287
307
|
const isDet = (node.functionSchema.flags & FunctionFlags.DETERMINISTIC) !== 0;
|
|
288
|
-
if (!isDet)
|
|
289
|
-
|
|
290
|
-
if (KNOWN_TIME_FUNCS.has(name)) {
|
|
291
|
-
out.push({ kind: 'time' });
|
|
292
|
-
}
|
|
293
|
-
else if (KNOWN_RANDOM_FUNCS.has(name)) {
|
|
294
|
-
out.push({ kind: 'random' });
|
|
295
|
-
}
|
|
296
|
-
else {
|
|
297
|
-
out.push({ kind: 'volatileUdf', name });
|
|
298
|
-
}
|
|
299
|
-
}
|
|
308
|
+
if (!isDet)
|
|
309
|
+
out.push(classifyNonDetFunction(node.functionSchema.name));
|
|
300
310
|
}
|
|
301
311
|
if (node instanceof ParameterReferenceNode) {
|
|
302
312
|
const id = node.nameOrIndex;
|
|
@@ -360,7 +370,12 @@ function buildColumnSet(ref, indices) {
|
|
|
360
370
|
}
|
|
361
371
|
return names;
|
|
362
372
|
}
|
|
363
|
-
|
|
373
|
+
/**
|
|
374
|
+
* Translate one table reference's binding mode into a watch scope, decoding the
|
|
375
|
+
* key values from the plan's equality predicates. Exported for write-scope, which
|
|
376
|
+
* describes a write's target-row selection in the same vocabulary.
|
|
377
|
+
*/
|
|
378
|
+
export function buildScopeForMode(plan, ref, relKey, mode, unboundParams) {
|
|
364
379
|
const attrs = ref.getAttributes();
|
|
365
380
|
const colName = (i) => attrs[i]?.name.toLowerCase() ?? `_col${i}`;
|
|
366
381
|
if (mode.kind === 'global') {
|
|
@@ -398,7 +413,7 @@ function buildScopeForMode(plan, ref, relKey, mode, unboundParams) {
|
|
|
398
413
|
* RHS into a `ScopeValue` (literal or `param` placeholder). Returns one
|
|
399
414
|
* tuple per row-binding values combination present in the constraints.
|
|
400
415
|
*/
|
|
401
|
-
function extractRowKeyValues(plan, relKey, keyColumns, unboundParams) {
|
|
416
|
+
export function extractRowKeyValues(plan, relKey, keyColumns, unboundParams) {
|
|
402
417
|
const constraints = extractConstraintsForTable(plan, relKey);
|
|
403
418
|
// For each key column, gather candidate value expressions.
|
|
404
419
|
const perColValues = [];
|
|
@@ -461,7 +476,7 @@ function extractRowKeyValues(plan, relKey, keyColumns, unboundParams) {
|
|
|
461
476
|
const tuples = cartesianProduct(perColValues);
|
|
462
477
|
return sortAndDedupTuples(tuples);
|
|
463
478
|
}
|
|
464
|
-
function scopeValueFromExpr(expr, unboundParams) {
|
|
479
|
+
export function scopeValueFromExpr(expr, unboundParams) {
|
|
465
480
|
const inner = expr.nodeType === PlanNodeType.Cast
|
|
466
481
|
? expr.operand
|
|
467
482
|
: expr;
|
|
@@ -572,7 +587,7 @@ function compareScopeValues(a, b) {
|
|
|
572
587
|
return -1;
|
|
573
588
|
return compareSqlValues(a, b);
|
|
574
589
|
}
|
|
575
|
-
function normalizeNonDet(sources) {
|
|
590
|
+
export function normalizeNonDet(sources) {
|
|
576
591
|
const seen = new Map();
|
|
577
592
|
for (const s of sources) {
|
|
578
593
|
const k = nonDetKey(s);
|
|
@@ -597,7 +612,7 @@ function nonDetKey(s) {
|
|
|
597
612
|
}
|
|
598
613
|
}
|
|
599
614
|
}
|
|
600
|
-
function sortedDedupParamIndices(set) {
|
|
615
|
+
export function sortedDedupParamIndices(set) {
|
|
601
616
|
const arr = [...set];
|
|
602
617
|
arr.sort((a, b) => {
|
|
603
618
|
const aIsNum = typeof a === 'number';
|
|
@@ -864,15 +879,18 @@ export function describesEverything(scope) {
|
|
|
864
879
|
}
|
|
865
880
|
export function serializeChangeScope(scope) {
|
|
866
881
|
return {
|
|
867
|
-
watches: scope.watches.map(
|
|
868
|
-
table: { schema: w.table.schema, table: w.table.table },
|
|
869
|
-
columns: w.columns === 'all' ? 'all' : [...w.columns].sort(),
|
|
870
|
-
scope: serializeScope(w.scope),
|
|
871
|
-
})),
|
|
882
|
+
watches: scope.watches.map(serializeTableWatch),
|
|
872
883
|
nonDeterministicSources: [...scope.nonDeterministicSources],
|
|
873
884
|
unboundParameters: [...scope.unboundParameters],
|
|
874
885
|
};
|
|
875
886
|
}
|
|
887
|
+
export function serializeTableWatch(w) {
|
|
888
|
+
return {
|
|
889
|
+
table: { schema: w.table.schema, table: w.table.table },
|
|
890
|
+
columns: w.columns === 'all' ? 'all' : [...w.columns].sort(),
|
|
891
|
+
scope: serializeScope(w.scope),
|
|
892
|
+
};
|
|
893
|
+
}
|
|
876
894
|
function serializeScope(scope) {
|
|
877
895
|
if (scope.kind === 'full')
|
|
878
896
|
return { kind: 'full' };
|
|
@@ -899,15 +917,18 @@ function serializeScopeValue(v) {
|
|
|
899
917
|
}
|
|
900
918
|
export function deserializeChangeScope(obj) {
|
|
901
919
|
return {
|
|
902
|
-
watches: obj.watches.map(
|
|
903
|
-
table: { schema: w.table.schema, table: w.table.table },
|
|
904
|
-
columns: w.columns === 'all' ? 'all' : new Set(w.columns),
|
|
905
|
-
scope: deserializeScope(w.scope),
|
|
906
|
-
})),
|
|
920
|
+
watches: obj.watches.map(deserializeTableWatch),
|
|
907
921
|
nonDeterministicSources: [...obj.nonDeterministicSources],
|
|
908
922
|
unboundParameters: [...obj.unboundParameters],
|
|
909
923
|
};
|
|
910
924
|
}
|
|
925
|
+
export function deserializeTableWatch(w) {
|
|
926
|
+
return {
|
|
927
|
+
table: { schema: w.table.schema, table: w.table.table },
|
|
928
|
+
columns: w.columns === 'all' ? 'all' : new Set(w.columns),
|
|
929
|
+
scope: deserializeScope(w.scope),
|
|
930
|
+
};
|
|
931
|
+
}
|
|
911
932
|
function deserializeScope(scope) {
|
|
912
933
|
if (scope.kind === 'full')
|
|
913
934
|
return { kind: 'full' };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-scope.js","sourceRoot":"","sources":["../../../../src/planner/analysis/change-scope.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"change-scope.js","sourceRoot":"","sources":["../../../../src/planner/analysis/change-scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one mapping from a non-deterministic function's name to the kind of
|
|
3
|
+
* non-determinism it introduces. Shared by the change-scope analyzer and the
|
|
4
|
+
* written-value provenance classifier so the two never disagree on which
|
|
5
|
+
* builtin is a clock.
|
|
6
|
+
*/
|
|
7
|
+
import type { NonDetSource } from './change-scope.js';
|
|
8
|
+
/** Classify a function already known to be non-deterministic, by name (case-insensitive). */
|
|
9
|
+
export declare function classifyNonDetFunction(name: string): NonDetSource;
|
|
10
|
+
//# sourceMappingURL=non-det-functions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"non-det-functions.d.ts","sourceRoot":"","sources":["../../../../src/planner/analysis/non-det-functions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAUtD,6FAA6F;AAC7F,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAKjE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const KNOWN_TIME_FUNCS = new Set([
|
|
2
|
+
'now', 'current_timestamp', 'current_time', 'current_date',
|
|
3
|
+
'date', 'time', 'datetime', 'julianday',
|
|
4
|
+
'epoch_s', 'epoch_ms', 'epoch_s_frac',
|
|
5
|
+
'strftime',
|
|
6
|
+
]);
|
|
7
|
+
const KNOWN_RANDOM_FUNCS = new Set(['random', 'randomblob']);
|
|
8
|
+
/** Classify a function already known to be non-deterministic, by name (case-insensitive). */
|
|
9
|
+
export function classifyNonDetFunction(name) {
|
|
10
|
+
const lowered = name.toLowerCase();
|
|
11
|
+
if (KNOWN_TIME_FUNCS.has(lowered))
|
|
12
|
+
return { kind: 'time' };
|
|
13
|
+
if (KNOWN_RANDOM_FUNCS.has(lowered))
|
|
14
|
+
return { kind: 'random' };
|
|
15
|
+
return { kind: 'volatileUdf', name: lowered };
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=non-det-functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"non-det-functions.js","sourceRoot":"","sources":["../../../../src/planner/analysis/non-det-functions.ts"],"names":[],"mappings":"AAQA,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAChC,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc;IAC1D,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW;IACvC,SAAS,EAAE,UAAU,EAAE,cAAc;IACrC,UAAU;CACV,CAAC,CAAC;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;AAE7D,6FAA6F;AAC7F,MAAM,UAAU,sBAAsB,CAAC,IAAY;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC3D,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC/D,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Written-value provenance: for every column a write statement produces, where the
|
|
3
|
+
* value comes from — a literal, a statement input, a fresh unique-per-call source, a
|
|
4
|
+
* clock or random source, the target row's own previous values, or other rows.
|
|
5
|
+
*
|
|
6
|
+
* The question each class answers for a conflict predictor: could a second writer,
|
|
7
|
+
* acting on newer state, make this value collide or go stale? See
|
|
8
|
+
* docs/write-scope.md § Written-value provenance.
|
|
9
|
+
*
|
|
10
|
+
* Runs over the logical plan the DML builders produce (before optimization), so the
|
|
11
|
+
* attribute ids it resolves are the builder's. Anything it cannot describe classifies
|
|
12
|
+
* `other` — it never throws.
|
|
13
|
+
*/
|
|
14
|
+
import type { SqlValue } from '../../common/types.js';
|
|
15
|
+
import { PlanNodeType } from '../nodes/plan-node-type.js';
|
|
16
|
+
import type { ScalarPlanNode } from '../nodes/plan-node.js';
|
|
17
|
+
import type { InsertNode } from '../nodes/insert-node.js';
|
|
18
|
+
import type { UpdateNode } from '../nodes/update-node.js';
|
|
19
|
+
import type { UpsertClausePlan } from '../nodes/dml-executor-node.js';
|
|
20
|
+
import type { TableSchema } from '../../schema/table.js';
|
|
21
|
+
import type { NonDetSource } from './change-scope.js';
|
|
22
|
+
export type ValueProvenance =
|
|
23
|
+
/** A constant. `value` is present when the expression is a single literal — reported as the write stores it, after conversion to the column's declared type (`'1'` into an integer column is `1`); absent when several different literals were joined (multi-row VALUES), the constant is computed from literals, or the conversion rejects the literal. */
|
|
24
|
+
{
|
|
25
|
+
readonly kind: 'literal';
|
|
26
|
+
readonly value?: SqlValue;
|
|
27
|
+
}
|
|
28
|
+
/** A deterministic function of statement inputs and literals: bound parameters and/or mutation-context variables (`with context`). */
|
|
29
|
+
| {
|
|
30
|
+
readonly kind: 'input';
|
|
31
|
+
readonly parameters: ReadonlyArray<number | string>;
|
|
32
|
+
readonly contexts: ReadonlyArray<string>;
|
|
33
|
+
}
|
|
34
|
+
/** Unique per call with at least 128 bits of entropy — a call to a function flagged FRESH, or an injective wrapper over exactly one such call. `function` is the lowercased name of the fresh call. */
|
|
35
|
+
| {
|
|
36
|
+
readonly kind: 'fresh';
|
|
37
|
+
readonly function: string;
|
|
38
|
+
}
|
|
39
|
+
/** Depends on a clock, a non-fresh random source, or a volatile UDF — plus possibly inputs and literals. Not unique per call. */
|
|
40
|
+
| {
|
|
41
|
+
readonly kind: 'volatile';
|
|
42
|
+
readonly sources: ReadonlyArray<NonDetSource>;
|
|
43
|
+
}
|
|
44
|
+
/** Depends on the target row's own previous values — plus possibly anything above. `columns` lists the previous-value columns read. */
|
|
45
|
+
| {
|
|
46
|
+
readonly kind: 'self';
|
|
47
|
+
readonly columns: ReadonlyArray<string>;
|
|
48
|
+
}
|
|
49
|
+
/** Depends on other rows (a subquery, an INSERT … SELECT source column, a join), or anything the classifier cannot describe. The conservative fallback. */
|
|
50
|
+
| {
|
|
51
|
+
readonly kind: 'other';
|
|
52
|
+
};
|
|
53
|
+
export interface WrittenColumn {
|
|
54
|
+
/** Lowercased table column name. */
|
|
55
|
+
readonly column: string;
|
|
56
|
+
readonly provenance: ValueProvenance;
|
|
57
|
+
}
|
|
58
|
+
/** What an attribute id an expression references stands for. */
|
|
59
|
+
export type AttributeBinding =
|
|
60
|
+
/** The target row's previous value of `column`. */
|
|
61
|
+
{
|
|
62
|
+
readonly kind: 'self';
|
|
63
|
+
readonly column: string;
|
|
64
|
+
}
|
|
65
|
+
/** The value this same write produces for `column` — resolved through {@link ProvenanceEnv.newColumns}. */
|
|
66
|
+
| {
|
|
67
|
+
readonly kind: 'new';
|
|
68
|
+
readonly column: string;
|
|
69
|
+
}
|
|
70
|
+
/** A mutation-context variable. */
|
|
71
|
+
| {
|
|
72
|
+
readonly kind: 'context';
|
|
73
|
+
readonly name: string;
|
|
74
|
+
}
|
|
75
|
+
/** An attribute whose provenance is already known (a projection or VALUES column the walk classified). */
|
|
76
|
+
| {
|
|
77
|
+
readonly kind: 'value';
|
|
78
|
+
readonly provenance: ValueProvenance;
|
|
79
|
+
};
|
|
80
|
+
export interface ProvenanceEnv {
|
|
81
|
+
readonly attributes: ReadonlyMap<number, AttributeBinding>;
|
|
82
|
+
/** Provenance already computed for this write's NEW-row columns, by lowercased name. */
|
|
83
|
+
readonly newColumns?: ReadonlyMap<string, ValueProvenance>;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Operators that keep a `fresh` operand fresh: injective over the values a fresh source
|
|
87
|
+
* produces, so a unique input stays unique. Holds only when the fresh operand is the
|
|
88
|
+
* operator's single non-literal operand (`||` qualifies only against a literal).
|
|
89
|
+
*
|
|
90
|
+
* Only `hex` is injective over a blob. The others render a blob operand as text first,
|
|
91
|
+
* and that decode is non-fatal — invalid UTF-8 collapses to U+FFFD (`util/value-text.ts`)
|
|
92
|
+
* — so over a statically blob-typed fresh operand they yield `other`. A `cast`, and the
|
|
93
|
+
* planner's write coercion (otherwise looked through, like `collate`), keep `fresh` only
|
|
94
|
+
* across a lossless conversion: see {@link conversionKeepsFresh}.
|
|
95
|
+
*
|
|
96
|
+
* NOTE: `lower` / `upper` are injective only over single-case text — they are listed for
|
|
97
|
+
* the common `lower(hex(randomblob(16)))` id spelling. Revisit when a module needs another
|
|
98
|
+
* wrapper recognised, or a case-mixed fresh text source makes lowercasing lossy.
|
|
99
|
+
*/
|
|
100
|
+
export declare const FRESH_PRESERVING_WRAPPERS: {
|
|
101
|
+
readonly functions: Set<string>;
|
|
102
|
+
/** The subset of `functions` injective over a blob operand too. */
|
|
103
|
+
readonly blobSafeFunctions: Set<string>;
|
|
104
|
+
readonly nodeTypes: Set<PlanNodeType>;
|
|
105
|
+
readonly binaryOperators: Set<string>;
|
|
106
|
+
};
|
|
107
|
+
/** Classify one scalar expression bottom-up against `env`. */
|
|
108
|
+
export declare function classifyExpression(expr: ScalarPlanNode, env: ProvenanceEnv): ValueProvenance;
|
|
109
|
+
/** One entry per table column, in schema order: the value the INSERT writes there. */
|
|
110
|
+
export declare function classifyInsertColumns(node: InsertNode): WrittenColumn[];
|
|
111
|
+
/** One entry per assignment (user SETs, then generated recomputes), in assignment order. */
|
|
112
|
+
export declare function classifyUpdateColumns(node: UpdateNode): WrittenColumn[];
|
|
113
|
+
/**
|
|
114
|
+
* The DO UPDATE arm's assignments (empty for DO NOTHING) on `table`, the statement's
|
|
115
|
+
* target. `insertColumns` is the statement's {@link classifyInsertColumns} result: NEW
|
|
116
|
+
* references resolve to it; existing-row references are `self`.
|
|
117
|
+
*/
|
|
118
|
+
export declare function classifyUpsertUpdateColumns(clause: UpsertClausePlan, table: TableSchema, insertColumns: ReadonlyArray<WrittenColumn>): WrittenColumn[];
|
|
119
|
+
//# sourceMappingURL=value-provenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-provenance.d.ts","sourceRoot":"","sources":["../../../../src/planner/analysis/value-provenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAMtD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAqC,cAAc,EAAa,MAAM,uBAAuB,CAAC;AAO1G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD,MAAM,MAAM,eAAe;AAC1B,4VAA4V;AAC1V;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;CAAE;AACzD,sIAAsI;GACpI;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE;AAC3H,uMAAuM;GACrM;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AACvD,iIAAiI;GAC/H;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CAAE;AAC9E,uIAAuI;GACrI;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE;AACpE,2JAA2J;GACzJ;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC7B,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;CACrC;AAED,gEAAgE;AAChE,MAAM,MAAM,gBAAgB;AAC3B,mDAAmD;AACjD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACpD,2GAA2G;GACzG;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACnD,mCAAmC;GACjC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACrD,0GAA0G;GACxG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAA;CAAE,CAAC;AAEpE,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC3D,wFAAwF;IACxF,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC3D;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB;;IAErC,mEAAmE;;;;CAI1D,CAAC;AAiBX,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,GAAG,eAAe,CAuB5F;AAyTD,sFAAsF;AACtF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,EAAE,CAQvE;AAED,4FAA4F;AAC5F,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,EAAE,CAcvE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAC1C,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,GACzC,aAAa,EAAE,CAmBjB"}
|