@quereus/quereus 1.2.0 → 1.3.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/src/planner/analysis/predicate-normalizer.d.ts.map +1 -1
- package/dist/src/planner/analysis/predicate-normalizer.js.map +1 -1
- package/dist/src/planner/building/constraint-builder.js +2 -2
- package/dist/src/planner/building/constraint-builder.js.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.js +2 -2
- package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
- package/dist/src/planner/building/insert.js +2 -2
- package/dist/src/planner/building/insert.js.map +1 -1
- package/dist/src/planner/building/select-window.js +7 -7
- package/dist/src/planner/building/select-window.js.map +1 -1
- package/dist/src/planner/building/select.d.ts.map +1 -1
- package/dist/src/planner/building/select.js +18 -72
- package/dist/src/planner/building/select.js.map +1 -1
- package/dist/src/planner/framework/characteristics.d.ts +2 -0
- package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
- package/dist/src/planner/nodes/add-constraint-node.d.ts +2 -6
- package/dist/src/planner/nodes/add-constraint-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/add-constraint-node.js +2 -14
- package/dist/src/planner/nodes/add-constraint-node.js.map +1 -1
- package/dist/src/planner/nodes/alter-table-node.d.ts +2 -6
- package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/alter-table-node.js +2 -14
- package/dist/src/planner/nodes/alter-table-node.js.map +1 -1
- package/dist/src/planner/nodes/bloom-join-node.d.ts +2 -8
- package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/bloom-join-node.js +4 -70
- package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
- package/dist/src/planner/nodes/create-assertion-node.d.ts +2 -6
- package/dist/src/planner/nodes/create-assertion-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/create-assertion-node.js +2 -14
- package/dist/src/planner/nodes/create-assertion-node.js.map +1 -1
- package/dist/src/planner/nodes/declarative-schema.d.ts +4 -10
- package/dist/src/planner/nodes/declarative-schema.d.ts.map +1 -1
- package/dist/src/planner/nodes/declarative-schema.js +3 -27
- package/dist/src/planner/nodes/declarative-schema.js.map +1 -1
- package/dist/src/planner/nodes/drop-assertion-node.d.ts +2 -6
- package/dist/src/planner/nodes/drop-assertion-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/drop-assertion-node.js +2 -14
- package/dist/src/planner/nodes/drop-assertion-node.js.map +1 -1
- package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/join-node.js +5 -99
- package/dist/src/planner/nodes/join-node.js.map +1 -1
- package/dist/src/planner/nodes/join-utils.d.ts +31 -0
- package/dist/src/planner/nodes/join-utils.d.ts.map +1 -0
- package/dist/src/planner/nodes/join-utils.js +86 -0
- package/dist/src/planner/nodes/join-utils.js.map +1 -0
- package/dist/src/planner/nodes/merge-join-node.d.ts +1 -1
- package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/merge-join-node.js +4 -70
- package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
- package/dist/src/planner/nodes/sort.d.ts +2 -0
- package/dist/src/planner/nodes/sort.d.ts.map +1 -1
- package/dist/src/planner/nodes/sort.js +5 -4
- package/dist/src/planner/nodes/sort.js.map +1 -1
- package/dist/src/planner/scopes/global.d.ts.map +1 -1
- package/dist/src/planner/scopes/global.js +7 -10
- package/dist/src/planner/scopes/global.js.map +1 -1
- package/dist/src/planner/scopes/registered.d.ts +0 -1
- package/dist/src/planner/scopes/registered.d.ts.map +1 -1
- package/dist/src/planner/scopes/registered.js +0 -7
- package/dist/src/planner/scopes/registered.js.map +1 -1
- package/dist/src/planner/stats/histogram.d.ts.map +1 -1
- package/dist/src/planner/stats/histogram.js +2 -1
- package/dist/src/planner/stats/histogram.js.map +1 -1
- package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/bloom-join.js +4 -12
- package/dist/src/runtime/emit/bloom-join.js.map +1 -1
- package/dist/src/runtime/emit/join-output.d.ts +13 -0
- package/dist/src/runtime/emit/join-output.d.ts.map +1 -0
- package/dist/src/runtime/emit/join-output.js +22 -0
- package/dist/src/runtime/emit/join-output.js.map +1 -0
- package/dist/src/runtime/emit/join.d.ts.map +1 -1
- package/dist/src/runtime/emit/join.js +4 -16
- package/dist/src/runtime/emit/join.js.map +1 -1
- package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
- package/dist/src/runtime/emit/merge-join.js +4 -11
- package/dist/src/runtime/emit/merge-join.js.map +1 -1
- package/dist/src/runtime/emit/window.d.ts.map +1 -1
- package/dist/src/runtime/emit/window.js +43 -82
- package/dist/src/runtime/emit/window.js.map +1 -1
- package/dist/src/vtab/memory/layer/interface.d.ts +1 -1
- package/dist/src/vtab/memory/layer/interface.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts +2 -2
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +4 -36
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/memory/layer/plan-filter.d.ts +8 -0
- package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -0
- package/dist/src/vtab/memory/layer/plan-filter.js +46 -0
- package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -0
- package/dist/src/vtab/memory/layer/scan-layer.d.ts +9 -0
- package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -0
- package/dist/src/vtab/memory/layer/{base-cursor.js → scan-layer.js} +35 -77
- package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -0
- package/package.json +3 -3
- package/dist/src/vtab/memory/layer/base-cursor.d.ts +0 -5
- package/dist/src/vtab/memory/layer/base-cursor.d.ts.map +0 -1
- package/dist/src/vtab/memory/layer/base-cursor.js.map +0 -1
- package/dist/src/vtab/memory/layer/transaction-cursor.d.ts +0 -5
- package/dist/src/vtab/memory/layer/transaction-cursor.d.ts.map +0 -1
- package/dist/src/vtab/memory/layer/transaction-cursor.js +0 -247
- package/dist/src/vtab/memory/layer/transaction-cursor.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-cursor.js","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/base-cursor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { ScanPlan } from './scan-plan.js';
|
|
2
|
-
import type { TransactionLayer } from './transaction.js';
|
|
3
|
-
import type { Row } from '../../../common/types.js';
|
|
4
|
-
export declare function scanTransactionLayer(layer: TransactionLayer, plan: ScanPlan, _parentIterable: AsyncIterable<Row>): AsyncIterable<Row>;
|
|
5
|
-
//# sourceMappingURL=transaction-cursor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-cursor.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/transaction-cursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAMpD,wBAAuB,oBAAoB,CAC1C,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,QAAQ,EACd,eAAe,EAAE,aAAa,CAAC,GAAG,CAAC,GACjC,aAAa,CAAC,GAAG,CAAC,CA8OpB"}
|
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
import { IndexConstraintOp } from '../../../common/constants.js';
|
|
2
|
-
import { compareSqlValues } from '../../../util/comparison.js';
|
|
3
|
-
import { QuereusError } from '../../../common/errors.js';
|
|
4
|
-
import { safeIterate } from './safe-iterate.js';
|
|
5
|
-
export async function* scanTransactionLayer(layer, plan, _parentIterable) {
|
|
6
|
-
// Multi-seek: iterate over multiple equality keys
|
|
7
|
-
if (plan.equalityKeys && plan.equalityKeys.length > 0) {
|
|
8
|
-
for (const key of plan.equalityKeys) {
|
|
9
|
-
const singlePlan = { ...plan, equalityKey: key, equalityKeys: undefined };
|
|
10
|
-
yield* scanTransactionLayer(layer, singlePlan, _parentIterable);
|
|
11
|
-
}
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
// Multi-range: iterate over multiple range specs
|
|
15
|
-
if (plan.ranges && plan.ranges.length > 0) {
|
|
16
|
-
for (const range of plan.ranges) {
|
|
17
|
-
const singlePlan = {
|
|
18
|
-
...plan,
|
|
19
|
-
ranges: undefined,
|
|
20
|
-
lowerBound: range.lowerBound,
|
|
21
|
-
upperBound: range.upperBound,
|
|
22
|
-
};
|
|
23
|
-
yield* scanTransactionLayer(layer, singlePlan, _parentIterable);
|
|
24
|
-
}
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
const tableSchema = layer.getSchema();
|
|
28
|
-
// General plan application check
|
|
29
|
-
const planAppliesToKey = (key, isIndexKey) => {
|
|
30
|
-
if (!plan)
|
|
31
|
-
return true;
|
|
32
|
-
// For index keys, we need the comparator for that specific index
|
|
33
|
-
let comparator;
|
|
34
|
-
if (isIndexKey && plan.indexName !== 'primary') {
|
|
35
|
-
comparator = (a, b) => compareSqlValues(a, b);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
const { primaryKeyComparator } = layer.getPkExtractorsAndComparators(tableSchema);
|
|
39
|
-
comparator = primaryKeyComparator;
|
|
40
|
-
}
|
|
41
|
-
if (plan.equalityKey) {
|
|
42
|
-
return comparator(key, plan.equalityKey) === 0;
|
|
43
|
-
}
|
|
44
|
-
// Prefix-range: check prefix equality + trailing column bounds
|
|
45
|
-
if (plan.equalityPrefix) {
|
|
46
|
-
const keyArr = Array.isArray(key) ? key : [key];
|
|
47
|
-
for (let i = 0; i < plan.equalityPrefix.length; i++) {
|
|
48
|
-
if (compareSqlValues(keyArr[i], plan.equalityPrefix[i]) !== 0)
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
const trailingValue = keyArr[plan.equalityPrefix.length];
|
|
52
|
-
if (trailingValue !== undefined && trailingValue !== null) {
|
|
53
|
-
if (plan.lowerBound) {
|
|
54
|
-
const cmp = compareSqlValues(trailingValue, plan.lowerBound.value);
|
|
55
|
-
if (cmp < 0 || (cmp === 0 && plan.lowerBound.op === IndexConstraintOp.GT))
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
if (plan.upperBound) {
|
|
59
|
-
const cmp = compareSqlValues(trailingValue, plan.upperBound.value);
|
|
60
|
-
if (cmp > 0 || (cmp === 0 && plan.upperBound.op === IndexConstraintOp.LT))
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return true;
|
|
65
|
-
}
|
|
66
|
-
const keyForBoundComparison = Array.isArray(key) ? key[0] : key;
|
|
67
|
-
if (plan.lowerBound) {
|
|
68
|
-
const cmp = compareSqlValues(keyForBoundComparison, plan.lowerBound.value);
|
|
69
|
-
if (cmp < 0 || (cmp === 0 && plan.lowerBound.op === IndexConstraintOp.GT))
|
|
70
|
-
return false;
|
|
71
|
-
}
|
|
72
|
-
if (plan.upperBound) {
|
|
73
|
-
const cmp = compareSqlValues(keyForBoundComparison, plan.upperBound.value);
|
|
74
|
-
if (cmp > 0 || (cmp === 0 && plan.upperBound.op === IndexConstraintOp.LT))
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
return true;
|
|
78
|
-
};
|
|
79
|
-
if (plan.indexName === 'primary') {
|
|
80
|
-
// Primary key scan - much simpler with inherited BTrees
|
|
81
|
-
const primaryTree = layer.getModificationTree('primary');
|
|
82
|
-
if (!primaryTree)
|
|
83
|
-
return;
|
|
84
|
-
const { primaryKeyExtractorFromRow } = layer.getPkExtractorsAndComparators(tableSchema);
|
|
85
|
-
// Use proper Inheritree API for iteration
|
|
86
|
-
const isAscending = !plan.descending;
|
|
87
|
-
if (plan.equalityKey) {
|
|
88
|
-
// For equality scans, just get the specific value
|
|
89
|
-
const value = primaryTree.get(plan.equalityKey);
|
|
90
|
-
if (value) {
|
|
91
|
-
const row = value;
|
|
92
|
-
const primaryKey = primaryKeyExtractorFromRow(row);
|
|
93
|
-
if (planAppliesToKey(primaryKey, false)) {
|
|
94
|
-
yield row;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
// Determine start key for range scans
|
|
100
|
-
let startKey;
|
|
101
|
-
if (plan.equalityPrefix) {
|
|
102
|
-
const compositeStart = [...plan.equalityPrefix];
|
|
103
|
-
if (plan.lowerBound)
|
|
104
|
-
compositeStart.push(plan.lowerBound.value);
|
|
105
|
-
startKey = { value: compositeStart };
|
|
106
|
-
}
|
|
107
|
-
else if (plan.lowerBound) {
|
|
108
|
-
startKey = { value: plan.lowerBound.value };
|
|
109
|
-
}
|
|
110
|
-
// Use mutation-safe iterator for full scans or range scans with range support
|
|
111
|
-
for await (const value of safeIterate(primaryTree, isAscending, startKey)) {
|
|
112
|
-
const row = value;
|
|
113
|
-
const primaryKey = primaryKeyExtractorFromRow(row);
|
|
114
|
-
// Apply plan filters
|
|
115
|
-
if (planAppliesToKey(primaryKey, false)) {
|
|
116
|
-
yield row;
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
// Early termination for prefix-range: break when prefix no longer matches
|
|
120
|
-
if (plan.equalityPrefix) {
|
|
121
|
-
const keyArr = Array.isArray(primaryKey) ? primaryKey : [primaryKey];
|
|
122
|
-
let prefixMismatch = false;
|
|
123
|
-
for (let i = 0; i < plan.equalityPrefix.length; i++) {
|
|
124
|
-
if (compareSqlValues(keyArr[i], plan.equalityPrefix[i]) !== 0) {
|
|
125
|
-
prefixMismatch = true;
|
|
126
|
-
break;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
if (prefixMismatch)
|
|
130
|
-
break;
|
|
131
|
-
continue;
|
|
132
|
-
}
|
|
133
|
-
// Early termination for ascending scans past upper bound
|
|
134
|
-
if (isAscending && plan.upperBound) {
|
|
135
|
-
const keyForComparison = Array.isArray(primaryKey) ? primaryKey[0] : primaryKey;
|
|
136
|
-
const cmp = compareSqlValues(keyForComparison, plan.upperBound.value);
|
|
137
|
-
if (cmp > 0 || (cmp === 0 && plan.upperBound.op === IndexConstraintOp.LT)) {
|
|
138
|
-
break;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
// Secondary index scan - also simplified with inherited BTrees
|
|
147
|
-
const secondaryTree = layer.getSecondaryIndexTree(plan.indexName);
|
|
148
|
-
if (!secondaryTree) {
|
|
149
|
-
throw new QuereusError(`Secondary index ${plan.indexName} not found in TransactionLayer.`);
|
|
150
|
-
}
|
|
151
|
-
// Use proper Inheritree API for secondary index iteration
|
|
152
|
-
const isAscending = !plan.descending;
|
|
153
|
-
if (plan.equalityKey) {
|
|
154
|
-
// For equality scans on secondary index
|
|
155
|
-
const indexEntry = secondaryTree.get(plan.equalityKey);
|
|
156
|
-
if (indexEntry && planAppliesToKey(indexEntry.indexKey, true)) {
|
|
157
|
-
// Get the primary tree to fetch actual rows
|
|
158
|
-
const primaryTree = layer.getModificationTree('primary');
|
|
159
|
-
if (primaryTree) {
|
|
160
|
-
for (const pk of indexEntry.primaryKeys) {
|
|
161
|
-
const value = primaryTree.get(pk);
|
|
162
|
-
if (value) {
|
|
163
|
-
const row = value;
|
|
164
|
-
yield row;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
// Check if index first column is DESC to adjust start key and early termination
|
|
172
|
-
const indexDef = tableSchema.indexes?.find(idx => idx.name === plan.indexName);
|
|
173
|
-
const isDescFirstColumn = indexDef?.columns[0]?.desc === true;
|
|
174
|
-
// Determine start key
|
|
175
|
-
let startKey;
|
|
176
|
-
if (plan.equalityPrefix) {
|
|
177
|
-
const compositeStart = [...plan.equalityPrefix];
|
|
178
|
-
if (plan.lowerBound)
|
|
179
|
-
compositeStart.push(plan.lowerBound.value);
|
|
180
|
-
startKey = { value: compositeStart };
|
|
181
|
-
}
|
|
182
|
-
else if (isDescFirstColumn) {
|
|
183
|
-
if (plan.upperBound) {
|
|
184
|
-
startKey = { value: plan.upperBound.value };
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
if (plan.lowerBound) {
|
|
189
|
-
startKey = { value: plan.lowerBound.value };
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
// Use mutation-safe iterator for full scans or range scans on secondary index with range support
|
|
193
|
-
for await (const indexEntry of safeIterate(secondaryTree, isAscending, startKey)) {
|
|
194
|
-
// Apply plan filters to the index key
|
|
195
|
-
if (planAppliesToKey(indexEntry.indexKey, true)) {
|
|
196
|
-
// Get the primary tree to fetch actual rows
|
|
197
|
-
const primaryTree = layer.getModificationTree('primary');
|
|
198
|
-
if (!primaryTree)
|
|
199
|
-
continue;
|
|
200
|
-
// For each primary key in this index entry, fetch the row
|
|
201
|
-
for (const pk of indexEntry.primaryKeys) {
|
|
202
|
-
const value = primaryTree.get(pk);
|
|
203
|
-
if (value) {
|
|
204
|
-
const row = value;
|
|
205
|
-
yield row;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
else {
|
|
210
|
-
// Early termination for prefix-range: break when prefix no longer matches
|
|
211
|
-
if (plan.equalityPrefix) {
|
|
212
|
-
const keyArr = Array.isArray(indexEntry.indexKey) ? indexEntry.indexKey : [indexEntry.indexKey];
|
|
213
|
-
let prefixMismatch = false;
|
|
214
|
-
for (let i = 0; i < plan.equalityPrefix.length; i++) {
|
|
215
|
-
if (compareSqlValues(keyArr[i], plan.equalityPrefix[i]) !== 0) {
|
|
216
|
-
prefixMismatch = true;
|
|
217
|
-
break;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
if (prefixMismatch)
|
|
221
|
-
break;
|
|
222
|
-
continue;
|
|
223
|
-
}
|
|
224
|
-
// Early termination: for ASC indexes break when past upper bound,
|
|
225
|
-
// for DESC indexes break when past lower bound
|
|
226
|
-
if (isAscending) {
|
|
227
|
-
if (isDescFirstColumn && plan.lowerBound) {
|
|
228
|
-
const keyForComparison = Array.isArray(indexEntry.indexKey) ? indexEntry.indexKey[0] : indexEntry.indexKey;
|
|
229
|
-
const cmp = compareSqlValues(keyForComparison, plan.lowerBound.value);
|
|
230
|
-
if (cmp < 0 || (cmp === 0 && plan.lowerBound.op === IndexConstraintOp.GT)) {
|
|
231
|
-
break;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
else if (!isDescFirstColumn && plan.upperBound) {
|
|
235
|
-
const keyForComparison = Array.isArray(indexEntry.indexKey) ? indexEntry.indexKey[0] : indexEntry.indexKey;
|
|
236
|
-
const cmp = compareSqlValues(keyForComparison, plan.upperBound.value);
|
|
237
|
-
if (cmp > 0 || (cmp === 0 && plan.upperBound.op === IndexConstraintOp.LT)) {
|
|
238
|
-
break;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
//# sourceMappingURL=transaction-cursor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-cursor.js","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/transaction-cursor.ts"],"names":[],"mappings":"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"}
|