flowquery 1.0.86 → 1.0.88

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.
Files changed (141) hide show
  1. package/README.md +101 -0
  2. package/dist/compute/flowquery.d.ts +18 -0
  3. package/dist/compute/flowquery.d.ts.map +1 -1
  4. package/dist/compute/flowquery.js +26 -0
  5. package/dist/compute/flowquery.js.map +1 -1
  6. package/dist/compute/runner.d.ts +29 -0
  7. package/dist/compute/runner.d.ts.map +1 -1
  8. package/dist/compute/runner.js +111 -3
  9. package/dist/compute/runner.js.map +1 -1
  10. package/dist/extensibility.d.ts +4 -1
  11. package/dist/extensibility.d.ts.map +1 -1
  12. package/dist/extensibility.js +14 -1
  13. package/dist/extensibility.js.map +1 -1
  14. package/dist/flowquery.min.js +1 -1
  15. package/dist/graph/data.d.ts +1 -0
  16. package/dist/graph/data.d.ts.map +1 -1
  17. package/dist/graph/data.js +3 -0
  18. package/dist/graph/data.js.map +1 -1
  19. package/dist/graph/data_cache.d.ts +3 -1
  20. package/dist/graph/data_cache.d.ts.map +1 -1
  21. package/dist/graph/data_cache.js +5 -4
  22. package/dist/graph/data_cache.js.map +1 -1
  23. package/dist/graph/data_resolver.d.ts +13 -0
  24. package/dist/graph/data_resolver.d.ts.map +1 -1
  25. package/dist/graph/data_resolver.js +52 -0
  26. package/dist/graph/data_resolver.js.map +1 -1
  27. package/dist/graph/database.d.ts +19 -0
  28. package/dist/graph/database.d.ts.map +1 -1
  29. package/dist/graph/database.js +76 -0
  30. package/dist/graph/database.js.map +1 -1
  31. package/dist/graph/node.d.ts +21 -0
  32. package/dist/graph/node.d.ts.map +1 -1
  33. package/dist/graph/node.js +147 -0
  34. package/dist/graph/node.js.map +1 -1
  35. package/dist/graph/pattern.d.ts +19 -1
  36. package/dist/graph/pattern.d.ts.map +1 -1
  37. package/dist/graph/pattern.js +279 -1
  38. package/dist/graph/pattern.js.map +1 -1
  39. package/dist/graph/pattern_expression.d.ts +3 -1
  40. package/dist/graph/pattern_expression.d.ts.map +1 -1
  41. package/dist/graph/pattern_expression.js +8 -3
  42. package/dist/graph/pattern_expression.js.map +1 -1
  43. package/dist/graph/patterns.d.ts +2 -1
  44. package/dist/graph/patterns.d.ts.map +1 -1
  45. package/dist/graph/patterns.js +3 -3
  46. package/dist/graph/patterns.js.map +1 -1
  47. package/dist/graph/physical_node.d.ts +10 -1
  48. package/dist/graph/physical_node.d.ts.map +1 -1
  49. package/dist/graph/physical_node.js +19 -2
  50. package/dist/graph/physical_node.js.map +1 -1
  51. package/dist/graph/physical_relationship.d.ts +10 -1
  52. package/dist/graph/physical_relationship.d.ts.map +1 -1
  53. package/dist/graph/physical_relationship.js +21 -2
  54. package/dist/graph/physical_relationship.js.map +1 -1
  55. package/dist/graph/relationship.d.ts +25 -1
  56. package/dist/graph/relationship.d.ts.map +1 -1
  57. package/dist/graph/relationship.js +135 -0
  58. package/dist/graph/relationship.js.map +1 -1
  59. package/dist/graph/relationship_match_collector.d.ts +1 -1
  60. package/dist/graph/relationship_match_collector.d.ts.map +1 -1
  61. package/dist/graph/relationship_match_collector.js +29 -3
  62. package/dist/graph/relationship_match_collector.js.map +1 -1
  63. package/dist/graph/relationship_reference.d.ts.map +1 -1
  64. package/dist/graph/relationship_reference.js +1 -2
  65. package/dist/graph/relationship_reference.js.map +1 -1
  66. package/dist/graph/source_access.d.ts +107 -0
  67. package/dist/graph/source_access.d.ts.map +1 -0
  68. package/dist/graph/source_access.js +726 -0
  69. package/dist/graph/source_access.js.map +1 -0
  70. package/dist/graph/source_context.d.ts +101 -0
  71. package/dist/graph/source_context.d.ts.map +1 -0
  72. package/dist/graph/source_context.js +392 -0
  73. package/dist/graph/source_context.js.map +1 -0
  74. package/dist/graph/source_provider.d.ts +263 -0
  75. package/dist/graph/source_provider.d.ts.map +1 -0
  76. package/dist/graph/source_provider.js +306 -0
  77. package/dist/graph/source_provider.js.map +1 -0
  78. package/dist/graph/statement_source.d.ts +27 -0
  79. package/dist/graph/statement_source.d.ts.map +1 -0
  80. package/dist/graph/statement_source.js +117 -0
  81. package/dist/graph/statement_source.js.map +1 -0
  82. package/dist/graph/virtual_statement.d.ts +19 -1
  83. package/dist/graph/virtual_statement.d.ts.map +1 -1
  84. package/dist/graph/virtual_statement.js +197 -5
  85. package/dist/graph/virtual_statement.js.map +1 -1
  86. package/dist/index.browser.d.ts +3 -0
  87. package/dist/index.browser.d.ts.map +1 -1
  88. package/dist/index.browser.js +14 -0
  89. package/dist/index.browser.js.map +1 -1
  90. package/dist/index.node.d.ts +3 -0
  91. package/dist/index.node.d.ts.map +1 -1
  92. package/dist/index.node.js +14 -1
  93. package/dist/index.node.js.map +1 -1
  94. package/dist/parsing/operations/aggregated_return.d.ts +2 -0
  95. package/dist/parsing/operations/aggregated_return.d.ts.map +1 -1
  96. package/dist/parsing/operations/aggregated_return.js +6 -0
  97. package/dist/parsing/operations/aggregated_return.js.map +1 -1
  98. package/dist/parsing/operations/aggregated_with.d.ts +2 -0
  99. package/dist/parsing/operations/aggregated_with.d.ts.map +1 -1
  100. package/dist/parsing/operations/aggregated_with.js +6 -0
  101. package/dist/parsing/operations/aggregated_with.js.map +1 -1
  102. package/dist/parsing/operations/create_node.d.ts +5 -1
  103. package/dist/parsing/operations/create_node.d.ts.map +1 -1
  104. package/dist/parsing/operations/create_node.js +20 -1
  105. package/dist/parsing/operations/create_node.js.map +1 -1
  106. package/dist/parsing/operations/create_relationship.d.ts +5 -1
  107. package/dist/parsing/operations/create_relationship.d.ts.map +1 -1
  108. package/dist/parsing/operations/create_relationship.js +21 -1
  109. package/dist/parsing/operations/create_relationship.js.map +1 -1
  110. package/dist/parsing/operations/limit.d.ts +1 -0
  111. package/dist/parsing/operations/limit.d.ts.map +1 -1
  112. package/dist/parsing/operations/limit.js +3 -0
  113. package/dist/parsing/operations/limit.js.map +1 -1
  114. package/dist/parsing/operations/match.d.ts +16 -0
  115. package/dist/parsing/operations/match.d.ts.map +1 -1
  116. package/dist/parsing/operations/match.js +104 -8
  117. package/dist/parsing/operations/match.js.map +1 -1
  118. package/dist/parsing/operations/operation.d.ts +6 -0
  119. package/dist/parsing/operations/operation.d.ts.map +1 -1
  120. package/dist/parsing/operations/operation.js +8 -0
  121. package/dist/parsing/operations/operation.js.map +1 -1
  122. package/dist/parsing/operations/return.d.ts +10 -0
  123. package/dist/parsing/operations/return.d.ts.map +1 -1
  124. package/dist/parsing/operations/return.js +23 -0
  125. package/dist/parsing/operations/return.js.map +1 -1
  126. package/dist/parsing/operations/unwind.d.ts +1 -0
  127. package/dist/parsing/operations/unwind.d.ts.map +1 -1
  128. package/dist/parsing/operations/unwind.js +9 -2
  129. package/dist/parsing/operations/unwind.js.map +1 -1
  130. package/dist/parsing/operations/where.d.ts +1 -0
  131. package/dist/parsing/operations/where.d.ts.map +1 -1
  132. package/dist/parsing/operations/where.js +4 -0
  133. package/dist/parsing/operations/where.js.map +1 -1
  134. package/dist/parsing/operations/with.d.ts +1 -0
  135. package/dist/parsing/operations/with.d.ts.map +1 -1
  136. package/dist/parsing/operations/with.js +4 -0
  137. package/dist/parsing/operations/with.js.map +1 -1
  138. package/dist/parsing/parser.d.ts.map +1 -1
  139. package/dist/parsing/parser.js +20 -2
  140. package/dist/parsing/parser.js.map +1 -1
  141. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"aggregated_with.js","sourceRoot":"","sources":["../../../src/parsing/operations/aggregated_with.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregated_with.js","sourceRoot":"","sources":["../../../src/parsing/operations/aggregated_with.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,20 @@
1
1
  import Node from "../../graph/node";
2
2
  import ASTNode from "../ast_node";
3
+ import AssociativeArray from "../data_structures/associative_array";
3
4
  import Operation from "./operation";
4
5
  declare class CreateNode extends Operation {
5
6
  private _node;
6
7
  private _statement;
7
8
  private _isStatic;
8
9
  private _refreshEveryMs;
9
- constructor(node: Node, statement: ASTNode, isStatic?: boolean, refreshEveryMs?: number | null);
10
+ private _capabilities;
11
+ constructor(node: Node, statement: ASTNode, isStatic?: boolean, refreshEveryMs?: number | null, capabilities?: AssociativeArray | null);
10
12
  get node(): Node | null;
11
13
  get statement(): ASTNode | null;
12
14
  get isStatic(): boolean;
13
15
  get refreshEveryMs(): number | null;
16
+ /** Source capabilities declared with `WITH CAPABILITIES { ... }`, if any. */
17
+ get capabilities(): Record<string, any> | null;
14
18
  run(): Promise<void>;
15
19
  get results(): Record<string, any>[];
16
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create_node.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/create_node.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,cAAM,UAAW,SAAQ,SAAS;IAC9B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,eAAe,CAAuB;gBAE1C,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,OAAO,EAClB,QAAQ,GAAE,OAAe,EACzB,cAAc,GAAE,MAAM,GAAG,IAAW;IAQxC,IAAW,IAAI,IAAI,IAAI,GAAG,IAAI,CAE7B;IACD,IAAW,SAAS,IAAI,OAAO,GAAG,IAAI,CAErC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,IAAW,cAAc,IAAI,MAAM,GAAG,IAAI,CAEzC;IACM,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAE1C;CACJ;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"create_node.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/create_node.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,kBAAkB,CAAC;AAEpC,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,cAAM,UAAW,SAAQ,SAAS;IAC9B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,aAAa,CAAiC;gBAElD,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,OAAO,EAClB,QAAQ,GAAE,OAAe,EACzB,cAAc,GAAE,MAAM,GAAG,IAAW,EACpC,YAAY,GAAE,gBAAgB,GAAG,IAAW;IAShD,IAAW,IAAI,IAAI,IAAI,GAAG,IAAI,CAE7B;IACD,IAAW,SAAS,IAAI,OAAO,GAAG,IAAI,CAErC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,IAAW,cAAc,IAAI,MAAM,GAAG,IAAI,CAEzC;IACD,6EAA6E;IAC7E,IAAW,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAGpD;IACM,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB3B,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAE1C;CACJ;AAED,eAAe,UAAU,CAAC"}
@@ -13,18 +13,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const database_1 = __importDefault(require("../../graph/database"));
16
+ const source_provider_1 = require("../../graph/source_provider");
16
17
  const operation_1 = __importDefault(require("./operation"));
17
18
  class CreateNode extends operation_1.default {
18
- constructor(node, statement, isStatic = false, refreshEveryMs = null) {
19
+ constructor(node, statement, isStatic = false, refreshEveryMs = null, capabilities = null) {
19
20
  super();
20
21
  this._node = null;
21
22
  this._statement = null;
22
23
  this._isStatic = false;
23
24
  this._refreshEveryMs = null;
25
+ this._capabilities = null;
24
26
  this._node = node;
25
27
  this._statement = statement;
26
28
  this._isStatic = isStatic;
27
29
  this._refreshEveryMs = refreshEveryMs;
30
+ this._capabilities = capabilities;
28
31
  }
29
32
  get node() {
30
33
  return this._node;
@@ -38,6 +41,12 @@ class CreateNode extends operation_1.default {
38
41
  get refreshEveryMs() {
39
42
  return this._refreshEveryMs;
40
43
  }
44
+ /** Source capabilities declared with `WITH CAPABILITIES { ... }`, if any. */
45
+ get capabilities() {
46
+ if (this._capabilities === null)
47
+ return null;
48
+ return Object.assign({ version: source_provider_1.SOURCE_CONTRACT_VERSION }, this._capabilities.value());
49
+ }
41
50
  run() {
42
51
  return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
43
52
  try {
@@ -45,7 +54,17 @@ class CreateNode extends operation_1.default {
45
54
  throw new Error("Node is null");
46
55
  }
47
56
  const db = database_1.default.getInstance();
57
+ const capabilities = this.capabilities;
48
58
  db.addNode(this._node, this._statement, this._isStatic, this._refreshEveryMs);
59
+ if (capabilities !== null) {
60
+ try {
61
+ db.setNodeSourceCapabilities(this._node.label, capabilities);
62
+ }
63
+ catch (error) {
64
+ db.removeNode(this._node);
65
+ throw error;
66
+ }
67
+ }
49
68
  resolve();
50
69
  }
51
70
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"create_node.js","sourceRoot":"","sources":["../../../src/parsing/operations/create_node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oEAA4C;AAG5C,4DAAoC;AAEpC,MAAM,UAAW,SAAQ,mBAAS;IAK9B,YACI,IAAU,EACV,SAAkB,EAClB,WAAoB,KAAK,EACzB,iBAAgC,IAAI;QAEpC,KAAK,EAAE,CAAC;QAVJ,UAAK,GAAgB,IAAI,CAAC;QAC1B,eAAU,GAAmB,IAAI,CAAC;QAClC,cAAS,GAAY,KAAK,CAAC;QAC3B,oBAAe,GAAkB,IAAI,CAAC;QAQ1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IAC1C,CAAC;IACD,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACM,GAAG;QACN,OAAO,IAAI,OAAO,CAAC,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,IAAI,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM,EAAE,GAAa,kBAAQ,CAAC,WAAW,EAAE,CAAC;gBAC5C,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC/E,OAAO,EAAE,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACL,CAAC,CAAA,CAAC,CAAC;IACP,CAAC;IACD,IAAW,OAAO;QACd,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAED,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"create_node.js","sourceRoot":"","sources":["../../../src/parsing/operations/create_node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oEAA4C;AAE5C,iEAAsE;AAGtE,4DAAoC;AAEpC,MAAM,UAAW,SAAQ,mBAAS;IAM9B,YACI,IAAU,EACV,SAAkB,EAClB,WAAoB,KAAK,EACzB,iBAAgC,IAAI,EACpC,eAAwC,IAAI;QAE5C,KAAK,EAAE,CAAC;QAZJ,UAAK,GAAgB,IAAI,CAAC;QAC1B,eAAU,GAAmB,IAAI,CAAC;QAClC,cAAS,GAAY,KAAK,CAAC;QAC3B,oBAAe,GAAkB,IAAI,CAAC;QACtC,kBAAa,GAA4B,IAAI,CAAC;QASlD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IACD,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,6EAA6E;IAC7E,IAAW,YAAY;QACnB,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC7C,uBAAS,OAAO,EAAE,yCAAuB,IAAK,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAG;IAC/E,CAAC;IACM,GAAG;QACN,OAAO,IAAI,OAAO,CAAC,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,IAAI,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM,EAAE,GAAa,kBAAQ,CAAC,WAAW,EAAE,CAAC;gBAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBACvC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC/E,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;oBACxB,IAAI,CAAC;wBACD,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAM,EAAE,YAAmB,CAAC,CAAC;oBACzE,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACb,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC1B,MAAM,KAAK,CAAC;oBAChB,CAAC;gBACL,CAAC;gBACD,OAAO,EAAE,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACL,CAAC,CAAA,CAAC,CAAC;IACP,CAAC;IACD,IAAW,OAAO;QACd,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAED,kBAAe,UAAU,CAAC"}
@@ -1,16 +1,20 @@
1
1
  import Relationship from "../../graph/relationship";
2
2
  import ASTNode from "../ast_node";
3
+ import AssociativeArray from "../data_structures/associative_array";
3
4
  import Operation from "./operation";
4
5
  declare class CreateRelationship extends Operation {
5
6
  private _relationship;
6
7
  private _statement;
7
8
  private _isStatic;
8
9
  private _refreshEveryMs;
9
- constructor(relationship: Relationship, statement: ASTNode, isStatic?: boolean, refreshEveryMs?: number | null);
10
+ private _capabilities;
11
+ constructor(relationship: Relationship, statement: ASTNode, isStatic?: boolean, refreshEveryMs?: number | null, capabilities?: AssociativeArray | null);
10
12
  get relationship(): Relationship | null;
11
13
  get statement(): ASTNode | null;
12
14
  get isStatic(): boolean;
13
15
  get refreshEveryMs(): number | null;
16
+ /** Source capabilities declared with `WITH CAPABILITIES { ... }`, if any. */
17
+ get capabilities(): Record<string, any> | null;
14
18
  run(): Promise<void>;
15
19
  get results(): Record<string, any>[];
16
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create_relationship.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/create_relationship.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,cAAM,kBAAmB,SAAQ,SAAS;IACtC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,eAAe,CAAuB;gBAE1C,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,OAAO,EAClB,QAAQ,GAAE,OAAe,EACzB,cAAc,GAAE,MAAM,GAAG,IAAW;IAQxC,IAAW,YAAY,IAAI,YAAY,GAAG,IAAI,CAE7C;IACD,IAAW,SAAS,IAAI,OAAO,GAAG,IAAI,CAErC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,IAAW,cAAc,IAAI,MAAM,GAAG,IAAI,CAEzC;IACM,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB3B,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAE1C;CACJ;AACD,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"create_relationship.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/create_relationship.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,0BAA0B,CAAC;AAEpD,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,cAAM,kBAAmB,SAAQ,SAAS;IACtC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,aAAa,CAAiC;gBAElD,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,OAAO,EAClB,QAAQ,GAAE,OAAe,EACzB,cAAc,GAAE,MAAM,GAAG,IAAW,EACpC,YAAY,GAAE,gBAAgB,GAAG,IAAW;IAShD,IAAW,YAAY,IAAI,YAAY,GAAG,IAAI,CAE7C;IACD,IAAW,SAAS,IAAI,OAAO,GAAG,IAAI,CAErC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,IAAW,cAAc,IAAI,MAAM,GAAG,IAAI,CAEzC;IACD,6EAA6E;IAC7E,IAAW,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAGpD;IACM,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC3B,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAE1C;CACJ;AACD,eAAe,kBAAkB,CAAC"}
@@ -13,18 +13,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const database_1 = __importDefault(require("../../graph/database"));
16
+ const source_provider_1 = require("../../graph/source_provider");
16
17
  const operation_1 = __importDefault(require("./operation"));
17
18
  class CreateRelationship extends operation_1.default {
18
- constructor(relationship, statement, isStatic = false, refreshEveryMs = null) {
19
+ constructor(relationship, statement, isStatic = false, refreshEveryMs = null, capabilities = null) {
19
20
  super();
20
21
  this._relationship = null;
21
22
  this._statement = null;
22
23
  this._isStatic = false;
23
24
  this._refreshEveryMs = null;
25
+ this._capabilities = null;
24
26
  this._relationship = relationship;
25
27
  this._statement = statement;
26
28
  this._isStatic = isStatic;
27
29
  this._refreshEveryMs = refreshEveryMs;
30
+ this._capabilities = capabilities;
28
31
  }
29
32
  get relationship() {
30
33
  return this._relationship;
@@ -38,14 +41,31 @@ class CreateRelationship extends operation_1.default {
38
41
  get refreshEveryMs() {
39
42
  return this._refreshEveryMs;
40
43
  }
44
+ /** Source capabilities declared with `WITH CAPABILITIES { ... }`, if any. */
45
+ get capabilities() {
46
+ if (this._capabilities === null)
47
+ return null;
48
+ return Object.assign({ version: source_provider_1.SOURCE_CONTRACT_VERSION }, this._capabilities.value());
49
+ }
41
50
  run() {
42
51
  return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
52
+ var _a, _b, _c, _d;
43
53
  try {
44
54
  if (this._relationship === null) {
45
55
  throw new Error("Relationship is null");
46
56
  }
47
57
  const db = database_1.default.getInstance();
58
+ const capabilities = this.capabilities;
48
59
  db.addRelationship(this._relationship, this._statement, this._isStatic, this._refreshEveryMs);
60
+ if (capabilities !== null) {
61
+ try {
62
+ db.setRelationshipSourceCapabilities(this._relationship.type, (_b = (_a = this._relationship.source) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : null, (_d = (_c = this._relationship.target) === null || _c === void 0 ? void 0 : _c.label) !== null && _d !== void 0 ? _d : null, capabilities);
63
+ }
64
+ catch (error) {
65
+ db.removeRelationship(this._relationship);
66
+ throw error;
67
+ }
68
+ }
49
69
  resolve();
50
70
  }
51
71
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"create_relationship.js","sourceRoot":"","sources":["../../../src/parsing/operations/create_relationship.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oEAA4C;AAG5C,4DAAoC;AAEpC,MAAM,kBAAmB,SAAQ,mBAAS;IAKtC,YACI,YAA0B,EAC1B,SAAkB,EAClB,WAAoB,KAAK,EACzB,iBAAgC,IAAI;QAEpC,KAAK,EAAE,CAAC;QAVJ,kBAAa,GAAwB,IAAI,CAAC;QAC1C,eAAU,GAAmB,IAAI,CAAC;QAClC,cAAS,GAAY,KAAK,CAAC;QAC3B,oBAAe,GAAkB,IAAI,CAAC;QAQ1C,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IAC1C,CAAC;IACD,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACM,GAAG;QACN,OAAO,IAAI,OAAO,CAAC,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;YACzC,IAAI,CAAC;gBACD,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,EAAE,GAAG,kBAAQ,CAAC,WAAW,EAAE,CAAC;gBAClC,EAAE,CAAC,eAAe,CACd,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,UAAW,EAChB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,eAAe,CACvB,CAAC;gBACF,OAAO,EAAE,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACL,CAAC,CAAA,CAAC,CAAC;IACP,CAAC;IACD,IAAW,OAAO;QACd,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AACD,kBAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"create_relationship.js","sourceRoot":"","sources":["../../../src/parsing/operations/create_relationship.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oEAA4C;AAE5C,iEAAsE;AAGtE,4DAAoC;AAEpC,MAAM,kBAAmB,SAAQ,mBAAS;IAMtC,YACI,YAA0B,EAC1B,SAAkB,EAClB,WAAoB,KAAK,EACzB,iBAAgC,IAAI,EACpC,eAAwC,IAAI;QAE5C,KAAK,EAAE,CAAC;QAZJ,kBAAa,GAAwB,IAAI,CAAC;QAC1C,eAAU,GAAmB,IAAI,CAAC;QAClC,cAAS,GAAY,KAAK,CAAC;QAC3B,oBAAe,GAAkB,IAAI,CAAC;QACtC,kBAAa,GAA4B,IAAI,CAAC;QASlD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IACD,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IACD,6EAA6E;IAC7E,IAAW,YAAY;QACnB,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC7C,uBAAS,OAAO,EAAE,yCAAuB,IAAK,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAG;IAC/E,CAAC;IACM,GAAG;QACN,OAAO,IAAI,OAAO,CAAC,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;;YACzC,IAAI,CAAC;gBACD,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBAC5C,CAAC;gBACD,MAAM,EAAE,GAAG,kBAAQ,CAAC,WAAW,EAAE,CAAC;gBAClC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBACvC,EAAE,CAAC,eAAe,CACd,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,UAAW,EAChB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,eAAe,CACvB,CAAC;gBACF,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;oBACxB,IAAI,CAAC;wBACD,EAAE,CAAC,iCAAiC,CAChC,IAAI,CAAC,aAAa,CAAC,IAAK,EACxB,MAAA,MAAA,IAAI,CAAC,aAAa,CAAC,MAAM,0CAAE,KAAK,mCAAI,IAAI,EACxC,MAAA,MAAA,IAAI,CAAC,aAAa,CAAC,MAAM,0CAAE,KAAK,mCAAI,IAAI,EACxC,YAAmB,CACtB,CAAC;oBACN,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACb,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC1C,MAAM,KAAK,CAAC;oBAChB,CAAC;gBACL,CAAC;gBACD,OAAO,EAAE,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACL,CAAC,CAAA,CAAC,CAAC;IACP,CAAC;IACD,IAAW,OAAO;QACd,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AACD,kBAAe,kBAAkB,CAAC"}
@@ -7,6 +7,7 @@ declare class Limit extends Operation {
7
7
  get limitValue(): number;
8
8
  increment(): void;
9
9
  run(): Promise<void>;
10
+ get saturated(): boolean;
10
11
  reset(): void;
11
12
  }
12
13
  export default Limit;
@@ -1 +1 @@
1
- {"version":3,"file":"limit.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/limit.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,cAAM,KAAM,SAAQ,SAAS;IACzB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,KAAK,CAAa;gBACd,KAAK,EAAE,MAAM;IAIzB,IAAW,cAAc,IAAI,OAAO,CAEnC;IACD,IAAW,UAAU,IAAI,MAAM,CAE9B;IACM,SAAS,IAAI,IAAI;IAGX,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1B,KAAK,IAAI,IAAI;CAGvB;AAED,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"limit.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/limit.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,cAAM,KAAM,SAAQ,SAAS;IACzB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,KAAK,CAAa;gBACd,KAAK,EAAE,MAAM;IAIzB,IAAW,cAAc,IAAI,OAAO,CAEnC;IACD,IAAW,UAAU,IAAI,MAAM,CAE9B;IACM,SAAS,IAAI,IAAI;IAGX,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,IAAW,SAAS,IAAI,OAAO,CAE9B;IACM,KAAK,IAAI,IAAI;CAGvB;AAED,eAAe,KAAK,CAAC"}
@@ -39,6 +39,9 @@ class Limit extends operation_1.default {
39
39
  yield ((_a = this.next) === null || _a === void 0 ? void 0 : _a.run());
40
40
  });
41
41
  }
42
+ get saturated() {
43
+ return this.count >= this.limit;
44
+ }
42
45
  reset() {
43
46
  this.count = 0;
44
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"limit.js","sourceRoot":"","sources":["../../../src/parsing/operations/limit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4DAAoC;AAEpC,MAAM,KAAM,SAAQ,mBAAS;IAGzB,YAAY,KAAa;QACrB,KAAK,EAAE,CAAC;QAHJ,UAAK,GAAW,CAAC,CAAC;QAClB,UAAK,GAAW,CAAC,CAAC;QAGtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACD,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;IACpC,CAAC;IACD,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IACM,SAAS;QACZ,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IACY,GAAG;;;YACZ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC3B,OAAO;YACX,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAA,CAAC;QAC3B,CAAC;KAAA;IACM,KAAK;QACR,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ;AAED,kBAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"limit.js","sourceRoot":"","sources":["../../../src/parsing/operations/limit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4DAAoC;AAEpC,MAAM,KAAM,SAAQ,mBAAS;IAGzB,YAAY,KAAa;QACrB,KAAK,EAAE,CAAC;QAHJ,UAAK,GAAW,CAAC,CAAC;QAClB,UAAK,GAAW,CAAC,CAAC;QAGtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACD,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;IACpC,CAAC;IACD,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IACM,SAAS;QACZ,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IACY,GAAG;;;YACZ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC3B,OAAO;YACX,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAA,CAAC;QAC3B,CAAC;KAAA;IACD,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;IACpC,CAAC;IACM,KAAK;QACR,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ;AAED,kBAAe,KAAK,CAAC"}
@@ -1,11 +1,17 @@
1
1
  import Pattern from "../../graph/pattern";
2
+ import type SourceContext from "../../graph/source_context";
2
3
  import Operation from "./operation";
3
4
  declare class Match extends Operation {
4
5
  private _patterns;
5
6
  private _optional;
7
+ private _sourceContext;
6
8
  constructor(patterns?: Pattern[], optional?: boolean);
7
9
  get patterns(): Pattern[];
8
10
  get optional(): boolean;
11
+ /** @internal Query-scoped source context assigned by the runner. */
12
+ set sourceContext(ctx: SourceContext | null);
13
+ get sourceContext(): SourceContext | null;
14
+ get saturated(): boolean;
9
15
  protected toString(): string;
10
16
  /**
11
17
  * Executes the match operation by chaining the patterns together.
@@ -27,6 +33,16 @@ declare class Match extends Operation {
27
33
  * Complex expressions (OR, >, <, function calls, etc.) remain as post-filters.
28
34
  */
29
35
  private extractWherePredicates;
36
+ /**
37
+ * Attaches range and IN comparisons from the immediately following WHERE
38
+ * clause to the pattern nodes so that source providers may evaluate
39
+ * them. The WHERE clause stays in place and re-checks every row, so
40
+ * sources only need to return a superset. Not applied to OPTIONAL
41
+ * MATCH, whose null-row semantics depend on the full candidate set.
42
+ */
43
+ private extractPushdownPredicates;
44
+ private collectPushdownPredicates;
45
+ private pushdownTerm;
30
46
  /**
31
47
  * Recursively collects equality predicates from the expression tree.
32
48
  * Only extracts simple `node.property = literal` patterns.
@@ -1 +1 @@
1
- {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/match.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAQ1C,OAAO,SAAS,MAAM,aAAa,CAAC;AAGpC,cAAM,KAAM,SAAQ,SAAS;IACzB,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,SAAS,CAAkB;gBAEvB,QAAQ,GAAE,OAAO,EAAO,EAAE,QAAQ,GAAE,OAAe;IAK/D,IAAW,QAAQ,IAAI,OAAO,EAAE,CAE/B;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,SAAS,CAAC,QAAQ,IAAI,MAAM;IAG5B;;;;;OAKG;IACU,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBjC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,sBAAsB;IA2B9B;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAuBjC;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAwBnC;;OAEG;IACH,OAAO,CAAC,cAAc;CAGzB;AAED,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/match.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAG1C,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAC;AAe5D,OAAO,SAAS,MAAM,aAAa,CAAC;AAGpC,cAAM,KAAM,SAAQ,SAAS;IACzB,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,cAAc,CAA8B;gBAExC,QAAQ,GAAE,OAAO,EAAO,EAAE,QAAQ,GAAE,OAAe;IAK/D,IAAW,QAAQ,IAAI,OAAO,EAAE,CAE/B;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,oEAAoE;IACpE,IAAW,aAAa,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,EAEjD;IACD,IAAW,aAAa,IAAI,aAAa,GAAG,IAAI,CAE/C;IACD,IAAW,SAAS,IAAI,OAAO,CAE9B;IACD,SAAS,CAAC,QAAQ,IAAI,MAAM;IAG5B;;;;;OAKG;IACU,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BjC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,sBAAsB;IA2B9B;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IA0BjC,OAAO,CAAC,yBAAyB;IA8BjC,OAAO,CAAC,YAAY;IAuBpB;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAuBjC;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAwBnC;;OAEG;IACH,OAAO,CAAC,cAAc;CAGzB;AAED,eAAe,KAAK,CAAC"}
@@ -21,6 +21,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  const node_1 = __importDefault(require("../../graph/node"));
23
23
  const patterns_1 = __importDefault(require("../../graph/patterns"));
24
+ const source_access_1 = require("../../graph/source_access");
24
25
  const lookup_1 = __importDefault(require("../data_structures/lookup"));
25
26
  const expression_1 = __importDefault(require("../expressions/expression"));
26
27
  const identifier_1 = __importDefault(require("../expressions/identifier"));
@@ -33,6 +34,7 @@ class Match extends operation_1.default {
33
34
  super();
34
35
  this._patterns = null;
35
36
  this._optional = false;
37
+ this._sourceContext = null;
36
38
  this._patterns = new patterns_1.default(patterns);
37
39
  this._optional = optional;
38
40
  }
@@ -42,6 +44,17 @@ class Match extends operation_1.default {
42
44
  get optional() {
43
45
  return this._optional;
44
46
  }
47
+ /** @internal Query-scoped source context assigned by the runner. */
48
+ set sourceContext(ctx) {
49
+ this._sourceContext = ctx;
50
+ }
51
+ get sourceContext() {
52
+ return this._sourceContext;
53
+ }
54
+ get saturated() {
55
+ var _a, _b;
56
+ return (_b = (_a = this.next) === null || _a === void 0 ? void 0 : _a.saturated) !== null && _b !== void 0 ? _b : false;
57
+ }
45
58
  toString() {
46
59
  return this._optional ? "OptionalMatch" : "Match";
47
60
  }
@@ -54,24 +67,31 @@ class Match extends operation_1.default {
54
67
  run() {
55
68
  return __awaiter(this, void 0, void 0, function* () {
56
69
  var _a, e_1, _b, _c;
57
- var _d, _e;
70
+ var _d, _e, _f, _g;
58
71
  this.extractWherePredicates();
59
- yield this._patterns.initialize();
72
+ this.extractPushdownPredicates();
73
+ yield this._patterns.initialize(this._sourceContext);
60
74
  let matched = false;
61
75
  try {
62
- for (var _f = true, _g = __asyncValues(this._patterns.traverse()), _h; _h = yield _g.next(), _a = _h.done, !_a; _f = true) {
63
- _c = _h.value;
64
- _f = false;
76
+ for (var _h = true, _j = __asyncValues(this._patterns.traverse()), _k; _k = yield _j.next(), _a = _k.done, !_a; _h = true) {
77
+ _c = _k.value;
78
+ _h = false;
65
79
  const _ = _c;
80
+ (_d = this._sourceContext) === null || _d === void 0 ? void 0 : _d.throwIfCancelled();
66
81
  matched = true;
67
82
  // Continue to the next operation after all patterns are matched
68
- yield ((_d = this.next) === null || _d === void 0 ? void 0 : _d.run());
83
+ yield ((_e = this.next) === null || _e === void 0 ? void 0 : _e.run());
84
+ // Nothing downstream can change any more (e.g. LIMIT reached):
85
+ // stop reading so source-backed reads are closed early.
86
+ if ((_f = this.next) === null || _f === void 0 ? void 0 : _f.saturated) {
87
+ break;
88
+ }
69
89
  }
70
90
  }
71
91
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
72
92
  finally {
73
93
  try {
74
- if (!_f && !_a && (_b = _g.return)) yield _b.call(_g);
94
+ if (!_h && !_a && (_b = _j.return)) yield _b.call(_j);
75
95
  }
76
96
  finally { if (e_1) throw e_1.error; }
77
97
  }
@@ -84,7 +104,7 @@ class Match extends operation_1.default {
84
104
  }
85
105
  }
86
106
  }
87
- yield ((_e = this.next) === null || _e === void 0 ? void 0 : _e.run());
107
+ yield ((_g = this.next) === null || _g === void 0 ? void 0 : _g.run());
88
108
  }
89
109
  });
90
110
  }
@@ -126,6 +146,82 @@ class Match extends operation_1.default {
126
146
  }
127
147
  }
128
148
  }
149
+ /**
150
+ * Attaches range and IN comparisons from the immediately following WHERE
151
+ * clause to the pattern nodes so that source providers may evaluate
152
+ * them. The WHERE clause stays in place and re-checks every row, so
153
+ * sources only need to return a superset. Not applied to OPTIONAL
154
+ * MATCH, whose null-row semantics depend on the full candidate set.
155
+ */
156
+ extractPushdownPredicates() {
157
+ const nodeMap = new Map();
158
+ for (const pattern of this._patterns.patterns) {
159
+ for (const element of pattern.chain) {
160
+ if (element instanceof node_1.default && element.constructor === node_1.default) {
161
+ element.pushedPredicates = [];
162
+ if (element.identifier !== null) {
163
+ nodeMap.set(element.identifier, element);
164
+ }
165
+ }
166
+ }
167
+ }
168
+ if (this._optional || !(this.next instanceof where_1.default)) {
169
+ return;
170
+ }
171
+ const where = this.next;
172
+ for (const { identifier, predicate } of this.collectPushdownPredicates(where.expression.firstChild())) {
173
+ const node = nodeMap.get(identifier);
174
+ if (node !== undefined) {
175
+ node.pushedPredicates = [...node.pushedPredicates, predicate];
176
+ }
177
+ }
178
+ }
179
+ collectPushdownPredicates(node) {
180
+ if (node instanceof operator_1.And) {
181
+ return [
182
+ ...this.collectPushdownPredicates(node.lhs),
183
+ ...this.collectPushdownPredicates(node.rhs),
184
+ ];
185
+ }
186
+ const ops = [
187
+ [operator_1.GreaterThan, "gt", "lt"],
188
+ [operator_1.GreaterThanOrEqual, "gte", "lte"],
189
+ [operator_1.LessThan, "lt", "gt"],
190
+ [operator_1.LessThanOrEqual, "lte", "gte"],
191
+ [operator_1.In, "in", null],
192
+ ];
193
+ for (const [type, op, flipped] of ops) {
194
+ if (!(node instanceof type))
195
+ continue;
196
+ const operator = node;
197
+ const direct = this.pushdownTerm(operator.lhs, operator.rhs, op);
198
+ if (direct !== null)
199
+ return [direct];
200
+ if (flipped !== null) {
201
+ const reversed = this.pushdownTerm(operator.rhs, operator.lhs, flipped);
202
+ if (reversed !== null)
203
+ return [reversed];
204
+ }
205
+ return [];
206
+ }
207
+ return [];
208
+ }
209
+ pushdownTerm(lookupSide, valueSide, op) {
210
+ if (!(lookupSide instanceof lookup_1.default) ||
211
+ !(lookupSide.variable instanceof reference_1.default) ||
212
+ !(lookupSide.index instanceof identifier_1.default) ||
213
+ !(0, source_access_1.isStaticExpression)(valueSide)) {
214
+ return null;
215
+ }
216
+ return {
217
+ identifier: lookupSide.variable.identifier,
218
+ predicate: {
219
+ op,
220
+ property: lookupSide.index.value(),
221
+ expression: valueSide,
222
+ },
223
+ };
224
+ }
129
225
  /**
130
226
  * Recursively collects equality predicates from the expression tree.
131
227
  * Only extracts simple `node.property = literal` patterns.
@@ -1 +1 @@
1
- {"version":3,"file":"match.js","sourceRoot":"","sources":["../../../src/parsing/operations/match.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,4DAAoC;AAEpC,oEAA4C;AAE5C,uEAA+C;AAC/C,2EAAmD;AACnD,2EAAmD;AACnD,sDAAsD;AACtD,yEAAiD;AACjD,4DAAoC;AACpC,oDAA4B;AAE5B,MAAM,KAAM,SAAQ,mBAAS;IAIzB,YAAY,WAAsB,EAAE,EAAE,WAAoB,KAAK;QAC3D,KAAK,EAAE,CAAC;QAJJ,cAAS,GAAoB,IAAI,CAAC;QAClC,cAAS,GAAY,KAAK,CAAC;QAI/B,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAQ,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACS,QAAQ;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;IACtD,CAAC;IACD;;;;;OAKG;IACU,GAAG;;;;YACZ,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,SAAU,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC;;gBACpB,KAAsB,eAAA,KAAA,cAAA,IAAI,CAAC,SAAU,CAAC,QAAQ,EAAE,CAAA,IAAA,sDAAE,CAAC;oBAA7B,cAA0B;oBAA1B,WAA0B;oBAArC,MAAM,CAAC,KAAA,CAAA;oBACd,OAAO,GAAG,IAAI,CAAC;oBACf,gEAAgE;oBAChE,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAA,CAAC;gBAC3B,CAAC;;;;;;;;;YACD,oEAAoE;YACpE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC7B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAU,CAAC,QAAQ,EAAE,CAAC;oBAC7C,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;wBAClC,IAAI,OAAO,YAAY,cAAI,EAAE,CAAC;4BAC1B,OAAO,CAAC,QAAQ,CAAC,IAAK,CAAC,CAAC;wBAC5B,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,EAAE,CAAA,CAAC;YAC3B,CAAC;QACL,CAAC;KAAA;IAED;;;;;;;;;;;OAWG;IACK,sBAAsB;QAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,YAAY,eAAK,CAAC,EAAE,CAAC;YAChC,OAAO;QACX,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAa,CAAC;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;QACjF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QACD,uEAAuE;QACvE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgB,CAAC;QACxC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAU,CAAC,QAAQ,EAAE,CAAC;YAC7C,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClC,IAAI,OAAO,YAAY,cAAI,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;oBACzD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC7C,CAAC;YACL,CAAC;QACL,CAAC;QACD,+DAA+D;QAC/D,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1D,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,yBAAyB,CAC7B,IAAa;QAEb,IAAI,IAAI,YAAY,cAAG,EAAE,CAAC;YACtB,OAAO;gBACH,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3C,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC;aAC9C,CAAC;QACN,CAAC;QACD,IAAI,IAAI,YAAY,iBAAM,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACpE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClB,OAAO,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;YACD,+BAA+B;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACtE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC;QACL,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,2BAA2B,CAC/B,UAAmB,EACnB,SAAkB;QAElB,IAAI,CAAC,CAAC,UAAU,YAAY,gBAAM,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,MAAM,GAAG,UAAoB,CAAC;QACpC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,YAAY,mBAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,YAAY,oBAAU,CAAC,EAAE,CAAC;YACnF,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,uFAAuF;QACvF,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,cAAc,GAAI,MAAM,CAAC,QAAsB,CAAC,UAAU,CAAC;QACjE,MAAM,QAAQ,GAAI,MAAM,CAAC,KAAoB,CAAC,KAAK,EAAE,CAAC;QACtD,+EAA+E;QAC/E,MAAM,IAAI,GAAG,IAAI,oBAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IAC/D,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,IAAa;QAChC,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,YAAY,mBAAS,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,gBAAM,CAAC,CAAC;IACzF,CAAC;CACJ;AAED,kBAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"match.js","sourceRoot":"","sources":["../../../src/parsing/operations/match.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,12 @@ declare abstract class Operation extends ASTNode {
35
35
  finish(): Promise<void>;
36
36
  initialize(): Promise<void>;
37
37
  reset(): void;
38
+ /**
39
+ * True when no further input can change this operation's output (for
40
+ * example a reached LIMIT). Upstream source-backed MATCHes use it to
41
+ * stop reading early. Must only report permanent saturation.
42
+ */
43
+ get saturated(): boolean;
38
44
  get results(): Record<string, any>[];
39
45
  }
40
46
  export default Operation;
@@ -1 +1 @@
1
- {"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/operation.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAElC;;;;;;;GAOG;AACH,uBAAe,SAAU,SAAQ,OAAO;IACpC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,KAAK,CAA0B;IAEvC;;OAEG;;IAIH,IAAW,QAAQ,IAAI,SAAS,GAAG,IAAI,CAEtC;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,EAE1C;IACD,IAAW,IAAI,IAAI,SAAS,GAAG,IAAI,CAElC;IACD,IAAW,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,EAEtC;IACM,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAK7C,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED;;;;;OAKG;IACU,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;;OAIG;IACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAGvB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAGjC,KAAK,IAAI,IAAI;IACpB,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAE1C;CACJ;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/operation.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAElC;;;;;;;GAOG;AACH,uBAAe,SAAU,SAAQ,OAAO;IACpC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,KAAK,CAA0B;IAEvC;;OAEG;;IAIH,IAAW,QAAQ,IAAI,SAAS,GAAG,IAAI,CAEtC;IACD,IAAW,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,EAE1C;IACD,IAAW,IAAI,IAAI,SAAS,GAAG,IAAI,CAElC;IACD,IAAW,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,EAEtC;IACM,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAK7C,IAAW,MAAM,IAAI,OAAO,CAE3B;IAED;;;;;OAKG;IACU,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;;OAIG;IACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAGvB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAGjC,KAAK,IAAI,IAAI;IACpB;;;;OAIG;IACH,IAAW,SAAS,IAAI,OAAO,CAE9B;IACD,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAE1C;CACJ;AAED,eAAe,SAAS,CAAC"}
@@ -80,6 +80,14 @@ class Operation extends ast_node_1.default {
80
80
  });
81
81
  }
82
82
  reset() { }
83
+ /**
84
+ * True when no further input can change this operation's output (for
85
+ * example a reached LIMIT). Upstream source-backed MATCHes use it to
86
+ * stop reading early. Must only report permanent saturation.
87
+ */
88
+ get saturated() {
89
+ return false;
90
+ }
83
91
  get results() {
84
92
  throw new Error("Not implemented");
85
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"operation.js","sourceRoot":"","sources":["../../../src/parsing/operations/operation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,2DAAkC;AAElC;;;;;;;GAOG;AACH,MAAe,SAAU,SAAQ,kBAAO;IAIpC;;OAEG;IACH;QACI,KAAK,EAAE,CAAC;QAPJ,cAAS,GAAqB,IAAI,CAAC;QACnC,UAAK,GAAqB,IAAI,CAAC;IAOvC,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAW,QAAQ,CAAC,KAAuB;QACvC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC3B,CAAC;IACD,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,IAAW,IAAI,CAAC,KAAuB;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACM,UAAU,CAAC,SAAoB;;QAClC,MAAA,IAAI,CAAC,OAAO,0CAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAClC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IAC1B,CAAC;IACD,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACU,GAAG;;YACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACvC,CAAC;KAAA;IAED;;;;OAIG;IACU,MAAM;;;YACf,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,EAAE,CAAA,CAAC;QAC9B,CAAC;KAAA;IACY,UAAU;;;YACnB,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,UAAU,EAAE,CAAA,CAAC;QAClC,CAAC;KAAA;IACM,KAAK,KAAU,CAAC;IACvB,IAAW,OAAO;QACd,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;CACJ;AAED,kBAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"operation.js","sourceRoot":"","sources":["../../../src/parsing/operations/operation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,2DAAkC;AAElC;;;;;;;GAOG;AACH,MAAe,SAAU,SAAQ,kBAAO;IAIpC;;OAEG;IACH;QACI,KAAK,EAAE,CAAC;QAPJ,cAAS,GAAqB,IAAI,CAAC;QACnC,UAAK,GAAqB,IAAI,CAAC;IAOvC,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,IAAW,QAAQ,CAAC,KAAuB;QACvC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC3B,CAAC;IACD,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,IAAW,IAAI,CAAC,KAAuB;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACM,UAAU,CAAC,SAAoB;;QAClC,MAAA,IAAI,CAAC,OAAO,0CAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAClC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IAC1B,CAAC;IACD,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACU,GAAG;;YACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACvC,CAAC;KAAA;IAED;;;;OAIG;IACU,MAAM;;;YACf,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,EAAE,CAAA,CAAC;QAC9B,CAAC;KAAA;IACY,UAAU;;;YACnB,MAAM,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,UAAU,EAAE,CAAA,CAAC;QAClC,CAAC;KAAA;IACM,KAAK,KAAU,CAAC;IACvB;;;;OAIG;IACH,IAAW,SAAS;QAChB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAW,OAAO;QACd,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAC;CACJ;AAED,kBAAe,SAAS,CAAC"}
@@ -22,10 +22,20 @@ declare class Return extends Projection {
22
22
  protected _provenanceSources: ProvenanceSource[] | null;
23
23
  protected _provenanceSink: RowProvenance[] | null;
24
24
  protected _provenanceRows: RowProvenance[];
25
+ protected _rowSink: ((row: Record<string, any>) => Promise<void> | void) | null;
25
26
  set where(where: Where);
26
27
  get where(): boolean;
27
28
  set limit(limit: Limit);
28
29
  set orderBy(orderBy: OrderBy);
30
+ get saturated(): boolean;
31
+ /** @internal Whether rows can be handed to a sink as they are produced. */
32
+ get supportsRowSink(): boolean;
33
+ /**
34
+ * @internal Deliver each projected row to `sink` instead of buffering
35
+ * it (used to stream statement-backed sources). Pass `null` to restore
36
+ * buffering.
37
+ */
38
+ setRowSink(sink: ((row: Record<string, any>) => Promise<void> | void) | null): void;
29
39
  /**
30
40
  * Direct the runner-owned sink that receives the post-sorted,
31
41
  * post-limited provenance rows. Once a sink is registered, every
@@ -1 +1 @@
1
- {"version":3,"file":"return.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/return.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,aAAa,EACb,UAAU,EAEb,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B;;;;;;;;;;GAUG;AACH,cAAM,MAAO,SAAQ,UAAU;IAC3B,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACtC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAM;IAC/C,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACtC,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAQ;IAC1C,SAAS,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAQ;IAC/D,SAAS,CAAC,eAAe,EAAE,aAAa,EAAE,GAAG,IAAI,CAAQ;IACzD,SAAS,CAAC,eAAe,EAAE,aAAa,EAAE,CAAM;IAChD,IAAW,KAAK,CAAC,KAAK,EAAE,KAAK,EAE5B;IACD,IAAW,KAAK,IAAI,OAAO,CAK1B;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,KAAK,EAE5B;IACD,IAAW,OAAO,CAAC,OAAO,EAAE,OAAO,EAElC;IACD;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,IAAI;IAGpD;;;;;;;OAOG;IACI,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAM7C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA+CjC;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,IAAI,UAAU;IAS9B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAG1C;IACY,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAUpC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAmBpB,yEAAyE;IACzE,IAAW,cAAc,IAAI,aAAa,EAAE,CAE3C;CACJ;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"return.d.ts","sourceRoot":"","sources":["../../../src/parsing/operations/return.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,aAAa,EACb,UAAU,EAEb,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B;;;;;;;;;;GAUG;AACH,cAAM,MAAO,SAAQ,UAAU;IAC3B,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACtC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAM;IAC/C,SAAS,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACtC,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAQ;IAC1C,SAAS,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAQ;IAC/D,SAAS,CAAC,eAAe,EAAE,aAAa,EAAE,GAAG,IAAI,CAAQ;IACzD,SAAS,CAAC,eAAe,EAAE,aAAa,EAAE,CAAM;IAChD,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAQ;IACvF,IAAW,KAAK,CAAC,KAAK,EAAE,KAAK,EAE5B;IACD,IAAW,KAAK,IAAI,OAAO,CAK1B;IACD,IAAW,KAAK,CAAC,KAAK,EAAE,KAAK,EAE5B;IACD,IAAW,OAAO,CAAC,OAAO,EAAE,OAAO,EAElC;IACD,IAAW,SAAS,IAAI,OAAO,CAE9B;IACD,2EAA2E;IAC3E,IAAW,eAAe,IAAI,OAAO,CAEpC;IACD;;;;OAIG;IACI,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAG1F;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,IAAI;IAGpD;;;;;;;OAOG;IACI,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAM7C,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAsDjC;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,IAAI,UAAU;IAS9B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC,IAAW,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAG1C;IACY,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAUpC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAmBpB,yEAAyE;IACzE,IAAW,cAAc,IAAI,aAAa,EAAE,CAE3C;CACJ;AAED,eAAe,MAAM,CAAC"}
@@ -35,6 +35,7 @@ class Return extends projection_1.default {
35
35
  this._provenanceSources = null;
36
36
  this._provenanceSink = null;
37
37
  this._provenanceRows = [];
38
+ this._rowSink = null;
38
39
  }
39
40
  set where(where) {
40
41
  this._where = where;
@@ -51,6 +52,21 @@ class Return extends projection_1.default {
51
52
  set orderBy(orderBy) {
52
53
  this._orderBy = orderBy;
53
54
  }
55
+ get saturated() {
56
+ return this._orderBy === null && this._limit !== null && this._limit.isLimitReached;
57
+ }
58
+ /** @internal Whether rows can be handed to a sink as they are produced. */
59
+ get supportsRowSink() {
60
+ return this._orderBy === null && this._provenanceSink === null;
61
+ }
62
+ /**
63
+ * @internal Deliver each projected row to `sink` instead of buffering
64
+ * it (used to stream statement-backed sources). Pass `null` to restore
65
+ * buffering.
66
+ */
67
+ setRowSink(sink) {
68
+ this._rowSink = sink;
69
+ }
54
70
  /**
55
71
  * Direct the runner-owned sink that receives the post-sorted,
56
72
  * post-limited provenance rows. Once a sink is registered, every
@@ -102,6 +118,13 @@ class Return extends projection_1.default {
102
118
  if (this._orderBy !== null) {
103
119
  this._orderBy.captureSortKeys();
104
120
  }
121
+ if (this._rowSink !== null) {
122
+ if (this._limit !== null) {
123
+ this._limit.increment();
124
+ }
125
+ yield this._rowSink(Object.fromEntries(record));
126
+ return;
127
+ }
105
128
  this._results.push(Object.fromEntries(record));
106
129
  if (this._provenanceSink !== null) {
107
130
  const segment = this._snapshotProvenance();
@@ -1 +1 @@
1
- {"version":3,"file":"return.js","sourceRoot":"","sources":["../../../src/parsing/operations/return.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"return.js","sourceRoot":"","sources":["../../../src/parsing/operations/return.ts"],"names":[],"mappings":"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"}