@quereus/quereus 4.3.0 → 4.3.2

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 (730) hide show
  1. package/README.md +25 -7
  2. package/dist/src/common/types.d.ts +9 -59
  3. package/dist/src/common/types.d.ts.map +1 -1
  4. package/dist/src/common/types.js.map +1 -1
  5. package/dist/src/core/database-assertions.d.ts +2 -2
  6. package/dist/src/core/database-assertions.d.ts.map +1 -1
  7. package/dist/src/core/database-assertions.js +4 -3
  8. package/dist/src/core/database-assertions.js.map +1 -1
  9. package/dist/src/core/database-external-changes.d.ts +1 -1
  10. package/dist/src/core/database-external-changes.js +1 -1
  11. package/dist/src/core/database-internal.d.ts.map +1 -1
  12. package/dist/src/core/database-materialized-views-analysis.d.ts +199 -0
  13. package/dist/src/core/database-materialized-views-analysis.d.ts.map +1 -0
  14. package/dist/src/core/database-materialized-views-analysis.js +502 -0
  15. package/dist/src/core/database-materialized-views-analysis.js.map +1 -0
  16. package/dist/src/core/database-materialized-views-apply.d.ts +280 -0
  17. package/dist/src/core/database-materialized-views-apply.d.ts.map +1 -0
  18. package/dist/src/core/database-materialized-views-apply.js +624 -0
  19. package/dist/src/core/database-materialized-views-apply.js.map +1 -0
  20. package/dist/src/core/database-materialized-views-plan-builders.d.ts +203 -0
  21. package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -0
  22. package/dist/src/core/database-materialized-views-plan-builders.js +1084 -0
  23. package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -0
  24. package/dist/src/core/database-materialized-views-plans.d.ts +417 -0
  25. package/dist/src/core/database-materialized-views-plans.d.ts.map +1 -0
  26. package/dist/src/core/database-materialized-views-plans.js +13 -0
  27. package/dist/src/core/database-materialized-views-plans.js.map +1 -0
  28. package/dist/src/core/database-materialized-views.d.ts +11 -819
  29. package/dist/src/core/database-materialized-views.d.ts.map +1 -1
  30. package/dist/src/core/database-materialized-views.js +60 -2069
  31. package/dist/src/core/database-materialized-views.js.map +1 -1
  32. package/dist/src/core/database-transaction.d.ts +10 -1
  33. package/dist/src/core/database-transaction.d.ts.map +1 -1
  34. package/dist/src/core/database-transaction.js +16 -4
  35. package/dist/src/core/database-transaction.js.map +1 -1
  36. package/dist/src/core/database-watchers.d.ts.map +1 -1
  37. package/dist/src/core/database-watchers.js +2 -1
  38. package/dist/src/core/database-watchers.js.map +1 -1
  39. package/dist/src/core/database.d.ts +99 -13
  40. package/dist/src/core/database.d.ts.map +1 -1
  41. package/dist/src/core/database.js +250 -33
  42. package/dist/src/core/database.js.map +1 -1
  43. package/dist/src/core/derived-row-validator.d.ts +1 -1
  44. package/dist/src/core/derived-row-validator.d.ts.map +1 -1
  45. package/dist/src/core/derived-row-validator.js +5 -3
  46. package/dist/src/core/derived-row-validator.js.map +1 -1
  47. package/dist/src/core/statement.d.ts +8 -0
  48. package/dist/src/core/statement.d.ts.map +1 -1
  49. package/dist/src/core/statement.js +98 -18
  50. package/dist/src/core/statement.js.map +1 -1
  51. package/dist/src/emit/ast-stringify.d.ts.map +1 -1
  52. package/dist/src/emit/ast-stringify.js +24 -13
  53. package/dist/src/emit/ast-stringify.js.map +1 -1
  54. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  55. package/dist/src/func/builtins/explain.js +2 -1
  56. package/dist/src/func/builtins/explain.js.map +1 -1
  57. package/dist/src/func/builtins/json.d.ts.map +1 -1
  58. package/dist/src/func/builtins/json.js +2 -1
  59. package/dist/src/func/builtins/json.js.map +1 -1
  60. package/dist/src/func/builtins/mutation.d.ts.map +1 -1
  61. package/dist/src/func/builtins/mutation.js +3 -2
  62. package/dist/src/func/builtins/mutation.js.map +1 -1
  63. package/dist/src/index.d.ts +16 -6
  64. package/dist/src/index.d.ts.map +1 -1
  65. package/dist/src/index.js +33 -7
  66. package/dist/src/index.js.map +1 -1
  67. package/dist/src/parser/ast.d.ts +2 -2
  68. package/dist/src/parser/lexer.d.ts +11 -1
  69. package/dist/src/parser/lexer.d.ts.map +1 -1
  70. package/dist/src/parser/lexer.js +40 -34
  71. package/dist/src/parser/lexer.js.map +1 -1
  72. package/dist/src/parser/parser.d.ts.map +1 -1
  73. package/dist/src/parser/parser.js +16 -9
  74. package/dist/src/parser/parser.js.map +1 -1
  75. package/dist/src/planner/analysis/authored-inverse.js +1 -1
  76. package/dist/src/planner/analysis/comparison-collation.d.ts +52 -0
  77. package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
  78. package/dist/src/planner/analysis/comparison-collation.js +84 -7
  79. package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
  80. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  81. package/dist/src/planner/analysis/constraint-extractor.js +64 -17
  82. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  83. package/dist/src/planner/analysis/coverage-prover.d.ts +1 -1
  84. package/dist/src/planner/analysis/coverage-prover.js +1 -1
  85. package/dist/src/planner/analysis/sat-checker.d.ts +8 -1
  86. package/dist/src/planner/analysis/sat-checker.d.ts.map +1 -1
  87. package/dist/src/planner/analysis/sat-checker.js +117 -22
  88. package/dist/src/planner/analysis/sat-checker.js.map +1 -1
  89. package/dist/src/planner/analysis/scalar-invertibility.d.ts +13 -4
  90. package/dist/src/planner/analysis/scalar-invertibility.d.ts.map +1 -1
  91. package/dist/src/planner/analysis/scalar-invertibility.js +12 -3
  92. package/dist/src/planner/analysis/scalar-invertibility.js.map +1 -1
  93. package/dist/src/planner/analysis/update-lineage.d.ts +1 -1
  94. package/dist/src/planner/analysis/update-lineage.js +1 -1
  95. package/dist/src/planner/analysis/update-lineage.js.map +1 -1
  96. package/dist/src/planner/analysis/view-complement.d.ts +2 -2
  97. package/dist/src/planner/building/delete.d.ts.map +1 -1
  98. package/dist/src/planner/building/delete.js +13 -2
  99. package/dist/src/planner/building/delete.js.map +1 -1
  100. package/dist/src/planner/building/dml-target.d.ts +2 -2
  101. package/dist/src/planner/building/dml-target.js +2 -2
  102. package/dist/src/planner/building/insert.d.ts.map +1 -1
  103. package/dist/src/planner/building/insert.js +53 -2
  104. package/dist/src/planner/building/insert.js.map +1 -1
  105. package/dist/src/planner/building/schema-resolution.d.ts +3 -0
  106. package/dist/src/planner/building/schema-resolution.d.ts.map +1 -1
  107. package/dist/src/planner/building/schema-resolution.js +4 -5
  108. package/dist/src/planner/building/schema-resolution.js.map +1 -1
  109. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  110. package/dist/src/planner/building/select-aggregates.js +72 -4
  111. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  112. package/dist/src/planner/building/select.js +3 -3
  113. package/dist/src/planner/building/select.js.map +1 -1
  114. package/dist/src/planner/building/update.d.ts.map +1 -1
  115. package/dist/src/planner/building/update.js +16 -2
  116. package/dist/src/planner/building/update.js.map +1 -1
  117. package/dist/src/planner/building/view-mutation-builder.js +7 -7
  118. package/dist/src/planner/building/view-mutation-builder.js.map +1 -1
  119. package/dist/src/planner/cache/materialization-advisory.d.ts +1 -2
  120. package/dist/src/planner/cache/materialization-advisory.d.ts.map +1 -1
  121. package/dist/src/planner/cache/materialization-advisory.js +21 -14
  122. package/dist/src/planner/cache/materialization-advisory.js.map +1 -1
  123. package/dist/src/planner/cache/reference-graph.d.ts +14 -1
  124. package/dist/src/planner/cache/reference-graph.d.ts.map +1 -1
  125. package/dist/src/planner/cache/reference-graph.js +26 -26
  126. package/dist/src/planner/cache/reference-graph.js.map +1 -1
  127. package/dist/src/planner/cost/index.d.ts +7 -3
  128. package/dist/src/planner/cost/index.d.ts.map +1 -1
  129. package/dist/src/planner/cost/index.js.map +1 -1
  130. package/dist/src/planner/debug.d.ts +3 -2
  131. package/dist/src/planner/debug.d.ts.map +1 -1
  132. package/dist/src/planner/debug.js +9 -3
  133. package/dist/src/planner/debug.js.map +1 -1
  134. package/dist/src/planner/framework/characteristics.d.ts +46 -19
  135. package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
  136. package/dist/src/planner/framework/characteristics.js +50 -134
  137. package/dist/src/planner/framework/characteristics.js.map +1 -1
  138. package/dist/src/planner/framework/context.d.ts +8 -44
  139. package/dist/src/planner/framework/context.d.ts.map +1 -1
  140. package/dist/src/planner/framework/context.js +0 -91
  141. package/dist/src/planner/framework/context.js.map +1 -1
  142. package/dist/src/planner/framework/pass.d.ts +7 -0
  143. package/dist/src/planner/framework/pass.d.ts.map +1 -1
  144. package/dist/src/planner/framework/pass.js +84 -0
  145. package/dist/src/planner/framework/pass.js.map +1 -1
  146. package/dist/src/planner/framework/registry.d.ts +13 -42
  147. package/dist/src/planner/framework/registry.d.ts.map +1 -1
  148. package/dist/src/planner/framework/registry.js +14 -182
  149. package/dist/src/planner/framework/registry.js.map +1 -1
  150. package/dist/src/planner/mutation/backward-body.d.ts +2 -2
  151. package/dist/src/planner/mutation/cte-flatten.js +1 -1
  152. package/dist/src/planner/mutation/decomposition.d.ts +2 -2
  153. package/dist/src/planner/mutation/decomposition.js +1 -1
  154. package/dist/src/planner/mutation/lens-enforcement.d.ts.map +1 -1
  155. package/dist/src/planner/mutation/lens-enforcement.js +2 -1
  156. package/dist/src/planner/mutation/lens-enforcement.js.map +1 -1
  157. package/dist/src/planner/mutation/multi-source.d.ts +8 -8
  158. package/dist/src/planner/mutation/multi-source.js +11 -11
  159. package/dist/src/planner/mutation/multi-source.js.map +1 -1
  160. package/dist/src/planner/mutation/propagate.d.ts +1 -1
  161. package/dist/src/planner/mutation/propagate.js +1 -1
  162. package/dist/src/planner/mutation/scope-transform.d.ts +2 -2
  163. package/dist/src/planner/mutation/scope-transform.js +3 -3
  164. package/dist/src/planner/mutation/scope-transform.js.map +1 -1
  165. package/dist/src/planner/mutation/set-op.d.ts +1 -1
  166. package/dist/src/planner/mutation/set-op.d.ts.map +1 -1
  167. package/dist/src/planner/mutation/set-op.js +3 -2
  168. package/dist/src/planner/mutation/set-op.js.map +1 -1
  169. package/dist/src/planner/mutation/single-source.d.ts +3 -3
  170. package/dist/src/planner/mutation/single-source.js +9 -9
  171. package/dist/src/planner/mutation/single-source.js.map +1 -1
  172. package/dist/src/planner/nodes/aggregate-function.d.ts +3 -1
  173. package/dist/src/planner/nodes/aggregate-function.d.ts.map +1 -1
  174. package/dist/src/planner/nodes/aggregate-function.js +1 -0
  175. package/dist/src/planner/nodes/aggregate-function.js.map +1 -1
  176. package/dist/src/planner/nodes/aggregate-node.d.ts +1 -0
  177. package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
  178. package/dist/src/planner/nodes/aggregate-node.js +8 -1
  179. package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
  180. package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
  181. package/dist/src/planner/nodes/alias-node.js +3 -1
  182. package/dist/src/planner/nodes/alias-node.js.map +1 -1
  183. package/dist/src/planner/nodes/asof-scan-node.d.ts.map +1 -1
  184. package/dist/src/planner/nodes/asof-scan-node.js +3 -2
  185. package/dist/src/planner/nodes/asof-scan-node.js.map +1 -1
  186. package/dist/src/planner/nodes/asserted-keys-node.d.ts +1 -1
  187. package/dist/src/planner/nodes/asserted-keys-node.d.ts.map +1 -1
  188. package/dist/src/planner/nodes/asserted-keys-node.js +5 -2
  189. package/dist/src/planner/nodes/asserted-keys-node.js.map +1 -1
  190. package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -1
  191. package/dist/src/planner/nodes/async-gather-node.js +3 -1
  192. package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
  193. package/dist/src/planner/nodes/block.js +3 -3
  194. package/dist/src/planner/nodes/block.js.map +1 -1
  195. package/dist/src/planner/nodes/bloom-join-node.d.ts +2 -0
  196. package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
  197. package/dist/src/planner/nodes/bloom-join-node.js +5 -1
  198. package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
  199. package/dist/src/planner/nodes/cache-node.d.ts +1 -0
  200. package/dist/src/planner/nodes/cache-node.d.ts.map +1 -1
  201. package/dist/src/planner/nodes/cache-node.js +1 -0
  202. package/dist/src/planner/nodes/cache-node.js.map +1 -1
  203. package/dist/src/planner/nodes/cte-node.d.ts +1 -0
  204. package/dist/src/planner/nodes/cte-node.d.ts.map +1 -1
  205. package/dist/src/planner/nodes/cte-node.js +4 -1
  206. package/dist/src/planner/nodes/cte-node.js.map +1 -1
  207. package/dist/src/planner/nodes/distinct-node.js +3 -3
  208. package/dist/src/planner/nodes/distinct-node.js.map +1 -1
  209. package/dist/src/planner/nodes/dml-executor-node.d.ts +21 -0
  210. package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
  211. package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
  212. package/dist/src/planner/nodes/envelope-scan-node.d.ts +1 -1
  213. package/dist/src/planner/nodes/envelope-scan-node.js +1 -1
  214. package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts.map +1 -1
  215. package/dist/src/planner/nodes/fanout-lookup-join-node.js +4 -2
  216. package/dist/src/planner/nodes/fanout-lookup-join-node.js.map +1 -1
  217. package/dist/src/planner/nodes/filter.d.ts +10 -2
  218. package/dist/src/planner/nodes/filter.d.ts.map +1 -1
  219. package/dist/src/planner/nodes/filter.js +81 -14
  220. package/dist/src/planner/nodes/filter.js.map +1 -1
  221. package/dist/src/planner/nodes/hash-aggregate.d.ts +12 -1
  222. package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
  223. package/dist/src/planner/nodes/hash-aggregate.js +28 -1
  224. package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
  225. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.d.ts +3 -1
  226. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.d.ts.map +1 -1
  227. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js +1 -0
  228. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js.map +1 -1
  229. package/dist/src/planner/nodes/join-node.d.ts +3 -1
  230. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  231. package/dist/src/planner/nodes/join-node.js +5 -5
  232. package/dist/src/planner/nodes/join-node.js.map +1 -1
  233. package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts.map +1 -1
  234. package/dist/src/planner/nodes/lens-auxiliary-access-node.js +4 -1
  235. package/dist/src/planner/nodes/lens-auxiliary-access-node.js.map +1 -1
  236. package/dist/src/planner/nodes/limit-offset.d.ts +1 -0
  237. package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
  238. package/dist/src/planner/nodes/limit-offset.js +4 -3
  239. package/dist/src/planner/nodes/limit-offset.js.map +1 -1
  240. package/dist/src/planner/nodes/merge-join-node.d.ts +2 -0
  241. package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
  242. package/dist/src/planner/nodes/merge-join-node.js +6 -1
  243. package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
  244. package/dist/src/planner/nodes/ordinal-slice-node.d.ts.map +1 -1
  245. package/dist/src/planner/nodes/ordinal-slice-node.js +3 -1
  246. package/dist/src/planner/nodes/ordinal-slice-node.js.map +1 -1
  247. package/dist/src/planner/nodes/plan-node.d.ts +68 -5
  248. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  249. package/dist/src/planner/nodes/plan-node.js +137 -24
  250. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  251. package/dist/src/planner/nodes/project-node.d.ts +3 -2
  252. package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
  253. package/dist/src/planner/nodes/project-node.js +1 -0
  254. package/dist/src/planner/nodes/project-node.js.map +1 -1
  255. package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -1
  256. package/dist/src/planner/nodes/recursive-cte-node.js +8 -2
  257. package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
  258. package/dist/src/planner/nodes/reference.d.ts +5 -1
  259. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  260. package/dist/src/planner/nodes/reference.js +3 -0
  261. package/dist/src/planner/nodes/reference.js.map +1 -1
  262. package/dist/src/planner/nodes/remote-query-node.d.ts.map +1 -1
  263. package/dist/src/planner/nodes/remote-query-node.js +3 -1
  264. package/dist/src/planner/nodes/remote-query-node.js.map +1 -1
  265. package/dist/src/planner/nodes/retrieve-node.d.ts.map +1 -1
  266. package/dist/src/planner/nodes/retrieve-node.js +3 -1
  267. package/dist/src/planner/nodes/retrieve-node.js.map +1 -1
  268. package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
  269. package/dist/src/planner/nodes/set-operation-node.js +3 -1
  270. package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
  271. package/dist/src/planner/nodes/sink-node.d.ts.map +1 -1
  272. package/dist/src/planner/nodes/sink-node.js +3 -1
  273. package/dist/src/planner/nodes/sink-node.js.map +1 -1
  274. package/dist/src/planner/nodes/sort.d.ts +2 -1
  275. package/dist/src/planner/nodes/sort.d.ts.map +1 -1
  276. package/dist/src/planner/nodes/sort.js +9 -5
  277. package/dist/src/planner/nodes/sort.js.map +1 -1
  278. package/dist/src/planner/nodes/stream-aggregate.d.ts +12 -1
  279. package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
  280. package/dist/src/planner/nodes/stream-aggregate.js +32 -3
  281. package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
  282. package/dist/src/planner/nodes/table-access-nodes.d.ts +2 -1
  283. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
  284. package/dist/src/planner/nodes/table-access-nodes.js +2 -0
  285. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  286. package/dist/src/planner/nodes/view-mutation-node.d.ts +2 -2
  287. package/dist/src/planner/nodes/view-mutation-node.d.ts.map +1 -1
  288. package/dist/src/planner/nodes/view-mutation-node.js +5 -1
  289. package/dist/src/planner/nodes/view-mutation-node.js.map +1 -1
  290. package/dist/src/planner/nodes/window-function.d.ts +3 -1
  291. package/dist/src/planner/nodes/window-function.d.ts.map +1 -1
  292. package/dist/src/planner/nodes/window-function.js +1 -0
  293. package/dist/src/planner/nodes/window-function.js.map +1 -1
  294. package/dist/src/planner/optimizer.d.ts +52 -8
  295. package/dist/src/planner/optimizer.d.ts.map +1 -1
  296. package/dist/src/planner/optimizer.js +885 -894
  297. package/dist/src/planner/optimizer.js.map +1 -1
  298. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  299. package/dist/src/planner/rules/access/rule-select-access-path.js +235 -202
  300. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  301. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts +2 -2
  302. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +2 -2
  303. package/dist/src/planner/rules/cache/rule-scalar-cse.d.ts +1 -1
  304. package/dist/src/planner/rules/cache/rule-scalar-cse.js +1 -1
  305. package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts +1 -1
  306. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +1 -1
  307. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.d.ts +1 -1
  308. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.js +1 -1
  309. package/dist/src/planner/rules/join/rule-join-elimination.d.ts +1 -1
  310. package/dist/src/planner/rules/join/rule-join-elimination.js +1 -1
  311. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js +5 -6
  312. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js.map +1 -1
  313. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.d.ts +1 -1
  314. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js +1 -1
  315. package/dist/src/planner/rules/predicate/rule-filter-contradiction.d.ts +2 -2
  316. package/dist/src/planner/rules/predicate/rule-filter-contradiction.d.ts.map +1 -1
  317. package/dist/src/planner/rules/predicate/rule-filter-contradiction.js +4 -3
  318. package/dist/src/planner/rules/predicate/rule-filter-contradiction.js.map +1 -1
  319. package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts +19 -0
  320. package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts.map +1 -0
  321. package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +48 -0
  322. package/dist/src/planner/rules/predicate/rule-filter-selectivity.js.map +1 -0
  323. package/dist/src/planner/rules/predicate/rule-sargable-range-rewrite.js +12 -1
  324. package/dist/src/planner/rules/predicate/rule-sargable-range-rewrite.js.map +1 -1
  325. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
  326. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +90 -26
  327. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  328. package/dist/src/planner/rules/shared/index-style-context.d.ts +39 -0
  329. package/dist/src/planner/rules/shared/index-style-context.d.ts.map +1 -0
  330. package/dist/src/planner/rules/shared/index-style-context.js +26 -0
  331. package/dist/src/planner/rules/shared/index-style-context.js.map +1 -0
  332. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.d.ts +1 -1
  333. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js +1 -1
  334. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.d.ts +1 -1
  335. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js +1 -1
  336. package/dist/src/planner/scopes/registered.d.ts +21 -0
  337. package/dist/src/planner/scopes/registered.d.ts.map +1 -1
  338. package/dist/src/planner/scopes/registered.js +31 -1
  339. package/dist/src/planner/scopes/registered.js.map +1 -1
  340. package/dist/src/planner/stats/analyze.d.ts.map +1 -1
  341. package/dist/src/planner/stats/analyze.js +2 -20
  342. package/dist/src/planner/stats/analyze.js.map +1 -1
  343. package/dist/src/planner/stats/histogram.d.ts.map +1 -1
  344. package/dist/src/planner/stats/histogram.js +4 -0
  345. package/dist/src/planner/stats/histogram.js.map +1 -1
  346. package/dist/src/planner/util/fd-utils.d.ts +2 -3
  347. package/dist/src/planner/util/fd-utils.d.ts.map +1 -1
  348. package/dist/src/planner/util/fd-utils.js +2 -3
  349. package/dist/src/planner/util/fd-utils.js.map +1 -1
  350. package/dist/src/planner/validation/plan-validator.d.ts +16 -0
  351. package/dist/src/planner/validation/plan-validator.d.ts.map +1 -1
  352. package/dist/src/planner/validation/plan-validator.js +36 -0
  353. package/dist/src/planner/validation/plan-validator.js.map +1 -1
  354. package/dist/src/runtime/async-util.d.ts +26 -0
  355. package/dist/src/runtime/async-util.d.ts.map +1 -1
  356. package/dist/src/runtime/async-util.js +139 -55
  357. package/dist/src/runtime/async-util.js.map +1 -1
  358. package/dist/src/runtime/context-helpers.d.ts +32 -4
  359. package/dist/src/runtime/context-helpers.d.ts.map +1 -1
  360. package/dist/src/runtime/context-helpers.js +26 -9
  361. package/dist/src/runtime/context-helpers.js.map +1 -1
  362. package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
  363. package/dist/src/runtime/deferred-constraint-queue.js +2 -1
  364. package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
  365. package/dist/src/runtime/emission-context.d.ts +27 -3
  366. package/dist/src/runtime/emission-context.d.ts.map +1 -1
  367. package/dist/src/runtime/emission-context.js +38 -7
  368. package/dist/src/runtime/emission-context.js.map +1 -1
  369. package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
  370. package/dist/src/runtime/emit/add-constraint.js +7 -1
  371. package/dist/src/runtime/emit/add-constraint.js.map +1 -1
  372. package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
  373. package/dist/src/runtime/emit/aggregate.js +17 -13
  374. package/dist/src/runtime/emit/aggregate.js.map +1 -1
  375. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  376. package/dist/src/runtime/emit/alter-table.js +98 -9
  377. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  378. package/dist/src/runtime/emit/analyze.d.ts.map +1 -1
  379. package/dist/src/runtime/emit/analyze.js +2 -1
  380. package/dist/src/runtime/emit/analyze.js.map +1 -1
  381. package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
  382. package/dist/src/runtime/emit/asof-scan.js +13 -10
  383. package/dist/src/runtime/emit/asof-scan.js.map +1 -1
  384. package/dist/src/runtime/emit/async-gather.d.ts.map +1 -1
  385. package/dist/src/runtime/emit/async-gather.js +4 -3
  386. package/dist/src/runtime/emit/async-gather.js.map +1 -1
  387. package/dist/src/runtime/emit/between.d.ts.map +1 -1
  388. package/dist/src/runtime/emit/between.js +2 -1
  389. package/dist/src/runtime/emit/between.js.map +1 -1
  390. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  391. package/dist/src/runtime/emit/binary.js +122 -14
  392. package/dist/src/runtime/emit/binary.js.map +1 -1
  393. package/dist/src/runtime/emit/block.d.ts.map +1 -1
  394. package/dist/src/runtime/emit/block.js +2 -1
  395. package/dist/src/runtime/emit/block.js.map +1 -1
  396. package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
  397. package/dist/src/runtime/emit/bloom-join.js +20 -8
  398. package/dist/src/runtime/emit/bloom-join.js.map +1 -1
  399. package/dist/src/runtime/emit/cache.d.ts.map +1 -1
  400. package/dist/src/runtime/emit/cache.js +2 -1
  401. package/dist/src/runtime/emit/cache.js.map +1 -1
  402. package/dist/src/runtime/emit/case.d.ts.map +1 -1
  403. package/dist/src/runtime/emit/case.js +66 -45
  404. package/dist/src/runtime/emit/case.js.map +1 -1
  405. package/dist/src/runtime/emit/cast.d.ts.map +1 -1
  406. package/dist/src/runtime/emit/cast.js +2 -1
  407. package/dist/src/runtime/emit/cast.js.map +1 -1
  408. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  409. package/dist/src/runtime/emit/constraint-check.js +13 -7
  410. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  411. package/dist/src/runtime/emit/create-assertion.d.ts.map +1 -1
  412. package/dist/src/runtime/emit/create-assertion.js +2 -1
  413. package/dist/src/runtime/emit/create-assertion.js.map +1 -1
  414. package/dist/src/runtime/emit/create-index.d.ts.map +1 -1
  415. package/dist/src/runtime/emit/create-index.js +12 -1
  416. package/dist/src/runtime/emit/create-index.js.map +1 -1
  417. package/dist/src/runtime/emit/create-table.d.ts.map +1 -1
  418. package/dist/src/runtime/emit/create-table.js +12 -1
  419. package/dist/src/runtime/emit/create-table.js.map +1 -1
  420. package/dist/src/runtime/emit/cte-reference.d.ts.map +1 -1
  421. package/dist/src/runtime/emit/cte-reference.js +2 -1
  422. package/dist/src/runtime/emit/cte-reference.js.map +1 -1
  423. package/dist/src/runtime/emit/cte.d.ts.map +1 -1
  424. package/dist/src/runtime/emit/cte.js +2 -1
  425. package/dist/src/runtime/emit/cte.js.map +1 -1
  426. package/dist/src/runtime/emit/ddl-transaction-policy.d.ts +50 -0
  427. package/dist/src/runtime/emit/ddl-transaction-policy.d.ts.map +1 -0
  428. package/dist/src/runtime/emit/ddl-transaction-policy.js +69 -0
  429. package/dist/src/runtime/emit/ddl-transaction-policy.js.map +1 -0
  430. package/dist/src/runtime/emit/delete.d.ts.map +1 -1
  431. package/dist/src/runtime/emit/delete.js +2 -1
  432. package/dist/src/runtime/emit/delete.js.map +1 -1
  433. package/dist/src/runtime/emit/distinct.d.ts.map +1 -1
  434. package/dist/src/runtime/emit/distinct.js +2 -1
  435. package/dist/src/runtime/emit/distinct.js.map +1 -1
  436. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  437. package/dist/src/runtime/emit/dml-executor.js +147 -34
  438. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  439. package/dist/src/runtime/emit/drop-assertion.d.ts.map +1 -1
  440. package/dist/src/runtime/emit/drop-assertion.js +2 -1
  441. package/dist/src/runtime/emit/drop-assertion.js.map +1 -1
  442. package/dist/src/runtime/emit/drop-index.d.ts.map +1 -1
  443. package/dist/src/runtime/emit/drop-index.js +17 -1
  444. package/dist/src/runtime/emit/drop-index.js.map +1 -1
  445. package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
  446. package/dist/src/runtime/emit/drop-table.js +11 -1
  447. package/dist/src/runtime/emit/drop-table.js.map +1 -1
  448. package/dist/src/runtime/emit/eager-prefetch.d.ts.map +1 -1
  449. package/dist/src/runtime/emit/eager-prefetch.js +2 -1
  450. package/dist/src/runtime/emit/eager-prefetch.js.map +1 -1
  451. package/dist/src/runtime/emit/envelope-scan.d.ts.map +1 -1
  452. package/dist/src/runtime/emit/envelope-scan.js +2 -1
  453. package/dist/src/runtime/emit/envelope-scan.js.map +1 -1
  454. package/dist/src/runtime/emit/fanout-lookup-join.d.ts.map +1 -1
  455. package/dist/src/runtime/emit/fanout-lookup-join.js +3 -2
  456. package/dist/src/runtime/emit/fanout-lookup-join.js.map +1 -1
  457. package/dist/src/runtime/emit/filter.d.ts.map +1 -1
  458. package/dist/src/runtime/emit/filter.js +8 -3
  459. package/dist/src/runtime/emit/filter.js.map +1 -1
  460. package/dist/src/runtime/emit/hash-aggregate.d.ts.map +1 -1
  461. package/dist/src/runtime/emit/hash-aggregate.js +16 -11
  462. package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
  463. package/dist/src/runtime/emit/insert.d.ts.map +1 -1
  464. package/dist/src/runtime/emit/insert.js +2 -1
  465. package/dist/src/runtime/emit/insert.js.map +1 -1
  466. package/dist/src/runtime/emit/join.d.ts.map +1 -1
  467. package/dist/src/runtime/emit/join.js +20 -6
  468. package/dist/src/runtime/emit/join.js.map +1 -1
  469. package/dist/src/runtime/emit/limit-offset.d.ts.map +1 -1
  470. package/dist/src/runtime/emit/limit-offset.js +2 -1
  471. package/dist/src/runtime/emit/limit-offset.js.map +1 -1
  472. package/dist/src/runtime/emit/literal.d.ts.map +1 -1
  473. package/dist/src/runtime/emit/literal.js +2 -1
  474. package/dist/src/runtime/emit/literal.js.map +1 -1
  475. package/dist/src/runtime/emit/materialized-view-helpers.d.ts +22 -0
  476. package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
  477. package/dist/src/runtime/emit/materialized-view-helpers.js +123 -12
  478. package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
  479. package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
  480. package/dist/src/runtime/emit/materialized-view.js +6 -0
  481. package/dist/src/runtime/emit/materialized-view.js.map +1 -1
  482. package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
  483. package/dist/src/runtime/emit/merge-join.js +14 -4
  484. package/dist/src/runtime/emit/merge-join.js.map +1 -1
  485. package/dist/src/runtime/emit/ordinal-slice.d.ts.map +1 -1
  486. package/dist/src/runtime/emit/ordinal-slice.js +2 -1
  487. package/dist/src/runtime/emit/ordinal-slice.js.map +1 -1
  488. package/dist/src/runtime/emit/pragma.d.ts.map +1 -1
  489. package/dist/src/runtime/emit/pragma.js +2 -1
  490. package/dist/src/runtime/emit/pragma.js.map +1 -1
  491. package/dist/src/runtime/emit/project.d.ts.map +1 -1
  492. package/dist/src/runtime/emit/project.js +7 -2
  493. package/dist/src/runtime/emit/project.js.map +1 -1
  494. package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
  495. package/dist/src/runtime/emit/recursive-cte.js +2 -1
  496. package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
  497. package/dist/src/runtime/emit/returning.d.ts.map +1 -1
  498. package/dist/src/runtime/emit/returning.js +7 -2
  499. package/dist/src/runtime/emit/returning.js.map +1 -1
  500. package/dist/src/runtime/emit/scalar-function.d.ts.map +1 -1
  501. package/dist/src/runtime/emit/scalar-function.js +2 -1
  502. package/dist/src/runtime/emit/scalar-function.js.map +1 -1
  503. package/dist/src/runtime/emit/scan.d.ts.map +1 -1
  504. package/dist/src/runtime/emit/scan.js +55 -17
  505. package/dist/src/runtime/emit/scan.js.map +1 -1
  506. package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
  507. package/dist/src/runtime/emit/schema-declarative.js +6 -5
  508. package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
  509. package/dist/src/runtime/emit/sequencing.d.ts.map +1 -1
  510. package/dist/src/runtime/emit/sequencing.js +2 -1
  511. package/dist/src/runtime/emit/sequencing.js.map +1 -1
  512. package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
  513. package/dist/src/runtime/emit/set-operation.js +6 -5
  514. package/dist/src/runtime/emit/set-operation.js.map +1 -1
  515. package/dist/src/runtime/emit/sink.d.ts.map +1 -1
  516. package/dist/src/runtime/emit/sink.js +2 -1
  517. package/dist/src/runtime/emit/sink.js.map +1 -1
  518. package/dist/src/runtime/emit/sort.d.ts.map +1 -1
  519. package/dist/src/runtime/emit/sort.js +2 -1
  520. package/dist/src/runtime/emit/sort.js.map +1 -1
  521. package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
  522. package/dist/src/runtime/emit/subquery.js +42 -23
  523. package/dist/src/runtime/emit/subquery.js.map +1 -1
  524. package/dist/src/runtime/emit/table-valued-function.d.ts.map +1 -1
  525. package/dist/src/runtime/emit/table-valued-function.js +2 -1
  526. package/dist/src/runtime/emit/table-valued-function.js.map +1 -1
  527. package/dist/src/runtime/emit/temporal-arithmetic.d.ts.map +1 -1
  528. package/dist/src/runtime/emit/temporal-arithmetic.js +2 -1
  529. package/dist/src/runtime/emit/temporal-arithmetic.js.map +1 -1
  530. package/dist/src/runtime/emit/transaction.d.ts.map +1 -1
  531. package/dist/src/runtime/emit/transaction.js +2 -1
  532. package/dist/src/runtime/emit/transaction.js.map +1 -1
  533. package/dist/src/runtime/emit/unary.d.ts.map +1 -1
  534. package/dist/src/runtime/emit/unary.js +2 -1
  535. package/dist/src/runtime/emit/unary.js.map +1 -1
  536. package/dist/src/runtime/emit/update.d.ts.map +1 -1
  537. package/dist/src/runtime/emit/update.js +2 -1
  538. package/dist/src/runtime/emit/update.js.map +1 -1
  539. package/dist/src/runtime/emit/values.d.ts.map +1 -1
  540. package/dist/src/runtime/emit/values.js +2 -1
  541. package/dist/src/runtime/emit/values.js.map +1 -1
  542. package/dist/src/runtime/emit/view-mutation.d.ts +1 -1
  543. package/dist/src/runtime/emit/view-mutation.d.ts.map +1 -1
  544. package/dist/src/runtime/emit/view-mutation.js +6 -3
  545. package/dist/src/runtime/emit/view-mutation.js.map +1 -1
  546. package/dist/src/runtime/emit/window.d.ts.map +1 -1
  547. package/dist/src/runtime/emit/window.js +26 -9
  548. package/dist/src/runtime/emit/window.js.map +1 -1
  549. package/dist/src/runtime/emitters.d.ts +11 -3
  550. package/dist/src/runtime/emitters.d.ts.map +1 -1
  551. package/dist/src/runtime/emitters.js +13 -22
  552. package/dist/src/runtime/emitters.js.map +1 -1
  553. package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
  554. package/dist/src/runtime/foreign-key-actions.js +39 -13
  555. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  556. package/dist/src/runtime/parallel-driver.d.ts +18 -4
  557. package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
  558. package/dist/src/runtime/parallel-driver.js +72 -18
  559. package/dist/src/runtime/parallel-driver.js.map +1 -1
  560. package/dist/src/runtime/scheduler.d.ts +56 -7
  561. package/dist/src/runtime/scheduler.d.ts.map +1 -1
  562. package/dist/src/runtime/scheduler.js +223 -200
  563. package/dist/src/runtime/scheduler.js.map +1 -1
  564. package/dist/src/runtime/strict-flags.d.ts +22 -0
  565. package/dist/src/runtime/strict-flags.d.ts.map +1 -0
  566. package/dist/src/runtime/strict-flags.js +26 -0
  567. package/dist/src/runtime/strict-flags.js.map +1 -0
  568. package/dist/src/runtime/strict-fork.d.ts +4 -4
  569. package/dist/src/runtime/strict-fork.d.ts.map +1 -1
  570. package/dist/src/runtime/strict-fork.js +175 -31
  571. package/dist/src/runtime/strict-fork.js.map +1 -1
  572. package/dist/src/runtime/types.d.ts +66 -4
  573. package/dist/src/runtime/types.d.ts.map +1 -1
  574. package/dist/src/runtime/types.js +37 -0
  575. package/dist/src/runtime/types.js.map +1 -1
  576. package/dist/src/runtime/utils.d.ts.map +1 -1
  577. package/dist/src/runtime/utils.js +8 -17
  578. package/dist/src/runtime/utils.js.map +1 -1
  579. package/dist/src/schema/column.d.ts +8 -0
  580. package/dist/src/schema/column.d.ts.map +1 -1
  581. package/dist/src/schema/column.js.map +1 -1
  582. package/dist/src/schema/ddl-generator.js +5 -0
  583. package/dist/src/schema/ddl-generator.js.map +1 -1
  584. package/dist/src/schema/lens-compiler.js +2 -2
  585. package/dist/src/schema/lens-compiler.js.map +1 -1
  586. package/dist/src/schema/lens-prover.d.ts.map +1 -1
  587. package/dist/src/schema/lens-prover.js +2 -3
  588. package/dist/src/schema/lens-prover.js.map +1 -1
  589. package/dist/src/schema/lens.d.ts +1 -1
  590. package/dist/src/schema/manager.d.ts.map +1 -1
  591. package/dist/src/schema/manager.js +7 -2
  592. package/dist/src/schema/manager.js.map +1 -1
  593. package/dist/src/schema/rename-rewriter.d.ts +61 -0
  594. package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
  595. package/dist/src/schema/rename-rewriter.js +77 -0
  596. package/dist/src/schema/rename-rewriter.js.map +1 -1
  597. package/dist/src/schema/table.d.ts +36 -8
  598. package/dist/src/schema/table.d.ts.map +1 -1
  599. package/dist/src/schema/table.js +61 -11
  600. package/dist/src/schema/table.js.map +1 -1
  601. package/dist/src/schema/unique-enforcement.d.ts +28 -5
  602. package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
  603. package/dist/src/schema/unique-enforcement.js +37 -5
  604. package/dist/src/schema/unique-enforcement.js.map +1 -1
  605. package/dist/src/schema/view.d.ts +1 -1
  606. package/dist/src/schema/view.js +1 -1
  607. package/dist/src/types/json-type.d.ts.map +1 -1
  608. package/dist/src/types/json-type.js +18 -8
  609. package/dist/src/types/json-type.js.map +1 -1
  610. package/dist/src/types/logical-type.d.ts +26 -0
  611. package/dist/src/types/logical-type.d.ts.map +1 -1
  612. package/dist/src/types/logical-type.js.map +1 -1
  613. package/dist/src/util/comparison.d.ts +83 -59
  614. package/dist/src/util/comparison.d.ts.map +1 -1
  615. package/dist/src/util/comparison.js +191 -131
  616. package/dist/src/util/comparison.js.map +1 -1
  617. package/dist/src/util/json-canonical.d.ts +34 -0
  618. package/dist/src/util/json-canonical.d.ts.map +1 -0
  619. package/dist/src/util/json-canonical.js +32 -0
  620. package/dist/src/util/json-canonical.js.map +1 -0
  621. package/dist/src/util/key-serializer.d.ts +10 -3
  622. package/dist/src/util/key-serializer.d.ts.map +1 -1
  623. package/dist/src/util/key-serializer.js +43 -17
  624. package/dist/src/util/key-serializer.js.map +1 -1
  625. package/dist/src/util/key-tuple-codec.d.ts +37 -0
  626. package/dist/src/util/key-tuple-codec.d.ts.map +1 -0
  627. package/dist/src/util/key-tuple-codec.js +65 -0
  628. package/dist/src/util/key-tuple-codec.js.map +1 -0
  629. package/dist/src/util/latches.d.ts +29 -3
  630. package/dist/src/util/latches.d.ts.map +1 -1
  631. package/dist/src/util/latches.js +60 -6
  632. package/dist/src/util/latches.js.map +1 -1
  633. package/dist/src/util/patterns.d.ts +22 -8
  634. package/dist/src/util/patterns.d.ts.map +1 -1
  635. package/dist/src/util/patterns.js +87 -16
  636. package/dist/src/util/patterns.js.map +1 -1
  637. package/dist/src/util/qualified-name.d.ts +10 -0
  638. package/dist/src/util/qualified-name.d.ts.map +1 -0
  639. package/dist/src/util/qualified-name.js +15 -0
  640. package/dist/src/util/qualified-name.js.map +1 -0
  641. package/dist/src/vtab/backing-host.d.ts +8 -1
  642. package/dist/src/vtab/backing-host.d.ts.map +1 -1
  643. package/dist/src/vtab/backing-host.js +7 -0
  644. package/dist/src/vtab/backing-host.js.map +1 -1
  645. package/dist/src/vtab/best-access-plan.d.ts +18 -0
  646. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  647. package/dist/src/vtab/best-access-plan.js +15 -0
  648. package/dist/src/vtab/best-access-plan.js.map +1 -1
  649. package/dist/src/vtab/capabilities.d.ts +44 -0
  650. package/dist/src/vtab/capabilities.d.ts.map +1 -1
  651. package/dist/src/vtab/filter-info.d.ts +42 -0
  652. package/dist/src/vtab/filter-info.d.ts.map +1 -1
  653. package/dist/src/vtab/filter-info.js +137 -1
  654. package/dist/src/vtab/filter-info.js.map +1 -1
  655. package/dist/src/vtab/idx-str.d.ts +62 -0
  656. package/dist/src/vtab/idx-str.d.ts.map +1 -0
  657. package/dist/src/vtab/idx-str.js +130 -0
  658. package/dist/src/vtab/idx-str.js.map +1 -0
  659. package/dist/src/vtab/index-descriptor.d.ts +122 -0
  660. package/dist/src/vtab/index-descriptor.d.ts.map +1 -0
  661. package/dist/src/vtab/index-descriptor.js +104 -0
  662. package/dist/src/vtab/index-descriptor.js.map +1 -0
  663. package/dist/src/vtab/mapping-advertisement.d.ts +1 -1
  664. package/dist/src/vtab/memory/index.d.ts +12 -4
  665. package/dist/src/vtab/memory/index.d.ts.map +1 -1
  666. package/dist/src/vtab/memory/index.js +17 -9
  667. package/dist/src/vtab/memory/index.js.map +1 -1
  668. package/dist/src/vtab/memory/layer/base.d.ts +85 -31
  669. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  670. package/dist/src/vtab/memory/layer/base.js +127 -86
  671. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  672. package/dist/src/vtab/memory/layer/connection.d.ts +27 -0
  673. package/dist/src/vtab/memory/layer/connection.d.ts.map +1 -1
  674. package/dist/src/vtab/memory/layer/connection.js +36 -1
  675. package/dist/src/vtab/memory/layer/connection.js.map +1 -1
  676. package/dist/src/vtab/memory/layer/interface.d.ts +24 -4
  677. package/dist/src/vtab/memory/layer/interface.d.ts.map +1 -1
  678. package/dist/src/vtab/memory/layer/manager.d.ts +212 -16
  679. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  680. package/dist/src/vtab/memory/layer/manager.js +754 -170
  681. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  682. package/dist/src/vtab/memory/layer/plan-filter.d.ts +26 -1
  683. package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -1
  684. package/dist/src/vtab/memory/layer/plan-filter.js +29 -11
  685. package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -1
  686. package/dist/src/vtab/memory/layer/safe-iterate.d.ts +2 -2
  687. package/dist/src/vtab/memory/layer/safe-iterate.d.ts.map +1 -1
  688. package/dist/src/vtab/memory/layer/safe-iterate.js +2 -2
  689. package/dist/src/vtab/memory/layer/safe-iterate.js.map +1 -1
  690. package/dist/src/vtab/memory/layer/scan-layer.d.ts +5 -1
  691. package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
  692. package/dist/src/vtab/memory/layer/scan-layer.js +38 -22
  693. package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
  694. package/dist/src/vtab/memory/layer/scan-plan.d.ts.map +1 -1
  695. package/dist/src/vtab/memory/layer/scan-plan.js +13 -21
  696. package/dist/src/vtab/memory/layer/scan-plan.js.map +1 -1
  697. package/dist/src/vtab/memory/layer/transaction.d.ts +169 -7
  698. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  699. package/dist/src/vtab/memory/layer/transaction.js +334 -9
  700. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  701. package/dist/src/vtab/memory/module.d.ts +21 -4
  702. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  703. package/dist/src/vtab/memory/module.js +45 -16
  704. package/dist/src/vtab/memory/module.js.map +1 -1
  705. package/dist/src/vtab/memory/table.d.ts +30 -4
  706. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  707. package/dist/src/vtab/memory/table.js +63 -15
  708. package/dist/src/vtab/memory/table.js.map +1 -1
  709. package/dist/src/vtab/memory/utils/predicate.d.ts +9 -1
  710. package/dist/src/vtab/memory/utils/predicate.d.ts.map +1 -1
  711. package/dist/src/vtab/memory/utils/predicate.js +35 -14
  712. package/dist/src/vtab/memory/utils/predicate.js.map +1 -1
  713. package/dist/src/vtab/memory/utils/primary-key-encode.d.ts.map +1 -1
  714. package/dist/src/vtab/memory/utils/primary-key-encode.js +12 -6
  715. package/dist/src/vtab/memory/utils/primary-key-encode.js.map +1 -1
  716. package/dist/src/vtab/memory/utils/primary-key.d.ts +6 -1
  717. package/dist/src/vtab/memory/utils/primary-key.d.ts.map +1 -1
  718. package/dist/src/vtab/memory/utils/primary-key.js +12 -8
  719. package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
  720. package/dist/src/vtab/module.d.ts +64 -14
  721. package/dist/src/vtab/module.d.ts.map +1 -1
  722. package/dist/src/vtab/table.d.ts +41 -2
  723. package/dist/src/vtab/table.d.ts.map +1 -1
  724. package/dist/src/vtab/table.js +19 -0
  725. package/dist/src/vtab/table.js.map +1 -1
  726. package/package.json +5 -4
  727. package/dist/src/planner/rules/cache/rule-materialization-advisory.d.ts +0 -18
  728. package/dist/src/planner/rules/cache/rule-materialization-advisory.d.ts.map +0 -1
  729. package/dist/src/planner/rules/cache/rule-materialization-advisory.js +0 -65
  730. package/dist/src/planner/rules/cache/rule-materialization-advisory.js.map +0 -1
