flowquery 1.0.80 → 1.0.84
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/flowquery.min.js +1 -1
- package/dist/parsing/expressions/collect_subquery.d.ts +7 -0
- package/dist/parsing/expressions/collect_subquery.d.ts.map +1 -0
- package/dist/parsing/expressions/collect_subquery.js +21 -0
- package/dist/parsing/expressions/collect_subquery.js.map +1 -0
- package/dist/parsing/expressions/count_subquery.d.ts +7 -0
- package/dist/parsing/expressions/count_subquery.d.ts.map +1 -0
- package/dist/parsing/expressions/count_subquery.js +14 -0
- package/dist/parsing/expressions/count_subquery.js.map +1 -0
- package/dist/parsing/expressions/exists_subquery.d.ts +7 -0
- package/dist/parsing/expressions/exists_subquery.d.ts.map +1 -0
- package/dist/parsing/expressions/exists_subquery.js +14 -0
- package/dist/parsing/expressions/exists_subquery.js.map +1 -0
- package/dist/parsing/expressions/operator.d.ts +7 -1
- package/dist/parsing/expressions/operator.d.ts.map +1 -1
- package/dist/parsing/expressions/operator.js +15 -1
- package/dist/parsing/expressions/operator.js.map +1 -1
- package/dist/parsing/expressions/subquery_expression.d.ts +11 -11
- package/dist/parsing/expressions/subquery_expression.d.ts.map +1 -1
- package/dist/parsing/expressions/subquery_expression.js +53 -39
- package/dist/parsing/expressions/subquery_expression.js.map +1 -1
- package/dist/parsing/operations/aggregated_return.d.ts.map +1 -1
- package/dist/parsing/operations/aggregated_return.js +9 -1
- package/dist/parsing/operations/aggregated_return.js.map +1 -1
- package/dist/parsing/operations/aggregated_with.d.ts.map +1 -1
- package/dist/parsing/operations/aggregated_with.js +34 -6
- package/dist/parsing/operations/aggregated_with.js.map +1 -1
- package/dist/parsing/operations/group_by.d.ts +21 -28
- package/dist/parsing/operations/group_by.d.ts.map +1 -1
- package/dist/parsing/operations/group_by.js +43 -22
- package/dist/parsing/operations/group_by.js.map +1 -1
- package/dist/parsing/operations/order_by.d.ts +2 -0
- package/dist/parsing/operations/order_by.d.ts.map +1 -1
- package/dist/parsing/operations/order_by.js +4 -0
- package/dist/parsing/operations/order_by.js.map +1 -1
- package/dist/parsing/parser.d.ts.map +1 -1
- package/dist/parsing/parser.js +27 -16
- package/dist/parsing/parser.js.map +1 -1
- package/dist/tokenization/tokenizer.d.ts.map +1 -1
- package/dist/tokenization/tokenizer.js +13 -5
- package/dist/tokenization/tokenizer.js.map +1 -1
- package/package.json +1 -1
|
@@ -177,14 +177,21 @@ class GroupBy extends projection_1.default {
|
|
|
177
177
|
}
|
|
178
178
|
return this._reducers;
|
|
179
179
|
}
|
|
180
|
-
|
|
180
|
+
/**
|
|
181
|
+
* Depth-first walk over the group tree that applies each group's
|
|
182
|
+
* mapper and reducer overrides before yielding its leaf, together
|
|
183
|
+
* with the mapper values collected along the path. Shared by the
|
|
184
|
+
* result, group and provenance generators so they always traverse
|
|
185
|
+
* in identical order.
|
|
186
|
+
*/
|
|
187
|
+
*_generate_leaves(mapperIndex = 0, node = this.root, path = []) {
|
|
181
188
|
if (mapperIndex === 0 && node.children.size === 0 && this.mappers.length > 0) {
|
|
182
189
|
return;
|
|
183
190
|
}
|
|
184
191
|
if (node.children.size > 0) {
|
|
185
192
|
for (const child of node.children.values()) {
|
|
186
193
|
this.mappers[mapperIndex].overridden = child.value;
|
|
187
|
-
yield* this.
|
|
194
|
+
yield* this._generate_leaves(mapperIndex + 1, child, [...path, child.value]);
|
|
188
195
|
}
|
|
189
196
|
}
|
|
190
197
|
else {
|
|
@@ -194,13 +201,42 @@ class GroupBy extends projection_1.default {
|
|
|
194
201
|
node.elements.forEach((element, reducerIndex) => {
|
|
195
202
|
this.reducers[reducerIndex].overridden = element.value;
|
|
196
203
|
});
|
|
204
|
+
yield { node, path };
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Yields each emitted group together with a callback that re-applies
|
|
209
|
+
* that group's mapper and reducer overrides. Lets callers replay
|
|
210
|
+
* groups in an order other than tree-traversal order (e.g. after
|
|
211
|
+
* ORDER BY) while keeping downstream expression evaluation correct.
|
|
212
|
+
*/
|
|
213
|
+
*generate_groups() {
|
|
214
|
+
var _a;
|
|
215
|
+
for (const { node, path } of this._generate_leaves()) {
|
|
197
216
|
const record = {};
|
|
198
217
|
for (const [expression, alias] of this.expressions()) {
|
|
199
218
|
record[alias] = expression.value();
|
|
200
219
|
}
|
|
201
|
-
if (this.where) {
|
|
202
|
-
|
|
220
|
+
if (!this.where) {
|
|
221
|
+
continue;
|
|
203
222
|
}
|
|
223
|
+
const elementValues = ((_a = node.elements) !== null && _a !== void 0 ? _a : []).map((element) => element.value);
|
|
224
|
+
yield {
|
|
225
|
+
record,
|
|
226
|
+
restore: () => {
|
|
227
|
+
path.forEach((value, mapperIndex) => {
|
|
228
|
+
this.mappers[mapperIndex].overridden = value;
|
|
229
|
+
});
|
|
230
|
+
elementValues.forEach((value, reducerIndex) => {
|
|
231
|
+
this.reducers[reducerIndex].overridden = value;
|
|
232
|
+
});
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
*generate_results() {
|
|
238
|
+
for (const { record } of this.generate_groups()) {
|
|
239
|
+
yield record;
|
|
204
240
|
}
|
|
205
241
|
}
|
|
206
242
|
/**
|
|
@@ -209,25 +245,10 @@ class GroupBy extends projection_1.default {
|
|
|
209
245
|
* RowProvenance} for each emitted group. When provenance is
|
|
210
246
|
* disabled, yields empty entries so callers can still zip cleanly.
|
|
211
247
|
*/
|
|
212
|
-
*generate_provenance(
|
|
213
|
-
|
|
214
|
-
return;
|
|
215
|
-
}
|
|
216
|
-
if (node.children.size > 0) {
|
|
217
|
-
for (const child of node.children.values()) {
|
|
218
|
-
this.mappers[mapperIndex].overridden = child.value;
|
|
219
|
-
yield* this.generate_provenance(mapperIndex + 1, child);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
if (node.elements === null) {
|
|
224
|
-
node.elements = this.reducers.map((reducer) => reducer.element());
|
|
225
|
-
}
|
|
226
|
-
node.elements.forEach((element, reducerIndex) => {
|
|
227
|
-
this.reducers[reducerIndex].overridden = element.value;
|
|
228
|
-
});
|
|
248
|
+
*generate_provenance() {
|
|
249
|
+
for (const { node } of this._generate_leaves()) {
|
|
229
250
|
if (!this.where)
|
|
230
|
-
|
|
251
|
+
continue;
|
|
231
252
|
yield {
|
|
232
253
|
nodes: Array.from(node.provenanceNodes.values()),
|
|
233
254
|
relationships: Array.from(node.provenanceRelationships.values()),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group_by.js","sourceRoot":"","sources":["../../../src/parsing/operations/group_by.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"group_by.js","sourceRoot":"","sources":["../../../src/parsing/operations/group_by.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,8 @@ declare class OrderBy extends Operation {
|
|
|
36
36
|
* accumulated row (from `Return.run()`).
|
|
37
37
|
*/
|
|
38
38
|
captureSortKeys(): void;
|
|
39
|
+
/** Discards keys from a previous emission pass so a re-run starts clean. */
|
|
40
|
+
resetSortKeys(): void;
|
|
39
41
|
/**
|
|
40
42
|
* Sorts an array of records using the pre-computed sort keys captured
|
|
41
43
|
* during accumulation. When no keys have been captured (e.g.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order_by.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/order_by.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,2BAA2B,CAAC;AAEnD,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,MAAM,WAAW,SAAS;IACtB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,UAAU,EAAE,UAAU,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,cAAM,OAAQ,SAAQ,SAAS;IAC3B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAA6B;IAC7C;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAAe;gBAEpB,MAAM,EAAE,SAAS,EAAE;IAK/B,IAAW,MAAM,IAAI,SAAS,EAAE,CAE/B;IAED;;;;OAIG;IACI,eAAe,IAAI,IAAI;IAI9B;;;;;OAKG;IACI,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;IAKlE;;;;OAIG;IACI,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE;IA6C5D;;;OAGG;IACU,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxC,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAE1C;CACJ;AAED,eAAe,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"order_by.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/order_by.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,2BAA2B,CAAC;AAEnD,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,MAAM,WAAW,SAAS;IACtB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,UAAU,EAAE,UAAU,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,cAAM,OAAQ,SAAQ,SAAS;IAC3B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAA6B;IAC7C;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAAe;gBAEpB,MAAM,EAAE,SAAS,EAAE;IAK/B,IAAW,MAAM,IAAI,SAAS,EAAE,CAE/B;IAED;;;;OAIG;IACI,eAAe,IAAI,IAAI;IAI9B,4EAA4E;IACrE,aAAa,IAAI,IAAI;IAI5B;;;;;OAKG;IACI,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;IAKlE;;;;OAIG;IACI,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE;IA6C5D;;;OAGG;IACU,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxC,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAE1C;CACJ;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -51,6 +51,10 @@ class OrderBy extends operation_1.default {
|
|
|
51
51
|
captureSortKeys() {
|
|
52
52
|
this._sortKeys.push(this._fields.map((f) => f.expression.value()));
|
|
53
53
|
}
|
|
54
|
+
/** Discards keys from a previous emission pass so a re-run starts clean. */
|
|
55
|
+
resetSortKeys() {
|
|
56
|
+
this._sortKeys = [];
|
|
57
|
+
}
|
|
54
58
|
/**
|
|
55
59
|
* Sorts an array of records using the pre-computed sort keys captured
|
|
56
60
|
* during accumulation. When no keys have been captured (e.g.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order_by.js","sourceRoot":"","sources":["../../../src/parsing/operations/order_by.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"order_by.js","sourceRoot":"","sources":["../../../src/parsing/operations/order_by.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parsing/parser.ts"],"names":[],"mappings":"AAUA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,UAAU,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parsing/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/parsing/parser.js
CHANGED
|
@@ -59,6 +59,9 @@ const list_comprehension_1 = __importDefault(require("./data_structures/list_com
|
|
|
59
59
|
const lookup_1 = __importDefault(require("./data_structures/lookup"));
|
|
60
60
|
const range_lookup_1 = __importDefault(require("./data_structures/range_lookup"));
|
|
61
61
|
const binding_reference_1 = __importDefault(require("./expressions/binding_reference"));
|
|
62
|
+
const collect_subquery_1 = __importDefault(require("./expressions/collect_subquery"));
|
|
63
|
+
const count_subquery_1 = __importDefault(require("./expressions/count_subquery"));
|
|
64
|
+
const exists_subquery_1 = __importDefault(require("./expressions/exists_subquery"));
|
|
62
65
|
const expression_1 = __importDefault(require("./expressions/expression"));
|
|
63
66
|
const f_string_1 = __importDefault(require("./expressions/f_string"));
|
|
64
67
|
const identifier_1 = __importDefault(require("./expressions/identifier"));
|
|
@@ -66,7 +69,6 @@ const operator_1 = require("./expressions/operator");
|
|
|
66
69
|
const parameter_reference_1 = __importDefault(require("./expressions/parameter_reference"));
|
|
67
70
|
const reference_1 = __importDefault(require("./expressions/reference"));
|
|
68
71
|
const string_1 = __importDefault(require("./expressions/string"));
|
|
69
|
-
const subquery_expression_1 = __importStar(require("./expressions/subquery_expression"));
|
|
70
72
|
const aggregate_function_1 = __importDefault(require("./functions/aggregate_function"));
|
|
71
73
|
const function_1 = __importDefault(require("./functions/function"));
|
|
72
74
|
const function_factory_1 = __importDefault(require("./functions/function_factory"));
|
|
@@ -1910,6 +1912,20 @@ class Parser extends base_parser_1.default {
|
|
|
1910
1912
|
expression.addNode(_case);
|
|
1911
1913
|
return true;
|
|
1912
1914
|
}
|
|
1915
|
+
else if (this.token.isSubtract()) {
|
|
1916
|
+
// Only unary here: a binary minus is consumed as an operator by
|
|
1917
|
+
// parseExpression, and the tokenizer folds `-<digit>` into a literal.
|
|
1918
|
+
const negate = new operator_1.Negate();
|
|
1919
|
+
this.setNextToken();
|
|
1920
|
+
const tempExpr = new expression_1.default();
|
|
1921
|
+
if (!this.parseOperand(tempExpr)) {
|
|
1922
|
+
throw new Error("Expected expression after unary minus");
|
|
1923
|
+
}
|
|
1924
|
+
tempExpr.finish();
|
|
1925
|
+
negate.addChild(tempExpr);
|
|
1926
|
+
expression.addNode(negate);
|
|
1927
|
+
return true;
|
|
1928
|
+
}
|
|
1913
1929
|
else if (this.token.isNot()) {
|
|
1914
1930
|
const not = new operator_1.Not();
|
|
1915
1931
|
this.setNextToken();
|
|
@@ -2654,19 +2670,8 @@ class Parser extends base_parser_1.default {
|
|
|
2654
2670
|
}
|
|
2655
2671
|
parseSubqueryExpression() {
|
|
2656
2672
|
const keyword = (this.token.value || "").toUpperCase();
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
case "EXISTS":
|
|
2660
|
-
mode = subquery_expression_1.SubqueryMode.EXISTS;
|
|
2661
|
-
break;
|
|
2662
|
-
case "COUNT":
|
|
2663
|
-
mode = subquery_expression_1.SubqueryMode.COUNT;
|
|
2664
|
-
break;
|
|
2665
|
-
case "COLLECT":
|
|
2666
|
-
mode = subquery_expression_1.SubqueryMode.COLLECT;
|
|
2667
|
-
break;
|
|
2668
|
-
default:
|
|
2669
|
-
return null;
|
|
2673
|
+
if (keyword !== "EXISTS" && keyword !== "COUNT" && keyword !== "COLLECT") {
|
|
2674
|
+
return null;
|
|
2670
2675
|
}
|
|
2671
2676
|
this.setNextToken(); // consume EXISTS/COUNT/COLLECT keyword
|
|
2672
2677
|
this.skipWhitespaceAndComments();
|
|
@@ -2682,7 +2687,7 @@ class Parser extends base_parser_1.default {
|
|
|
2682
2687
|
// COLLECT is excluded: it needs a RETURN to know what to collect.
|
|
2683
2688
|
let subqueryAST;
|
|
2684
2689
|
if (this.token.isOpeningBrace() && this.nextSignificantToken().isLeftParenthesis()) {
|
|
2685
|
-
if (
|
|
2690
|
+
if (keyword === "COLLECT") {
|
|
2686
2691
|
this._state = outerState;
|
|
2687
2692
|
throw new Error("COLLECT subquery must contain a RETURN clause");
|
|
2688
2693
|
}
|
|
@@ -2695,7 +2700,13 @@ class Parser extends base_parser_1.default {
|
|
|
2695
2700
|
if (subqueryAST === null) {
|
|
2696
2701
|
throw new Error(`Expected opening brace after ${keyword}`);
|
|
2697
2702
|
}
|
|
2698
|
-
|
|
2703
|
+
if (keyword === "EXISTS") {
|
|
2704
|
+
return new exists_subquery_1.default(subqueryAST);
|
|
2705
|
+
}
|
|
2706
|
+
if (keyword === "COUNT") {
|
|
2707
|
+
return new count_subquery_1.default(subqueryAST);
|
|
2708
|
+
}
|
|
2709
|
+
return new collect_subquery_1.default(subqueryAST);
|
|
2699
2710
|
}
|
|
2700
2711
|
/**
|
|
2701
2712
|
* Parses a bare graph pattern (with optional trailing WHERE) inside
|