@omgbase/oqx 0.14.1 → 0.18.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 +41 -0
- package/README.md +192 -34
- package/dist/ast.d.ts +77 -23
- package/dist/ast.d.ts.map +1 -1
- package/dist/ast.js +21 -6
- package/dist/ast.js.map +1 -1
- package/dist/build.d.ts +37 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +54 -0
- package/dist/build.js.map +1 -0
- package/dist/context.d.ts +13 -3
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +7 -3
- package/dist/context.js.map +1 -1
- package/dist/engine.d.ts +1 -2
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +55 -26
- package/dist/engine.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +19 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +34 -12
- package/dist/index.js.map +1 -1
- package/dist/lexer.d.ts +15 -1
- package/dist/lexer.d.ts.map +1 -1
- package/dist/lexer.js +104 -51
- package/dist/lexer.js.map +1 -1
- package/dist/optimize/analysis.d.ts +1 -1
- package/dist/optimize/analysis.d.ts.map +1 -1
- package/dist/optimize/analysis.js +7 -5
- package/dist/optimize/analysis.js.map +1 -1
- package/dist/optimize/ir.d.ts +3 -3
- package/dist/optimize/ir.d.ts.map +1 -1
- package/dist/optimize/ir.js +3 -3
- package/dist/optimize/ir.js.map +1 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +616 -251
- package/dist/parser.js.map +1 -1
- package/dist/plan.d.ts.map +1 -1
- package/dist/plan.js +5 -3
- package/dist/plan.js.map +1 -1
- package/dist/print.d.ts +17 -0
- package/dist/print.d.ts.map +1 -0
- package/dist/print.js +266 -0
- package/dist/print.js.map +1 -0
- package/dist/resolve.d.ts +23 -0
- package/dist/resolve.d.ts.map +1 -0
- package/dist/resolve.js +330 -0
- package/dist/resolve.js.map +1 -0
- package/dist/semantics.js +1 -1
- package/dist/semantics.js.map +1 -1
- package/dist/version.d.ts +5 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/dist/walk.d.ts +54 -0
- package/dist/walk.d.ts.map +1 -0
- package/dist/walk.js +139 -0
- package/dist/walk.js.map +1 -0
- package/package.json +1 -1
- package/src/ast.ts +105 -36
- package/src/build.ts +72 -0
- package/src/context.ts +16 -3
- package/src/engine.ts +57 -28
- package/src/errors.ts +3 -2
- package/src/index.ts +38 -13
- package/src/lexer.ts +102 -51
- package/src/optimize/analysis.ts +6 -5
- package/src/optimize/ir.ts +5 -5
- package/src/parser.ts +573 -225
- package/src/plan.ts +4 -3
- package/src/print.ts +274 -0
- package/src/resolve.ts +305 -0
- package/src/semantics.ts +1 -1
- package/src/version.ts +4 -0
- package/src/walk.ts +180 -0
package/dist/lexer.js
CHANGED
|
@@ -11,14 +11,27 @@
|
|
|
11
11
|
// host-bindings design note calls for. (A consequence: `${x}` inside a string
|
|
12
12
|
// literal does not interpolate — that fragment would be an unterminated string —
|
|
13
13
|
// which is exactly the desired "interpolation is a value, never source text".)
|
|
14
|
+
//
|
|
15
|
+
// Positions (`Token.pos` / `Token.end`, the `span` of every AST node, and the
|
|
16
|
+
// offsets quoted in error messages) count Unicode CODE POINTS over the raw
|
|
17
|
+
// source (`rawSource` for a template, where a binding occupies its `${n}`
|
|
18
|
+
// marker) — not UTF-16 code units — so the two implementations agree on every
|
|
19
|
+
// offset (spec/oqx/AST.md §3). `toUtf16` converts a span for a UTF-16 editor.
|
|
14
20
|
import { OqxError } from "./errors.js";
|
|
15
|
-
const KEYWORDS = new Set(["from", "where", "select"]);
|
|
21
|
+
const KEYWORDS = new Set(["from", "where", "select", "is", "not", "and", "or"]);
|
|
16
22
|
// Multi-char operators, longest first (the scanner tries these before singles).
|
|
17
23
|
const MULTI_OPS = ["==", "!=", "<=", ">=", "&&", "||"];
|
|
18
24
|
const SINGLE_OPS = new Set(["<", ">", "!", "+", "-", "*", "/", "%"]);
|
|
19
|
-
const isIdentStart = (c) =>
|
|
20
|
-
const isIdentPart = (c) =>
|
|
21
|
-
const isDigit = (c) => c >= "0" && c <= "9";
|
|
25
|
+
const isIdentStart = (c) => /^[A-Za-z_$]$/.test(c);
|
|
26
|
+
const isIdentPart = (c) => /^[A-Za-z0-9_$]$/.test(c);
|
|
27
|
+
const isDigit = (c) => c.length === 1 && c >= "0" && c <= "9";
|
|
28
|
+
/** The length of a string in Unicode code points. */
|
|
29
|
+
export function codePointLength(s) {
|
|
30
|
+
let n = 0;
|
|
31
|
+
for (const _ of s)
|
|
32
|
+
n++;
|
|
33
|
+
return n;
|
|
34
|
+
}
|
|
22
35
|
/** Lex a tagged-template call: the cooked string fragments and the count of
|
|
23
36
|
* interpolated values. Emits a single flat token stream with `binding` tokens
|
|
24
37
|
* (index 0..values-1) between fragments, terminated by `eof`. */
|
|
@@ -27,84 +40,99 @@ export function lexTemplate(fragments, values) {
|
|
|
27
40
|
let base = 0; // running offset across fragments + rendered `${…}` markers
|
|
28
41
|
for (let f = 0; f < fragments.length; f++) {
|
|
29
42
|
lexFragment(fragments[f], base, tokens);
|
|
30
|
-
base += fragments[f]
|
|
43
|
+
base += codePointLength(fragments[f]);
|
|
31
44
|
if (f < fragments.length - 1) {
|
|
32
45
|
// account for the value's rendered width in the display source (see rawSource)
|
|
33
46
|
const marker = `\${${f}}`;
|
|
34
|
-
tokens.push({ type: "binding", value: marker, pos: base, index: f });
|
|
47
|
+
tokens.push({ type: "binding", value: marker, pos: base, end: base + marker.length, index: f });
|
|
35
48
|
base += marker.length;
|
|
36
49
|
}
|
|
37
50
|
}
|
|
38
51
|
if (values !== fragments.length - 1) {
|
|
39
52
|
throw new OqxError(`template arity mismatch: ${fragments.length} fragments, ${values} values`, "lex");
|
|
40
53
|
}
|
|
41
|
-
tokens.push({ type: "eof", value: "", pos: base });
|
|
54
|
+
tokens.push({ type: "eof", value: "", pos: base, end: base });
|
|
42
55
|
return tokens;
|
|
43
56
|
}
|
|
44
57
|
/** Lex a plain string (no bindings) — used by the string entry point. */
|
|
45
58
|
export function lexString(src) {
|
|
46
59
|
const tokens = [];
|
|
47
60
|
lexFragment(src, 0, tokens);
|
|
48
|
-
|
|
61
|
+
const n = codePointLength(src);
|
|
62
|
+
tokens.push({ type: "eof", value: "", pos: n, end: n });
|
|
49
63
|
return tokens;
|
|
50
64
|
}
|
|
51
65
|
function lexFragment(src, base, out) {
|
|
66
|
+
// One entry per code point, so every index below is a code-point offset.
|
|
67
|
+
const cps = Array.from(src);
|
|
52
68
|
let i = 0;
|
|
53
|
-
const n =
|
|
54
|
-
const
|
|
55
|
-
|
|
69
|
+
const n = cps.length;
|
|
70
|
+
const at = (j) => cps[j] ?? "";
|
|
71
|
+
const text = (from, to) => cps.slice(from, to).join("");
|
|
72
|
+
const push = (type, value, start, end) => {
|
|
73
|
+
out.push({ type, value, pos: base + start, end: base + end });
|
|
56
74
|
};
|
|
57
75
|
while (i < n) {
|
|
58
|
-
const c =
|
|
76
|
+
const c = cps[i];
|
|
59
77
|
if (c === " " || c === "\t" || c === "\n" || c === "\r") {
|
|
60
78
|
i++;
|
|
61
79
|
continue;
|
|
62
80
|
}
|
|
63
81
|
if (c === "(") {
|
|
64
|
-
push("lparen", c, i);
|
|
82
|
+
push("lparen", c, i, i + 1);
|
|
65
83
|
i++;
|
|
66
84
|
continue;
|
|
67
85
|
}
|
|
68
86
|
if (c === ")") {
|
|
69
|
-
push("rparen", c, i);
|
|
87
|
+
push("rparen", c, i, i + 1);
|
|
70
88
|
i++;
|
|
71
89
|
continue;
|
|
72
90
|
}
|
|
73
91
|
if (c === "{") {
|
|
74
|
-
push("lbrace", c, i);
|
|
92
|
+
push("lbrace", c, i, i + 1);
|
|
75
93
|
i++;
|
|
76
94
|
continue;
|
|
77
95
|
}
|
|
78
96
|
if (c === "}") {
|
|
79
|
-
push("rbrace", c, i);
|
|
97
|
+
push("rbrace", c, i, i + 1);
|
|
98
|
+
i++;
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (c === "[") {
|
|
102
|
+
push("lbracket", c, i, i + 1);
|
|
103
|
+
i++;
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
if (c === "]") {
|
|
107
|
+
push("rbracket", c, i, i + 1);
|
|
80
108
|
i++;
|
|
81
109
|
continue;
|
|
82
110
|
}
|
|
83
111
|
if (c === ",") {
|
|
84
|
-
push("comma", c, i);
|
|
112
|
+
push("comma", c, i, i + 1);
|
|
85
113
|
i++;
|
|
86
114
|
continue;
|
|
87
115
|
}
|
|
88
116
|
if (c === ":") {
|
|
89
|
-
push("colon", c, i);
|
|
117
|
+
push("colon", c, i, i + 1);
|
|
90
118
|
i++;
|
|
91
119
|
continue;
|
|
92
120
|
}
|
|
93
121
|
if (c === "^") {
|
|
94
|
-
push("caret", c, i);
|
|
122
|
+
push("caret", c, i, i + 1);
|
|
95
123
|
i++;
|
|
96
124
|
continue;
|
|
97
125
|
}
|
|
98
126
|
// range operator — `...` (exclusive end) or `..` (inclusive), longest first.
|
|
99
127
|
// Scanned before the dot rule so `a..b` never looks like member navigation,
|
|
100
128
|
// and before the number rule so the bounds lex as separate numbers.
|
|
101
|
-
if (c === "." &&
|
|
102
|
-
if (
|
|
103
|
-
push("range", "...", i);
|
|
129
|
+
if (c === "." && at(i + 1) === ".") {
|
|
130
|
+
if (at(i + 2) === ".") {
|
|
131
|
+
push("range", "...", i, i + 3);
|
|
104
132
|
i += 3;
|
|
105
133
|
continue;
|
|
106
134
|
}
|
|
107
|
-
push("range", "..", i);
|
|
135
|
+
push("range", "..", i, i + 2);
|
|
108
136
|
i += 2;
|
|
109
137
|
continue;
|
|
110
138
|
}
|
|
@@ -113,12 +141,12 @@ function lexFragment(src, base, out) {
|
|
|
113
141
|
// malformed number, reported as such rather than surfacing as a confusing
|
|
114
142
|
// parse error downstream. Any other `.` is member navigation.
|
|
115
143
|
if (c === ".") {
|
|
116
|
-
if (isDigit(
|
|
117
|
-
const end = scanNumberTail(
|
|
118
|
-
const lit =
|
|
144
|
+
if (isDigit(at(i + 1))) {
|
|
145
|
+
const end = scanNumberTail(cps, i + 1, base);
|
|
146
|
+
const lit = text(i, end);
|
|
119
147
|
throw new OqxError(`malformed number ${JSON.stringify(lit)} at ${base + i} — a number starts with a digit (write 0${lit}), and a property name cannot be a digit (there is no index access)`, "lex");
|
|
120
148
|
}
|
|
121
|
-
push("dot", c, i);
|
|
149
|
+
push("dot", c, i, i + 1);
|
|
122
150
|
i++;
|
|
123
151
|
continue;
|
|
124
152
|
}
|
|
@@ -128,20 +156,20 @@ function lexFragment(src, base, out) {
|
|
|
128
156
|
const start = i;
|
|
129
157
|
i++;
|
|
130
158
|
let sval = "";
|
|
131
|
-
while (i < n &&
|
|
132
|
-
if (
|
|
159
|
+
while (i < n && cps[i] !== quote) {
|
|
160
|
+
if (cps[i] === "\\") {
|
|
133
161
|
i++;
|
|
134
|
-
sval += unescape(
|
|
162
|
+
sval += unescape(cps[i]);
|
|
135
163
|
}
|
|
136
164
|
else {
|
|
137
|
-
sval +=
|
|
165
|
+
sval += cps[i];
|
|
138
166
|
}
|
|
139
167
|
i++;
|
|
140
168
|
}
|
|
141
169
|
if (i >= n)
|
|
142
170
|
throw new OqxError(`unterminated string literal at ${base + start}`, "lex");
|
|
143
171
|
i++; // closing quote
|
|
144
|
-
|
|
172
|
+
push("string", sval, start, i);
|
|
145
173
|
continue;
|
|
146
174
|
}
|
|
147
175
|
// number: `digits [ "." digits ] [ ("e"|"E") ["+"|"-"] digits ]`. A `.` is a
|
|
@@ -151,19 +179,19 @@ function lexFragment(src, base, out) {
|
|
|
151
179
|
// NaN or a dangling dot.
|
|
152
180
|
if (isDigit(c)) {
|
|
153
181
|
const start = i;
|
|
154
|
-
i = scanNumberTail(
|
|
155
|
-
push("number",
|
|
182
|
+
i = scanNumberTail(cps, i, base);
|
|
183
|
+
push("number", text(start, i), start, i);
|
|
156
184
|
continue;
|
|
157
185
|
}
|
|
158
186
|
// operators (multi-char first)
|
|
159
|
-
const two =
|
|
187
|
+
const two = c + at(i + 1);
|
|
160
188
|
if (MULTI_OPS.includes(two)) {
|
|
161
|
-
push("op", two, i);
|
|
189
|
+
push("op", two, i, i + 2);
|
|
162
190
|
i += 2;
|
|
163
191
|
continue;
|
|
164
192
|
}
|
|
165
193
|
if (SINGLE_OPS.has(c)) {
|
|
166
|
-
push("op", c, i);
|
|
194
|
+
push("op", c, i, i + 1);
|
|
167
195
|
i++;
|
|
168
196
|
continue;
|
|
169
197
|
}
|
|
@@ -171,10 +199,10 @@ function lexFragment(src, base, out) {
|
|
|
171
199
|
if (isIdentStart(c)) {
|
|
172
200
|
const start = i;
|
|
173
201
|
i++;
|
|
174
|
-
while (i < n && isIdentPart(
|
|
202
|
+
while (i < n && isIdentPart(cps[i]))
|
|
175
203
|
i++;
|
|
176
|
-
const word =
|
|
177
|
-
push(KEYWORDS.has(word) ? "kw" : "ident", word, start);
|
|
204
|
+
const word = text(start, i);
|
|
205
|
+
push(KEYWORDS.has(word) ? "kw" : "ident", word, start, i);
|
|
178
206
|
continue;
|
|
179
207
|
}
|
|
180
208
|
throw new OqxError(`unexpected character ${JSON.stringify(c)} at ${base + i}`, "lex");
|
|
@@ -183,29 +211,30 @@ function lexFragment(src, base, out) {
|
|
|
183
211
|
// Scan a number whose first digit is at `i`; return the index just past it.
|
|
184
212
|
// Throws the malformed-number lex error for a trailing decimal point or an
|
|
185
213
|
// exponent without digits.
|
|
186
|
-
function scanNumberTail(
|
|
214
|
+
function scanNumberTail(cps, i, base = 0) {
|
|
187
215
|
const start = i;
|
|
188
|
-
const n =
|
|
216
|
+
const n = cps.length;
|
|
217
|
+
const at = (j) => cps[j] ?? "";
|
|
189
218
|
const fail = (end, why) => {
|
|
190
|
-
throw new OqxError(`malformed number ${JSON.stringify(
|
|
219
|
+
throw new OqxError(`malformed number ${JSON.stringify(cps.slice(start, end).join(""))} at ${base + start} — ${why}`, "lex");
|
|
191
220
|
};
|
|
192
|
-
while (i < n && isDigit(
|
|
221
|
+
while (i < n && isDigit(cps[i]))
|
|
193
222
|
i++;
|
|
194
|
-
if (
|
|
195
|
-
if (!isDigit(
|
|
223
|
+
if (at(i) === "." && at(i + 1) !== ".") {
|
|
224
|
+
if (!isDigit(at(i + 1)))
|
|
196
225
|
fail(i + 1, "a decimal point needs a digit after it (write 1.0, not 1.)");
|
|
197
226
|
i++;
|
|
198
|
-
while (i < n && isDigit(
|
|
227
|
+
while (i < n && isDigit(cps[i]))
|
|
199
228
|
i++;
|
|
200
229
|
}
|
|
201
|
-
if (
|
|
230
|
+
if (at(i) === "e" || at(i) === "E") {
|
|
202
231
|
let j = i + 1;
|
|
203
|
-
if (
|
|
232
|
+
if (at(j) === "+" || at(j) === "-")
|
|
204
233
|
j++;
|
|
205
|
-
if (!isDigit(
|
|
234
|
+
if (!isDigit(at(j)))
|
|
206
235
|
fail(j, "an exponent needs at least one digit (write 1e5)");
|
|
207
236
|
i = j;
|
|
208
|
-
while (i < n && isDigit(
|
|
237
|
+
while (i < n && isDigit(cps[i]))
|
|
209
238
|
i++;
|
|
210
239
|
}
|
|
211
240
|
return i;
|
|
@@ -225,4 +254,28 @@ function unescape(c) {
|
|
|
225
254
|
export function rawSource(fragments) {
|
|
226
255
|
return fragments.map((s, i) => (i < fragments.length - 1 ? `${s}\${${i}}` : s)).join("");
|
|
227
256
|
}
|
|
257
|
+
/** Convert a code-point span (as every AST node carries) to UTF-16 code-unit
|
|
258
|
+
* offsets over `source` — the units a JavaScript string, a DOM range or an
|
|
259
|
+
* editor API counts in. `source` is the raw source the span was measured over
|
|
260
|
+
* (for a template, `rawSource(strings)`). Offsets past the end clamp. */
|
|
261
|
+
export function toUtf16(span, source) {
|
|
262
|
+
const [start, end] = span;
|
|
263
|
+
let cp = 0;
|
|
264
|
+
let unit = 0;
|
|
265
|
+
let startUnit = -1;
|
|
266
|
+
let endUnit = -1;
|
|
267
|
+
for (const ch of source) {
|
|
268
|
+
if (cp === start)
|
|
269
|
+
startUnit = unit;
|
|
270
|
+
if (cp === end)
|
|
271
|
+
endUnit = unit;
|
|
272
|
+
cp++;
|
|
273
|
+
unit += ch.length;
|
|
274
|
+
}
|
|
275
|
+
if (startUnit < 0)
|
|
276
|
+
startUnit = unit;
|
|
277
|
+
if (endUnit < 0)
|
|
278
|
+
endUnit = unit;
|
|
279
|
+
return [startUnit, endUnit];
|
|
280
|
+
}
|
|
228
281
|
//# sourceMappingURL=lexer.js.map
|
package/dist/lexer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexer.js","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lexer.js","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@ export declare function whereHasLifts(w: Where): boolean;
|
|
|
38
38
|
export declare const SCOPE_INTRINSICS: ReadonlySet<string>;
|
|
39
39
|
/** The property path a bare identifier or member chain reads off the current
|
|
40
40
|
* row — `customer_id` → `["customer_id"]`, `meta.id` → `["meta", "id"]`,
|
|
41
|
-
* `$
|
|
41
|
+
* `$it` → `[]`, `$it.x` → `["x"]`, `$path` → `["$path"]` — or `null` when
|
|
42
42
|
* `e` is not such a chain or starts from a scope intrinsic (`$key`, `$depth`,
|
|
43
43
|
* …, whose value is scope metadata rather than a row property). */
|
|
44
44
|
export declare function localPath(e: Expr): readonly string[] | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/optimize/analysis.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,IAAI,EAAU,MAAM,EAAwB,KAAK,EAAE,MAAM,WAAW,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C;;uEAEuE;AACvE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAY3E;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAO7E;AAED;sCACsC;AACtC,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5E;AA6BD,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAEtD;AAID;;4CAE4C;AAC5C,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/optimize/analysis.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,IAAI,EAAU,MAAM,EAAwB,KAAK,EAAE,MAAM,WAAW,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C;;uEAEuE;AACvE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAY3E;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAO7E;AAED;sCACsC;AACtC,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5E;AA6BD,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAEtD;AAID;;4CAE4C;AAC5C,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAYhE;AAED;wEACwE;AACxE,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAOlE;AAED;;;;;;uBAMuB;AACvB,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CASjE;AAID;6BAC6B;AAC7B,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE9C;AASD,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAO/C;AAID;;;;UAIU;AACV,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAA0E,CAAC;AAE5H;;;;mEAImE;AACnE,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,CAU3D"}
|
|
@@ -28,9 +28,10 @@ export function exprReadsScopeIn(e, at, upTo) {
|
|
|
28
28
|
return d >= 1 && d <= upTo;
|
|
29
29
|
}
|
|
30
30
|
case "member": return exprReadsScopeIn(e.recv, at, upTo);
|
|
31
|
-
case "index": return exprReadsScopeIn(e.recv, at, upTo) || exprReadsScopeIn(e.index, at, upTo);
|
|
32
31
|
case "call": return (e.recv !== null && exprReadsScopeIn(e.recv, at, upTo)) || e.args.some((a) => exprReadsScopeIn(a, at, upTo));
|
|
33
|
-
case "unary":
|
|
32
|
+
case "unary":
|
|
33
|
+
case "required": return exprReadsScopeIn(e.expr, at, upTo);
|
|
34
|
+
case "op": return opReadsScopeIn(e, at, upTo);
|
|
34
35
|
case "binary":
|
|
35
36
|
case "logical":
|
|
36
37
|
case "in": return exprReadsScopeIn(e.left, at, upTo) || exprReadsScopeIn(e.right, at, upTo);
|
|
@@ -99,8 +100,9 @@ export function exprRaiseFree(e, ctx) {
|
|
|
99
100
|
case "outer": return true;
|
|
100
101
|
case "binding": return e.index < ctx.bindingCount;
|
|
101
102
|
case "call": return false;
|
|
103
|
+
case "required": return false; // raises when absent
|
|
104
|
+
case "op": return opRaiseFree(e, ctx); // a value-position directive projects: never raise-free
|
|
102
105
|
case "member": return exprRaiseFree(e.recv, ctx);
|
|
103
|
-
case "index": return exprRaiseFree(e.recv, ctx) && exprRaiseFree(e.index, ctx);
|
|
104
106
|
case "unary": return exprRaiseFree(e.expr, ctx);
|
|
105
107
|
case "binary":
|
|
106
108
|
case "logical":
|
|
@@ -176,12 +178,12 @@ export function whereHasLifts(w) {
|
|
|
176
178
|
export const SCOPE_INTRINSICS = new Set(["$key", "$depth", "$stop", "$leaf", "$frontier", "$ordinal"]);
|
|
177
179
|
/** The property path a bare identifier or member chain reads off the current
|
|
178
180
|
* row — `customer_id` → `["customer_id"]`, `meta.id` → `["meta", "id"]`,
|
|
179
|
-
* `$
|
|
181
|
+
* `$it` → `[]`, `$it.x` → `["x"]`, `$path` → `["$path"]` — or `null` when
|
|
180
182
|
* `e` is not such a chain or starts from a scope intrinsic (`$key`, `$depth`,
|
|
181
183
|
* …, whose value is scope metadata rather than a row property). */
|
|
182
184
|
export function localPath(e) {
|
|
183
185
|
if (e.kind === "ident") {
|
|
184
|
-
if (e.name === "$
|
|
186
|
+
if (e.name === "$it")
|
|
185
187
|
return [];
|
|
186
188
|
return SCOPE_INTRINSICS.has(e.name) ? null : [e.name];
|
|
187
189
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/optimize/analysis.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,qDAAqD;AACrD,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,0EAA0E;AAC1E,2BAA2B;AAC3B,4EAA4E;AAC5E,6EAA6E;AAC7E,gFAAgF;AAChF,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,iFAAiF;AACjF,iFAAiF;AACjF,0EAA0E;AAK1E,kFAAkF;AAElF;;uEAEuE;AACvE,MAAM,UAAU,gBAAgB,CAAC,CAAO,EAAE,EAAU,EAAE,IAAY;IAChE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,KAAK,CAAC;QAAC,KAAK,SAAS,CAAC,CAAC,OAAO,KAAK,CAAC;QACzC,KAAK,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;QAC3C,KAAK,OAAO,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QAAC,CAAC;QACtE,KAAK,QAAQ,CAAC,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACzD,KAAK,
|
|
1
|
+
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/optimize/analysis.ts"],"names":[],"mappings":"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"}
|
package/dist/optimize/ir.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Consumer, Expr, Follow, OpNode, OrderSpec, SelectItem, Where } from "../ast.js";
|
|
2
2
|
/** One hoisted equality `local == outer` from the block's top-level `&&`
|
|
3
3
|
* conjunction: `local` reads only the block's row (an identifier or member
|
|
4
|
-
* chain; `path` is its property path, `[]` for `$
|
|
4
|
+
* chain; `path` is its property path, `[]` for `$it`), `outer` reads nothing
|
|
5
5
|
* from the block's row (outer references, bindings, literals, arithmetic over
|
|
6
6
|
* them) and cannot raise. */
|
|
7
7
|
export interface Correlation {
|
|
@@ -33,8 +33,8 @@ export interface BlockPlan {
|
|
|
33
33
|
readonly orderBy: readonly OrderSpec[] | null;
|
|
34
34
|
readonly distinct: boolean;
|
|
35
35
|
readonly bound: {
|
|
36
|
-
readonly limit: Expr |
|
|
37
|
-
readonly offset: Expr |
|
|
36
|
+
readonly limit: Expr | null;
|
|
37
|
+
readonly offset: Expr | null;
|
|
38
38
|
};
|
|
39
39
|
readonly follow: Follow | null;
|
|
40
40
|
/** Equalities answered by an index probe on the receiver (in conjunct order). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../src/optimize/ir.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAE9F;;;;6BAI6B;AAC7B,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;oDAEgD;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;4BAG4B;AAC5B,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;qDACiD;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1F,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../src/optimize/ir.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAE9F;;;;6BAI6B;AAC7B,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;oDAEgD;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;4BAG4B;AAC5B,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;qDACiD;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1F,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE,CAAC;IAC9E,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iFAAiF;IACjF,QAAQ,CAAC,UAAU,EAAE,SAAS,WAAW,EAAE,CAAC;IAC5C;4DACwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC;IAChC;;gDAE4C;IAC5C,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC;;uCAEmC;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;6CAEyC;IACzC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC1B;6DACyD;IACzD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;kFACkF;AAClF,MAAM,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,KAAK,SAAS,GAAG,IAAI,CAAC;AAE3E,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAoBnE;AAED,sDAAsD;AACtD,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,GAAG,KAAK,GAAG,IAAI,CAEjE;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,EAAE,CAExD;AAED;;;;gFAIgF;AAChF,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,GAAG,KAAK,GAAG,IAAI,CAEpF;AAED;;;qBAGqB;AACrB,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,WAAW,EAAE,CAInE"}
|
package/dist/optimize/ir.js
CHANGED
|
@@ -19,9 +19,9 @@ export function logicalBlock(node, depth) {
|
|
|
19
19
|
receiver: node.receiver,
|
|
20
20
|
from: sub.from,
|
|
21
21
|
where: sub.where,
|
|
22
|
-
projection: { select: sub.select, values: sub.values
|
|
22
|
+
projection: { select: sub.select, values: sub.values },
|
|
23
23
|
orderBy: sub.orderBy,
|
|
24
|
-
distinct: node.distinct
|
|
24
|
+
distinct: node.distinct,
|
|
25
25
|
bound: { limit: sub.limit, offset: sub.offset },
|
|
26
26
|
follow: sub.follow,
|
|
27
27
|
correlated: [],
|
|
@@ -33,7 +33,7 @@ export function logicalBlock(node, depth) {
|
|
|
33
33
|
}
|
|
34
34
|
/** Rebuild a conjunction from its remaining parts. */
|
|
35
35
|
export function conjunction(parts) {
|
|
36
|
-
return parts.length === 0 ? null : parts.length === 1 ? parts[0] : { kind: "and", parts: [...parts] };
|
|
36
|
+
return parts.length === 0 ? null : parts.length === 1 ? parts[0] : { kind: "and", span: [0, 0], parts: [...parts] };
|
|
37
37
|
}
|
|
38
38
|
/** The top-level `&&` conjuncts of a where tree (a non-`and` tree is one). */
|
|
39
39
|
export function conjuncts(where) {
|
package/dist/optimize/ir.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/optimize/ir.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,+EAA+E;AAC/E,6EAA6E;AAC7E,8EAA8E;AAC9E,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,yEAAyE;AACzE,gFAAgF;AAChF,8EAA8E;AAC9E,8BAA8B;AAmE9B,mFAAmF;AACnF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,KAAa;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACrB,OAAO;QACL,IAAI;QACJ,KAAK;QACL,QAAQ,EAAE,IAAI,CAAC,EAAE;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/optimize/ir.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,+EAA+E;AAC/E,6EAA6E;AAC7E,8EAA8E;AAC9E,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,yEAAyE;AACzE,gFAAgF;AAChF,8EAA8E;AAC9E,8BAA8B;AAmE9B,mFAAmF;AACnF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,KAAa;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACrB,OAAO;QACL,IAAI;QACJ,KAAK;QACL,QAAQ,EAAE,IAAI,CAAC,EAAE;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;QACtD,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;QAC/C,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,GAAG,CAAC,KAAK;QACnB,cAAc,EAAE,KAAK;QACrB,SAAS,EAAE,KAAK;QAChB,eAAe,EAAE,KAAK;KACvB,CAAC;AACJ,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;AACvH,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CAAC,KAAY;IACpC,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC;AAED;;;;gFAIgF;AAChF,MAAM,UAAU,eAAe,CAAC,IAAe,EAAE,QAAqB;IACpE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvG,CAAC;AAED;;;qBAGqB;AACrB,MAAM,UAAU,WAAW,CAAC,IAAe;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;IAC5B,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IAC/B,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC;AACtG,CAAC"}
|
package/dist/parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAuEA,OAAO,KAAK,EACV,KAAK,EAEN,MAAM,UAAU,CAAC;AAkClB,iDAAiD;AACjD,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAEjF;AAED,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAE9C"}
|