@quereus/quereus 3.1.2 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/dist/src/core/database-assertions.d.ts.map +1 -1
  2. package/dist/src/core/database-assertions.js +7 -3
  3. package/dist/src/core/database-assertions.js.map +1 -1
  4. package/dist/src/core/database.js +3 -3
  5. package/dist/src/core/database.js.map +1 -1
  6. package/dist/src/core/statement.js +3 -3
  7. package/dist/src/core/statement.js.map +1 -1
  8. package/dist/src/emit/ast-stringify.js +2 -2
  9. package/dist/src/emit/ast-stringify.js.map +1 -1
  10. package/dist/src/index.d.ts +2 -1
  11. package/dist/src/index.d.ts.map +1 -1
  12. package/dist/src/index.js +1 -0
  13. package/dist/src/index.js.map +1 -1
  14. package/dist/src/parser/parser.d.ts +1 -1
  15. package/dist/src/parser/parser.d.ts.map +1 -1
  16. package/dist/src/parser/parser.js +6 -2
  17. package/dist/src/parser/parser.js.map +1 -1
  18. package/dist/src/parser/visitor.js +1 -1
  19. package/dist/src/parser/visitor.js.map +1 -1
  20. package/dist/src/planner/analysis/attribute-provenance.d.ts +45 -0
  21. package/dist/src/planner/analysis/attribute-provenance.d.ts.map +1 -0
  22. package/dist/src/planner/analysis/attribute-provenance.js +81 -0
  23. package/dist/src/planner/analysis/attribute-provenance.js.map +1 -0
  24. package/dist/src/planner/analysis/binding-extractor.d.ts.map +1 -1
  25. package/dist/src/planner/analysis/binding-extractor.js +9 -6
  26. package/dist/src/planner/analysis/binding-extractor.js.map +1 -1
  27. package/dist/src/planner/analysis/change-scope.d.ts.map +1 -1
  28. package/dist/src/planner/analysis/change-scope.js +7 -0
  29. package/dist/src/planner/analysis/change-scope.js.map +1 -1
  30. package/dist/src/planner/analysis/const-evaluator.js +5 -5
  31. package/dist/src/planner/analysis/const-evaluator.js.map +1 -1
  32. package/dist/src/planner/analysis/constraint-extractor.d.ts +10 -0
  33. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  34. package/dist/src/planner/analysis/constraint-extractor.js +28 -12
  35. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  36. package/dist/src/planner/building/delete.d.ts.map +1 -1
  37. package/dist/src/planner/building/delete.js +7 -4
  38. package/dist/src/planner/building/delete.js.map +1 -1
  39. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  40. package/dist/src/planner/building/select-aggregates.js +4 -13
  41. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  42. package/dist/src/planner/building/select-window.d.ts.map +1 -1
  43. package/dist/src/planner/building/select-window.js +54 -21
  44. package/dist/src/planner/building/select-window.js.map +1 -1
  45. package/dist/src/planner/cache/correlation-detector.d.ts +7 -0
  46. package/dist/src/planner/cache/correlation-detector.d.ts.map +1 -1
  47. package/dist/src/planner/cache/correlation-detector.js +34 -2
  48. package/dist/src/planner/cache/correlation-detector.js.map +1 -1
  49. package/dist/src/planner/framework/physical-utils.d.ts.map +1 -1
  50. package/dist/src/planner/framework/physical-utils.js +7 -1
  51. package/dist/src/planner/framework/physical-utils.js.map +1 -1
  52. package/dist/src/planner/nodes/aggregate-node.d.ts +6 -4
  53. package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
  54. package/dist/src/planner/nodes/aggregate-node.js +8 -6
  55. package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
  56. package/dist/src/planner/nodes/analyze-node.d.ts.map +1 -1
  57. package/dist/src/planner/nodes/analyze-node.js +3 -0
  58. package/dist/src/planner/nodes/analyze-node.js.map +1 -1
  59. package/dist/src/planner/nodes/async-gather-node.d.ts +169 -0
  60. package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -0
  61. package/dist/src/planner/nodes/async-gather-node.js +488 -0
  62. package/dist/src/planner/nodes/async-gather-node.js.map +1 -0
  63. package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
  64. package/dist/src/planner/nodes/bloom-join-node.js +8 -7
  65. package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
  66. package/dist/src/planner/nodes/eager-prefetch-node.d.ts +47 -0
  67. package/dist/src/planner/nodes/eager-prefetch-node.d.ts.map +1 -0
  68. package/dist/src/planner/nodes/eager-prefetch-node.js +96 -0
  69. package/dist/src/planner/nodes/eager-prefetch-node.js.map +1 -0
  70. package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts +150 -0
  71. package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts.map +1 -0
  72. package/dist/src/planner/nodes/fanout-lookup-join-node.js +265 -0
  73. package/dist/src/planner/nodes/fanout-lookup-join-node.js.map +1 -0
  74. package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
  75. package/dist/src/planner/nodes/hash-aggregate.js +6 -16
  76. package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
  77. package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
  78. package/dist/src/planner/nodes/join-utils.js +7 -1
  79. package/dist/src/planner/nodes/join-utils.js.map +1 -1
  80. package/dist/src/planner/nodes/limit-offset.d.ts +12 -0
  81. package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
  82. package/dist/src/planner/nodes/limit-offset.js +53 -3
  83. package/dist/src/planner/nodes/limit-offset.js.map +1 -1
  84. package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
  85. package/dist/src/planner/nodes/merge-join-node.js +8 -7
  86. package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
  87. package/dist/src/planner/nodes/plan-node-type.d.ts +3 -0
  88. package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
  89. package/dist/src/planner/nodes/plan-node-type.js +3 -0
  90. package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
  91. package/dist/src/planner/nodes/plan-node.d.ts +36 -0
  92. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  93. package/dist/src/planner/nodes/plan-node.js +26 -0
  94. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  95. package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
  96. package/dist/src/planner/nodes/project-node.js +18 -5
  97. package/dist/src/planner/nodes/project-node.js.map +1 -1
  98. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  99. package/dist/src/planner/nodes/reference.js +14 -3
  100. package/dist/src/planner/nodes/reference.js.map +1 -1
  101. package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
  102. package/dist/src/planner/nodes/set-operation-node.js +12 -1
  103. package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
  104. package/dist/src/planner/nodes/sort.js +1 -1
  105. package/dist/src/planner/nodes/sort.js.map +1 -1
  106. package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
  107. package/dist/src/planner/nodes/stream-aggregate.js +8 -23
  108. package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
  109. package/dist/src/planner/nodes/values-node.d.ts +2 -1
  110. package/dist/src/planner/nodes/values-node.d.ts.map +1 -1
  111. package/dist/src/planner/nodes/values-node.js +16 -0
  112. package/dist/src/planner/nodes/values-node.js.map +1 -1
  113. package/dist/src/planner/nodes/window-node.js +1 -1
  114. package/dist/src/planner/nodes/window-node.js.map +1 -1
  115. package/dist/src/planner/optimizer-tuning.d.ts +107 -0
  116. package/dist/src/planner/optimizer-tuning.d.ts.map +1 -1
  117. package/dist/src/planner/optimizer-tuning.js +43 -0
  118. package/dist/src/planner/optimizer-tuning.js.map +1 -1
  119. package/dist/src/planner/optimizer.d.ts.map +1 -1
  120. package/dist/src/planner/optimizer.js +91 -0
  121. package/dist/src/planner/optimizer.js.map +1 -1
  122. package/dist/src/planner/rules/access/rule-monotonic-range-access.d.ts.map +1 -1
  123. package/dist/src/planner/rules/access/rule-monotonic-range-access.js +1 -6
  124. package/dist/src/planner/rules/access/rule-monotonic-range-access.js.map +1 -1
  125. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.d.ts.map +1 -1
  126. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js +8 -27
  127. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js.map +1 -1
  128. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts +9 -3
  129. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts.map +1 -1
  130. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js +47 -5
  131. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js.map +1 -1
  132. package/dist/src/planner/rules/distinct/rule-distinct-elimination.d.ts +8 -7
  133. package/dist/src/planner/rules/distinct/rule-distinct-elimination.d.ts.map +1 -1
  134. package/dist/src/planner/rules/distinct/rule-distinct-elimination.js +14 -21
  135. package/dist/src/planner/rules/distinct/rule-distinct-elimination.js.map +1 -1
  136. package/dist/src/planner/rules/join/equi-pair-extractor.js +4 -4
  137. package/dist/src/planner/rules/join/equi-pair-extractor.js.map +1 -1
  138. package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts +74 -0
  139. package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts.map +1 -0
  140. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +139 -0
  141. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js.map +1 -0
  142. package/dist/src/planner/rules/join/rule-fanout-lookup-join.d.ts +58 -0
  143. package/dist/src/planner/rules/join/rule-fanout-lookup-join.d.ts.map +1 -0
  144. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +590 -0
  145. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -0
  146. package/dist/src/planner/rules/join/rule-join-greedy-commute.d.ts.map +1 -1
  147. package/dist/src/planner/rules/join/rule-join-greedy-commute.js +10 -0
  148. package/dist/src/planner/rules/join/rule-join-greedy-commute.js.map +1 -1
  149. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
  150. package/dist/src/planner/rules/join/rule-join-physical-selection.js +2 -1
  151. package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
  152. package/dist/src/planner/rules/join/rule-lateral-top1-asof.d.ts.map +1 -1
  153. package/dist/src/planner/rules/join/rule-lateral-top1-asof.js +1 -2
  154. package/dist/src/planner/rules/join/rule-lateral-top1-asof.js.map +1 -1
  155. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.d.ts +43 -0
  156. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.d.ts.map +1 -0
  157. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.js +115 -0
  158. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.js.map +1 -0
  159. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.d.ts +102 -0
  160. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.d.ts.map +1 -0
  161. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js +545 -0
  162. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js.map +1 -0
  163. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.d.ts +45 -0
  164. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.d.ts.map +1 -0
  165. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.js +78 -0
  166. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.js.map +1 -0
  167. package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js +1 -1
  168. package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js.map +1 -1
  169. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +2 -2
  170. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  171. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.d.ts +16 -0
  172. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.d.ts.map +1 -1
  173. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js +47 -4
  174. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js.map +1 -1
  175. package/dist/src/planner/rules/window/rule-monotonic-window.js +1 -1
  176. package/dist/src/planner/rules/window/rule-monotonic-window.js.map +1 -1
  177. package/dist/src/planner/scopes/param.d.ts.map +1 -1
  178. package/dist/src/planner/scopes/param.js +13 -11
  179. package/dist/src/planner/scopes/param.js.map +1 -1
  180. package/dist/src/planner/type-utils.js +1 -1
  181. package/dist/src/planner/type-utils.js.map +1 -1
  182. package/dist/src/planner/util/fd-utils.d.ts +59 -1
  183. package/dist/src/planner/util/fd-utils.d.ts.map +1 -1
  184. package/dist/src/planner/util/fd-utils.js +122 -0
  185. package/dist/src/planner/util/fd-utils.js.map +1 -1
  186. package/dist/src/planner/util/key-utils.d.ts +26 -3
  187. package/dist/src/planner/util/key-utils.d.ts.map +1 -1
  188. package/dist/src/planner/util/key-utils.js +113 -33
  189. package/dist/src/planner/util/key-utils.js.map +1 -1
  190. package/dist/src/planner/validation/plan-validator.d.ts.map +1 -1
  191. package/dist/src/planner/validation/plan-validator.js +17 -19
  192. package/dist/src/planner/validation/plan-validator.js.map +1 -1
  193. package/dist/src/runtime/async-semaphore.d.ts +36 -0
  194. package/dist/src/runtime/async-semaphore.d.ts.map +1 -0
  195. package/dist/src/runtime/async-semaphore.js +72 -0
  196. package/dist/src/runtime/async-semaphore.js.map +1 -0
  197. package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
  198. package/dist/src/runtime/deferred-constraint-queue.js +4 -3
  199. package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
  200. package/dist/src/runtime/delta-executor.d.ts.map +1 -1
  201. package/dist/src/runtime/delta-executor.js +9 -0
  202. package/dist/src/runtime/delta-executor.js.map +1 -1
  203. package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
  204. package/dist/src/runtime/emit/asof-scan.js +6 -4
  205. package/dist/src/runtime/emit/asof-scan.js.map +1 -1
  206. package/dist/src/runtime/emit/async-gather.d.ts +77 -0
  207. package/dist/src/runtime/emit/async-gather.d.ts.map +1 -0
  208. package/dist/src/runtime/emit/async-gather.js +234 -0
  209. package/dist/src/runtime/emit/async-gather.js.map +1 -0
  210. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  211. package/dist/src/runtime/emit/binary.js +19 -27
  212. package/dist/src/runtime/emit/binary.js.map +1 -1
  213. package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
  214. package/dist/src/runtime/emit/bloom-join.js +42 -19
  215. package/dist/src/runtime/emit/bloom-join.js.map +1 -1
  216. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  217. package/dist/src/runtime/emit/constraint-check.js +35 -1
  218. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  219. package/dist/src/runtime/emit/delete.d.ts.map +1 -1
  220. package/dist/src/runtime/emit/delete.js +15 -5
  221. package/dist/src/runtime/emit/delete.js.map +1 -1
  222. package/dist/src/runtime/emit/eager-prefetch.d.ts +77 -0
  223. package/dist/src/runtime/emit/eager-prefetch.d.ts.map +1 -0
  224. package/dist/src/runtime/emit/eager-prefetch.js +223 -0
  225. package/dist/src/runtime/emit/eager-prefetch.js.map +1 -0
  226. package/dist/src/runtime/emit/fanout-lookup-join.d.ts +130 -0
  227. package/dist/src/runtime/emit/fanout-lookup-join.d.ts.map +1 -0
  228. package/dist/src/runtime/emit/fanout-lookup-join.js +521 -0
  229. package/dist/src/runtime/emit/fanout-lookup-join.js.map +1 -0
  230. package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
  231. package/dist/src/runtime/emit/merge-join.js +4 -2
  232. package/dist/src/runtime/emit/merge-join.js.map +1 -1
  233. package/dist/src/runtime/parallel-driver.d.ts +68 -0
  234. package/dist/src/runtime/parallel-driver.d.ts.map +1 -0
  235. package/dist/src/runtime/parallel-driver.js +233 -0
  236. package/dist/src/runtime/parallel-driver.js.map +1 -0
  237. package/dist/src/runtime/register.d.ts.map +1 -1
  238. package/dist/src/runtime/register.js +9 -0
  239. package/dist/src/runtime/register.js.map +1 -1
  240. package/dist/src/runtime/strict-fork.d.ts +36 -0
  241. package/dist/src/runtime/strict-fork.d.ts.map +1 -0
  242. package/dist/src/runtime/strict-fork.js +125 -0
  243. package/dist/src/runtime/strict-fork.js.map +1 -0
  244. package/dist/src/types/temporal-types.d.ts.map +1 -1
  245. package/dist/src/types/temporal-types.js +71 -36
  246. package/dist/src/types/temporal-types.js.map +1 -1
  247. package/dist/src/util/comparison.d.ts.map +1 -1
  248. package/dist/src/util/comparison.js +11 -1
  249. package/dist/src/util/comparison.js.map +1 -1
  250. package/dist/src/vtab/concurrency.d.ts +29 -0
  251. package/dist/src/vtab/concurrency.d.ts.map +1 -0
  252. package/dist/src/vtab/concurrency.js +47 -0
  253. package/dist/src/vtab/concurrency.js.map +1 -0
  254. package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
  255. package/dist/src/vtab/memory/layer/scan-layer.js +67 -29
  256. package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
  257. package/dist/src/vtab/memory/module.d.ts +21 -0
  258. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  259. package/dist/src/vtab/memory/module.js +21 -0
  260. package/dist/src/vtab/memory/module.js.map +1 -1
  261. package/dist/src/vtab/module.d.ts +47 -0
  262. package/dist/src/vtab/module.d.ts.map +1 -1
  263. package/package.json +4 -3
