@quereus/quereus 3.1.1 → 3.2.1

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 (177) hide show
  1. package/dist/src/core/database-assertions.js +3 -3
  2. package/dist/src/core/database-assertions.js.map +1 -1
  3. package/dist/src/core/database.d.ts +17 -3
  4. package/dist/src/core/database.d.ts.map +1 -1
  5. package/dist/src/core/database.js +79 -6
  6. package/dist/src/core/database.js.map +1 -1
  7. package/dist/src/core/statement.js +3 -3
  8. package/dist/src/core/statement.js.map +1 -1
  9. package/dist/src/emit/ast-stringify.d.ts +0 -1
  10. package/dist/src/emit/ast-stringify.d.ts.map +1 -1
  11. package/dist/src/emit/ast-stringify.js +187 -78
  12. package/dist/src/emit/ast-stringify.js.map +1 -1
  13. package/dist/src/index.d.ts +2 -1
  14. package/dist/src/index.d.ts.map +1 -1
  15. package/dist/src/index.js +1 -0
  16. package/dist/src/index.js.map +1 -1
  17. package/dist/src/parser/ast.d.ts +0 -4
  18. package/dist/src/parser/ast.d.ts.map +1 -1
  19. package/dist/src/parser/parser.d.ts +9 -1
  20. package/dist/src/parser/parser.d.ts.map +1 -1
  21. package/dist/src/parser/parser.js +33 -20
  22. package/dist/src/parser/parser.js.map +1 -1
  23. package/dist/src/parser/visitor.js +1 -1
  24. package/dist/src/parser/visitor.js.map +1 -1
  25. package/dist/src/planner/analysis/attribute-provenance.d.ts +45 -0
  26. package/dist/src/planner/analysis/attribute-provenance.d.ts.map +1 -0
  27. package/dist/src/planner/analysis/attribute-provenance.js +81 -0
  28. package/dist/src/planner/analysis/attribute-provenance.js.map +1 -0
  29. package/dist/src/planner/analysis/const-evaluator.js +5 -5
  30. package/dist/src/planner/analysis/const-evaluator.js.map +1 -1
  31. package/dist/src/planner/building/select-window.d.ts.map +1 -1
  32. package/dist/src/planner/building/select-window.js +54 -21
  33. package/dist/src/planner/building/select-window.js.map +1 -1
  34. package/dist/src/planner/cache/correlation-detector.d.ts +7 -0
  35. package/dist/src/planner/cache/correlation-detector.d.ts.map +1 -1
  36. package/dist/src/planner/cache/correlation-detector.js +34 -2
  37. package/dist/src/planner/cache/correlation-detector.js.map +1 -1
  38. package/dist/src/planner/nodes/async-gather-node.d.ts +169 -0
  39. package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -0
  40. package/dist/src/planner/nodes/async-gather-node.js +488 -0
  41. package/dist/src/planner/nodes/async-gather-node.js.map +1 -0
  42. package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
  43. package/dist/src/planner/nodes/bloom-join-node.js +8 -7
  44. package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
  45. package/dist/src/planner/nodes/eager-prefetch-node.d.ts +47 -0
  46. package/dist/src/planner/nodes/eager-prefetch-node.d.ts.map +1 -0
  47. package/dist/src/planner/nodes/eager-prefetch-node.js +96 -0
  48. package/dist/src/planner/nodes/eager-prefetch-node.js.map +1 -0
  49. package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts +150 -0
  50. package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts.map +1 -0
  51. package/dist/src/planner/nodes/fanout-lookup-join-node.js +265 -0
  52. package/dist/src/planner/nodes/fanout-lookup-join-node.js.map +1 -0
  53. package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
  54. package/dist/src/planner/nodes/merge-join-node.js +8 -7
  55. package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
  56. package/dist/src/planner/nodes/plan-node-type.d.ts +3 -0
  57. package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
  58. package/dist/src/planner/nodes/plan-node-type.js +3 -0
  59. package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
  60. package/dist/src/planner/nodes/plan-node.d.ts +36 -0
  61. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  62. package/dist/src/planner/nodes/plan-node.js +26 -0
  63. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  64. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  65. package/dist/src/planner/nodes/reference.js +36 -1
  66. package/dist/src/planner/nodes/reference.js.map +1 -1
  67. package/dist/src/planner/optimizer-tuning.d.ts +107 -0
  68. package/dist/src/planner/optimizer-tuning.d.ts.map +1 -1
  69. package/dist/src/planner/optimizer-tuning.js +43 -0
  70. package/dist/src/planner/optimizer-tuning.js.map +1 -1
  71. package/dist/src/planner/optimizer.d.ts.map +1 -1
  72. package/dist/src/planner/optimizer.js +91 -0
  73. package/dist/src/planner/optimizer.js.map +1 -1
  74. package/dist/src/planner/rules/access/rule-monotonic-range-access.d.ts.map +1 -1
  75. package/dist/src/planner/rules/access/rule-monotonic-range-access.js +1 -6
  76. package/dist/src/planner/rules/access/rule-monotonic-range-access.js.map +1 -1
  77. package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts +74 -0
  78. package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts.map +1 -0
  79. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +139 -0
  80. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js.map +1 -0
  81. package/dist/src/planner/rules/join/rule-fanout-lookup-join.d.ts +58 -0
  82. package/dist/src/planner/rules/join/rule-fanout-lookup-join.d.ts.map +1 -0
  83. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +592 -0
  84. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -0
  85. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.d.ts +43 -0
  86. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.d.ts.map +1 -0
  87. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.js +115 -0
  88. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.js.map +1 -0
  89. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.d.ts +102 -0
  90. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.d.ts.map +1 -0
  91. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js +545 -0
  92. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js.map +1 -0
  93. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.d.ts +45 -0
  94. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.d.ts.map +1 -0
  95. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.js +78 -0
  96. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.js.map +1 -0
  97. package/dist/src/planner/scopes/param.d.ts.map +1 -1
  98. package/dist/src/planner/scopes/param.js +13 -11
  99. package/dist/src/planner/scopes/param.js.map +1 -1
  100. package/dist/src/planner/type-utils.js +1 -1
  101. package/dist/src/planner/type-utils.js.map +1 -1
  102. package/dist/src/planner/validation/plan-validator.d.ts.map +1 -1
  103. package/dist/src/planner/validation/plan-validator.js +17 -19
  104. package/dist/src/planner/validation/plan-validator.js.map +1 -1
  105. package/dist/src/runtime/async-semaphore.d.ts +36 -0
  106. package/dist/src/runtime/async-semaphore.d.ts.map +1 -0
  107. package/dist/src/runtime/async-semaphore.js +72 -0
  108. package/dist/src/runtime/async-semaphore.js.map +1 -0
  109. package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
  110. package/dist/src/runtime/deferred-constraint-queue.js +4 -3
  111. package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
  112. package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
  113. package/dist/src/runtime/emit/add-constraint.js +51 -37
  114. package/dist/src/runtime/emit/add-constraint.js.map +1 -1
  115. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  116. package/dist/src/runtime/emit/alter-table.js +0 -2
  117. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  118. package/dist/src/runtime/emit/async-gather.d.ts +77 -0
  119. package/dist/src/runtime/emit/async-gather.d.ts.map +1 -0
  120. package/dist/src/runtime/emit/async-gather.js +234 -0
  121. package/dist/src/runtime/emit/async-gather.js.map +1 -0
  122. package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
  123. package/dist/src/runtime/emit/bloom-join.js +38 -17
  124. package/dist/src/runtime/emit/bloom-join.js.map +1 -1
  125. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  126. package/dist/src/runtime/emit/dml-executor.js +12 -52
  127. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  128. package/dist/src/runtime/emit/eager-prefetch.d.ts +77 -0
  129. package/dist/src/runtime/emit/eager-prefetch.d.ts.map +1 -0
  130. package/dist/src/runtime/emit/eager-prefetch.js +223 -0
  131. package/dist/src/runtime/emit/eager-prefetch.js.map +1 -0
  132. package/dist/src/runtime/emit/fanout-lookup-join.d.ts +130 -0
  133. package/dist/src/runtime/emit/fanout-lookup-join.d.ts.map +1 -0
  134. package/dist/src/runtime/emit/fanout-lookup-join.js +521 -0
  135. package/dist/src/runtime/emit/fanout-lookup-join.js.map +1 -0
  136. package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
  137. package/dist/src/runtime/emit/schema-declarative.js +28 -2
  138. package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
  139. package/dist/src/runtime/emit/transaction.d.ts.map +1 -1
  140. package/dist/src/runtime/emit/transaction.js +4 -22
  141. package/dist/src/runtime/emit/transaction.js.map +1 -1
  142. package/dist/src/runtime/parallel-driver.d.ts +68 -0
  143. package/dist/src/runtime/parallel-driver.d.ts.map +1 -0
  144. package/dist/src/runtime/parallel-driver.js +233 -0
  145. package/dist/src/runtime/parallel-driver.js.map +1 -0
  146. package/dist/src/runtime/register.d.ts.map +1 -1
  147. package/dist/src/runtime/register.js +9 -0
  148. package/dist/src/runtime/register.js.map +1 -1
  149. package/dist/src/runtime/strict-fork.d.ts +36 -0
  150. package/dist/src/runtime/strict-fork.d.ts.map +1 -0
  151. package/dist/src/runtime/strict-fork.js +125 -0
  152. package/dist/src/runtime/strict-fork.js.map +1 -0
  153. package/dist/src/schema/manager.d.ts.map +1 -1
  154. package/dist/src/schema/manager.js +0 -4
  155. package/dist/src/schema/manager.js.map +1 -1
  156. package/dist/src/util/comparison.d.ts.map +1 -1
  157. package/dist/src/util/comparison.js +11 -1
  158. package/dist/src/util/comparison.js.map +1 -1
  159. package/dist/src/vtab/capabilities.d.ts +26 -0
  160. package/dist/src/vtab/capabilities.d.ts.map +1 -1
  161. package/dist/src/vtab/concurrency.d.ts +29 -0
  162. package/dist/src/vtab/concurrency.d.ts.map +1 -0
  163. package/dist/src/vtab/concurrency.js +47 -0
  164. package/dist/src/vtab/concurrency.js.map +1 -0
  165. package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
  166. package/dist/src/vtab/memory/layer/scan-layer.js +67 -29
  167. package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
  168. package/dist/src/vtab/memory/module.d.ts +21 -0
  169. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  170. package/dist/src/vtab/memory/module.js +23 -0
  171. package/dist/src/vtab/memory/module.js.map +1 -1
  172. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  173. package/dist/src/vtab/memory/table.js +2 -0
  174. package/dist/src/vtab/memory/table.js.map +1 -1
  175. package/dist/src/vtab/module.d.ts +51 -1
  176. package/dist/src/vtab/module.d.ts.map +1 -1
  177. package/package.json +4 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fanout-lookup-join.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/fanout-lookup-join.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAkB,cAAc,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAgD,MAAM,uBAAuB,CAAC;AASrG,2FAA2F;AAC3F,MAAM,MAAM,yBAAyB,GAAG,CAAC,QAAQ,EAAE,cAAc,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC;AAEzF;;;;;GAKG;AACH,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,kFAAkF;IAClF,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,8FAA8F;IAC9F,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAChC;AA6CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAC5C,iBAAiB,EAAE,aAAa,CAAC,4BAA4B,CAAC,EAC9D,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,GAC/B,GAAG,EAAE,CAwCP;AA0BD;;;;;;;;;;;;;;GAcG;AACH,wBAAuB,mBAAmB,CACzC,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,EAC/B,kBAAkB,EAAE,MAAM,EAAE,EAC5B,eAAe,EAAE,aAAa,CAAC,yBAAyB,CAAC,EACzD,iBAAiB,EAAE,aAAa,CAAC,4BAA4B,CAAC,EAC9D,cAAc,EAAE,MAAM,EACtB,MAAM,GAAE,cAAqC,GAC3C,aAAa,CAAC,GAAG,CAAC,CAmCpB;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAuB,0BAA0B,CAChD,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,EAC/B,kBAAkB,EAAE,MAAM,EAAE,EAC5B,eAAe,EAAE,aAAa,CAAC,yBAAyB,CAAC,EACzD,iBAAiB,EAAE,aAAa,CAAC,4BAA4B,CAAC,EAC9D,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,EACzB,MAAM,GAAE,cAAqC,GAC3C,aAAa,CAAC,GAAG,CAAC,CA6OpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CA+DlG"}