@@ -1,31 +1,72 @@
1
1
  import { BTree } from 'inheritree';
2
2
  import type { TableSchema } from '../../../schema/table.js';
3
3
  import type { BTreeKeyForPrimary, BTreeKeyForIndex, MemoryIndexEntry } from '../types.js';
4
- import type { Layer } from './interface.js';
4
+ import type { Layer, PkExtractorsAndComparators } from './interface.js';
5
5
  import { MemoryIndex } from '../index.js';
6
6
  import { type Row, type SqlValue } from '../../../common/types.js';
7
7
  import { type ColumnSchema } from '../../../schema/column.js';
8
8
  import type { IndexSchema } from '../../../schema/table.js';
9
+ import type { CollationResolver } from '../../../types/logical-type.js';
10
+ /** Every row of a primary BTree, ascending by primary key. */
11
+ export declare function iteratePrimaryRows(tree: BTree<BTreeKeyForPrimary, Row>): Iterable<Row>;
12
+ /**
13
+ * Inserts every in-scope row of `rows` into the (freshly-created, empty-or-inherited)
14
+ * `index`, honoring its partial-WHERE predicate — rows for which the predicate is not
15
+ * TRUE are skipped.
16
+ *
17
+ * With `enforceUnique`, raises a CONSTRAINT error on the first duplicate index key
18
+ * among in-scope rows; the caller is expected to discard `index` and roll back any
19
+ * schema change. Duplicate detection runs through the index's own collation-aware
20
+ * comparator (its BTree keys by `compareKeys`), so a value set unique under BINARY but
21
+ * colliding under e.g. NOCASE surfaces here — a raw value signature would miss it.
22
+ * SQL UNIQUE allows multiple NULLs, so a key with any NULL value never counts as a
23
+ * duplicate. `hasAnyPrimaryKey` is O(1) (Map size) so the build stays O(N) —
24
+ * `getPrimaryKeys` would sort the bucket on every row.
25
+ *
26
+ * Parameterizing on a row iterable (rather than reading a fixed tree) is what lets
27
+ * `MemoryTableManager` validate a not-yet-built index against the DDL-issuing
28
+ * connection's EFFECTIVE rows — the committed base overlaid with its open
29
+ * transaction's pending writes — while the base index itself is still populated from
30
+ * committed rows only. See `docs/memory-table.md` § DDL and transactions.
31
+ */
32
+ export declare function populateIndexFromRows(rows: Iterable<Row>, index: MemoryIndex, primaryKeyFromRow: (row: Row) => BTreeKeyForPrimary, enforceUnique: boolean, tableName: string, columns: ReadonlyArray<ColumnSchema>): void;
33
+ /**
34
+ * Async-stream twin of {@link populateIndexFromRows}, sharing its per-row body.
35
+ *
36
+ * Needed because an {@link EffectiveRowSource} — the merged view a wrapper module (the
37
+ * isolation layer) hands down for row-validating DDL — is an `AsyncIterable`, while the
38
+ * memory module's own effective rows are a synchronous BTree walk.
39
+ */
40
+ export declare function populateIndexFromRowsAsync(rows: AsyncIterable<Row>, index: MemoryIndex, primaryKeyFromRow: (row: Row) => BTreeKeyForPrimary, enforceUnique: boolean, tableName: string, columns: ReadonlyArray<ColumnSchema>): Promise<void>;
9
41
  export declare class BaseLayer implements Layer {
10
42
  private readonly layerId;
11
43
  tableSchema: TableSchema;
44
+ readonly collationResolver: CollationResolver;
12
45
  private primaryKeyFunctions;
13
46
  primaryTree: BTree<BTreeKeyForPrimary, Row>;
14
47
  readonly secondaryIndexes: Map<string, MemoryIndex>;
15
- constructor(schema: TableSchema);
48
+ constructor(schema: TableSchema, collationResolver: CollationResolver);
16
49
  updateSchema(newSchema: TableSchema): void;
17
50
  private initializePrimaryKeyFunctions;
18
- rebuildAllSecondaryIndexes(): void;
51
+ /** Builds a `MemoryIndex` for `indexSchema` under this layer's collation resolver and PK functions. */
52
+ private createMemoryIndex;
19
53
  /**
20
- * Strict variant of {@link rebuildAllSecondaryIndexes}: rebuilds every
21
- * secondary index from the primary tree but surfaces a UNIQUE-index key
22
- * collision as a thrown CONSTRAINT error (the non-strict variant logs and
23
- * drops duplicates). Used by `ALTER COLUMN ... SET COLLATE`, where a value set
24
- * unique under the old collation may collide under the new one. On throw the
25
- * secondary index map is left cleared; the caller restores the prior schema and
26
- * calls the non-strict rebuild to recover a consistent state.
54
+ * Recreates every secondary index from the committed primary tree under the
55
+ * CURRENT schema call {@link updateSchema} first when the index key collation
56
+ * changed, so each rebuilt `MemoryIndex` re-keys under it.
57
+ *
58
+ * Never enforcing, even for a re-keyed UNIQUE structure: base rows are not a
59
+ * subset of the DDL transaction's effective rows (a duplicate that transaction
60
+ * DELETED still sits in the base primary tree), so a duplicate check here would
61
+ * reject a legal change. `MemoryTableManager.alterColumn` validates over the
62
+ * effective rows before calling this; see {@link addIndexToBase} for why a base
63
+ * index may hold an entry no live row backs.
64
+ *
65
+ * Every index gets a FRESH `MemoryIndex` and BTree, so any layer inheriting the
66
+ * old trees must be re-pointed at the new ones — that is
67
+ * `TransactionLayer.adoptSchema`'s replacement path.
27
68
  */
28
- rebuildAllSecondaryIndexesStrict(): void;
69
+ rebuildAllSecondaryIndexes(): void;
29
70
  /**
30
71
  * Rebuild the primary BTree under the *current* primaryKeyFunctions — call
31
72
  * {@link updateSchema} first so they reflect the new key collation. Re-extracts
@@ -33,6 +74,14 @@ export declare class BaseLayer implements Layer {
33
74
  * two rows whose distinct old keys collapse to one under the new comparator
34
75
  * (e.g. a PK-column collation change BINARY→NOCASE) — throwing CONSTRAINT and
35
76
  * leaving the live tree intact for the caller's rollback.
77
+ *
78
+ * `MemoryTableManager.validateRekeyedPrimaryKey` proves these rows collision-free
79
+ * before calling, so the throw is an invariant check rather than the enforcement
80
+ * path (it is what a caller sees when the base is *not* the whole story — e.g. a
81
+ * new call site that forgets the pre-pass).
82
+ *
83
+ * The tree object is REPLACED, so any layer inheriting the old one must be
84
+ * re-pointed at the new one — that is `TransactionLayer.rekeyPrimaryKey`.
36
85
  */
37
86
  rebuildPrimaryTreeStrict(): void;
38
87
  /**
@@ -46,6 +95,18 @@ export declare class BaseLayer implements Layer {
46
95
  rebuildPrimaryTreeFromRows(rows: Row[]): void;
47
96
  private clearExistingSecondaryIndexes;
48
97
  private hasSecondaryIndexes;
98
+ /**
99
+ * Constructs (does not populate) a `MemoryIndex` per declared index.
100
+ *
101
+ * A construction failure propagates: the caller's schema change fails rather than
102
+ * silently returning a map missing an index the catalog still advertises (which
103
+ * surfaces much later as `Secondary index '<name>' not found` when a scan picks
104
+ * it by name). Callers that change the column list must therefore hand this a
105
+ * schema whose partial-index predicates already name the surviving columns.
106
+ *
107
+ * Duplicate-key tolerance — the one thing the non-strict rebuild is legitimately
108
+ * lenient about — lives in {@link populateSecondaryIndexes}, not here.
109
+ */
49
110
  private createSecondaryIndexes;
50
111
  private populateSecondaryIndexes;
51
112
  private addRowToSecondaryIndexes;
@@ -57,34 +118,27 @@ export declare class BaseLayer implements Layer {
57
118
  getModificationTree: (indexName: string | "primary") => BTree<BTreeKeyForPrimary, Row> | null;
58
119
  getSecondaryIndexTree: (indexName: string) => BTree<BTreeKeyForIndex, MemoryIndexEntry> | null;
59
120
  getSecondaryIndex: (indexName: string) => MemoryIndex | undefined;
60
- getPkExtractorsAndComparators(schema: TableSchema): {
61
- primaryKeyExtractorFromRow: (row: Row) => BTreeKeyForPrimary;
62
- primaryKeyComparator: (a: BTreeKeyForPrimary, b: BTreeKeyForPrimary) => number;
63
- };
121
+ getPkExtractorsAndComparators(schema: TableSchema): PkExtractorsAndComparators;
64
122
  has: (key: BTreeKeyForPrimary) => boolean;
65
123
  addColumnToBase(newColumnSchema: ColumnSchema, defaultValue: SqlValue, backfillEvaluator?: (row: Row) => SqlValue | Promise<SqlValue>): Promise<void>;
66
124
  private recreatePrimaryTreeWithNewColumn;
67
125
  dropColumnFromBase(columnIndexInOldSchema: number): Promise<void>;
68
126
  private recreatePrimaryTreeWithoutColumn;
69
127
  handleColumnRename(): Promise<void>;
70
- addIndexToBase(indexSchema: IndexSchema): Promise<void>;
71
- /**
72
- * Populates a freshly-created secondary index from the primary tree,
73
- * honoring the index's partial-WHERE predicate (rows for which the
74
- * predicate is not TRUE are skipped). For UNIQUE indexes, raises a
75
- * CONSTRAINT error on the first duplicate index key among in-scope rows;
76
- * the caller is expected to roll back the schema change in that case.
77
- */
78
- private populateNewIndex;
79
128
  /**
80
- * True when populating `indexSchema` must reject duplicate keys: either the
81
- * index is itself declared UNIQUE, or it is the auto-built covering structure
82
- * for a declared UNIQUE constraint (same column set). The latter never carries
83
- * `unique: true` insert-time enforcement runs through `uniqueConstraints` —
84
- * so without this check a strict rebuild (e.g. `ALTER COLUMN ... SET COLLATE`)
85
- * would silently accept rows that collide under the new collation.
129
+ * Builds and populates a new secondary index over the COMMITTED rows.
130
+ *
131
+ * No duplicate check: uniqueness for `CREATE UNIQUE INDEX` / `ADD CONSTRAINT
132
+ * UNIQUE` is validated by `MemoryTableManager` against the DDL-issuing
133
+ * connection's EFFECTIVE rows before this runs, and the base's rows are not a
134
+ * subset of those a duplicate the open transaction has DELETED still sits in
135
+ * the base primary tree. Checking here would reject that legal build. The base
136
+ * index is a lookup structure, never an enforcement one: `checkUniqueViaIndex`
137
+ * re-validates every candidate entry against the live effective row, so an entry
138
+ * for a row the transaction removed can never manufacture a conflict. See
139
+ * `docs/memory-table.md` § DDL and transactions.
86
140
  */
87
- private indexEnforcesUnique;
141
+ addIndexToBase(indexSchema: IndexSchema): Promise<void>;
88
142
  dropIndexFromBase(indexName: string): Promise<void>;
89
143
  }
90
144
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/base.ts"],"names":[],"mappings":"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"}
@@ -6,15 +6,77 @@ import { createMemoryTableLoggers } from '../utils/logging.js';
6
6
  import { QuereusError } from '../../../common/errors.js';
7
7
  let baseLayerCounter = 0;
8
8
  const logger = createMemoryTableLoggers('layer:base');
9
+ /** Every row of a primary BTree, ascending by primary key. */
10
+ export function* iteratePrimaryRows(tree) {
11
+ for (const path of tree.ascending(tree.first())) {
12
+ yield tree.at(path);
13
+ }
14
+ }
15
+ /**
16
+ * Inserts every in-scope row of `rows` into the (freshly-created, empty-or-inherited)
17
+ * `index`, honoring its partial-WHERE predicate — rows for which the predicate is not
18
+ * TRUE are skipped.
19
+ *
20
+ * With `enforceUnique`, raises a CONSTRAINT error on the first duplicate index key
21
+ * among in-scope rows; the caller is expected to discard `index` and roll back any
22
+ * schema change. Duplicate detection runs through the index's own collation-aware
23
+ * comparator (its BTree keys by `compareKeys`), so a value set unique under BINARY but
24
+ * colliding under e.g. NOCASE surfaces here — a raw value signature would miss it.
25
+ * SQL UNIQUE allows multiple NULLs, so a key with any NULL value never counts as a
26
+ * duplicate. `hasAnyPrimaryKey` is O(1) (Map size) so the build stays O(N) —
27
+ * `getPrimaryKeys` would sort the bucket on every row.
28
+ *
29
+ * Parameterizing on a row iterable (rather than reading a fixed tree) is what lets
30
+ * `MemoryTableManager` validate a not-yet-built index against the DDL-issuing
31
+ * connection's EFFECTIVE rows — the committed base overlaid with its open
32
+ * transaction's pending writes — while the base index itself is still populated from
33
+ * committed rows only. See `docs/memory-table.md` § DDL and transactions.
34
+ */
35
+ export function populateIndexFromRows(rows, index, primaryKeyFromRow, enforceUnique, tableName, columns) {
36
+ for (const row of rows) {
37
+ addRowToIndex(row, index, primaryKeyFromRow, enforceUnique, tableName, columns);
38
+ }
39
+ }
40
+ /**
41
+ * Async-stream twin of {@link populateIndexFromRows}, sharing its per-row body.
42
+ *
43
+ * Needed because an {@link EffectiveRowSource} — the merged view a wrapper module (the
44
+ * isolation layer) hands down for row-validating DDL — is an `AsyncIterable`, while the
45
+ * memory module's own effective rows are a synchronous BTree walk.
46
+ */
47
+ export async function populateIndexFromRowsAsync(rows, index, primaryKeyFromRow, enforceUnique, tableName, columns) {
48
+ for await (const row of rows) {
49
+ addRowToIndex(row, index, primaryKeyFromRow, enforceUnique, tableName, columns);
50
+ }
51
+ }
52
+ /** One row's worth of {@link populateIndexFromRows}; see its docstring for the semantics. */
53
+ function addRowToIndex(row, index, primaryKeyFromRow, enforceUnique, tableName, columns) {
54
+ if (!index.rowMatchesPredicate(row))
55
+ return;
56
+ const indexKey = index.keyFromRow(row);
57
+ const primaryKey = primaryKeyFromRow(row);
58
+ if (enforceUnique) {
59
+ const hasNull = index.specColumns.some(c => row[c.index] === null);
60
+ if (!hasNull && index.hasAnyPrimaryKey(indexKey)) {
61
+ const colNames = index.specColumns
62
+ .map(c => columns[c.index]?.name ?? String(c.index))
63
+ .join(', ');
64
+ throw new QuereusError(`UNIQUE constraint failed: ${tableName} (${colNames})`, StatusCode.CONSTRAINT);
65
+ }
66
+ }
67
+ index.addEntry(indexKey, primaryKey);
68
+ }
9
69
  export class BaseLayer {
10
70
  layerId;
11
71
  tableSchema;
72
+ collationResolver;
12
73
  primaryKeyFunctions;
13
74
  primaryTree;
14
75
  secondaryIndexes;
15
- constructor(schema) {
76
+ constructor(schema, collationResolver) {
16
77
  this.layerId = baseLayerCounter++;
17
78
  this.tableSchema = schema;
79
+ this.collationResolver = collationResolver;
18
80
  this.initializePrimaryKeyFunctions();
19
81
  // Use the same key extraction pattern as TransactionLayer for consistency
20
82
  const btreeKeyFromValue = (value) => this.primaryKeyFunctions.extractFromRow(value);
@@ -31,38 +93,41 @@ export class BaseLayer {
31
93
  this.initializePrimaryKeyFunctions();
32
94
  }
33
95
  initializePrimaryKeyFunctions() {
34
- this.primaryKeyFunctions = createPrimaryKeyFunctions(this.tableSchema);
96
+ this.primaryKeyFunctions = createPrimaryKeyFunctions(this.tableSchema, this.collationResolver);
35
97
  }
36
- rebuildAllSecondaryIndexes() {
37
- this.clearExistingSecondaryIndexes();
38
- if (!this.hasSecondaryIndexes()) {
39
- return;
40
- }
41
- const newIndexes = this.createSecondaryIndexes();
42
- this.populateSecondaryIndexes(newIndexes);
43
- this.replaceSecondaryIndexes(newIndexes);
98
+ /** Builds a `MemoryIndex` for `indexSchema` under this layer's collation resolver and PK functions. */
99
+ createMemoryIndex(indexSchema) {
100
+ return new MemoryIndex(indexSchema, this.tableSchema.columns, this.collationResolver, this.primaryKeyFunctions.compare, this.primaryKeyFunctions.encode, this.tableSchema.name);
44
101
  }
45
102
  /**
46
- * Strict variant of {@link rebuildAllSecondaryIndexes}: rebuilds every
47
- * secondary index from the primary tree but surfaces a UNIQUE-index key
48
- * collision as a thrown CONSTRAINT error (the non-strict variant logs and
49
- * drops duplicates). Used by `ALTER COLUMN ... SET COLLATE`, where a value set
50
- * unique under the old collation may collide under the new one. On throw the
51
- * secondary index map is left cleared; the caller restores the prior schema and
52
- * calls the non-strict rebuild to recover a consistent state.
103
+ * Recreates every secondary index from the committed primary tree under the
104
+ * CURRENT schema call {@link updateSchema} first when the index key collation
105
+ * changed, so each rebuilt `MemoryIndex` re-keys under it.
106
+ *
107
+ * Never enforcing, even for a re-keyed UNIQUE structure: base rows are not a
108
+ * subset of the DDL transaction's effective rows (a duplicate that transaction
109
+ * DELETED still sits in the base primary tree), so a duplicate check here would
110
+ * reject a legal change. `MemoryTableManager.alterColumn` validates over the
111
+ * effective rows before calling this; see {@link addIndexToBase} for why a base
112
+ * index may hold an entry no live row backs.
113
+ *
114
+ * Every index gets a FRESH `MemoryIndex` and BTree, so any layer inheriting the
115
+ * old trees must be re-pointed at the new ones — that is
116
+ * `TransactionLayer.adoptSchema`'s replacement path.
53
117
  */
54
- rebuildAllSecondaryIndexesStrict() {
118
+ rebuildAllSecondaryIndexes() {
55
119
  this.clearExistingSecondaryIndexes();
56
120
  if (!this.hasSecondaryIndexes()) {
121
+ // Drop the structures outright rather than leaving them emptied: an index the
122
+ // schema no longer declares (DROP INDEX, or DROP COLUMN taking the last key
123
+ // column of the table's only index) would otherwise linger in the map and be
124
+ // maintained on every write to the base. `replaceSecondaryIndexes` does the
125
+ // same clear on the non-empty path.
57
126
  this.secondaryIndexes.clear();
58
127
  return;
59
128
  }
60
- const newIndexes = new Map();
61
- for (const indexSchema of this.tableSchema.indexes) {
62
- const memoryIndex = new MemoryIndex(indexSchema, this.tableSchema.columns, this.primaryKeyFunctions.compare, this.primaryKeyFunctions.encode);
63
- this.populateNewIndex(memoryIndex, indexSchema); // throws CONSTRAINT on duplicate
64
- newIndexes.set(indexSchema.name, memoryIndex);
65
- }
129
+ const newIndexes = this.createSecondaryIndexes();
130
+ this.populateSecondaryIndexes(newIndexes);
66
131
  this.replaceSecondaryIndexes(newIndexes);
67
132
  }
68
133
  /**
@@ -72,6 +137,14 @@ export class BaseLayer {
72
137
  * two rows whose distinct old keys collapse to one under the new comparator
73
138
  * (e.g. a PK-column collation change BINARY→NOCASE) — throwing CONSTRAINT and
74
139
  * leaving the live tree intact for the caller's rollback.
140
+ *
141
+ * `MemoryTableManager.validateRekeyedPrimaryKey` proves these rows collision-free
142
+ * before calling, so the throw is an invariant check rather than the enforcement
143
+ * path (it is what a caller sees when the base is *not* the whole story — e.g. a
144
+ * new call site that forgets the pre-pass).
145
+ *
146
+ * The tree object is REPLACED, so any layer inheriting the old one must be
147
+ * re-pointed at the new one — that is `TransactionLayer.rekeyPrimaryKey`.
75
148
  */
76
149
  rebuildPrimaryTreeStrict() {
77
150
  const oldTree = this.primaryTree;
@@ -110,17 +183,22 @@ export class BaseLayer {
110
183
  hasSecondaryIndexes() {
111
184
  return Boolean(this.tableSchema.indexes && this.tableSchema.indexes.length > 0);
112
185
  }
186
+ /**
187
+ * Constructs (does not populate) a `MemoryIndex` per declared index.
188
+ *
189
+ * A construction failure propagates: the caller's schema change fails rather than
190
+ * silently returning a map missing an index the catalog still advertises (which
191
+ * surfaces much later as `Secondary index '<name>' not found` when a scan picks
192
+ * it by name). Callers that change the column list must therefore hand this a
193
+ * schema whose partial-index predicates already name the surviving columns.
194
+ *
195
+ * Duplicate-key tolerance — the one thing the non-strict rebuild is legitimately
196
+ * lenient about — lives in {@link populateSecondaryIndexes}, not here.
197
+ */
113
198
  createSecondaryIndexes() {
114
199
  const newIndexes = new Map();
115
200
  for (const indexSchema of this.tableSchema.indexes) {
116
- try {
117
- const memoryIndex = new MemoryIndex(indexSchema, this.tableSchema.columns, this.primaryKeyFunctions.compare, this.primaryKeyFunctions.encode);
118
- newIndexes.set(indexSchema.name, memoryIndex);
119
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
120
- }
121
- catch (e) {
122
- logger.error('Create Index', this.tableSchema.name, e, { indexName: indexSchema.name });
123
- }
201
+ newIndexes.set(indexSchema.name, this.createMemoryIndex(indexSchema));
124
202
  }
125
203
  return newIndexes;
126
204
  }
@@ -162,7 +240,8 @@ export class BaseLayer {
162
240
  }
163
241
  return {
164
242
  primaryKeyExtractorFromRow: this.primaryKeyFunctions.extractFromRow,
165
- primaryKeyComparator: this.primaryKeyFunctions.compare
243
+ primaryKeyComparator: this.primaryKeyFunctions.compare,
244
+ primaryKeyEncoder: this.primaryKeyFunctions.encode
166
245
  };
167
246
  }
168
247
  has = (key) => {
@@ -225,65 +304,27 @@ export class BaseLayer {
225
304
  logger.operation('Handle Column Rename', this.tableSchema.name);
226
305
  await this.rebuildAllSecondaryIndexes();
227
306
  }
307
+ /**
308
+ * Builds and populates a new secondary index over the COMMITTED rows.
309
+ *
310
+ * No duplicate check: uniqueness for `CREATE UNIQUE INDEX` / `ADD CONSTRAINT …
311
+ * UNIQUE` is validated by `MemoryTableManager` against the DDL-issuing
312
+ * connection's EFFECTIVE rows before this runs, and the base's rows are not a
313
+ * subset of those — a duplicate the open transaction has DELETED still sits in
314
+ * the base primary tree. Checking here would reject that legal build. The base
315
+ * index is a lookup structure, never an enforcement one: `checkUniqueViaIndex`
316
+ * re-validates every candidate entry against the live effective row, so an entry
317
+ * for a row the transaction removed can never manufacture a conflict. See
318
+ * `docs/memory-table.md` § DDL and transactions.
319
+ */
228
320
  async addIndexToBase(indexSchema) {
229
321
  logger.operation('Add Index', this.tableSchema.name, {
230
322
  indexName: indexSchema.name
231
323
  });
232
- const newMemoryIndex = new MemoryIndex(indexSchema, this.tableSchema.columns, this.primaryKeyFunctions.compare, this.primaryKeyFunctions.encode);
233
- this.populateNewIndex(newMemoryIndex, indexSchema);
324
+ const newMemoryIndex = this.createMemoryIndex(indexSchema);
325
+ populateIndexFromRows(iteratePrimaryRows(this.primaryTree), newMemoryIndex, this.primaryKeyFunctions.extractFromRow, false, this.tableSchema.name, this.tableSchema.columns);
234
326
  this.secondaryIndexes.set(indexSchema.name, newMemoryIndex);
235
327
  }
236
- /**
237
- * Populates a freshly-created secondary index from the primary tree,
238
- * honoring the index's partial-WHERE predicate (rows for which the
239
- * predicate is not TRUE are skipped). For UNIQUE indexes, raises a
240
- * CONSTRAINT error on the first duplicate index key among in-scope rows;
241
- * the caller is expected to roll back the schema change in that case.
242
- */
243
- populateNewIndex(newIndex, indexSchema) {
244
- for (const path of this.primaryTree.ascending(this.primaryTree.first())) {
245
- const currentRow = this.primaryTree.at(path);
246
- if (!newIndex.rowMatchesPredicate(currentRow))
247
- continue;
248
- const indexKey = newIndex.keyFromRow(currentRow);
249
- const primaryKey = this.primaryKeyFunctions.extractFromRow(currentRow);
250
- if (this.indexEnforcesUnique(indexSchema)) {
251
- const cols = newIndex.specColumns.map(c => currentRow[c.index]);
252
- // SQL UNIQUE allows multiple NULLs: skip dup detection if any key value is NULL.
253
- const hasNull = cols.some(v => v === null);
254
- // Detect duplicates through the index's own collation-aware comparator
255
- // (its BTree keys by compareKeys), so a value set unique under BINARY but
256
- // colliding under e.g. NOCASE surfaces here — a raw value signature would
257
- // miss it. A non-empty key means a prior in-scope row already inserted it.
258
- // hasAnyPrimaryKey is O(1) (Map size) so the ascending build stays O(N) —
259
- // getPrimaryKeys would sort the bucket on every row.
260
- if (!hasNull && newIndex.hasAnyPrimaryKey(indexKey)) {
261
- const colNames = newIndex.specColumns
262
- .map(c => this.tableSchema.columns[c.index]?.name ?? String(c.index))
263
- .join(', ');
264
- throw new QuereusError(`UNIQUE constraint failed: ${this.tableSchema.name} (${colNames})`, StatusCode.CONSTRAINT);
265
- }
266
- }
267
- newIndex.addEntry(indexKey, primaryKey);
268
- }
269
- }
270
- /**
271
- * True when populating `indexSchema` must reject duplicate keys: either the
272
- * index is itself declared UNIQUE, or it is the auto-built covering structure
273
- * for a declared UNIQUE constraint (same column set). The latter never carries
274
- * `unique: true` — insert-time enforcement runs through `uniqueConstraints` —
275
- * so without this check a strict rebuild (e.g. `ALTER COLUMN ... SET COLLATE`)
276
- * would silently accept rows that collide under the new collation.
277
- */
278
- indexEnforcesUnique(indexSchema) {
279
- if (indexSchema.unique)
280
- return true;
281
- const ucs = this.tableSchema.uniqueConstraints;
282
- if (!ucs)
283
- return false;
284
- return ucs.some(uc => uc.columns.length === indexSchema.columns.length &&
285
- uc.columns.every((colIdx, i) => indexSchema.columns[i].index === colIdx));
286
- }
287
328
  async dropIndexFromBase(indexName) {
288
329
  if (this.secondaryIndexes.delete(indexName)) {
289
330
  logger.operation('Drop Index', this.tableSchema.name, { indexName });
@@ -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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"}
@@ -31,6 +31,16 @@ export declare class MemoryTableConnection {
31
31
  * self-referential INSERT...SELECT.
32
32
  */
33
33
  private savepointStack;
34
+ /**
35
+ * The eager savepoint snapshot currently serving as {@link readLayer}, or null when
36
+ * `readLayer` is a committed layer. Non-null exactly while this connection's
37
+ * uncommitted writes live in `readLayer` rather than in `pendingTransactionLayer`.
38
+ *
39
+ * Cannot be derived from {@link savepointStack}: `RELEASE` pops the entry that holds
40
+ * the snapshot, but the snapshot stays installed as `readLayer` and its rows stay
41
+ * uncommitted. See {@link hasOpenWork}.
42
+ */
43
+ private readSnapshot;
34
44
  constructor(manager: MemoryTableManager, initialReadLayer: Layer);
35
45
  /** Begins a transaction by marking explicitTransaction. The pending layer is created lazily on first mutation */
36
46
  begin(): void;
@@ -49,6 +59,23 @@ export declare class MemoryTableConnection {
49
59
  * The savepoint is preserved (per SQL standard) so it can be rolled back to again.
50
60
  */
51
61
  rollbackToSavepoint(targetDepth: number): void;
62
+ /** Ends savepoint bookkeeping. Only called where the transaction itself is ending. */
52
63
  clearSavepoints(): void;
64
+ /**
65
+ * True when this connection holds uncommitted writes for its table — either in a
66
+ * pending layer, or (after an eager savepoint swapped it into `readLayer`) in an
67
+ * immutable savepoint snapshot.
68
+ *
69
+ * `MemoryTableManager.ensureSchemaChangeSafety` uses this twice: it refuses a schema
70
+ * change while a connection OTHER than the DDL issuer has open work (those rows are
71
+ * invisible to the DDL's transaction, so a new constraint cannot be validated against
72
+ * them), and it leaves the DDL issuer's own read view alone rather than re-pointing it
73
+ * at the base layer.
74
+ *
75
+ * Tracks {@link readSnapshot} rather than scanning {@link savepointStack}: `RELEASE`
76
+ * pops the entry while leaving the snapshot installed as `readLayer`, so a stack scan
77
+ * reports "no work" for a connection whose rows are still uncommitted.
78
+ */
79
+ hasOpenWork(): boolean;
53
80
  }
54
81
  //# sourceMappingURL=connection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAUvD;;;GAGG;AACH,qBAAa,qBAAqB;IACjC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,YAAY,EAAE,kBAAkB,CAAC;IAC1C,SAAS,EAAE,KAAK,CAAC;IACjB,uBAAuB,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IACxD,mBAAmB,EAAE,OAAO,CAAS;IAE5C;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,cAAc,CAAsE;gBAEhF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,KAAK;IAMhE,iHAAiH;IACjH,KAAK,IAAI,IAAI;IAeb,sCAAsC;IAChC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB7B,yCAAyC;IACzC,QAAQ,IAAI,IAAI;IAiBhB,uDAAuD;IACvD,OAAO,CAAC,qBAAqB;IAK7B,mDAAmD;IACnD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAgDpC,yFAAyF;IACzF,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAiB3C;;;OAGG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IA+BvC,eAAe,IAAI,IAAI;CAG9B"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../src/vtab/memory/layer/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAUvD;;;GAGG;AACH,qBAAa,qBAAqB;IACjC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,YAAY,EAAE,kBAAkB,CAAC;IAC1C,SAAS,EAAE,KAAK,CAAC;IACjB,uBAAuB,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IACxD,mBAAmB,EAAE,OAAO,CAAS;IAE5C;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,cAAc,CAA6G;IAEnI;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY,CAAiC;gBAEzC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,KAAK;IAMhE,iHAAiH;IACjH,KAAK,IAAI,IAAI;IAeb,sCAAsC;IAChC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB7B,yCAAyC;IACzC,QAAQ,IAAI,IAAI;IAiBhB,uDAAuD;IACvD,OAAO,CAAC,qBAAqB;IAM7B,mDAAmD;IACnD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAkDpC,yFAAyF;IACzF,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAiB3C;;;OAGG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAiC9C,sFAAsF;IAC/E,eAAe,IAAI,IAAI;IAK9B;;;;;;;;;;;;;;OAcG;IACI,WAAW,IAAI,OAAO;CAG7B"}