@quereus/quereus 4.7.0 → 4.9.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 (218) hide show
  1. package/dist/src/common/types.d.ts +19 -0
  2. package/dist/src/common/types.d.ts.map +1 -1
  3. package/dist/src/common/types.js.map +1 -1
  4. package/dist/src/core/database.d.ts +45 -1
  5. package/dist/src/core/database.d.ts.map +1 -1
  6. package/dist/src/core/database.js +212 -2
  7. package/dist/src/core/database.js.map +1 -1
  8. package/dist/src/core/statement.d.ts.map +1 -1
  9. package/dist/src/core/statement.js +86 -0
  10. package/dist/src/core/statement.js.map +1 -1
  11. package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
  12. package/dist/src/func/builtins/aggregate.js +3 -2
  13. package/dist/src/func/builtins/aggregate.js.map +1 -1
  14. package/dist/src/func/builtins/conversion.d.ts +5 -0
  15. package/dist/src/func/builtins/conversion.d.ts.map +1 -1
  16. package/dist/src/func/builtins/conversion.js +16 -2
  17. package/dist/src/func/builtins/conversion.js.map +1 -1
  18. package/dist/src/func/builtins/index.d.ts.map +1 -1
  19. package/dist/src/func/builtins/index.js +5 -2
  20. package/dist/src/func/builtins/index.js.map +1 -1
  21. package/dist/src/func/builtins/string.d.ts +2 -0
  22. package/dist/src/func/builtins/string.d.ts.map +1 -1
  23. package/dist/src/func/builtins/string.js +60 -4
  24. package/dist/src/func/builtins/string.js.map +1 -1
  25. package/dist/src/index.d.ts +11 -4
  26. package/dist/src/index.d.ts.map +1 -1
  27. package/dist/src/index.js +18 -3
  28. package/dist/src/index.js.map +1 -1
  29. package/dist/src/planner/building/constraint-builder.js +1 -1
  30. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  31. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
  32. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +121 -51
  33. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  34. package/dist/src/planner/rules/shared/index-style-context.d.ts +14 -4
  35. package/dist/src/planner/rules/shared/index-style-context.d.ts.map +1 -1
  36. package/dist/src/planner/rules/shared/index-style-context.js +14 -4
  37. package/dist/src/planner/rules/shared/index-style-context.js.map +1 -1
  38. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  39. package/dist/src/runtime/emit/alter-table.js +212 -155
  40. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  41. package/dist/src/runtime/emit/assertion-drop-guard.d.ts +26 -12
  42. package/dist/src/runtime/emit/assertion-drop-guard.d.ts.map +1 -1
  43. package/dist/src/runtime/emit/assertion-drop-guard.js +45 -26
  44. package/dist/src/runtime/emit/assertion-drop-guard.js.map +1 -1
  45. package/dist/src/runtime/emit/assertion-rename-helpers.d.ts +6 -6
  46. package/dist/src/runtime/emit/assertion-rename-helpers.d.ts.map +1 -1
  47. package/dist/src/runtime/emit/assertion-rename-helpers.js +18 -20
  48. package/dist/src/runtime/emit/assertion-rename-helpers.js.map +1 -1
  49. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  50. package/dist/src/runtime/emit/binary.js +12 -10
  51. package/dist/src/runtime/emit/binary.js.map +1 -1
  52. package/dist/src/runtime/emit/column-rename-cascade.d.ts +84 -0
  53. package/dist/src/runtime/emit/column-rename-cascade.d.ts.map +1 -0
  54. package/dist/src/runtime/emit/column-rename-cascade.js +134 -0
  55. package/dist/src/runtime/emit/column-rename-cascade.js.map +1 -0
  56. package/dist/src/runtime/emit/drop-column-guards.d.ts +82 -53
  57. package/dist/src/runtime/emit/drop-column-guards.d.ts.map +1 -1
  58. package/dist/src/runtime/emit/drop-column-guards.js +155 -90
  59. package/dist/src/runtime/emit/drop-column-guards.js.map +1 -1
  60. package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
  61. package/dist/src/runtime/emit/drop-table.js +5 -0
  62. package/dist/src/runtime/emit/drop-table.js.map +1 -1
  63. package/dist/src/runtime/emit/drop-view.d.ts.map +1 -1
  64. package/dist/src/runtime/emit/drop-view.js +5 -0
  65. package/dist/src/runtime/emit/drop-view.js.map +1 -1
  66. package/dist/src/runtime/emit/expression-drop-guard.d.ts +57 -0
  67. package/dist/src/runtime/emit/expression-drop-guard.d.ts.map +1 -0
  68. package/dist/src/runtime/emit/expression-drop-guard.js +82 -0
  69. package/dist/src/runtime/emit/expression-drop-guard.js.map +1 -0
  70. package/dist/src/runtime/emit/materialized-view-helpers.d.ts +26 -9
  71. package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
  72. package/dist/src/runtime/emit/materialized-view-helpers.js +37 -17
  73. package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
  74. package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
  75. package/dist/src/runtime/emit/materialized-view.js +3 -0
  76. package/dist/src/runtime/emit/materialized-view.js.map +1 -1
  77. package/dist/src/runtime/emit/remote-query.d.ts.map +1 -1
  78. package/dist/src/runtime/emit/remote-query.js +8 -3
  79. package/dist/src/runtime/emit/remote-query.js.map +1 -1
  80. package/dist/src/runtime/emit/scan.d.ts.map +1 -1
  81. package/dist/src/runtime/emit/scan.js +4 -1
  82. package/dist/src/runtime/emit/scan.js.map +1 -1
  83. package/dist/src/runtime/emit/schema-declarative.js +2 -2
  84. package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
  85. package/dist/src/runtime/parallel-driver.d.ts +4 -3
  86. package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
  87. package/dist/src/runtime/parallel-driver.js +8 -3
  88. package/dist/src/runtime/parallel-driver.js.map +1 -1
  89. package/dist/src/runtime/types.d.ts +10 -0
  90. package/dist/src/runtime/types.d.ts.map +1 -1
  91. package/dist/src/runtime/types.js.map +1 -1
  92. package/dist/src/runtime/utils.d.ts.map +1 -1
  93. package/dist/src/runtime/utils.js +11 -0
  94. package/dist/src/runtime/utils.js.map +1 -1
  95. package/dist/src/schema/assertion.d.ts +58 -0
  96. package/dist/src/schema/assertion.d.ts.map +1 -1
  97. package/dist/src/schema/assertion.js +78 -0
  98. package/dist/src/schema/assertion.js.map +1 -1
  99. package/dist/src/schema/catalog-persistability.d.ts +11 -3
  100. package/dist/src/schema/catalog-persistability.d.ts.map +1 -1
  101. package/dist/src/schema/catalog-persistability.js +48 -29
  102. package/dist/src/schema/catalog-persistability.js.map +1 -1
  103. package/dist/src/schema/catalog.d.ts +22 -0
  104. package/dist/src/schema/catalog.d.ts.map +1 -1
  105. package/dist/src/schema/catalog.js +4 -1
  106. package/dist/src/schema/catalog.js.map +1 -1
  107. package/dist/src/schema/column-republication.d.ts +126 -0
  108. package/dist/src/schema/column-republication.d.ts.map +1 -0
  109. package/dist/src/schema/column-republication.js +121 -0
  110. package/dist/src/schema/column-republication.js.map +1 -0
  111. package/dist/src/schema/column-source-resolver.d.ts +29 -6
  112. package/dist/src/schema/column-source-resolver.d.ts.map +1 -1
  113. package/dist/src/schema/column-source-resolver.js +78 -9
  114. package/dist/src/schema/column-source-resolver.js.map +1 -1
  115. package/dist/src/schema/expression-dependents.d.ts +160 -0
  116. package/dist/src/schema/expression-dependents.d.ts.map +1 -0
  117. package/dist/src/schema/expression-dependents.js +228 -0
  118. package/dist/src/schema/expression-dependents.js.map +1 -0
  119. package/dist/src/schema/object-dependency-closure.d.ts +127 -0
  120. package/dist/src/schema/object-dependency-closure.d.ts.map +1 -0
  121. package/dist/src/schema/object-dependency-closure.js +117 -0
  122. package/dist/src/schema/object-dependency-closure.js.map +1 -0
  123. package/dist/src/schema/object-ref-resolver.d.ts +83 -0
  124. package/dist/src/schema/object-ref-resolver.d.ts.map +1 -0
  125. package/dist/src/schema/object-ref-resolver.js +135 -0
  126. package/dist/src/schema/object-ref-resolver.js.map +1 -0
  127. package/dist/src/schema/rename/column-rename.d.ts +228 -0
  128. package/dist/src/schema/rename/column-rename.d.ts.map +1 -0
  129. package/dist/src/schema/rename/column-rename.js +1225 -0
  130. package/dist/src/schema/rename/column-rename.js.map +1 -0
  131. package/dist/src/schema/rename/self-qualifier-strip.d.ts +29 -0
  132. package/dist/src/schema/rename/self-qualifier-strip.d.ts.map +1 -0
  133. package/dist/src/schema/rename/self-qualifier-strip.js +267 -0
  134. package/dist/src/schema/rename/self-qualifier-strip.js.map +1 -0
  135. package/dist/src/schema/rename/shared.d.ts +108 -0
  136. package/dist/src/schema/rename/shared.d.ts.map +1 -0
  137. package/dist/src/schema/rename/shared.js +49 -0
  138. package/dist/src/schema/rename/shared.js.map +1 -0
  139. package/dist/src/schema/rename/table-rename.d.ts +263 -0
  140. package/dist/src/schema/rename/table-rename.d.ts.map +1 -0
  141. package/dist/src/schema/rename/table-rename.js +860 -0
  142. package/dist/src/schema/rename/table-rename.js.map +1 -0
  143. package/dist/src/schema/rename-rewriter.d.ts +18 -278
  144. package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
  145. package/dist/src/schema/rename-rewriter.js +17 -1506
  146. package/dist/src/schema/rename-rewriter.js.map +1 -1
  147. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  148. package/dist/src/schema/schema-differ.js +228 -21
  149. package/dist/src/schema/schema-differ.js.map +1 -1
  150. package/dist/src/types/builtin-types.d.ts.map +1 -1
  151. package/dist/src/types/builtin-types.js +12 -28
  152. package/dist/src/types/builtin-types.js.map +1 -1
  153. package/dist/src/types/cast-semantics.d.ts +7 -5
  154. package/dist/src/types/cast-semantics.d.ts.map +1 -1
  155. package/dist/src/types/cast-semantics.js +20 -9
  156. package/dist/src/types/cast-semantics.js.map +1 -1
  157. package/dist/src/types/index.d.ts +1 -1
  158. package/dist/src/types/index.d.ts.map +1 -1
  159. package/dist/src/types/index.js +1 -1
  160. package/dist/src/types/index.js.map +1 -1
  161. package/dist/src/types/registry.d.ts.map +1 -1
  162. package/dist/src/types/registry.js +2 -1
  163. package/dist/src/types/registry.js.map +1 -1
  164. package/dist/src/types/temporal-types.d.ts +11 -0
  165. package/dist/src/types/temporal-types.d.ts.map +1 -1
  166. package/dist/src/types/temporal-types.js +82 -0
  167. package/dist/src/types/temporal-types.js.map +1 -1
  168. package/dist/src/util/abort-signal.d.ts +25 -0
  169. package/dist/src/util/abort-signal.d.ts.map +1 -0
  170. package/dist/src/util/abort-signal.js +40 -0
  171. package/dist/src/util/abort-signal.js.map +1 -0
  172. package/dist/src/util/affinity.d.ts +2 -1
  173. package/dist/src/util/affinity.d.ts.map +1 -1
  174. package/dist/src/util/affinity.js +16 -5
  175. package/dist/src/util/affinity.js.map +1 -1
  176. package/dist/src/util/ast-spine-clone.d.ts +2 -2
  177. package/dist/src/util/ast-spine-clone.js +2 -2
  178. package/dist/src/util/value-text.d.ts +48 -0
  179. package/dist/src/util/value-text.d.ts.map +1 -0
  180. package/dist/src/util/value-text.js +35 -0
  181. package/dist/src/util/value-text.js.map +1 -0
  182. package/dist/src/vtab/concurrency.d.ts +15 -0
  183. package/dist/src/vtab/concurrency.d.ts.map +1 -1
  184. package/dist/src/vtab/concurrency.js +17 -0
  185. package/dist/src/vtab/concurrency.js.map +1 -1
  186. package/dist/src/vtab/memory/layer/base.d.ts +10 -0
  187. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  188. package/dist/src/vtab/memory/layer/base.js +10 -0
  189. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  190. package/dist/src/vtab/memory/layer/interface.d.ts +24 -0
  191. package/dist/src/vtab/memory/layer/interface.d.ts.map +1 -1
  192. package/dist/src/vtab/memory/layer/manager.d.ts +21 -3
  193. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  194. package/dist/src/vtab/memory/layer/manager.js +118 -93
  195. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  196. package/dist/src/vtab/memory/layer/transaction.d.ts +11 -0
  197. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  198. package/dist/src/vtab/memory/layer/transaction.js +19 -0
  199. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  200. package/dist/src/vtab/memory/module.d.ts +41 -0
  201. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  202. package/dist/src/vtab/memory/module.js +41 -0
  203. package/dist/src/vtab/memory/module.js.map +1 -1
  204. package/dist/src/vtab/memory/table.d.ts +12 -1
  205. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  206. package/dist/src/vtab/memory/table.js +12 -1
  207. package/dist/src/vtab/memory/table.js.map +1 -1
  208. package/dist/src/vtab/module.d.ts +33 -0
  209. package/dist/src/vtab/module.d.ts.map +1 -1
  210. package/dist/src/vtab/test-support/commit-stall.d.ts +53 -0
  211. package/dist/src/vtab/test-support/commit-stall.d.ts.map +1 -0
  212. package/dist/src/vtab/test-support/commit-stall.js +73 -0
  213. package/dist/src/vtab/test-support/commit-stall.js.map +1 -0
  214. package/dist/src/vtab/test-support/committed-read-conformance.d.ts +96 -0
  215. package/dist/src/vtab/test-support/committed-read-conformance.d.ts.map +1 -0
  216. package/dist/src/vtab/test-support/committed-read-conformance.js +364 -0
  217. package/dist/src/vtab/test-support/committed-read-conformance.js.map +1 -0
  218. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/base.ts"],"names":[],"mappings":"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"}