@@ -0,0 +1,521 @@
1
+ import { isLeftBranchMode, } from '../../planner/nodes/fanout-lookup-join-node.js';
2
+ import { emitCallFromPlan, emitPlanNode } from '../emitters.js';
3
+ import { ParallelDriver, bumpParentForkCounter, dropParentForkCounter } from '../parallel-driver.js';
4
+ import { AsyncSemaphore } from '../async-semaphore.js';
5
+ import { acquireConnectionLock } from '../../vtab/concurrency.js';
6
+ import { buildRowDescriptor } from '../../util/row-descriptor.js';
7
+ import { createRowSlot } from '../context-helpers.js';
8
+ import { QuereusError } from '../../common/errors.js';
9
+ import { StatusCode } from '../../common/types.js';
10
+ /**
11
+ * Wrap a branch factory in a `acquireConnectionLock` critical section. The
12
+ * lock is acquired on the first pull (since `async function*` bodies don't
13
+ * run until `next()`) and released when the inner iterator completes,
14
+ * throws, or is `return()`-closed.
15
+ */
16
+ function withConnectionLock(factory, lockTarget) {
17
+ return (innerCtx) => (async function* lockedBranch() {
18
+ const release = await acquireConnectionLock(lockTarget);
19
+ try {
20
+ for await (const row of factory(innerCtx)) {
21
+ yield row;
22
+ }
23
+ }
24
+ finally {
25
+ release();
26
+ }
27
+ })();
28
+ }
29
+ /**
30
+ * Resolve each branch factory to the variant the driver will invoke, applying
31
+ * lock wrapping where the branch is not `concurrencySafe`. Branches with no
32
+ * resolvable lock target (no `connectionKey` and no `rctx.activeConnection`)
33
+ * pass through raw — there is nothing to serialize on, so the runtime cannot
34
+ * enforce mutual exclusion.
35
+ */
36
+ function resolveBranchFactories(rctx, factories, descriptors) {
37
+ return factories.map((factory, i) => {
38
+ const desc = descriptors[i];
39
+ if (desc.concurrencySafe)
40
+ return factory;
41
+ const lockTarget = desc.connectionKey ?? rctx.activeConnection;
42
+ if (!lockTarget)
43
+ return factory;
44
+ return withConnectionLock(factory, lockTarget);
45
+ });
46
+ }
47
+ /**
48
+ * Compose one outer row plus its per-branch result buffers into the **list** of
49
+ * wide output rows it contributes — the n-ary Cartesian product across branches,
50
+ * prefixed by the outer row's columns.
51
+ *
52
+ * Per-branch factor rules (a factor is the list of column-slices a branch
53
+ * contributes to the product):
54
+ *
55
+ * - `cross`: one factor entry per buffered row (1:n fan-out). An **empty**
56
+ * buffer is an inner-drop — the whole product collapses to zero rows.
57
+ * - `cross-left`: one factor entry per buffered row (1:n fan-out); an **empty**
58
+ * buffer ⇒ a single NULL-pad factor entry, preserving the outer row (LEFT
59
+ * semantics).
60
+ * - `atMostOne-inner`: empty buffer ⇒ inner-drop (zero rows); else the single
61
+ * row.
62
+ * - `atMostOne-left`: empty buffer ⇒ a single NULL-pad factor entry (LEFT-join
63
+ * semantics); else the single row.
64
+ *
65
+ * The product is emitted left-to-right (outer columns first, then branch 0,
66
+ * branch 1, …) with the right-most branch varying fastest — identical column
67
+ * order and row order to the chain of nested-loop joins this node replaces.
68
+ *
69
+ * `atMostOne-*` branch buffers must carry **at most one** row — that invariant
70
+ * is the caller's responsibility (both drivers assert it before composing);
71
+ * `cross` buffers may carry any number.
72
+ *
73
+ * Returns an empty array when any inner/cross branch dropped the outer row.
74
+ * Shared by {@link runFanOutLookupJoin} and {@link runFanOutLookupJoinBatched}
75
+ * so both compose identically.
76
+ */
77
+ export function composeOuterRows(outerRow, branchBuf, branchDescriptors, padLengths) {
78
+ // Per-branch factor lists. Every factor pushed here has length >= 1, so the
79
+ // product is empty only via an early inner-drop return below.
80
+ const factors = [];
81
+ for (let i = 0; i < branchDescriptors.length; i++) {
82
+ const buf = branchBuf[i];
83
+ if (buf.length === 0) {
84
+ if (isLeftBranchMode(branchDescriptors[i].mode)) {
85
+ // atMostOne-left or cross-left: preserve the outer row with NULLs.
86
+ factors.push([new Array(padLengths[i]).fill(null)]);
87
+ }
88
+ else {
89
+ // atMostOne-inner or cross with a zero-row match ⇒ drop the outer row.
90
+ return [];
91
+ }
92
+ }
93
+ else {
94
+ // cross contributes every row; atMostOne-* contributes its single row.
95
+ factors.push(buf);
96
+ }
97
+ }
98
+ // Iterative odometer over the factor arrays — right-most factor varies
99
+ // fastest, so the outer-most branch is the outer loop (nested-loop order).
100
+ const result = [];
101
+ const indices = new Array(factors.length).fill(0);
102
+ for (;;) {
103
+ const composed = [...outerRow];
104
+ for (let i = 0; i < factors.length; i++) {
105
+ const slice = factors[i][indices[i]];
106
+ for (let k = 0; k < slice.length; k++)
107
+ composed.push(slice[k]);
108
+ }
109
+ result.push(composed);
110
+ let j = factors.length - 1;
111
+ for (; j >= 0; j--) {
112
+ if (++indices[j] < factors[j].length)
113
+ break;
114
+ indices[j] = 0;
115
+ }
116
+ if (j < 0)
117
+ break;
118
+ }
119
+ return result;
120
+ }
121
+ /** True when the branch's mode caps its per-outer-row output at one row. */
122
+ function isAtMostOne(mode) {
123
+ return mode === 'atMostOne-left' || mode === 'atMostOne-inner';
124
+ }
125
+ /**
126
+ * Enforce the at-most-one-per-branch invariant against collected buffers,
127
+ * scoped to `atMostOne-*` branches only (`cross` branches are exempt). Throws
128
+ * {@link QuereusError} with {@link StatusCode.CONSTRAINT} on violation.
129
+ */
130
+ function assertAtMostOne(branchBuf, branchDescriptors) {
131
+ for (let i = 0; i < branchDescriptors.length; i++) {
132
+ if (isAtMostOne(branchDescriptors[i].mode) && branchBuf[i].length > 1) {
133
+ throw new QuereusError(`FanOutLookupJoin: branch ${i} produced more than one row for outer row (got ${branchBuf[i].length})`, StatusCode.CONSTRAINT);
134
+ }
135
+ }
136
+ }
137
+ /**
138
+ * Drive a fan-out lookup join for one runtime invocation: for each outer row,
139
+ * fork N independent {@link RuntimeContext} views, invoke the N branch
140
+ * factories concurrently via {@link ParallelDriver.drive}, collect each
141
+ * branch's at-most-one result row, validate the `atMostOne` invariant, and
142
+ * yield the composed wide row (or drop the outer row when any
143
+ * `atMostOne-inner` branch returned zero rows).
144
+ *
145
+ * The outer row's slot is installed on `rctx.context` *before* forking so
146
+ * that {@link ParallelDriver.fork}'s parent-snapshot semantics propagate the
147
+ * binding into every branch's forked context.
148
+ *
149
+ * Exported for direct unit testing — production callers go through
150
+ * {@link emitFanOutLookupJoin}.
151
+ */
152
+ export async function* runFanOutLookupJoin(rctx, outerSource, outerRowDescriptor, branchFactories, branchDescriptors, concurrencyCap, driver = new ParallelDriver()) {
153
+ if (branchFactories.length !== branchDescriptors.length) {
154
+ throw new RangeError(`runFanOutLookupJoin: branchFactories length (${branchFactories.length}) !== branchDescriptors length (${branchDescriptors.length})`);
155
+ }
156
+ if (!Number.isInteger(concurrencyCap) || concurrencyCap < 1) {
157
+ throw new RangeError(`runFanOutLookupJoin: concurrencyCap must be a positive integer, got ${concurrencyCap}`);
158
+ }
159
+ const branchCount = branchFactories.length;
160
+ const padLengths = branchDescriptors.map(b => b.outputColCount);
161
+ const outerSlot = createRowSlot(rctx, outerRowDescriptor);
162
+ try {
163
+ for await (const outerRow of outerSource) {
164
+ outerSlot.set(outerRow);
165
+ const wrapped = resolveBranchFactories(rctx, branchFactories, branchDescriptors);
166
+ const forks = driver.fork(rctx, branchCount);
167
+ const branchBuf = Array.from({ length: branchCount }, () => []);
168
+ for await (const { branch, value } of driver.drive(wrapped, forks, { concurrency: concurrencyCap })) {
169
+ branchBuf[branch].push(value);
170
+ }
171
+ // atMostOne invariant — defensive guard for manually-constructed plans
172
+ // or future rules that don't statically enforce FK→PK alignment. Only
173
+ // `atMostOne-*` branches are constrained; a `cross` branch legitimately
174
+ // yields more than one row.
175
+ assertAtMostOne(branchBuf, branchDescriptors);
176
+ for (const row of composeOuterRows(outerRow, branchBuf, branchDescriptors, padLengths)) {
177
+ yield row;
178
+ }
179
+ }
180
+ }
181
+ finally {
182
+ outerSlot.close();
183
+ }
184
+ }
185
+ /** Clamp `R = ceil(globalCap / max(1, branchCount))` into `[1, maxOuterReadAhead]`. */
186
+ function deriveReadAhead(globalCap, branchCount, maxOuterReadAhead) {
187
+ const derived = Math.ceil(globalCap / Math.max(1, branchCount));
188
+ return Math.min(Math.max(derived, 1), maxOuterReadAhead);
189
+ }
190
+ /**
191
+ * Batched / pipelined outer driver for a fan-out lookup join: overlaps lookups
192
+ * *across* outer rows rather than only across branches within one row.
193
+ *
194
+ * Shape (single async generator):
195
+ *
196
+ * - **Outer pump** reads `outerSource`, assigning each row a monotonically
197
+ * increasing `seq`, and admits at most `R` rows *ahead of the emit frontier*
198
+ * (the lowest not-yet-emitted seq). Admission backpressure is measured from
199
+ * the consumer, so a slow consumer (or a slow head-of-line row) bounds how
200
+ * far the outer is drained. `R = clamp(ceil(globalCap/branchCount), 1,
201
+ * maxOuterReadAhead)`.
202
+ * - **Per-row context isolation (load-bearing correctness point).** Each
203
+ * admitted row forks its own `rowCtx` from `rctx` and installs its own
204
+ * {@link createRowSlot} (its own boxed `ref`). Branch forks snapshot
205
+ * `rowCtx`'s getter — a closure over *this row's* ref, which is never mutated
206
+ * again — so concurrently in-flight rows never share an outer binding. (The
207
+ * prior single-slot-on-parent approach is unsafe here: it mutates one shared
208
+ * ref per row, which would corrupt every in-flight fork.)
209
+ * - **Global in-flight budget.** A single {@link AsyncSemaphore} over
210
+ * `globalCap` bounds concurrent branch lookups across *all* in-flight rows.
211
+ * Each branch task acquires a permit **before** taking its connection lock
212
+ * (the lock is taken on the wrapped factory's first pull): a lock-holder then
213
+ * always also holds a permit, so a permit-holder blocked on a lock waits on
214
+ * another permit-holder that will release — no deadlock.
215
+ * - **Reorder buffer + in-order emit.** Each completed row lands in a `seq`-keyed
216
+ * map as the (possibly empty) list of wide rows it produced; the generator
217
+ * emits all of `seq = emitFrontier`'s rows contiguously as soon as they land,
218
+ * then advances the frontier (an empty list is a dropped outer row). Window
219
+ * accounting advances per `seq`, independent of product fan-out. Out-of-order
220
+ * completion, in-order emit — the external stream is identical to serial mode,
221
+ * so `computePhysical`'s ordering pass-through stays valid.
222
+ *
223
+ * Replay model: each admitted row re-executes its branch sub-plans against its
224
+ * own forked context. A cached branch shared across outer rows is a correlated
225
+ * lookup and is re-executed per row regardless.
226
+ *
227
+ * Exported for direct unit testing — production callers go through
228
+ * {@link emitFanOutLookupJoin}.
229
+ */
230
+ export async function* runFanOutLookupJoinBatched(rctx, outerSource, outerRowDescriptor, branchFactories, branchDescriptors, globalCap, maxOuterReadAhead, driver = new ParallelDriver()) {
231
+ if (branchFactories.length !== branchDescriptors.length) {
232
+ throw new RangeError(`runFanOutLookupJoinBatched: branchFactories length (${branchFactories.length}) !== branchDescriptors length (${branchDescriptors.length})`);
233
+ }
234
+ if (!Number.isInteger(globalCap) || globalCap < 1) {
235
+ throw new RangeError(`runFanOutLookupJoinBatched: globalCap must be a positive integer, got ${globalCap}`);
236
+ }
237
+ if (!Number.isInteger(maxOuterReadAhead) || maxOuterReadAhead < 1) {
238
+ throw new RangeError(`runFanOutLookupJoinBatched: maxOuterReadAhead must be a positive integer, got ${maxOuterReadAhead}`);
239
+ }
240
+ const branchCount = branchFactories.length;
241
+ const padLengths = branchDescriptors.map(b => b.outputColCount);
242
+ const readAhead = deriveReadAhead(globalCap, branchCount, maxOuterReadAhead);
243
+ const semaphore = new AsyncSemaphore(globalCap);
244
+ // Row-independent: lock wrapping depends only on the branch descriptor and
245
+ // the (shared) active connection, so resolve once up front.
246
+ const wrappedFactories = resolveBranchFactories(rctx, branchFactories, branchDescriptors);
247
+ // Completed rows awaiting in-order emit: seq -> the (possibly empty) list of
248
+ // wide rows the outer row produced. An empty list is a dropped outer row.
249
+ const reorder = new Map();
250
+ // Live branch iterators across all in-flight rows; cleanup return()s these.
251
+ const liveIters = new Set();
252
+ // In-flight per-row jobs; cleanup awaits these so every row reaches teardown.
253
+ const rowJobs = new Set();
254
+ let nextSeq = 0; // next seq to assign (== count admitted)
255
+ let emitFrontier = 0; // lowest seq not yet emitted
256
+ let outerDone = false; // outer source exhausted
257
+ let aborted = false; // teardown initiated (consumer return / error / completion)
258
+ // `errored` is a distinct flag from `firstError` so a branch that rejects
259
+ // with a falsy/`undefined` reason still propagates (don't eat exceptions) —
260
+ // mirrors ParallelDriver's `hadError` boolean.
261
+ let errored = false;
262
+ let firstError = undefined;
263
+ const recordError = (e) => {
264
+ if (!errored) {
265
+ errored = true;
266
+ firstError = e;
267
+ }
268
+ aborted = true;
269
+ signalEmit();
270
+ signalAdmit();
271
+ };
272
+ // Single-waiter signals (one emitter, one pump) — mirrors BoundedPrefetchBuffer.
273
+ let emitWaiter = null;
274
+ function signalEmit() {
275
+ const w = emitWaiter;
276
+ emitWaiter = null;
277
+ if (w)
278
+ w();
279
+ }
280
+ function waitEmit() {
281
+ return new Promise(resolve => { emitWaiter = resolve; });
282
+ }
283
+ let admitWaiter = null;
284
+ function signalAdmit() {
285
+ const w = admitWaiter;
286
+ admitWaiter = null;
287
+ if (w)
288
+ w();
289
+ }
290
+ function waitAdmit() {
291
+ return new Promise(resolve => { admitWaiter = resolve; });
292
+ }
293
+ // Run one branch to completion against its fork, collecting all its rows.
294
+ // The at-most-one invariant is enforced per outer row in `runRow` (scoped to
295
+ // `atMostOne-*` branches), so a `cross` branch's >1 rows pass through here.
296
+ // Permit-before-lock: acquire the global permit before the wrapped factory's
297
+ // first pull (which is where the connection lock is taken).
298
+ const runBranch = async (branchIdx, fork) => {
299
+ const release = await semaphore.acquire();
300
+ let iter = null;
301
+ try {
302
+ if (aborted)
303
+ return [];
304
+ iter = wrappedFactories[branchIdx](fork)[Symbol.asyncIterator]();
305
+ liveIters.add(iter);
306
+ const rows = [];
307
+ while (true) {
308
+ const r = await iter.next();
309
+ if (r.done)
310
+ break;
311
+ rows.push(r.value);
312
+ }
313
+ return rows;
314
+ }
315
+ finally {
316
+ if (iter)
317
+ liveIters.delete(iter);
318
+ release();
319
+ }
320
+ };
321
+ // Drive one admitted outer row: nested fork (rctx -> rowCtx -> branch forks),
322
+ // run all branches under the global budget, compose, and park the result in
323
+ // the reorder buffer keyed by `seq`. Owns its full teardown in `finally`.
324
+ const runRow = async (seq, outerRow) => {
325
+ const [rowCtx] = driver.fork(rctx, 1);
326
+ // rowCtx is a fork of rctx: bump rctx's counters so the statement-level
327
+ // context cannot be mutated while this row is live (strict-fork contract).
328
+ const rctxTableState = bumpParentForkCounter(rowCtx.tableContexts);
329
+ const rctxRowState = bumpParentForkCounter(rowCtx.context);
330
+ // Fresh per-row slot (its own boxed ref). Set before forking branches and
331
+ // never mutated again, so every branch fork's snapshot sees this row only.
332
+ const rowSlot = createRowSlot(rowCtx, outerRowDescriptor);
333
+ rowSlot.set(outerRow);
334
+ const branchForks = driver.fork(rowCtx, branchCount);
335
+ // branch forks are forks of rowCtx: bump rowCtx's counters for their life.
336
+ const branchTableState = branchCount > 0 ? bumpParentForkCounter(branchForks[0].tableContexts) : null;
337
+ const branchRowState = branchCount > 0 ? bumpParentForkCounter(branchForks[0].context) : null;
338
+ try {
339
+ const settled = await Promise.allSettled(branchForks.map((fork, i) => runBranch(i, fork)));
340
+ // Surface the first branch rejection; otherwise compose. Track the
341
+ // rejection with a boolean so a branch rejecting with `undefined`
342
+ // still propagates rather than being treated as a zero-row miss.
343
+ let hasBranchError = false;
344
+ let branchError = undefined;
345
+ const branchBuf = new Array(branchCount);
346
+ for (let i = 0; i < branchCount; i++) {
347
+ const s = settled[i];
348
+ if (s.status === 'rejected') {
349
+ if (!hasBranchError) {
350
+ hasBranchError = true;
351
+ branchError = s.reason;
352
+ }
353
+ branchBuf[i] = [];
354
+ }
355
+ else {
356
+ branchBuf[i] = s.value;
357
+ }
358
+ }
359
+ if (hasBranchError) {
360
+ recordError(branchError);
361
+ return;
362
+ }
363
+ if (aborted)
364
+ return; // teardown in progress — result would never emit
365
+ assertAtMostOne(branchBuf, branchDescriptors);
366
+ const composed = composeOuterRows(outerRow, branchBuf, branchDescriptors, padLengths);
367
+ reorder.set(seq, composed);
368
+ signalEmit();
369
+ }
370
+ catch (e) {
371
+ recordError(e);
372
+ }
373
+ finally {
374
+ // Teardown order respects strict-fork: drop branch counters (so
375
+ // rowCtx.context becomes mutable) before closing the row slot, then
376
+ // drop the rctx counters.
377
+ dropParentForkCounter(branchRowState);
378
+ dropParentForkCounter(branchTableState);
379
+ rowSlot.close();
380
+ dropParentForkCounter(rctxRowState);
381
+ dropParentForkCounter(rctxTableState);
382
+ }
383
+ };
384
+ // Outer pump: admit rows up to `readAhead` ahead of the emit frontier.
385
+ const pump = (async () => {
386
+ const outerIter = outerSource[Symbol.asyncIterator]();
387
+ try {
388
+ while (!aborted) {
389
+ // Backpressure: block while the read-ahead window is full.
390
+ while (!aborted && (nextSeq - emitFrontier) >= readAhead) {
391
+ await waitAdmit();
392
+ }
393
+ if (aborted)
394
+ break;
395
+ const r = await outerIter.next();
396
+ if (r.done)
397
+ break;
398
+ const seq = nextSeq++;
399
+ const job = runRow(seq, r.value);
400
+ rowJobs.add(job);
401
+ void job.finally(() => rowJobs.delete(job));
402
+ }
403
+ }
404
+ catch (e) {
405
+ recordError(e);
406
+ }
407
+ finally {
408
+ outerDone = true;
409
+ signalEmit();
410
+ try {
411
+ await outerIter.return?.(undefined);
412
+ }
413
+ catch {
414
+ // Swallow — already shutting down.
415
+ }
416
+ }
417
+ })();
418
+ void pump;
419
+ let cleanedUp = false;
420
+ const cleanup = async () => {
421
+ if (cleanedUp)
422
+ return;
423
+ cleanedUp = true;
424
+ aborted = true;
425
+ signalAdmit();
426
+ signalEmit();
427
+ // Close any still-live branch iterators so blocked branch tasks unwind
428
+ // (their finally releases the permit, letting queued acquirers bail).
429
+ const closings = [];
430
+ for (const it of liveIters) {
431
+ if (typeof it.return === 'function') {
432
+ try {
433
+ closings.push(Promise.resolve(it.return()).catch(() => undefined));
434
+ }
435
+ catch {
436
+ // Synchronous throw from return() — already cleaning up.
437
+ }
438
+ }
439
+ }
440
+ if (closings.length > 0)
441
+ await Promise.allSettled(closings);
442
+ // Wait for every row job to reach its teardown (drops fork counters,
443
+ // closes row slots) and for the pump to stop.
444
+ await Promise.allSettled([...rowJobs]);
445
+ await pump.catch(() => undefined);
446
+ };
447
+ try {
448
+ while (!(outerDone && emitFrontier >= nextSeq)) {
449
+ if (errored)
450
+ throw firstError;
451
+ if (reorder.has(emitFrontier)) {
452
+ const entry = reorder.get(emitFrontier);
453
+ reorder.delete(emitFrontier);
454
+ emitFrontier++;
455
+ signalAdmit(); // window opened
456
+ // Emit every product row for this outer row contiguously, in order,
457
+ // before advancing to the next seq. An empty list is a dropped row.
458
+ for (const row of entry) {
459
+ yield row;
460
+ }
461
+ }
462
+ else {
463
+ await waitEmit();
464
+ }
465
+ }
466
+ if (errored)
467
+ throw firstError;
468
+ }
469
+ finally {
470
+ await cleanup();
471
+ }
472
+ }
473
+ /**
474
+ * Emit a {@link FanOutLookupJoinNode}.
475
+ *
476
+ * The outer sub-plan is emitted as a normal `AsyncIterable<Row>` source; each
477
+ * branch is emitted as a callable so the runtime can invoke it per outer row
478
+ * against a freshly-forked {@link RuntimeContext}.
479
+ *
480
+ * Supports `atMostOne-left`, `atMostOne-inner`, `cross`, and `cross-left`
481
+ * branch modes. `atMostOne-*` branches are validated at runtime via a
482
+ * `QuereusError(CONSTRAINT)` when they yield more than one row; a `cross` /
483
+ * `cross-left` branch may yield any number and contributes a Cartesian factor
484
+ * (`cross-left` additionally NULL-pads + preserves the outer row when empty).
485
+ * The `array` mode is deferred to a follow-up.
486
+ */
487
+ export function emitFanOutLookupJoin(plan, ctx) {
488
+ const outerInstruction = emitPlanNode(plan.outer, ctx);
489
+ const branchInstructions = plan.branches.map(b => emitCallFromPlan(b.child, ctx));
490
+ const outerRowDescriptor = buildRowDescriptor(plan.outer.getAttributes());
491
+ const branchDescriptors = plan.branches.map(b => ({
492
+ mode: b.mode,
493
+ outputColCount: b.outputAttrs.length,
494
+ concurrencySafe: b.concurrencySafe,
495
+ connectionKey: b.connectionKey,
496
+ }));
497
+ const concurrencyCap = plan.concurrencyCap;
498
+ const driver = new ParallelDriver();
499
+ if (plan.outerMode === 'batched') {
500
+ const parallel = ctx.db.optimizer.tuning.parallel;
501
+ const globalCap = parallel.outerBatchConcurrency;
502
+ const maxOuterReadAhead = parallel.maxOuterReadAhead;
503
+ function runBatched(rctx, outerSource, ...branchFactories) {
504
+ return runFanOutLookupJoinBatched(rctx, outerSource, outerRowDescriptor, branchFactories, branchDescriptors, globalCap, maxOuterReadAhead, driver);
505
+ }
506
+ return {
507
+ params: [outerInstruction, ...branchInstructions],
508
+ run: runBatched,
509
+ note: `fanout_lookup_join_batched(N=${plan.branches.length}, globalCap=${globalCap}, readAhead<=${maxOuterReadAhead})`,
510
+ };
511
+ }
512
+ function run(rctx, outerSource, ...branchFactories) {
513
+ return runFanOutLookupJoin(rctx, outerSource, outerRowDescriptor, branchFactories, branchDescriptors, concurrencyCap, driver);
514
+ }
515
+ return {
516
+ params: [outerInstruction, ...branchInstructions],
517
+ run: run,
518
+ note: `fanout_lookup_join(N=${plan.branches.length}, cap=${concurrencyCap})`,
519
+ };
520
+ }
521
+ //# sourceMappingURL=fanout-lookup-join.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fanout-lookup-join.js","sourceRoot":"","sources":["../../../../src/runtime/emit/fanout-lookup-join.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-declarative.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/schema-declarative.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAQ/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAejE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAgCpF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAkCjF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA0FlF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA6BpF"}
1
+ {"version":3,"file":"schema-declarative.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/schema-declarative.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAQ/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAejE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAgCpF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAkCjF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAoHlF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA6BpF"}
@@ -101,15 +101,41 @@ export function emitApplySchema(plan, _ctx) {
101
101
  if (applyStmt.withSeed) {
102
102
  const allSeedData = rctx.db.declaredSchemaManager.getAllSeedData(schemaName);
103
103
  log('Seed data available for %d tables', allSeedData.size);
104
+ // Identify tables freshly created by this apply (declared but not
105
+ // in the pre-apply catalog). For those, skip the `DELETE FROM <tbl>`
106
+ // wipe: the table is structurally empty by construction, and the
107
+ // DELETE's scan would route through the host's snapshot resolver at
108
+ // `asOf(ep.startedAt)` — an HLC sampled BEFORE the schema-batch
109
+ // fact-group commit, at which point the new table did not yet
110
+ // exist in the fact log. Pre-existing tables retain the wipe-then-
111
+ // reseed semantics.
112
+ // Both sides of the comparison are lower-cased: `actualCatalog`
113
+ // table names come from the live catalog (case as declared by
114
+ // DDL), and `getAllSeedData` keys seed rows by `tableName.toLowerCase()`
115
+ // (see DeclaredSchemaManager.setSeedData). Normalising here keeps
116
+ // the lookup symmetric regardless of how the declared schema
117
+ // cased its table identifiers.
118
+ const preApplyTableNames = new Set(actualCatalog.tables.map(t => t.name.toLowerCase()));
119
+ const freshlyCreatedTables = new Set();
120
+ for (const item of declaredSchema.items) {
121
+ if (item.type === 'declaredTable') {
122
+ const lowerName = item.tableStmt.table.name.toLowerCase();
123
+ if (!preApplyTableNames.has(lowerName)) {
124
+ freshlyCreatedTables.add(lowerName);
125
+ }
126
+ }
127
+ }
104
128
  for (const [tableName, rows] of allSeedData) {
105
129
  log('Applying seed data to %s.%s (%d rows)', schemaName, tableName, rows.length);
106
130
  // Qualify table name with schema if not main
107
131
  const qualifiedTableName = (schemaName && schemaName.toLowerCase() !== 'main')
108
132
  ? `${schemaName}.${tableName}`
109
133
  : tableName;
110
- // Delete existing rows, then insert seed rows in one batch
134
+ const isFreshlyCreated = freshlyCreatedTables.has(tableName.toLowerCase());
135
+ // Delete existing rows (only when the table pre-existed), then
136
+ // insert seed rows in one batch.
111
137
  const deleteAndInsertSql = [
112
- `DELETE FROM ${qualifiedTableName}`,
138
+ ...(isFreshlyCreated ? [] : [`DELETE FROM ${qualifiedTableName}`]),
113
139
  ...rows.map(row => {
114
140
  const values = row.map(v => v === null ? 'NULL' :
115
141
  typeof v === 'string' ? `'${v.replace(/'/g, "''")}'` :
@@ -1 +1 @@
1
- {"version":3,"file":"schema-declarative.js","sourceRoot":"","sources":["../../../../src/runtime/emit/schema-declarative.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-declarative.js","sourceRoot":"","sources":["../../../../src/runtime/emit/schema-declarative.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAQ/E,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAqHzF"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAQ/E,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA6FzF"}