@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
@@ -2,6 +2,7 @@ import { createLogger } from '../common/logger.js';
2
2
  import { QuereusError } from '../common/errors.js';
3
3
  import { StatusCode } from '../common/types.js';
4
4
  import { BINARY_COLLATION } from '../util/comparison.js';
5
+ import { BUILTIN_NORMALIZERS } from '../util/key-serializer.js';
5
6
  const log = createLogger('runtime:emission-context');
6
7
  /**
7
8
  * Tracks schema dependencies and provides a unique identifier for a set of dependencies.
@@ -139,6 +140,10 @@ export class EmissionContext {
139
140
  * Looks up a collation and records the dependency.
140
141
  * Also captures the collation reference for runtime use.
141
142
  */
143
+ // NOTE: the dependency is keyed on the name as written, so `collation:nocase` and
144
+ // `collation:NOCASE` are distinct keys for one collation. Harmless — validation
145
+ // re-resolves case-insensitively — but it can list the same collation twice in a
146
+ // plan fingerprint; normalize the key if fingerprint identity ever has to be exact.
142
147
  getCollation(collationName) {
143
148
  const collation = this.db._getCollation(collationName);
144
149
  if (collation) {
@@ -153,20 +158,46 @@ export class EmissionContext {
153
158
  return collation;
154
159
  }
155
160
  /**
156
- * Resolves a collation name to its function, with BINARY fallback.
157
- * Records the dependency for plan invalidation.
158
- * Use this in emitters instead of the global resolveCollation().
161
+ * Resolves a collation name to its function against this emission's database,
162
+ * recording the dependency for plan invalidation. This is the only collation
163
+ * lookup an emitter should use a name has no meaning outside a `Database`.
164
+ *
165
+ * Throws `QuereusError` (`no such collation sequence: X`) on an unknown name — the
166
+ * miss is delegated to {@link Database.getCollationResolver} so build-time and
167
+ * emit-time resolution report the same error. There is deliberately no BINARY
168
+ * fallback: it would silently produce wrong sort order, wrong UNIQUE enforcement,
169
+ * and wrong index seeks. An unresolvable name here means the *producer* of the name
170
+ * is wrong (DDL validates column collations at create time) — fix the producer.
159
171
  */
160
172
  resolveCollation(collationName) {
161
173
  if (collationName === 'BINARY')
162
174
  return BINARY_COLLATION; // Fast path
163
175
  const func = this.getCollation(collationName);
164
- if (!func) {
165
- log('Unknown collation requested: %s. Falling back to BINARY.', collationName);
166
- return BINARY_COLLATION;
167
- }
176
+ if (!func)
177
+ return this.db.getCollationResolver()(collationName);
168
178
  return func;
169
179
  }
180
+ /**
181
+ * Resolves a collation name to its key normalizer against this emission's database,
182
+ * recording the dependency for plan invalidation. This is the only normalizer lookup
183
+ * an emitter should use: an operator that buckets rows by a text key must partition
184
+ * them exactly as {@link resolveCollation}'s comparator would, or grouping and
185
+ * comparison disagree on the same column in the same connection.
186
+ *
187
+ * Throws `QuereusError` on an unknown name, and on a comparator-only collation that
188
+ * carries no normalizer — both delegated to {@link Database.getKeyNormalizerResolver}
189
+ * so every caller reports the same error.
190
+ *
191
+ * Pass the name through `hashKeyCollationName()` first: a key whose operand types can
192
+ * never hold text never consults its collation, so demanding a normalizer for it would
193
+ * reject a valid query.
194
+ */
195
+ resolveKeyNormalizer(collationName) {
196
+ if (!collationName || collationName === 'BINARY')
197
+ return BUILTIN_NORMALIZERS.BINARY; // Fast path
198
+ this.getCollation(collationName); // Record the dependency; the resolver owns the miss
199
+ return this.db.getKeyNormalizerResolver()(collationName);
200
+ }
170
201
  /**
171
202
  * Gets the dependency tracker for this emission context.
172
203
  */
@@ -1 +1 @@
1
- {"version":3,"file":"emission-context.js","sourceRoot":"","sources":["../../../src/runtime/emission-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emission-context.js","sourceRoot":"","sources":["../../../src/runtime/emission-context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"add-constraint.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/add-constraint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAU9D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAgC7F"}
1
+ {"version":3,"file":"add-constraint.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/add-constraint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAW9D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAwC7F"}
@@ -1,12 +1,18 @@
1
+ import { asRun } from '../types.js';
1
2
  import { QuereusError } from '../../common/errors.js';
2
3
  import { StatusCode } from '../../common/types.js';
3
4
  import { createLogger } from '../../common/logger.js';
4
5
  import { opsToMask, requireVtabModule } from '../../schema/table.js';
5
6
  import { buildForeignKeyConstraintSchema, validateForeignKeyCollations } from '../../schema/constraint-builder.js';
7
+ import { assertDdlTransactionPolicy } from './ddl-transaction-policy.js';
6
8
  const log = createLogger('runtime:emit:add-constraint');
7
9
  export function emitAddConstraint(plan, _ctx) {
8
10
  const tableSchema = plan.table.tableSchema;
9
11
  async function run(rctx) {
12
+ // Strict-policy gate (see ddl-transaction-policy.ts). ALTER TABLE ADD CONSTRAINT
13
+ // is its own node but is a module-dispatching ALTER arm all the same, so gate it
14
+ // before any dispatch or catalog mutation.
15
+ assertDdlTransactionPolicy(rctx.db, requireVtabModule(tableSchema), tableSchema.vtabModuleName, `ALTER TABLE ${tableSchema.name} ADD CONSTRAINT`);
10
16
  // Ensure we're in a transaction before DDL (lazy/JIT transaction start).
11
17
  await rctx.db._ensureTransaction();
12
18
  const constraint = plan.constraint;
@@ -28,7 +34,7 @@ export function emitAddConstraint(plan, _ctx) {
28
34
  }
29
35
  return {
30
36
  params: [],
31
- run: run,
37
+ run: asRun(run),
32
38
  note: `addConstraint(${plan.table.tableSchema.name}, ${plan.constraint.name || 'unnamed'})`
33
39
  };
34
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"add-constraint.js","sourceRoot":"","sources":["../../../../src/runtime/emit/add-constraint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-constraint.js","sourceRoot":"","sources":["../../../../src/runtime/emit/add-constraint.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAG/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,kCAAkC,CAAC;AAWhF,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,eAAO,MAAM,MAAM,0BAAkC,CAAC;AAEtD,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,OAAO,GAAG,QAAQ,CAUjE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAgB3D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAohBhG"}
1
+ {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,kCAAkC,CAAC;AAWhF,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAGtD,eAAO,MAAM,MAAM,0BAAkC,CAAC;AAEtD,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,OAAO,GAAG,QAAQ,CAUjE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAgB3D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAwhBhG"}
@@ -1,3 +1,4 @@
1
+ import { asRun } from '../types.js';
1
2
  import { emitPlanNode, emitCallFromPlan } from '../emitters.js';
2
3
  import { isAggregateFunctionSchema } from '../../schema/function.js';
3
4
  import { AggregateFunctionCallNode } from '../../planner/nodes/aggregate-function.js';
@@ -64,6 +65,9 @@ export function emitStreamAggregate(plan, ctx) {
64
65
  const sourceRelationAttributes = isRelationalNode(sourceRelation) ? sourceRelation.getAttributes() : sourceAttributes;
65
66
  ctxLog('Source relation attributes: %O', sourceRelationAttributes.map((attr) => `${attr.name}(#${attr.id})`));
66
67
  }
68
+ // Best-effort installer label for QUEREUS_CONTEXT_STRICT diagnostics (identifies
69
+ // this operator on the direct context.set()s below; detection ignores it).
70
+ const installer = { nodeType: plan.nodeType, id: plan.id };
67
71
  // Create output row descriptor for the StreamAggregate's output
68
72
  const outputRowDescriptor = buildRowDescriptor(plan.getAttributes());
69
73
  // Create scan row descriptor for source relation attributes (for Filter evaluation)
@@ -192,7 +196,7 @@ export function emitStreamAggregate(plan, ctx) {
192
196
  for await (const row of sourceRows) {
193
197
  lastSourceRow = row;
194
198
  // Set the current row in the runtime context for Filter and aggregate evaluation
195
- ctx.context.set(scanRowDescriptor, () => row);
199
+ ctx.context.set(scanRowDescriptor, () => row, installer);
196
200
  logContextPush(scanRowDescriptor, 'scan-row', sourceAttributes);
197
201
  try {
198
202
  // For each aggregate, call its step function
@@ -251,10 +255,10 @@ export function emitStreamAggregate(plan, ctx) {
251
255
  const fullRow = lastSourceRow ? [...aggregateRow, ...lastSourceRow] : aggregateRow;
252
256
  // Set up combined context for the result row (includes both output and source attributes)
253
257
  if (lastSourceRow) {
254
- ctx.context.set(scanRowDescriptor, () => lastSourceRow);
258
+ ctx.context.set(scanRowDescriptor, () => lastSourceRow, installer);
255
259
  logContextPush(scanRowDescriptor, 'aggregate-rep-row');
256
260
  }
257
- ctx.context.set(combinedRowDescriptor, () => fullRow);
261
+ ctx.context.set(combinedRowDescriptor, () => fullRow, installer);
258
262
  logContextPush(combinedRowDescriptor, 'aggregate-full-row');
259
263
  try {
260
264
  yield aggregateRow;
@@ -280,7 +284,7 @@ export function emitStreamAggregate(plan, ctx) {
280
284
  // Process all rows
281
285
  for await (const row of sourceRows) {
282
286
  // Set the current row in the runtime context for Filter and GROUP BY evaluation
283
- ctx.context.set(scanRowDescriptor, () => row);
287
+ ctx.context.set(scanRowDescriptor, () => row, installer);
284
288
  logContextPush(scanRowDescriptor, 'scan-row', sourceAttributes);
285
289
  try {
286
290
  // Evaluate GROUP BY expressions to determine the group
@@ -331,18 +335,18 @@ export function emitStreamAggregate(plan, ctx) {
331
335
  const fullRow = previousGroupSourceRow ? [...aggregateRow, ...previousGroupSourceRow] : aggregateRow;
332
336
  // Set up context with the PREVIOUS group's representative row (not the current row)
333
337
  if (previousGroupSourceRow) {
334
- ctx.context.set(scanRowDescriptor, () => previousGroupSourceRow);
338
+ ctx.context.set(scanRowDescriptor, () => previousGroupSourceRow, installer);
335
339
  logContextPush(scanRowDescriptor, 'group-rep-row');
336
340
  }
337
- ctx.context.set(combinedRowDescriptor, () => fullRow);
341
+ ctx.context.set(combinedRowDescriptor, () => fullRow, installer);
338
342
  logContextPush(combinedRowDescriptor, 'output-row-groupby');
339
343
  if (previousGroupSourceRow) {
340
344
  // Use the previous group's representative row for HAVING evaluation
341
345
  // Use separate descriptors to avoid conflicts with source row processing
342
- ctx.context.set(groupSourceRowDescriptor, () => previousGroupSourceRow);
346
+ ctx.context.set(groupSourceRowDescriptor, () => previousGroupSourceRow, installer);
343
347
  logContextPush(groupSourceRowDescriptor, 'source-row-groupby', sourceAttributes);
344
348
  if (sourceRelation !== plan.source) {
345
- ctx.context.set(groupSourceRelationRowDescriptor, () => previousGroupSourceRow);
349
+ ctx.context.set(groupSourceRelationRowDescriptor, () => previousGroupSourceRow, installer);
346
350
  logContextPush(groupSourceRelationRowDescriptor, 'source-relation-row-groupby');
347
351
  }
348
352
  }
@@ -441,18 +445,18 @@ export function emitStreamAggregate(plan, ctx) {
441
445
  const fullRow = currentSourceRow ? [...aggregateRow, ...currentSourceRow] : aggregateRow;
442
446
  // Set up context for final group with correct source row
443
447
  if (currentSourceRow) {
444
- ctx.context.set(scanRowDescriptor, () => currentSourceRow);
448
+ ctx.context.set(scanRowDescriptor, () => currentSourceRow, installer);
445
449
  logContextPush(scanRowDescriptor, 'final-group-rep-row');
446
450
  }
447
- ctx.context.set(combinedRowDescriptor, () => fullRow);
451
+ ctx.context.set(combinedRowDescriptor, () => fullRow, installer);
448
452
  logContextPush(combinedRowDescriptor, 'final-output-row');
449
453
  if (currentSourceRow) {
450
454
  // Use the final group's representative row for HAVING evaluation
451
455
  // Use separate descriptors to avoid conflicts with source row processing
452
- ctx.context.set(groupSourceRowDescriptor, () => currentSourceRow);
456
+ ctx.context.set(groupSourceRowDescriptor, () => currentSourceRow, installer);
453
457
  logContextPush(groupSourceRowDescriptor, 'final-source-row', sourceAttributes);
454
458
  if (sourceRelation !== plan.source) {
455
- ctx.context.set(groupSourceRelationRowDescriptor, () => currentSourceRow);
459
+ ctx.context.set(groupSourceRelationRowDescriptor, () => currentSourceRow, installer);
456
460
  logContextPush(groupSourceRelationRowDescriptor, 'final-source-relation-row');
457
461
  }
458
462
  }
@@ -498,7 +502,7 @@ export function emitStreamAggregate(plan, ctx) {
498
502
  }
499
503
  return {
500
504
  params: [sourceInstruction, ...groupByInstructions, ...aggregateArgInstructions],
501
- run: run,
505
+ run: asRun(run),
502
506
  note: `stream_aggregate(${plan.groupBy.length > 0 ? `GROUP BY ${plan.groupBy.length}` : 'no grouping'}, ${plan.aggregates.length} aggs)`
503
507
  };
504
508
  }
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../../src/runtime/emit/aggregate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../../src/runtime/emit/aggregate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAEtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIlE,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAEtD,sFAAsF;AACtF,MAAM,UAAU,iBAAiB,CAAC,YAAqB;IACtD,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO,YAAY,EAAE,CAAC;IACvB,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,YAAY,CAAa,CAAC;IACtC,CAAC;SAAM,IAAI,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC7D,OAAO,EAAE,GAAG,YAAY,EAAc,CAAC;IACxC,CAAC;SAAM,CAAC;QACP,OAAO,YAAwB,CAAC;IACjC,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAc;IAChD,4CAA4C;IAC5C,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,OAAO,EAAE,CAAC;QAChB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACvE,OAAO,OAAO,CAAC;QAChB,CAAC;QACD,kCAAkC;QAClC,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QACzC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACP,MAAM;QACP,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,gCAAgC;AAC9C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAyB,EAAE,GAAoB;IAClF,wDAAwD;IACxD,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvD,qCAAqC;IACrC,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IAErD,+FAA+F;IAC/F,MAAM,wBAAwB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACtE,MAAM,gCAAgC,GAAG,cAAc,KAAK,IAAI,CAAC,MAAM;QACtE,CAAC,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC1G,CAAC,CAAC,wBAAwB,CAAC;IAE5B,MAAM,CAAC,qDAAqD,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC7G,MAAM,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3F,IAAI,cAAc,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACtH,MAAM,CAAC,gCAAgC,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/G,CAAC;IAED,iFAAiF;IACjF,2EAA2E;IAC3E,MAAM,SAAS,GAAqB,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IAE7E,gEAAgE;IAChE,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAErE,oFAAoF;IACpF,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAE/D,6FAA6F;IAC7F,wEAAwE;IACxE,MAAM,qBAAqB,GAAkB,EAAC,GAAG,mBAAmB,EAAC,CAAC;IACtE,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACxC,8DAA8D;QAC9D,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;YAClD,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QAClF,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,4DAA4D;IAC5D,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxG,OAAO,qBAAqB,CAAC,QAAQ,CAAC,WAA0B,EAAE,aAAa,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC;IAE/C,SAAS,gBAAgB,CAAC,CAAa,EAAE,CAAa;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,GAAG,KAAK,CAAC;gBAAE,OAAO,GAAG,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,CAAC;IACV,CAAC;IAED,8EAA8E;IAC9E,MAAM,mBAAmB,GAAuE,EAAE,CAAC;IACnG,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC;QAChC,IAAI,QAAQ,YAAY,yBAAyB,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,gCAAgC;gBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAClG,MAAM,GAAG,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAA0B,EAAE,SAAS,CAAC,CAAC;gBACjF,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAa,EAAE,CAAa,CAAC,CAAC,CAAC;YACvE,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,kCAAkC;gBAClC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACrC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;oBAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAClG,OAAO,qBAAqB,CAAC,OAAO,CAAC,WAA0B,EAAE,SAAS,CAAC,CAAC;gBAC7E,CAAC,CAAC,CAAC;gBACH,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACjC,MAAM,IAAI,GAAG,CAAe,CAAC;oBAC7B,MAAM,IAAI,GAAG,CAAe,CAAC;oBAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAChD,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;wBAChD,IAAI,GAAG,KAAK,CAAC;4BAAE,OAAO,GAAG,CAAC;oBAC3B,CAAC;oBACD,OAAO,CAAC,CAAC;gBACV,CAAC,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACP,iDAAiD;gBACjD,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;QACF,CAAC;aAAM,CAAC;YACP,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAED,6DAA6D;IAC7D,2FAA2F;IAC3F,MAAM,qBAAqB,GAAc,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAClE,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC;QAChC,IAAI,CAAC,CAAC,QAAQ,YAAY,yBAAyB,CAAC;YAAE,OAAO,KAAK,CAAC;QACnE,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7D,kFAAkF;QAClF,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,cAAc,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QACtG,0DAA0D;QAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,KAAK,SAAS,CAAC,CAAC,GAAG,CAClB,GAAmB,EACnB,UAA8B,EAC9B,GAAG,uBAA+E;QAGlF,iFAAiF;QACjF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACvC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAEtE,mGAAmG;QACnG,IAAI,kBAAkB,GAAG,UAAU,CAAC;QACpC,MAAM,qBAAqB,GAAkE,EAAE,CAAC;QAEhG,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC;YAChC,IAAI,CAAC,CAAC,QAAQ,YAAY,yBAAyB,CAAC,EAAE,CAAC;gBACtD,YAAY,CACX,8CAA8C,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,EACzE,UAAU,CAAC,QAAQ,CACnB,CAAC;YACH,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1G,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1C,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC;QACnC,CAAC;QAED,8CAA8C;QAC9C,MAAM,gBAAgB,GAAqB,EAAE,CAAC;QAC9C,MAAM,sBAAsB,GAAc,EAAE,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC;YAChC,IAAI,CAAC,CAAC,QAAQ,YAAY,yBAAyB,CAAC,EAAE,CAAC;gBACtD,YAAY,CACX,8CAA8C,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,EACzE,UAAU,CAAC,QAAQ,CACnB,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC;YAC3C,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5C,YAAY,CACX,YAAY,QAAQ,CAAC,YAAY,IAAI,SAAS,+BAA+B,EAC7E,UAAU,CAAC,QAAQ,CACnB,CAAC;YACH,CAAC;YAED,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QAED,8EAA8E;QAC9E,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,6CAA6C;YAC7C,MAAM,YAAY,GAAe,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAC9D,OAAO,iBAAiB,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC/F,CAAC,CAAC,CAAC;YAEH,+FAA+F;YAC/F,MAAM,aAAa,GAAmE,sBAAsB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAClI,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,CACrB,CAAC,GAA0B,EAAE,EAAE,CAAC,GAAG,EACnC,mBAAmB,CAAC,CAAC,CAAC,CACtB,CAAC,CAAC,CAAC,IAAI,CACR,CAAC;YAEF,0EAA0E;YAC1E,IAAI,aAAa,GAAe,IAAI,CAAC;YAErC,mBAAmB;YACnB,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBACpC,aAAa,GAAG,GAAG,CAAC;gBAEpB,iFAAiF;gBACjF,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACzD,cAAc,CAAC,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;gBAEhE,IAAI,CAAC;oBACJ,6CAA6C;oBAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBACnC,MAAM,UAAU,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;wBAE7C,qEAAqE;wBACrE,MAAM,SAAS,GAAe,EAAE,CAAC;wBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;wBAC/C,IAAI,CAAC,CAAC,QAAQ,YAAY,yBAAyB,CAAC,EAAE,CAAC;4BACtD,YAAY,CAAC,8CAA8C,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;wBAC9G,CAAC;wBACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;wBACjC,MAAM,YAAY,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;wBAE9C,MAAM,YAAY,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;wBAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACtC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAC5C,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC;4BAChH,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC9B,CAAC;wBAED,oEAAoE;wBACpE,IAAI,UAAU,EAAE,CAAC;4BAChB,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;4BACxE,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;4BAC7D,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;gCACtB,6CAA6C;gCAC7C,SAAS;4BACV,CAAC;wBACF,CAAC;wBAED,yBAAyB;wBACzB,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;4BACvC,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;wBACtE,CAAC;oBACF,CAAC;gBACF,CAAC;wBAAS,CAAC;oBACV,qCAAqC;oBACrC,aAAa,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;oBAC7C,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBACvC,CAAC;YACF,CAAC;YAED,gCAAgC;YAChC,MAAM,YAAY,GAAe,EAAE,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAEnC,IAAI,UAAoB,CAAC;gBACzB,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;oBACvC,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACP,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC;gBAED,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC;YAED,wEAAwE;YACxE,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAEnF,0FAA0F;YAC1F,IAAI,aAAa,EAAE,CAAC;gBACnB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;gBACnE,cAAc,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;YACxD,CAAC;YACD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACjE,cAAc,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACJ,MAAM,YAAY,CAAC;YACpB,CAAC;oBAAS,CAAC;gBACV,aAAa,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;gBAC3D,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBAC1C,IAAI,aAAa,EAAE,CAAC;oBACnB,aAAa,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;oBACtD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBACvC,CAAC;YACF,CAAC;QACF,CAAC;aAAM,CAAC;YACP,kDAAkD;YAClD,iFAAiF;YAEjF,IAAI,eAAe,GAAsB,IAAI,CAAC;YAC9C,IAAI,kBAAkB,GAAe,EAAE,CAAC;YACxC,IAAI,gBAAgB,GAAe,IAAI,CAAC,CAAC,+CAA+C;YACxF,IAAI,mBAAmB,GAAe,EAAE,CAAC;YACzC,IAAI,oBAAoB,GAAmE,EAAE,CAAC;YAC9F,IAAI,2BAA2B,GAAwB,IAAI,CAAC;YAE5D,mBAAmB;YACnB,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBACpC,gFAAgF;gBAChF,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACzD,cAAc,CAAC,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;gBAEhE,IAAI,CAAC;oBACJ,uDAAuD;oBACvD,MAAM,WAAW,GAAe,EAAE,CAAC;oBACnC,KAAK,MAAM,WAAW,IAAI,gBAAgB,EAAE,CAAC;wBAC5C,WAAW,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1C,CAAC;oBAED,0EAA0E;oBAC1E,0FAA0F;oBAC1F,MAAM,mBAAmB,GAAiB,EAAE,CAAC;oBAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;wBAC/C,IAAI,CAAC,CAAC,QAAQ,YAAY,yBAAyB,CAAC,EAAE,CAAC;4BACtD,YAAY,CAAC,8CAA8C,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;wBAC9G,CAAC;wBACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;wBACjC,MAAM,YAAY,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;wBAE9C,MAAM,YAAY,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;wBAC9C,MAAM,SAAS,GAAe,EAAE,CAAC;wBACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACtC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BAC5C,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC;4BAChH,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC9B,CAAC;wBACD,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACrC,CAAC;oBAED,wEAAwE;oBACxE,IAAI,eAAe,KAAK,IAAI,IAAI,gBAAgB,CAAC,eAAe,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;wBACtF,yEAAyE;wBACzE,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;wBAEhD,qCAAqC;wBACrC,MAAM,YAAY,GAAe,EAAE,CAAC;wBAEpC,iCAAiC;wBACjC,YAAY,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;wBAEzC,2CAA2C;wBAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;4BAEnC,IAAI,UAAoB,CAAC;4BACzB,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;gCACvC,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC9D,CAAC;iCAAM,CAAC;gCACP,UAAU,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;4BACrC,CAAC;4BAED,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAC/B,CAAC;wBAED,wEAAwE;wBACxE,MAAM,OAAO,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;wBAErG,oFAAoF;wBACpF,IAAI,sBAAsB,EAAE,CAAC;4BAC5B,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;4BAC5E,cAAc,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;wBACpD,CAAC;wBACD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;wBACjE,cAAc,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;wBAC5D,IAAI,sBAAsB,EAAE,CAAC;4BAC5B,oEAAoE;4BACpE,yEAAyE;4BACzE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,sBAAuB,EAAE,SAAS,CAAC,CAAC;4BACpF,cAAc,CAAC,wBAAwB,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;4BACjF,IAAI,cAAc,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gCACpC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,GAAG,EAAE,CAAC,sBAAuB,EAAE,SAAS,CAAC,CAAC;gCAC5F,cAAc,CAAC,gCAAgC,EAAE,6BAA6B,CAAC,CAAC;4BACjF,CAAC;wBACF,CAAC;wBAED,wBAAwB;wBACxB,2BAA2B,GAAG,GAAG,EAAE;4BAClC,aAAa,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;4BAC3D,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;4BAC1C,IAAI,sBAAsB,EAAE,CAAC;gCAC5B,aAAa,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;gCAClD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;4BACvC,CAAC;4BACD,IAAI,sBAAsB,EAAE,CAAC;gCAC5B,aAAa,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,CAAC;gCAC9D,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;gCAC7C,IAAI,cAAc,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;oCACpC,aAAa,CAAC,gCAAgC,EAAE,6BAA6B,CAAC,CAAC;oCAC/E,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;gCACtD,CAAC;4BACF,CAAC;wBACF,CAAC,CAAC;wBAEF,MAAM,YAAY,CAAC;wBAEnB,gEAAgE;wBAChE,kEAAkE;wBAClE,qEAAqE;wBACrE,kEAAkE;wBAClE,mEAAmE;wBACnE,2DAA2D;wBAC3D,IAAI,2BAA2B,EAAE,CAAC;4BACjC,2BAA2B,EAAE,CAAC;4BAC9B,2BAA2B,GAAG,IAAI,CAAC;wBACpC,CAAC;wBAED,sBAAsB;wBACtB,mBAAmB,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;4BACnD,OAAO,iBAAiB,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBAC/F,CAAC,CAAC,CAAC;wBACH,oBAAoB,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CACnE,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,CACrB,CAAC,GAA0B,EAAE,EAAE,CAAC,GAAG,EACnC,mBAAmB,CAAC,CAAC,CAAC,CACtB,CAAC,CAAC,CAAC,IAAI,CACR,CAAC;wBACF,sEAAsE;wBACtE,gBAAgB,GAAG,GAAG,CAAC;oBACxB,CAAC;oBAED,4BAA4B;oBAC5B,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;wBAC9B,mBAAmB,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;4BACnD,OAAO,iBAAiB,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;wBAC/F,CAAC,CAAC,CAAC;wBACH,oBAAoB,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CACnE,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,CACrB,CAAC,GAA0B,EAAE,EAAE,CAAC,GAAG,EACnC,mBAAmB,CAAC,CAAC,CAAC,CACtB,CAAC,CAAC,CAAC,IAAI,CACR,CAAC;wBACF,6CAA6C;wBAC7C,gBAAgB,GAAG,GAAG,CAAC;oBACxB,CAAC;oBAED,uBAAuB;oBACvB,eAAe,GAAG,WAAW,CAAC;oBAC9B,kBAAkB,GAAG,WAAW,CAAC;oBAEjC,+EAA+E;oBAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBACnC,MAAM,UAAU,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;wBAC7C,MAAM,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;wBAEzC,oEAAoE;wBACpE,IAAI,UAAU,EAAE,CAAC;4BAChB,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;4BACxE,MAAM,YAAY,GAAG,oBAAoB,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;4BACpE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;gCACtB,6CAA6C;gCAC7C,SAAS;4BACV,CAAC;wBACF,CAAC;wBAED,yBAAyB;wBACzB,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;4BACvC,mBAAmB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;wBACpF,CAAC;oBACF,CAAC;gBACF,CAAC;wBAAS,CAAC;oBACV,qCAAqC;oBACrC,aAAa,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;oBAC7C,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBACvC,CAAC;YACF,CAAC;YAED,mDAAmD;YACnD,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;gBAC9B,MAAM,YAAY,GAAe,EAAE,CAAC;gBAEpC,iCAAiC;gBACjC,YAAY,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;gBAEzC,2CAA2C;gBAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBAEnC,IAAI,UAAoB,CAAC;oBACzB,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;wBACvC,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9D,CAAC;yBAAM,CAAC;wBACP,UAAU,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;oBACrC,CAAC;oBAED,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC/B,CAAC;gBAED,wEAAwE;gBACxE,MAAM,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;gBAEzF,yDAAyD;gBACzD,IAAI,gBAAgB,EAAE,CAAC;oBACtB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;oBACtE,cAAc,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;gBAC1D,CAAC;gBACD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACjE,cAAc,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;gBAC1D,IAAI,gBAAgB,EAAE,CAAC;oBACtB,iEAAiE;oBACjE,yEAAyE;oBACzE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,gBAAiB,EAAE,SAAS,CAAC,CAAC;oBAC9E,cAAc,CAAC,wBAAwB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;oBAC/E,IAAI,cAAc,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;wBACpC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,GAAG,EAAE,CAAC,gBAAiB,EAAE,SAAS,CAAC,CAAC;wBACtF,cAAc,CAAC,gCAAgC,EAAE,2BAA2B,CAAC,CAAC;oBAC/E,CAAC;gBACF,CAAC;gBAED,IAAI,CAAC;oBACJ,MAAM,YAAY,CAAC;gBACpB,CAAC;wBAAS,CAAC;oBACV,aAAa,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;oBACzD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;oBAC1C,IAAI,gBAAgB,EAAE,CAAC;wBACtB,aAAa,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;wBACxD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;oBACvC,CAAC;oBACD,IAAI,gBAAgB,EAAE,CAAC;wBACtB,aAAa,CAAC,wBAAwB,EAAE,kBAAkB,CAAC,CAAC;wBAC5D,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;wBAC7C,IAAI,cAAc,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;4BACpC,aAAa,CAAC,gCAAgC,EAAE,2BAA2B,CAAC,CAAC;4BAC7E,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;wBACtD,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEzD,4BAA4B;IAC5B,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAElF,sCAAsC;IACtC,MAAM,wBAAwB,GAAkB,EAAE,CAAC;IACnD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC;QAChC,IAAI,CAAC,CAAC,QAAQ,YAAY,yBAAyB,CAAC,EAAE,CAAC;YACtD,YAAY,CAAC,8CAA8C,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC9G,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,YAAY,CAAC,gDAAgD,QAAQ,CAAC,YAAY,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC5G,CAAC;YACD,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;IACF,CAAC;IAED,OAAO;QACN,MAAM,EAAE,CAAC,iBAAiB,EAAE,GAAG,mBAAmB,EAAE,GAAG,wBAAwB,CAAC;QAChF,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;QACf,IAAI,EAAE,oBAAoB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,QAAQ;KACxI,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"alter-table.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/alter-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAqC,MAAM,yCAAyC,CAAC;AACjH,OAAO,KAAK,EAAE,WAAW,EAA+C,MAAM,aAAa,CAAC;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,KAAK,EAAE,WAAW,EAAE,0BAA0B,EAAuB,MAAM,uBAAuB,CAAC;AAgC1G,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CA6HtF;AAwkCD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAClC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,QAAQ,EAAE,0BAA0B,EAAE,GACpC,MAAM,CAuCR"}
1
+ {"version":3,"file":"alter-table.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/alter-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAqC,MAAM,yCAAyC,CAAC;AACjH,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,KAAK,EAAE,WAAW,EAAE,0BAA0B,EAAuB,MAAM,uBAAuB,CAAC;AAiC1G,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAuItF;AAopCD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAClC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,QAAQ,EAAE,0BAA0B,EAAE,GACpC,MAAM,CAuCR"}
@@ -1,3 +1,4 @@
1
+ import { asRun } from '../types.js';
1
2
  import { emitCallFromPlan } from '../emitters.js';
2
3
  import { createRowSlot } from '../context-helpers.js';
3
4
  import { QuereusError } from '../../common/errors.js';
@@ -9,9 +10,12 @@ import { MemoryTableModule } from '../../vtab/memory/module.js';
9
10
  import { quoteIdentifier, expressionToString, astToString } from '../../emit/ast-stringify.js';
10
11
  import { renameTableInAst, renameColumnInAst, renameColumnInCheckExpression } from '../../schema/rename-rewriter.js';
11
12
  import { tryFoldLiteral } from '../../parser/utils.js';
13
+ import { isTruthy } from '../../util/comparison.js';
14
+ import { assertDdlTransactionPolicy } from './ddl-transaction-policy.js';
12
15
  import { snapshotStaleMaterializedViews, propagateTableRenameToMaterializedViews, propagateColumnRenameToMaterializedViews, restoreUnaffectedMaterializedViews, attachMaintainedDerivation, detachMaintainedDerivation, } from './materialized-view-helpers.js';
13
16
  import { isMaintainedTable } from '../../schema/derivation.js';
14
17
  const log = createLogger('runtime:emit:alter-table');
18
+ /** A scheduled sub-program resolved to a callback the emitter invokes per row. */
15
19
  function qualifyTableName(schemaName, tableName) {
16
20
  const prefix = (schemaName && schemaName.toLowerCase() !== 'main')
17
21
  ? `${quoteIdentifier(schemaName)}.`
@@ -34,6 +38,12 @@ export function emitAlterTable(plan, ctx) {
34
38
  ...(checks?.predicates ?? []).map(p => emitCallFromPlan(p.node, ctx)),
35
39
  ];
36
40
  async function run(rctx, ...args) {
41
+ // Strict-policy gate (see ddl-transaction-policy.ts). Every ALTER arm changes a
42
+ // module table's schema in a way that escapes rollback on a non-transactional
43
+ // module — including the catalog-only tag/rename arms and the engine-side
44
+ // schema-only renameColumn fallback — so gate uniformly here, before any
45
+ // dispatch or catalog mutation.
46
+ assertDdlTransactionPolicy(rctx.db, requireVtabModule(tableSchema), tableSchema.vtabModuleName, `ALTER TABLE ${tableSchema.name} (${action.type})`);
37
47
  // Ensure we're in a transaction before DDL (lazy/JIT transaction start)
38
48
  await rctx.db._ensureTransaction();
39
49
  const schemaManager = rctx.db.schemaManager;
@@ -136,7 +146,7 @@ export function emitAlterTable(plan, ctx) {
136
146
  })();
137
147
  return {
138
148
  params,
139
- run: run,
149
+ run: asRun(run),
140
150
  note,
141
151
  };
142
152
  }
@@ -159,9 +169,17 @@ async function runRenameTable(rctx, tableSchema, schema, newName) {
159
169
  if (module.renameTable) {
160
170
  await module.renameTable(rctx.db, tableSchema.schemaName, oldName, newName);
161
171
  }
172
+ // The renamed table's own definition can name itself: a self-referencing FK's
173
+ // `referencedTable`, a table-qualified CHECK expression, a table-qualified
174
+ // partial-index predicate. Rewrite those BEFORE the catalog swap and the notify
175
+ // below, so no listener ever observes — or persists — a schema pointing at the
176
+ // vanished old name. `propagateTableRename` runs the same rewrite over every
177
+ // table in the catalog, but only after the notify; it is idempotent, so this
178
+ // call simply makes that pass a no-op for this one table.
179
+ const renamedTableSchema = rewriteTableForTableRename(updatedTableSchema, tableSchema.schemaName.toLowerCase(), oldName, newName);
162
180
  // Remove old, add new in the catalog
163
181
  schema.removeTable(oldName);
164
- schema.addTable(updatedTableSchema);
182
+ schema.addTable(renamedTableSchema);
165
183
  // Snapshot which MVs are stale BEFORE this statement's first schema-change
166
184
  // notify: the MV propagation below restores staleness set by this very
167
185
  // statement's events, but must never clear a pre-existing flag (the backing
@@ -173,7 +191,7 @@ async function runRenameTable(rctx, tableSchema, schema, newName) {
173
191
  schemaName: tableSchema.schemaName,
174
192
  objectName: newName,
175
193
  oldObject: tableSchema,
176
- newObject: updatedTableSchema,
194
+ newObject: renamedTableSchema,
177
195
  });
178
196
  // Propagate the rename into dependent objects (CHECK / FK / partial-index
179
197
  // predicates in this and other tables, view and materialized-view bodies).
@@ -184,9 +202,9 @@ async function runRenameTable(rctx, tableSchema, schema, newName) {
184
202
  // re-key: the row-time plan is keyed by `schema.name`, so release the old key
185
203
  // and re-register under the new one, then move the persisted MV catalog entry
186
204
  // (`materialized_view_removed` old name → `materialized_view_added` new name).
187
- if (isMaintainedTable(updatedTableSchema)) {
205
+ if (isMaintainedTable(renamedTableSchema)) {
188
206
  rctx.db.unregisterMaterializedView(tableSchema.schemaName, oldName);
189
- rctx.db.registerMaterializedView(updatedTableSchema);
207
+ rctx.db.registerMaterializedView(renamedTableSchema);
190
208
  const notifier = rctx.db.schemaManager.getChangeNotifier();
191
209
  notifier.notifyChange({
192
210
  type: 'materialized_view_removed',
@@ -198,9 +216,16 @@ async function runRenameTable(rctx, tableSchema, schema, newName) {
198
216
  type: 'materialized_view_added',
199
217
  schemaName: tableSchema.schemaName,
200
218
  objectName: newName,
201
- newObject: updatedTableSchema,
219
+ newObject: renamedTableSchema,
202
220
  });
203
221
  }
222
+ // Second rename phase. `propagateTableRename` above rewrote every dependent object
223
+ // that named `oldName` and (for a persistent module) enqueued their corrective catalog
224
+ // writes. Signal the module to finalize: it may now drop any old-name catalog state,
225
+ // but only once those dependent writes are durable — so no on-disk catalog set ever
226
+ // names a vanished table. A module whose `renameTable` already did all its work (or
227
+ // that keeps no per-name catalog) simply omits the hook.
228
+ await module.finalizeRename?.(rctx.db, tableSchema.schemaName, oldName, newName);
204
229
  log('Renamed table %s.%s to %s', tableSchema.schemaName, oldName, newName);
205
230
  return null;
206
231
  }
@@ -328,8 +353,8 @@ async function runAddColumn(rctx, tableSchema, schema, columnDef, backfill, back
328
353
  for (let i = 0; i < checkPredicates.length; i++) {
329
354
  const resultRaw = checkCbs[i](rctx);
330
355
  const result = (resultRaw instanceof Promise ? await resultRaw : resultRaw);
331
- // CHECK passes on truthy / NULL; fails on false / 0 (matches write-time semantics).
332
- if (result === false || result === 0) {
356
+ // CHECK passes on truthy / NULL; fails otherwise (shared isTruthy semantics, matches write-time).
357
+ if (result !== null && !isTruthy(result)) {
333
358
  const pred = checkPredicates[i];
334
359
  const hint = pred.exprText ? ` (${pred.exprText})` : '';
335
360
  throw new QuereusError(`CHECK constraint failed: ${pred.name ?? `_check_${columnDef.name}`}${hint}`, StatusCode.CONSTRAINT);
@@ -558,6 +583,49 @@ async function validateNotNullBackfill(rctx, tableSchema, newColumnName) {
558
583
  await stmt.finalize();
559
584
  }
560
585
  }
586
+ /**
587
+ * Whether a partial-index predicate names `columnName`. Depth-blind walk over the
588
+ * predicate's object graph, matching `column` / `identifier` nodes by name alone —
589
+ * the parser emits either shape for a bare name depending on context.
590
+ *
591
+ * The table qualifier is IGNORED — matching by bare name alone — which is now moot
592
+ * rather than a deliberate mismatch: `compilePredicate` rejects a foreign `table`
593
+ * qualifier at create time (a self-qualifier binds to the indexed table), so no LIVE
594
+ * predicate can carry one. Every ref this walk sees therefore names the indexed table's
595
+ * own column, and matching on bare name is exactly right. Making the walk
596
+ * qualifier-aware would only guard a case that can no longer occur.
597
+ *
598
+ * NOTE: depth-blind. `compilePredicate` rejects subqueries, so every ref in a live
599
+ * predicate binds to the indexed table. If partial-index predicates ever admit
600
+ * subqueries, an inner ref to a like-named column of another table would
601
+ * false-positively block a legal DROP COLUMN; this walk would then need the scope
602
+ * stack the rename rewriters carry.
603
+ */
604
+ function predicateReferencesColumn(expr, columnName) {
605
+ const colLower = columnName.toLowerCase();
606
+ let found = false;
607
+ const visit = (v) => {
608
+ if (found || v === null || typeof v !== 'object')
609
+ return;
610
+ if (Array.isArray(v)) {
611
+ v.forEach(visit);
612
+ return;
613
+ }
614
+ const n = v;
615
+ if ((n.type === 'column' || n.type === 'identifier')
616
+ && typeof n.name === 'string' && n.name.toLowerCase() === colLower) {
617
+ found = true;
618
+ return;
619
+ }
620
+ for (const key of Object.keys(n)) {
621
+ if (key === 'loc')
622
+ continue;
623
+ visit(n[key]);
624
+ }
625
+ };
626
+ visit(expr);
627
+ return found;
628
+ }
561
629
  async function runDropColumn(rctx, tableSchema, schema, columnName) {
562
630
  const colIndex = tableSchema.columnIndexMap.get(columnName.toLowerCase());
563
631
  if (colIndex === undefined) {
@@ -582,6 +650,15 @@ async function runDropColumn(rctx, tableSchema, schema, columnName) {
582
650
  }
583
651
  }
584
652
  }
653
+ // Validate: can't drop a column named by a partial index's WHERE predicate — the
654
+ // index would be left with a predicate that cannot compile. A column used only as
655
+ // an index KEY column is fine: the module narrows the index and drops it outright
656
+ // when no key columns survive.
657
+ for (const idx of tableSchema.indexes ?? []) {
658
+ if (idx.predicate && predicateReferencesColumn(idx.predicate, columnName)) {
659
+ throw new QuereusError(`Cannot drop column '${columnName}' from '${tableSchema.name}': it is referenced by the WHERE clause of partial index '${idx.name}'`, StatusCode.CONSTRAINT);
660
+ }
661
+ }
585
662
  // Call module.alterTable for data + schema update
586
663
  const module = requireVtabModule(tableSchema);
587
664
  if (!module.alterTable) {
@@ -724,7 +801,7 @@ async function runAlterColumn(rctx, tableSchema, schema, action) {
724
801
  // (same error shape as CREATE TABLE), so an unknown collation is rejected before
725
802
  // any module round-trip / re-sort. The module re-normalizes and applies it.
726
803
  if (action.setCollation !== undefined) {
727
- validateCollationForType(action.setCollation, tableSchema.columns[colIndex].logicalType, action.columnName);
804
+ validateCollationForType(action.setCollation, tableSchema.columns[colIndex].logicalType, action.columnName, (n) => rctx.db.isCollationRegistered(n));
728
805
  }
729
806
  // Route a SET DEFAULT through the same DDL validator CREATE TABLE uses, so the
730
807
  // stored default is consistent with what INSERT will accept: bind params / bare
@@ -1325,6 +1402,18 @@ function rewriteTableForColumnRename(table, renamedSchemaLower, tableName, oldCo
1325
1402
  // table, the same implicit seed CHECK expressions use. As with checks, the
1326
1403
  // AST is mutated in place, so the derived UNIQUE constraint of a unique
1327
1404
  // partial index (sharing the predicate by reference) is rewritten with it.
1405
+ //
1406
+ // This pass is the only predicate rewrite for the schema-only fallback branch of
1407
+ // `runRenameColumn` (a module with no `alterTable` hook), and for any hook module
1408
+ // that does not rewrite predicates itself.
1409
+ //
1410
+ // The memory and store modules both DO rewrite, from inside their own hook, because
1411
+ // each must act on the predicate before this pass regains control: the memory module
1412
+ // rebuilds its live index structures against the new column list, and the store
1413
+ // module persists its DDL bundle (which is also why the store rewrites the CHECK
1414
+ // expressions above, via `renameColumnInCheckConstraints`). Both use the same
1415
+ // idempotent `renameColumnInIndexPredicates`, so this pass then finds nothing naming
1416
+ // `oldCol`, `rewrote` is false, and the table is not needlessly re-registered.
1328
1417
  const newIndexes = (table.indexes ?? []).map(idx => {
1329
1418
  const rewrote = isRenamedTable
1330
1419
  ? renameColumnInCheckExpression(idx.predicate, tableName, oldCol, newCol, renamedSchemaLower, resolveColumnInSource)