@@ -60,5 +60,29 @@ export interface Layer {
60
60
  * This method provides PK extractor and comparator based on a given schema (usually its own)
61
61
  */
62
62
  getPkExtractorsAndComparators(schema: TableSchema): PkExtractorsAndComparators;
63
+ /**
64
+ * Records that a child layer has built its BTrees over this layer's — called by the
65
+ * `TransactionLayer` constructor before it derives anything from its parent.
66
+ *
67
+ * The signal exists so `MemoryTableManager.tryCollapseLayers` can refuse to promote a
68
+ * layer some other tree is inheriting from: promotion calls `clearBase()`, which drops
69
+ * the base pointer and so removes the base's contribution from `chainVersion()` —
70
+ * every already-derived child snapshotted that total at construction, so each one's
71
+ * next `checkBase()` raises `MutatedBaseError` even though no row moved.
72
+ */
73
+ noteDerivedChild(): void;
74
+ /**
75
+ * True once any child layer has built its BTrees over this layer's — see
76
+ * {@link noteDerivedChild}.
77
+ *
78
+ * The count NEVER decrements. There is no layer-destruction hook to decrement from,
79
+ * and `MemoryTableManager.connections` cannot stand in as a liveness registry: its
80
+ * `disconnect` removes connections that are still live and are committed later
81
+ * (`MemoryTable.ensureConnection` reuses exactly such a connection). So the signal has to
82
+ * live on the layer, and it errs conservatively: collapse fires only on a head that has
83
+ * *never* had a child derived from it, which is precisely the quiescent case where
84
+ * detaching it changes no other tree's `chainVersion()`.
85
+ */
86
+ hasDerivedChildren(): boolean;
63
87
  }