@@ -1,7 +1,7 @@
1
1
  import { resolveReferencedColumns } from '../../schema/table.js';
2
2
  import { ColumnReferenceNode, ParameterReferenceNode } from '../nodes/reference.js';
3
3
  import { LiteralNode } from '../nodes/scalar.js';
4
- import { isSuperkey } from './fd-utils.js';
4
+ import { isSuperkey, isUnique, keysOf } from './fd-utils.js';
5
5
  /**
6
6
  * Project unique keys through a projection mapping.
7
7
  * - sourceKeys: keys defined on the source relation (arrays of column refs by source column index)
@@ -75,7 +75,10 @@ function analyzeProjectionLeaves(expr) {
75
75
  * the historical behaviour) and the injective entry is recorded in
76
76
  * `injectivePairs` instead.
77
77
  */
78
- export function deriveProjectionColumnMap(sourceAttrs, projections) {
78
+ export function deriveProjectionColumnMap(
79
+ // pure helper: no owning node; callers pass raw attrs incl. unit tests, so we
80
+ // keep the array scan rather than migrating to RelationalPlanNode.getAttributeIndex().
81
+ sourceAttrs, projections) {
79
82
  const map = new Map();
80
83
  const injectivePairs = [];
81
84
  // Pass 1: bare column references (highest priority for `map`).
@@ -116,14 +119,43 @@ export function deriveProjectionColumnMap(sourceAttrs, projections) {
116
119
  * Test whether any key in `keys` has all of its columns covered by `eqIndices`.
117
120
  * A covered key means each row in the source side maps to ≤ 1 row in the join's
118
121
  * equi-pair partner, so the partner side's keys survive null-padding (LEFT/RIGHT).
122
+ *
123
+ * The empty key `[]` (a ≤1-row / TableDee side) is unconditional coverage:
124
+ * `[].every(...)` is vacuously true regardless of `eqIndices`, so a ≤1-row side
125
+ * always caps the partner at one matching row. (There is no `k.length > 0`
126
+ * guard — a length-0 key is the single most powerful uniqueness fact.)
119
127
  */
120
128
  function joinPairsCoverKey(keys, eqIndices) {
121
- return keys.some(k => k.length > 0 && k.every(c => eqIndices.has(c.index)));
129
+ return keys.some(k => k.every(c => eqIndices.has(c.index)));
130
+ }
131
+ /** Drop structurally-duplicate keys (e.g. two `[]` entries from both sides being ≤1-row). */
132
+ function dedupeKeys(keys) {
133
+ const seen = new Set();
134
+ const out = [];
135
+ for (const k of keys) {
136
+ const sig = k.map(c => `${c.index}:${c.desc ?? ''}`).join(',');
137
+ if (seen.has(sig))
138
+ continue;
139
+ seen.add(sig);
140
+ out.push(k);
141
+ }
142
+ return out;
122
143
  }
123
144
  /**
124
145
  * Combine unique keys across a join (logical `RelationType.keys` form).
125
146
  *
126
- * - `inner` / `cross`: union of left and right keys (right indices shifted by `leftColumnCount`).
147
+ * Soundness mirrors `analyzeJoinKeyCoverage`: a side's key survives the join
148
+ * only when each of its rows matches ≤ 1 row on the other side — i.e. the
149
+ * equi-pairs cover a unique key of the *opposite* side. An unconditional union
150
+ * would be unsound: a plain cross/inner join duplicates one side's key values
151
+ * for every matching row on the other side (`ta CROSS JOIN tb` repeats `ta`'s
152
+ * PK once per `tb` row, so `ta`'s PK is not a key of the product).
153
+ *
154
+ * - `inner` / `cross`: left keys survive iff a right-side key is covered; right
155
+ * keys (shifted by `leftColumnCount`) survive iff a left-side key is covered.
156
+ * A key=key join covers both, so both survive. A bare cross join covers
157
+ * neither, so the result is `[]` — set-ness of the full product is carried by
158
+ * `RelationType.isSet` instead.
127
159
  * - `left`: if `equiPairs` cover any right-side key, return left keys unchanged
128
160
  * (each left row matches ≤ 1 right row, so left's keys survive). Otherwise `[]`.
129
161
  * - `right`: symmetric — if `equiPairs` cover any left-side key, return right's
@@ -131,37 +163,60 @@ function joinPairsCoverKey(keys, eqIndices) {
131
163
  * - `full`: `[]` (both sides may be null-padded).
132
164
  * - `semi` / `anti`: return left keys (left-only output, no null-padding).
133
165
  *
134
- * `equiPairs` is optional; when omitted, the LEFT/RIGHT branches conservatively
135
- * return `[]` (the previous behaviour).
166
+ * **Empty-key (≤1-row) coverage.** A length-0 entry in either side's `keys`
167
+ * means that side is ≤1-row. `joinPairsCoverKey` treats it as unconditional
168
+ * coverage (a ≤1-row side caps the partner at one match regardless of
169
+ * `equiPairs`), so the LEFT/RIGHT/inner/cross branches still run their coverage
170
+ * check with an empty eq-set — they no longer early-return `[]` just because
171
+ * `equiPairs` is empty. When *both* sides are ≤1-row, the (inner/cross/left/
172
+ * right) result advertises the empty key `[]`, i.e. the join is itself ≤1-row.
173
+ * Full outer stays `[]` (two non-matching ≤1-row sides produce two padded rows).
174
+ * This is the logical-key layer only; FD-provable ≤1-row-ness flows through the
175
+ * physical path (`analyzeJoinKeyCoverage` → `propagateJoinFds`).
176
+ *
177
+ * `equiPairs` is optional; when omitted, the LEFT/RIGHT and inner/cross branches
178
+ * only preserve keys via an empty-key (≤1-row) side, since no equi-pair coverage
179
+ * can be proven.
136
180
  */
137
181
  export function combineJoinKeys(leftKeys, rightKeys, joinType, leftColumnCount, equiPairs) {
138
182
  switch (joinType) {
139
183
  case 'inner':
140
184
  case 'cross': {
141
185
  const result = [];
142
- for (const key of leftKeys) {
143
- result.push(key.map(c => ({ index: c.index, desc: c.desc })));
186
+ const leftEqSet = new Set((equiPairs ?? []).map(p => p.left));
187
+ const rightEqSet = new Set((equiPairs ?? []).map(p => p.right));
188
+ // Left's keys survive only when each left row matches ≤ 1 right row,
189
+ // i.e. the equi-pairs cover a right-side key (or right is ≤1-row).
190
+ if (joinPairsCoverKey(rightKeys, rightEqSet)) {
191
+ for (const key of leftKeys) {
192
+ result.push(key.map(c => ({ index: c.index, desc: c.desc })));
193
+ }
144
194
  }
145
- for (const key of rightKeys) {
146
- result.push(key.map(c => ({ index: c.index + leftColumnCount, desc: c.desc })));
195
+ // Symmetrically for the right side.
196
+ if (joinPairsCoverKey(leftKeys, leftEqSet)) {
197
+ for (const key of rightKeys) {
198
+ result.push(key.map(c => ({ index: c.index + leftColumnCount, desc: c.desc })));
199
+ }
147
200
  }
148
- return result;
201
+ // When both sides are ≤1-row their empty keys both push through above,
202
+ // advertising the join's own empty key; dedupe the redundant pair.
203
+ return dedupeKeys(result);
149
204
  }
150
205
  case 'left': {
151
- if (!equiPairs || equiPairs.length === 0)
152
- return [];
153
- const rightEqSet = new Set(equiPairs.map(p => p.right));
206
+ // No early-return on missing equiPairs: a ≤1-row right side covers
207
+ // regardless of equi-pairs (joinPairsCoverKey recognizes the empty key).
208
+ const rightEqSet = new Set((equiPairs ?? []).map(p => p.right));
154
209
  if (!joinPairsCoverKey(rightKeys, rightEqSet))
155
210
  return [];
156
- return leftKeys.map(key => key.map(c => ({ index: c.index, desc: c.desc })));
211
+ // left's keys survive; if left is also ≤1-row its empty key carries here,
212
+ // advertising the join's ≤1-row-ness when both sides are ≤1-row.
213
+ return dedupeKeys(leftKeys.map(key => key.map(c => ({ index: c.index, desc: c.desc }))));
157
214
  }
158
215
  case 'right': {
159
- if (!equiPairs || equiPairs.length === 0)
160
- return [];
161
- const leftEqSet = new Set(equiPairs.map(p => p.left));
216
+ const leftEqSet = new Set((equiPairs ?? []).map(p => p.left));
162
217
  if (!joinPairsCoverKey(leftKeys, leftEqSet))
163
218
  return [];
164
- return rightKeys.map(key => key.map(c => ({ index: c.index + leftColumnCount, desc: c.desc })));
219
+ return dedupeKeys(rightKeys.map(key => key.map(c => ({ index: c.index + leftColumnCount, desc: c.desc }))));
165
220
  }
166
221
  case 'semi':
167
222
  case 'anti':
@@ -192,16 +247,30 @@ export function combineJoinKeys(leftKeys, rightKeys, joinType, leftColumnCount,
192
247
  export function analyzeJoinKeyCoverage(joinType, leftPhys, rightPhys, leftType, rightType, equiPairs, leftRows, rightRows, leftColumnCount) {
193
248
  const leftColCount = leftType?.columns.length ?? leftColumnCount;
194
249
  const rightColCount = rightType?.columns.length ?? 0;
195
- // Logical keys on each side, as column-index arrays.
250
+ // Logical keys on each side, as column-index arrays. Used only as the
251
+ // fallback when the side's logical type is unavailable (param allows
252
+ // `undefined`); otherwise the unified `keysOf` / `isUnique` surface is read.
196
253
  const leftLogicalKeys = (leftType?.keys ?? []).map(k => k.map(c => c.index));
197
254
  const rightLogicalKeys = (rightType?.keys ?? []).map(k => k.map(c => c.index));
255
+ // Unified uniqueness read surface per side: declared keys + FD-derived keys +
256
+ // the empty (≤1-row) key, all in one place. Built only when the logical type
257
+ // is present; `keysOf`/`isUnique` need it for column count and declared keys.
258
+ const leftRel = leftType ? { getType: () => leftType, physical: leftPhys } : undefined;
259
+ const rightRel = rightType ? { getType: () => rightType, physical: rightPhys } : undefined;
260
+ // Surviving keys on each side, sourced from `keysOf` (declared + FD-derived +
261
+ // empty key) so FD-only keys flow through; falls back to logical keys when the
262
+ // type is unavailable. Right indices are shifted by `leftColumnCount`.
263
+ const leftKeys = leftRel ? keysOf(leftRel).map(k => k.slice()) : leftLogicalKeys;
264
+ const rightKeysShifted = (rightRel ? keysOf(rightRel).map(k => k.slice()) : rightLogicalKeys)
265
+ .map(k => k.map(i => i + leftColumnCount));
198
266
  if (joinType === 'semi' || joinType === 'anti') {
199
267
  // Left's keys survive (output is the left shape). Preserved-key list mirrors
200
- // left's logical keys; the propagateJoinFds layer materializes them as FDs.
268
+ // left's keys; the propagateJoinFds layer materializes them as FDs. A ≤1-row
269
+ // left side carries its empty key here, so the semi/anti output stays ≤1-row.
201
270
  return {
202
271
  leftKeyCovered: false,
203
272
  rightKeyCovered: false,
204
- preservedKeys: leftLogicalKeys.map(k => k.slice()),
273
+ preservedKeys: leftKeys.map(k => k.slice()),
205
274
  estimatedRows: undefined,
206
275
  };
207
276
  }
@@ -213,17 +282,19 @@ export function analyzeJoinKeyCoverage(joinType, leftPhys, rightPhys, leftType,
213
282
  function coversLogicalKey(keys, eqSet) {
214
283
  return keys.some(key => key.length > 0 && key.every(idx => eqSet.has(idx)));
215
284
  }
216
- const leftKeyCovered = coversLogicalKey(leftLogicalKeys, leftEqSet) ||
217
- isSuperkey(leftEqSet, leftPhys?.fds, leftColCount);
218
- const rightKeyCovered = coversLogicalKey(rightLogicalKeys, rightEqSet) ||
219
- isSuperkey(rightEqSet, rightPhys?.fds, rightColCount);
220
- // Surviving "physical" keys on each side: union of logical keys and any
221
- // non-trivial key sets the FD closure makes apparent. We use logical keys
222
- // (the schema/type-level claim) they're the source of truth for "this
223
- // relation has a key on these columns". Physical FDs may have additional
224
- // implied keys but enumerating them costs more than it saves here.
225
- const leftKeys = leftLogicalKeys;
226
- const rightKeysShifted = rightLogicalKeys.map(k => k.map(i => i + leftColumnCount));
285
+ // A side's key is "covered" when the equi-pairs are a superkey of it. The
286
+ // single `isUnique` call folds the old `coversLogicalKey || isSuperkey` pair
287
+ // AND adds empty-key recognition: a ≤1-row side has `[]` in `keysOf`, and
288
+ // `[] ⊆ anything`, so `isUnique` reports it covered regardless of equi-pairs.
289
+ const leftKeyCovered = leftRel
290
+ ? isUnique(equiPairs.map(p => p.left), leftRel)
291
+ : coversLogicalKey(leftLogicalKeys, leftEqSet) || isSuperkey(leftEqSet, leftPhys?.fds, leftColCount);
292
+ const rightKeyCovered = rightRel
293
+ ? isUnique(equiPairs.map(p => p.right), rightRel)
294
+ : coversLogicalKey(rightLogicalKeys, rightEqSet) || isSuperkey(rightEqSet, rightPhys?.fds, rightColCount);
295
+ // ≤1-row sides: `isUnique([], rel)` is true iff the relation is at-most-one-row.
296
+ const leftIsSingleton = leftRel ? isUnique([], leftRel) : false;
297
+ const rightIsSingleton = rightRel ? isUnique([], rightRel) : false;
227
298
  const preservedKeys = [];
228
299
  let estimatedRows = undefined;
229
300
  if (joinType === 'inner' || joinType === 'cross') {
@@ -231,6 +302,10 @@ export function analyzeJoinKeyCoverage(joinType, leftPhys, rightPhys, leftType,
231
302
  preservedKeys.push(...leftKeys.map(k => k.slice()));
232
303
  if (leftKeyCovered)
233
304
  preservedKeys.push(...rightKeysShifted.map(k => k.slice()));
305
+ // Both sides ≤1-row ⇒ the join is ≤1-row: emit the empty key, which
306
+ // `propagateJoinFds` → `superkeyToFd([])` materializes as `∅ → all_cols`.
307
+ if (leftIsSingleton && rightIsSingleton)
308
+ preservedKeys.push([]);
234
309
  // Cardinality reduction: when a key is covered, result rows ≤ the other side's rows
235
310
  if (rightKeyCovered && typeof leftRows === 'number')
236
311
  estimatedRows = leftRows;
@@ -247,6 +322,9 @@ export function analyzeJoinKeyCoverage(joinType, leftPhys, rightPhys, leftType,
247
322
  if (typeof leftRows === 'number')
248
323
  estimatedRows = leftRows;
249
324
  }
325
+ // Both sides ≤1-row ⇒ ≤1 matching row per ≤1 left row ⇒ join is ≤1-row.
326
+ if (leftIsSingleton && rightIsSingleton)
327
+ preservedKeys.push([]);
250
328
  }
251
329
  else if (joinType === 'right') {
252
330
  // Symmetric to LEFT.
@@ -255,6 +333,8 @@ export function analyzeJoinKeyCoverage(joinType, leftPhys, rightPhys, leftType,
255
333
  if (typeof rightRows === 'number')
256
334
  estimatedRows = rightRows;
257
335
  }
336
+ if (leftIsSingleton && rightIsSingleton)
337
+ preservedKeys.push([]);
258
338
  }
259
339
  return { leftKeyCovered, rightKeyCovered, preservedKeys, estimatedRows };
260
340
  }
@@ -1 +1 @@
1
- {"version":3,"file":"key-utils.js","sourceRoot":"","sources":["../../../../src/planner/util/key-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-utils.js","sourceRoot":"","sources":["../../../../src/planner/util/key-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan-validator.d.ts","sourceRoot":"","sources":["../../../../src/planner/validation/plan-validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAoB,QAAQ,EAA2B,MAAM,uBAAuB,CAAC;AAS5F;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,oEAAoE;IACpE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAE,iBAAsB,GAAG,IAAI,CAc1F;AAoRD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CASrD"}
1
+ {"version":3,"file":"plan-validator.d.ts","sourceRoot":"","sources":["../../../../src/planner/validation/plan-validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAoB,QAAQ,EAA2B,MAAM,uBAAuB,CAAC;AAU5F;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,oEAAoE;IACpE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAE,iBAAsB,GAAG,IAAI,CAuB1F;AAmQD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CASrD"}
@@ -7,6 +7,7 @@ import { PlanNodeType } from '../nodes/plan-node-type.js';
7
7
  import { QuereusError } from '../../common/errors.js';
8
8
  import { StatusCode } from '../../common/types.js';
9
9
  import { validateLog } from '../debug/logger-utils.js';
10
+ import { computeAttributeProvenance } from '../analysis/attribute-provenance.js';
10
11
  const log = validateLog();
11
12
  /**
12
13
  * Validate a physical plan tree before emission
@@ -23,6 +24,13 @@ export function validatePhysicalTree(root, options = {}) {
23
24
  };
24
25
  log('Starting plan validation for tree rooted at %s', root.nodeType);
25
26
  const context = new ValidationContext(opts);
27
+ // Derive the attribute-provenance surface once. This both (a) detects
28
+ // duplicate origins (throws) and (b) yields the complete attrId → origin map
29
+ // regardless of traversal order, so the in-scope check below is order-free
30
+ // and forwarding (Set/Join/EagerPrefetch/AsyncGather/Project) never trips it.
31
+ if (opts.validateAttributes) {
32
+ context.provenance = computeAttributeProvenance(root);
33
+ }
26
34
  validateNode(root, context, []);
27
35
  log('Plan validation completed successfully');
28
36
  }
@@ -31,29 +39,17 @@ export function validatePhysicalTree(root, options = {}) {
31
39
  */
32
40
  class ValidationContext {
33
41
  options;
34
- /** All attribute IDs seen so far */
35
- attributeIds = new Set();
36
- /** Map of attribute ID to node path for debugging */
37
- attributeLocations = new Map();
42
+ /** attrId originating node, precomputed once when validateAttributes is on. */
43
+ provenance;
38
44
  constructor(options) {
39
45
  this.options = options;
40
46
  }
41
47
  /**
42
- * Register an attribute ID and check for duplicates
43
- */
44
- registerAttribute(attrId, nodePath) {
45
- if (this.attributeIds.has(attrId)) {
46
- const existingLocation = this.attributeLocations.get(attrId);
47
- throw new QuereusError(`Duplicate attribute ID ${attrId} found at ${nodePath} (previously seen at ${existingLocation})`, StatusCode.INTERNAL);
48
- }
49
- this.attributeIds.add(attrId);
50
- this.attributeLocations.set(attrId, nodePath);
51
- }
52
- /**
53
- * Check if an attribute ID exists
48
+ * Check if an attribute ID is in scope anywhere in the tree (originated or
49
+ * forwarded). Matches the prior global-set scoping semantics.
54
50
  */
55
51
  hasAttribute(attrId) {
56
- return this.attributeIds.has(attrId);
52
+ return this.provenance?.has(attrId) ?? false;
57
53
  }
58
54
  }
59
55
  /**
@@ -148,12 +144,14 @@ function validateRelationalNode(node, context, nodePath) {
148
144
  if (needsAttributes && attributes.length === 0) {
149
145
  log('Warning: Relational node %s has no attributes at %s', node.nodeType, nodePath);
150
146
  }
151
- // Register all attribute IDs and check for duplicates within this node
147
+ // Per-attribute shape checks. Duplicate-origin detection lives in the
148
+ // precomputed provenance surface (computeAttributeProvenance), not here —
149
+ // attribute-preserving parents (Set/Join/EagerPrefetch/AsyncGather) forward
150
+ // child ids verbatim and must not be flagged as duplicates.
152
151
  for (const attr of attributes) {
153
152
  if (typeof attr.id !== 'number') {
154
153
  throw new QuereusError(`Invalid attribute ID ${attr.id} (must be number) at ${nodePath}`, StatusCode.INTERNAL);
155
154
  }
156
- context.registerAttribute(attr.id, nodePath);
157
155
  // Validate attribute properties
158
156
  if (!attr.name || typeof attr.name !== 'string') {
159
157
  throw new QuereusError(`Attribute ${attr.id} has invalid name "${attr.name}" at ${nodePath}`, StatusCode.INTERNAL);
@@ -1 +1 @@
1
- {"version":3,"file":"plan-validator.js","sourceRoot":"","sources":["../../../../src/planner/validation/plan-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-validator.js","sourceRoot":"","sources":["../../../../src/planner/validation/plan-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * A counting semaphore with a FIFO waiter queue, used to bound the number of
3
+ * concurrent in-flight branch lookups across *all* in-flight outer rows in a
4
+ * batched fan-out lookup join.
5
+ *
6
+ * Mirrors the waiter discipline in {@link BoundedPrefetchBuffer}
7
+ * (`runtime/emit/eager-prefetch.ts`) but as a counting semaphore rather than a
8
+ * 1-slot buffer:
9
+ *
10
+ * - {@link acquire} resolves immediately when a permit is free, otherwise
11
+ * enqueues a waiter that resolves once a permit is handed to it.
12
+ * - The release callback returned by {@link acquire} is **single-shot**: a
13
+ * second call is a no-op. On release the permit is handed directly to the
14
+ * head of the waiter queue (preserving FIFO) or returned to the pool when no
15
+ * waiter is queued.
16
+ *
17
+ * Exported for unit testing — production callers go through the batched
18
+ * fan-out lookup join driver.
19
+ */
20
+ export declare class AsyncSemaphore {
21
+ private available;
22
+ private readonly waiters;
23
+ constructor(permits: number);
24
+ /** Number of currently-available permits (for tests/diagnostics). */
25
+ get availablePermits(): number;
26
+ /** Number of acquirers currently blocked waiting for a permit. */
27
+ get waiterCount(): number;
28
+ /**
29
+ * Acquire one permit, resolving with a single-shot release function. When no
30
+ * permit is free the returned promise resolves once a permit is handed to
31
+ * this acquirer in FIFO order.
32
+ */
33
+ acquire(): Promise<() => void>;
34
+ private makeRelease;
35
+ }
36
+ //# sourceMappingURL=async-semaphore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-semaphore.d.ts","sourceRoot":"","sources":["../../../src/runtime/async-semaphore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,cAAc;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAErC,OAAO,EAAE,MAAM;IAO3B,qEAAqE;IACrE,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,kEAAkE;IAClE,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;IAa9B,OAAO,CAAC,WAAW;CAenB"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * A counting semaphore with a FIFO waiter queue, used to bound the number of
3
+ * concurrent in-flight branch lookups across *all* in-flight outer rows in a
4
+ * batched fan-out lookup join.
5
+ *
6
+ * Mirrors the waiter discipline in {@link BoundedPrefetchBuffer}
7
+ * (`runtime/emit/eager-prefetch.ts`) but as a counting semaphore rather than a
8
+ * 1-slot buffer:
9
+ *
10
+ * - {@link acquire} resolves immediately when a permit is free, otherwise
11
+ * enqueues a waiter that resolves once a permit is handed to it.
12
+ * - The release callback returned by {@link acquire} is **single-shot**: a
13
+ * second call is a no-op. On release the permit is handed directly to the
14
+ * head of the waiter queue (preserving FIFO) or returned to the pool when no
15
+ * waiter is queued.
16
+ *
17
+ * Exported for unit testing — production callers go through the batched
18
+ * fan-out lookup join driver.
19
+ */
20
+ export class AsyncSemaphore {
21
+ available;
22
+ waiters = [];
23
+ constructor(permits) {
24
+ if (!Number.isInteger(permits) || permits < 1) {
25
+ throw new RangeError(`AsyncSemaphore: permits must be a positive integer, got ${permits}`);
26
+ }
27
+ this.available = permits;
28
+ }
29
+ /** Number of currently-available permits (for tests/diagnostics). */
30
+ get availablePermits() {
31
+ return this.available;
32
+ }
33
+ /** Number of acquirers currently blocked waiting for a permit. */
34
+ get waiterCount() {
35
+ return this.waiters.length;
36
+ }
37
+ /**
38
+ * Acquire one permit, resolving with a single-shot release function. When no
39
+ * permit is free the returned promise resolves once a permit is handed to
40
+ * this acquirer in FIFO order.
41
+ */
42
+ acquire() {
43
+ if (this.available > 0) {
44
+ this.available--;
45
+ return Promise.resolve(this.makeRelease());
46
+ }
47
+ return new Promise(resolve => {
48
+ // The waiter is handed a fresh single-shot release when a permit
49
+ // becomes available; the permit count stays "consumed" across the
50
+ // handoff (it is never returned to the pool then re-taken).
51
+ this.waiters.push(() => resolve(this.makeRelease()));
52
+ });
53
+ }
54
+ makeRelease() {
55
+ let released = false;
56
+ return () => {
57
+ if (released)
58
+ return; // double-release is a no-op
59
+ released = true;
60
+ const next = this.waiters.shift();
61
+ if (next) {
62
+ // Hand the permit directly to the head waiter — do NOT return it to
63
+ // the pool, or a racing acquire() could steal it ahead of the queue.
64
+ next();
65
+ }
66
+ else {
67
+ this.available++;
68
+ }
69
+ };
70
+ }
71
+ }
72
+ //# sourceMappingURL=async-semaphore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-semaphore.js","sourceRoot":"","sources":["../../../src/runtime/async-semaphore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,cAAc;IAClB,SAAS,CAAS;IACT,OAAO,GAAsB,EAAE,CAAC;IAEjD,YAAY,OAAe;QAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,UAAU,CAAC,2DAA2D,OAAO,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,qEAAqE;IACrE,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED,kEAAkE;IAClE,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,OAAO;QACN,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,OAAO,CAAa,OAAO,CAAC,EAAE;YACxC,iEAAiE;YACjE,kEAAkE;YAClE,4DAA4D;YAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,WAAW;QAClB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,OAAO,GAAG,EAAE;YACX,IAAI,QAAQ;gBAAE,OAAO,CAAC,4BAA4B;YAClD,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,IAAI,EAAE,CAAC;gBACV,oEAAoE;gBACpE,qEAAqE;gBACrE,IAAI,EAAE,CAAC;YACR,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,CAAC;QACF,CAAC,CAAC;IACH,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"deferred-constraint-queue.d.ts","sourceRoot":"","sources":["../../../src/runtime/deferred-constraint-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAY,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAOpD,MAAM,WAAW,qBAAqB;IACrC,GAAG,EAAE,GAAG,CAAC;IACT,UAAU,EAAE,aAAa,CAAC;IAC1B,SAAS,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,WAAW,CAAC;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,iBAAiB,CAAC,EAAE,aAAa,CAAC;CAClC;AAID,qBAAa,uBAAuB;IAIvB,OAAO,CAAC,QAAQ,CAAC,EAAE;IAH/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwC;IAChE,OAAO,CAAC,MAAM,CAAmC;gBAEpB,EAAE,EAAE,QAAQ;IAEzC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE,aAAa,GAAG,IAAI;IAiB1N,UAAU,IAAI,IAAI;IAIlB,aAAa,IAAI,IAAI;IAIrB,YAAY,IAAI,IAAI;IAOpB,KAAK,IAAI,IAAI;IAKP,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;YAyBxB,aAAa;IAoB3B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,QAAQ;IA2BhB,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,cAAc;CA2BtB"}
1
+ {"version":3,"file":"deferred-constraint-queue.d.ts","sourceRoot":"","sources":["../../../src/runtime/deferred-constraint-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAY,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAQpD,MAAM,WAAW,qBAAqB;IACrC,GAAG,EAAE,GAAG,CAAC;IACT,UAAU,EAAE,aAAa,CAAC;IAC1B,SAAS,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,WAAW,CAAC;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,iBAAiB,CAAC,EAAE,aAAa,CAAC;CAClC;AAID,qBAAa,uBAAuB;IAIvB,OAAO,CAAC,QAAQ,CAAC,EAAE;IAH/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwC;IAChE,OAAO,CAAC,MAAM,CAAmC;gBAEpB,EAAE,EAAE,QAAQ;IAEzC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE,aAAa,GAAG,IAAI;IAiB1N,UAAU,IAAI,IAAI;IAIlB,aAAa,IAAI,IAAI;IAIrB,YAAY,IAAI,IAAI;IAOpB,KAAK,IAAI,IAAI;IAKP,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;YAyBxB,aAAa;IAoB3B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,QAAQ;IA2BhB,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,cAAc;CA2BtB"}
@@ -1,6 +1,7 @@
1
1
  import { QuereusError } from '../common/errors.js';
2
2
  import { StatusCode } from '../common/types.js';
3
- import { createRowSlot, RowContextMap } from './context-helpers.js';
3
+ import { createRowSlot } from './context-helpers.js';
4
+ import { createStrictRowContextMap, wrapTableContextsStrict } from './strict-fork.js';
4
5
  import { composeCombinedDescriptor } from './descriptor-helpers.js';
5
6
  export class DeferredConstraintQueue {
6
7
  db;
@@ -52,8 +53,8 @@ export class DeferredConstraintQueue {
52
53
  db: this.db,
53
54
  stmt: undefined,
54
55
  params: {},
55
- context: new RowContextMap(),
56
- tableContexts: new Map(),
56
+ context: createStrictRowContextMap(),
57
+ tableContexts: wrapTableContextsStrict(new Map()),
57
58
  tracer: this.db.getInstructionTracer(),
58
59
  enableMetrics: this.db.options.getBooleanOption('runtime_stats'),
59
60
  };
@@ -1 +1 @@
1
- {"version":3,"file":"deferred-constraint-queue.js","sourceRoot":"","sources":["../../../src/runtime/deferred-constraint-queue.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAcpE,MAAM,OAAO,uBAAuB;IAIN;IAHZ,OAAO,GAA8B,IAAI,GAAG,EAAE,CAAC;IACxD,MAAM,GAAgC,EAAE,CAAC;IAEjD,YAA6B,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;IAAI,CAAC;IAE9C,OAAO,CAAC,SAAiB,EAAE,cAAsB,EAAE,GAAQ,EAAE,UAAyB,EAAE,SAA+C,EAAE,YAAqB,EAAE,UAAgB,EAAE,iBAAiC;QAClN,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC;YAAE,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC1E,WAAW,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC,IAAI,CAAC;YACrC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAS;YACvB,UAAU;YACV,SAAS;YACT,cAAc;YACd,YAAY;YACZ,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAS,CAAC,CAAC,CAAC,SAAS;YAC9D,iBAAiB;SACjB,CAAC,CAAC;IACJ,CAAC;IAED,UAAU;QACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,YAAY;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,eAAe;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE,OAAO;QAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACtD,MAAM,UAAU,GAAmB;YAClC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,IAAI,aAAa,EAAE;YAC5B,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,oBAAoB,EAAE;YACtC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC;SAChE,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,KAAK,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC;gBACrC,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;oBAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;oBACrF,UAAU,CAAC,gBAAgB,GAAG,UAAU,CAAC;oBACzC,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC7C,CAAC;YACF,CAAC;QACF,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,UAA0B,EAAE,KAA4B;QACnF,8DAA8D;QAC9D,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QACzF,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,iBAAiB;YACvE,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,UAAU,CAAC;YACtE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QAGpB,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC7D,IAAI,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,UAAU,CAAa,CAAC;YAC5D,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,YAAY,CAAC,4BAA4B,KAAK,CAAC,cAAc,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;YACnG,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;IACF,CAAC;IAEO,cAAc;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACpF,CAAC;IAEO,UAAU;QACjB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IAEO,QAAQ;QACf,MAAM,KAAK,GAA8B,IAAI,GAAG,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,CAAC,MAAiC,EAAE,EAAE;YACpD,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,MAAM,EAAE,CAAC;gBAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC7D,MAAM,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;gBACjD,KAAK,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC;oBAClD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC;wBAAE,iBAAiB,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;oBACtF,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACjE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAS;wBAC7B,UAAU,EAAE,KAAK,CAAC,UAAU;wBAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,cAAc,EAAE,KAAK,CAAC,cAAc;wBACpC,YAAY,EAAE,KAAK,CAAC,YAAY;wBAChC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAS,CAAC,CAAC,CAAC,SAAS;wBAC1E,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;qBAC1C,CAAC,CAAC,CAAC,CAAC;gBACN,CAAC;YACF,CAAC;QACF,CAAC,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,MAAiC,EAAE,MAAiC;QACjF,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,MAAM,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YAC/D,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;YAChD,KAAK,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC;gBAClD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC;oBAAE,eAAe,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBAClF,eAAe,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YACpD,CAAC;QACF,CAAC;IACF,CAAC;IAEO,cAAc,CAAC,WAAqC,EAAE,QAAgB,EAAE,WAAoB;QACnG,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC;YAC3E,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,MAAM,CAAC;YACf,CAAC;YACD,MAAM,IAAI,YAAY,CACrB,6DAA6D,WAAW,cAAc,QAAQ,EAAE,EAChG,UAAU,CAAC,QAAQ,CACnB,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7G,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC9C,OAAO,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,MAAM,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACnD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,IAAI,YAAY,CACrB,gFAAgF,QAAQ,EAAE,EAC1F,UAAU,CAAC,QAAQ,CACnB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;CACD"}
1
+ {"version":3,"file":"deferred-constraint-queue.js","sourceRoot":"","sources":["../../../src/runtime/deferred-constraint-queue.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"delta-executor.d.ts","sourceRoot":"","sources":["../../../src/runtime/delta-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delta-executor.d.ts","sourceRoot":"","sources":["../../../src/runtime/delta-executor.ts"],"names":[],"mappings":"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"}