64
88
  //# sourceMappingURL=interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExE;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IAC1C,0BAA0B,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,kBAAkB,CAAC;IAC7D,oBAAoB,EAAE,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,kBAAkB,KAAK,MAAM,CAAC;IAC/E,iBAAiB,EAAE,CAAC,EAAE,EAAE,kBAAkB,KAAK,MAAM,CAAC;CACtD;AAED;;;GAGG;AACH,MAAM,WAAW,KAAK;IACrB;;;;;;;;;OASG;IACH,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAE9C,kFAAkF;IAClF,UAAU,IAAI,MAAM,CAAC;IAErB,uEAAuE;IACvE,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC;IAE1B;;;;;;;OAOG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAE1F;;;;OAIG;IACH,SAAS,IAAI,WAAW,CAAC;IAEzB,uEAAuE;IACvE,WAAW,IAAI,OAAO,CAAC;IAEvB,+EAA+E;IAC/E,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAE3F,8FAA8F;IAC9F,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAE9D;;OAEG;IACH,6BAA6B,CAAC,MAAM,EAAE,WAAW,GAAG,0BAA0B,CAAC;CAC/E"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExE;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IAC1C,0BAA0B,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,kBAAkB,CAAC;IAC7D,oBAAoB,EAAE,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,kBAAkB,KAAK,MAAM,CAAC;IAC/E,iBAAiB,EAAE,CAAC,EAAE,EAAE,kBAAkB,KAAK,MAAM,CAAC;CACtD;AAED;;;GAGG;AACH,MAAM,WAAW,KAAK;IACrB;;;;;;;;;OASG;IACH,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAE9C,kFAAkF;IAClF,UAAU,IAAI,MAAM,CAAC;IAErB,uEAAuE;IACvE,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC;IAE1B;;;;;;;OAOG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAE1F;;;;OAIG;IACH,SAAS,IAAI,WAAW,CAAC;IAEzB,uEAAuE;IACvE,WAAW,IAAI,OAAO,CAAC;IAEvB,+EAA+E;IAC/E,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAE3F,8FAA8F;IAC9F,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAE9D;;OAEG;IACH,6BAA6B,CAAC,MAAM,EAAE,WAAW,GAAG,0BAA0B,CAAC;IAE/E;;;;;;;;;OASG;IACH,gBAAgB,IAAI,IAAI,CAAC;IAEzB;;;;;;;;;;;OAWG;IACH,kBAAkB,IAAI,OAAO,CAAC;CAC9B"}
@@ -226,11 +226,29 @@ export declare class MemoryTableManager {
226
226
  private rebaseLayerOntoHead;
227
227
  tryCollapseLayers(): Promise<void>;
228
228
  /**
229
- * Checks if a layer is currently in use by any connections.
230
- * This includes checking if any connection is reading from the layer,
231
- * has it as a pending transaction layer, or has it as a savepoint.
229
+ * Detaches the committed head from its parent (`clearBase()`), so the chain below it
230
+ * can be released. Returns whether it did.
231
+ *
232
+ * Caller holds the collapse latch.
233
+ */
234
+ private promoteCommittedHead;
235
+ /**
236
+ * Whether any attached connection's read or write view still reaches `layer` — as its
237
+ * read layer, its pending layer, or an ancestor of either.
238
+ *
239
+ * BOTH chains are walked, and each all the way to the chain root. An eager savepoint
240
+ * (`MemoryTableConnection.createSavepoint`) moves the connection's uncommitted layer into
241
+ * `readLayer` and leaves `pendingTransactionLayer` null, so walking only the pending chain
242
+ * misses exactly the connection whose live snapshot the collapse would strand.
243
+ *
244
+ * Necessary but NOT sufficient as a collapse precondition: `disconnect` can drop a still-live
245
+ * connection from `this.connections` (it stays registered on the Database and is committed
246
+ * later), so a layer this reports unused may still have live derived trees. That is what
247
+ * {@link Layer.hasDerivedChildren} covers.
232
248
  */
233
249
  private isLayerInUse;
250
+ /** Whether `layer` is `from` itself or any of its ancestors. */
251
+ private chainContains;
234
252
  lookupEffectiveRow(primaryKey: BTreeKeyForPrimary, startLayer: Layer): Row | null;
235
253
  lookupEffectiveValue(key: BTreeKeyForPrimary, indexName: string | 'primary', startLayer: Layer): Row | null;
236
254
  performMutation(connection: MemoryTableConnection, operation: 'insert' | 'update' | 'delete', values: Row | undefined, oldKeyValues?: Row, onConflict?: ConflictResolution, preCoerced?: boolean): Promise<UpdateResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/manager.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,9 @@ import { createPrimaryKeyFunctions, buildPrimaryKeyFromValues, primaryKeyArity }
18
18
  import { createMemoryTableLoggers } from '../utils/logging.js';
19
19
  import { coerceRowToSchema, foldDefaultToType } from '../../../types/validation.js';
20
20
  import { compilePredicate } from '../utils/predicate.js';
21
- import { renameColumnInIndexPredicates } from '../../../schema/rename-rewriter.js';
21
+ import { renameColumnInIndexPredicates, objectRefKey } from '../../../schema/rename-rewriter.js';
22
+ import { buildColumnSourceResolver } from '../../../schema/column-source-resolver.js';
23
+ import { buildObjectRefResolver } from '../../../schema/object-ref-resolver.js';
22
24
  import { MemoryIndex } from '../index.js';
23
25
  import { convertRowAtIndex, mapRows, mapRowsAsync } from './row-convert.js';
24
26
  import { buildAlterColumnPlan, planColumnAttributeChange } from './alter-column.js';
@@ -430,11 +432,22 @@ export class MemoryTableManager {
430
432
  const connection = this.connections.get(connectionId);
431
433
  if (!connection)
432
434
  return;
433
- // If the connection still has an un-committed pending layer, defer
434
- // disconnect until the layer is either committed or rolled back by the
435
- // transaction coordinator. This avoids accidental rollback during
436
- // implicit transactions.
437
- if (connection.pendingTransactionLayer && !connection.pendingTransactionLayer.isCommitted()) {
435
+ // If the connection still holds uncommitted work, defer disconnect until it is
436
+ // either committed or rolled back by the transaction coordinator. This avoids
437
+ // accidental rollback during implicit transactions.
438
+ //
439
+ // `hasOpenWork()` rather than an uncommitted pending layer: an eager savepoint moves
440
+ // the connection's uncommitted rows into `readLayer` and nulls
441
+ // `pendingTransactionLayer`, so the narrower test dropped a connection that was still
442
+ // reading — and writing, at commit — a live layer, hiding it from `isLayerInUse` while
443
+ // the collapse below ran.
444
+ //
445
+ // NOTE: deferral has no timeout, so a transaction abandoned without commit or rollback
446
+ // keeps this connection — and the layer chain it reads — reachable for the table's
447
+ // lifetime. The same was already true of an abandoned pending layer; if abandoned
448
+ // transactions ever show up as a leak, the fix is a reaper over `connections`, not a
449
+ // narrower test here.
450
+ if (connection.hasOpenWork()) {
438
451
  logger.debugLog(`[Disconnect] Deferring disconnect of connection ${connectionId} while transaction pending for ${this._tableName}`);
439
452
  return;
440
453
  }
@@ -468,16 +481,7 @@ export class MemoryTableManager {
468
481
  if (!connection.pendingTransactionLayer
469
482
  && connection.readLayer !== this._currentCommittedLayer
470
483
  && connection.readLayer instanceof TransactionLayer) {
471
- let walker = connection.readLayer.getParent();
472
- let isAhead = false;
473
- while (walker) {
474
- if (walker === this._currentCommittedLayer) {
475
- isAhead = true;
476
- break;
477
- }
478
- walker = walker.getParent();
479
- }
480
- if (isAhead) {
484
+ if (this.chainContains(connection.readLayer, this._currentCommittedLayer)) {
481
485
  if (connection.readLayer.getSchema() === this.tableSchema) {
482
486
  connection.pendingTransactionLayer = new TransactionLayer(connection.readLayer);
483
487
  if (this.eventEmitter?.hasDataListeners?.()) {
@@ -525,17 +529,7 @@ export class MemoryTableManager {
525
529
  // Case C — no common ancestor reachable: a genuinely stale commit. Roll
526
530
  // back with BUSY outside a coordinated commit (the caller can retry);
527
531
  // inside one, preserve the prior wholesale fallback.
528
- let headIsAncestorOfPending = false;
529
- {
530
- let cur = pendingLayer;
531
- while (cur) {
532
- if (cur === this._currentCommittedLayer) {
533
- headIsAncestorOfPending = true;
534
- break;
535
- }
536
- cur = cur.getParent();
537
- }
538
- }
532
+ const headIsAncestorOfPending = this.chainContains(pendingLayer, this._currentCommittedLayer);
539
533
  let committedLayer;
540
534
  let changes;
541
535
  if (headIsAncestorOfPending) {
@@ -747,44 +741,13 @@ export class MemoryTableManager {
747
741
  return;
748
742
  }
749
743
  logger.debugLog(`[Collapse] Acquired lock for ${this._tableName}`);
750
- let collapsedCount = 0;
751
- const maxCollapseIterations = 10; // Prevent infinite loops
752
- let iterations = 0;
753
- // Continue collapsing layers as long as it's safe to do so
754
- while (iterations < maxCollapseIterations &&
755
- this._currentCommittedLayer instanceof TransactionLayer &&
756
- this._currentCommittedLayer.isCommitted()) {
757
- const layerToPromote = this._currentCommittedLayer;
758
- const parentLayer = layerToPromote.getParent();
759
- if (!parentLayer) {
760
- logger.error('Collapse Layers', this._tableName, 'Committed TransactionLayer has no parent', { layerId: layerToPromote.getLayerId() });
761
- break;
762
- }
763
- // Check if anyone is still using the parent layer or any of its ancestors
764
- if (this.isLayerInUse(parentLayer)) {
765
- logger.debugLog(`[Collapse] Parent layer ${parentLayer.getLayerId()} or its ancestors in use. Cannot collapse layer ${layerToPromote.getLayerId()}.`);
766
- break;
767
- }
768
- logger.debugLog(`[Collapse] Promoting layer ${layerToPromote.getLayerId()} to become independent from parent ${parentLayer.getLayerId()} for ${this._tableName}`);
769
- // With inherited BTrees, "collapsing" means making the transaction layer independent
770
- // by calling clearBase() on its BTrees, effectively making it the new base data
771
- layerToPromote.clearBase();
772
- // Update connections that were reading from the collapsed parent layer
773
- for (const conn of this.connections.values()) {
774
- if (conn.readLayer === parentLayer) {
775
- // Update connections to read from the now-independent transaction layer
776
- conn.readLayer = layerToPromote;
777
- logger.debugLog(`[Collapse] Connection ${conn.connectionId} updated to read from independent layer ${layerToPromote.getLayerId()}`);
778
- }
779
- }
780
- collapsedCount++;
781
- iterations++;
782
- // The layer is now independent, but check if we can collapse further
783
- // by examining if this layer can be promoted above its (now detached) parent
784
- logger.debugLog(`[Collapse] Layer ${layerToPromote.getLayerId()} is now independent for ${this._tableName}`);
785
- }
786
- if (collapsedCount > 0) {
787
- logger.operation('Collapse Layers', this._tableName, { collapsedCount, iterations });
744
+ // At most ONE promotion per call, and no loop: promoting detaches the head's
745
+ // BTrees from their base but leaves the head exactly where it is, so there is
746
+ // never a second layer to promote afterwards. (The former `while` re-tested
747
+ // `_currentCommittedLayer`, which its body never reassigned, and so re-ran
748
+ // `clearBase()` on the same layer up to ten times per call.)
749
+ if (this.promoteCommittedHead()) {
750
+ logger.operation('Collapse Layers', this._tableName, { collapsedCount: 1 });
788
751
  }
789
752
  else {
790
753
  logger.debugLog(`[Collapse] No layers collapsed for ${this._tableName}. Current: ${this._currentCommittedLayer.getLayerId()}`);
@@ -802,33 +765,88 @@ export class MemoryTableManager {
802
765
  }
803
766
  }
804
767
  /**
805
- * Checks if a layer is currently in use by any connections.
806
- * This includes checking if any connection is reading from the layer,
807
- * has it as a pending transaction layer, or has it as a savepoint.
768
+ * Detaches the committed head from its parent (`clearBase()`), so the chain below it
769
+ * can be released. Returns whether it did.
770
+ *
771
+ * Caller holds the collapse latch.
772
+ */
773
+ promoteCommittedHead() {
774
+ if (!(this._currentCommittedLayer instanceof TransactionLayer))
775
+ return false;
776
+ if (!this._currentCommittedLayer.isCommitted())
777
+ return false;
778
+ const layerToPromote = this._currentCommittedLayer;
779
+ const parentLayer = layerToPromote.getParent();
780
+ if (!parentLayer) {
781
+ logger.error('Collapse Layers', this._tableName, 'Committed TransactionLayer has no parent', { layerId: layerToPromote.getLayerId() });
782
+ return false;
783
+ }
784
+ // A layer any child has EVER derived from must not be promoted. `clearBase()` drops
785
+ // the base pointer, which removes the base's whole contribution from the tree's
786
+ // `chainVersion()` — and every already-derived child snapshotted that total when it
787
+ // was built, so each one's next `checkBase()` raises `MutatedBaseError` although no
788
+ // row moved. inheritree forbids it for a second reason too: the detached tree keeps
789
+ // sharing nodes by identity with its former base, so the base-immutability contract
790
+ // outlives the call.
791
+ //
792
+ // The connection-based check below cannot cover this: `disconnect` detaches
793
+ // still-live connections from `this.connections`, so the map is not an authoritative
794
+ // liveness registry. The signal has to live on the layer.
795
+ //
796
+ // NOTE: the derived-child counter never decrements (no layer-destruction hook exists),
797
+ // so a long-lived table whose head always has a child may never collapse. If
798
+ // layer-chain memory growth ever shows up, switch the promotion to inheritree's
799
+ // `BTree.flatten()` — a real O(n) independent copy that leaves the old tree valid for
800
+ // its children — behind a chain-depth threshold, rather than loosening this guard.
801
+ if (layerToPromote.hasDerivedChildren()) {
802
+ logger.debugLog(`[Collapse] Layer ${layerToPromote.getLayerId()} has derived children. Cannot promote it for ${this._tableName}.`);
803
+ return false;
804
+ }
805
+ // Check if anyone is still using the parent layer or any of its ancestors
806
+ if (this.isLayerInUse(parentLayer)) {
807
+ logger.debugLog(`[Collapse] Parent layer ${parentLayer.getLayerId()} or its ancestors in use. Cannot collapse layer ${layerToPromote.getLayerId()}.`);
808
+ return false;
809
+ }
810
+ logger.debugLog(`[Collapse] Promoting layer ${layerToPromote.getLayerId()} to become independent from parent ${parentLayer.getLayerId()} for ${this._tableName}`);
811
+ // With inherited BTrees, "collapsing" means making the transaction layer independent
812
+ // by calling clearBase() on its BTrees, effectively making it the new base data
813
+ layerToPromote.clearBase();
814
+ // No connection needs re-pointing off `parentLayer`: `isLayerInUse` above returns true
815
+ // for a connection whose read or pending chain reaches it — reading it directly
816
+ // included — so reaching here proves no attached connection holds it.
817
+ logger.debugLog(`[Collapse] Layer ${layerToPromote.getLayerId()} is now independent for ${this._tableName}`);
818
+ return true;
819
+ }
820
+ /**
821
+ * Whether any attached connection's read or write view still reaches `layer` — as its
822
+ * read layer, its pending layer, or an ancestor of either.
823
+ *
824
+ * BOTH chains are walked, and each all the way to the chain root. An eager savepoint
825
+ * (`MemoryTableConnection.createSavepoint`) moves the connection's uncommitted layer into
826
+ * `readLayer` and leaves `pendingTransactionLayer` null, so walking only the pending chain
827
+ * misses exactly the connection whose live snapshot the collapse would strand.
828
+ *
829
+ * Necessary but NOT sufficient as a collapse precondition: `disconnect` can drop a still-live
830
+ * connection from `this.connections` (it stays registered on the Database and is committed
831
+ * later), so a layer this reports unused may still have live derived trees. That is what
832
+ * {@link Layer.hasDerivedChildren} covers.
808
833
  */
809
834
  isLayerInUse(layer) {
810
835
  for (const conn of this.connections.values()) {
811
- // Check if connection is reading from this layer
812
- if (conn.readLayer === layer) {
836
+ if (this.chainContains(conn.readLayer, layer))
813
837
  return true;
814
- }
815
- // Check if connection has this layer as pending transaction
816
- if (conn.pendingTransactionLayer === layer) {
838
+ if (conn.pendingTransactionLayer && this.chainContains(conn.pendingTransactionLayer, layer))
817
839
  return true;
818
- }
819
- // Check if connection has this layer in its parent chain
820
- let currentLayer = conn.pendingTransactionLayer?.getParent();
821
- while (currentLayer) {
822
- if (currentLayer === layer) {
823
- return true;
824
- }
825
- if (currentLayer instanceof TransactionLayer) {
826
- currentLayer = currentLayer.getParent();
827
- }
828
- else {
829
- break;
830
- }
831
- }
840
+ }
841
+ return false;
842
+ }
843
+ /** Whether `layer` is `from` itself or any of its ancestors. */
844
+ chainContains(from, layer) {
845
+ let cur = from;
846
+ while (cur) {
847
+ if (cur === layer)
848
+ return true;
849
+ cur = cur.getParent();
832
850
  }
833
851
  return false;
834
852
  }
@@ -1946,8 +1964,15 @@ export class MemoryTableManager {
1946
1964
  const lockKey = `MemoryTable.SchemaChange:${this.schemaName}.${this._tableName}`;
1947
1965
  const release = await this.db.latches.acquire(lockKey);
1948
1966
  const originalManagerSchema = this.tableSchema;
1949
- const schemaManager = this.db.schemaManager;
1950
- const resolveColumnInSource = (s, t, col) => schemaManager.getSchema(s)?.getTable(t)?.columnIndexMap.has(col.toLowerCase()) ?? false;
1967
+ // The engine's own propagation pass walks these same shared `Expression` nodes with
1968
+ // `buildColumnSourceResolver`, so this hook must use it too: a hand-rolled table-only
1969
+ // lookup answers "no" for a VIEW source, and the two walks then disagree about
1970
+ // whether an unqualified ref inside a subquery binds the view or the owning table.
1971
+ const resolveColumnInSource = buildColumnSourceResolver(this.db);
1972
+ // Built before any mutation of this hook (the engine's catalog swap comes
1973
+ // later still); the reverse pass reuses the same snapshot and key.
1974
+ const resolveRef = buildObjectRefResolver(this.db, this.schemaName);
1975
+ const tableKey = objectRefKey(this.schemaName, this._tableName);
1951
1976
  let predicatesRewritten = false;
1952
1977
  try {
1953
1978
  await this.ensureSchemaChangeSafety();
@@ -2006,7 +2031,7 @@ export class MemoryTableManager {
2006
2031
  // pass is a no-op when nothing names `newColumnName`, so arming it eagerly
2007
2032
  // costs nothing when the rewrite finds no predicate to touch.
2008
2033
  predicatesRewritten = true;
2009
- renameColumnInIndexPredicates(finalNewTableSchema.indexes, this._tableName, oldName, newColumnName, this.schemaName, resolveColumnInSource);
2034
+ renameColumnInIndexPredicates(finalNewTableSchema.indexes, this._tableName, oldName, newColumnName, resolveRef, tableKey, resolveColumnInSource);
2010
2035
  this.baseLayer.updateSchema(finalNewTableSchema);
2011
2036
  // Rebuilds every secondary index from the new schema, so a renamed covering index
2012
2037
  // lands under its new key in the base's index map with no extra rebuild here.
@@ -2037,7 +2062,7 @@ export class MemoryTableManager {
2037
2062
  // `originalManagerSchema` does not undo the rewrite — run it in reverse. The
2038
2063
  // flag keeps a failure raised *before* the rewrite from un-renaming anything.
2039
2064
  if (predicatesRewritten) {
2040
- renameColumnInIndexPredicates(originalManagerSchema.indexes, this._tableName, newColumnDefAst.name, oldName, this.schemaName, resolveColumnInSource);
2065
+ renameColumnInIndexPredicates(originalManagerSchema.indexes, this._tableName, newColumnDefAst.name, oldName, resolveRef, tableKey, resolveColumnInSource);
2041
2066
  }
2042
2067
  this.baseLayer.updateSchema(originalManagerSchema);
2043
2068
  this.tableSchema = originalManagerSchema;
@@ -2911,8 +2936,8 @@ export class MemoryTableManager {
2911
2936
  // loop above misses it, so after an in-transaction schema change (e.g. ALTER TABLE ADD
2912
2937
  // COLUMN, now permitted inside an explicit transaction) it keeps reading a stale
2913
2938
  // pre-change layer carrying the OLD column shape — the materialized-view-source-stale-read
2914
- // bug. A detached connection always has `pendingTransactionLayer === null` (disconnect
2915
- // defers while a pending layer is uncommitted), so this never discards in-flight writes.
2939
+ // bug. A detached connection never holds open work (`disconnect` defers while
2940
+ // `hasOpenWork()`), so this never discards in-flight writes.
2916
2941
  this.repointRegisteredConnections();
2917
2942
  // Re-pointing `readLayer` is not enough: a savepoint taken while a connection held no
2918
2943
  // pending layer stored the layer it was READING as the view to restore. Consolidation