@quereus/quereus 4.3.1 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (788) 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 +3 -3
  10. package/dist/src/core/database-external-changes.d.ts.map +1 -1
  11. package/dist/src/core/database-external-changes.js +13 -10
  12. package/dist/src/core/database-external-changes.js.map +1 -1
  13. package/dist/src/core/database-internal.d.ts.map +1 -1
  14. package/dist/src/core/database-materialized-views-analysis.d.ts +199 -0
  15. package/dist/src/core/database-materialized-views-analysis.d.ts.map +1 -0
  16. package/dist/src/core/database-materialized-views-analysis.js +502 -0
  17. package/dist/src/core/database-materialized-views-analysis.js.map +1 -0
  18. package/dist/src/core/database-materialized-views-apply.d.ts +422 -0
  19. package/dist/src/core/database-materialized-views-apply.d.ts.map +1 -0
  20. package/dist/src/core/database-materialized-views-apply.js +929 -0
  21. package/dist/src/core/database-materialized-views-apply.js.map +1 -0
  22. package/dist/src/core/database-materialized-views-plan-builders.d.ts +267 -0
  23. package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -0
  24. package/dist/src/core/database-materialized-views-plan-builders.js +1423 -0
  25. package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -0
  26. package/dist/src/core/database-materialized-views-plans.d.ts +641 -0
  27. package/dist/src/core/database-materialized-views-plans.d.ts.map +1 -0
  28. package/dist/src/core/database-materialized-views-plans.js +13 -0
  29. package/dist/src/core/database-materialized-views-plans.js.map +1 -0
  30. package/dist/src/core/database-materialized-views.d.ts +108 -860
  31. package/dist/src/core/database-materialized-views.d.ts.map +1 -1
  32. package/dist/src/core/database-materialized-views.js +212 -2165
  33. package/dist/src/core/database-materialized-views.js.map +1 -1
  34. package/dist/src/core/database-transaction.d.ts +10 -1
  35. package/dist/src/core/database-transaction.d.ts.map +1 -1
  36. package/dist/src/core/database-transaction.js +16 -4
  37. package/dist/src/core/database-transaction.js.map +1 -1
  38. package/dist/src/core/database-watchers.d.ts.map +1 -1
  39. package/dist/src/core/database-watchers.js +2 -1
  40. package/dist/src/core/database-watchers.js.map +1 -1
  41. package/dist/src/core/database.d.ts +99 -13
  42. package/dist/src/core/database.d.ts.map +1 -1
  43. package/dist/src/core/database.js +270 -50
  44. package/dist/src/core/database.js.map +1 -1
  45. package/dist/src/core/derived-row-validator.d.ts +1 -1
  46. package/dist/src/core/derived-row-validator.d.ts.map +1 -1
  47. package/dist/src/core/derived-row-validator.js +5 -3
  48. package/dist/src/core/derived-row-validator.js.map +1 -1
  49. package/dist/src/core/statement.d.ts +8 -0
  50. package/dist/src/core/statement.d.ts.map +1 -1
  51. package/dist/src/core/statement.js +98 -18
  52. package/dist/src/core/statement.js.map +1 -1
  53. package/dist/src/emit/ast-stringify.d.ts.map +1 -1
  54. package/dist/src/emit/ast-stringify.js +24 -13
  55. package/dist/src/emit/ast-stringify.js.map +1 -1
  56. package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
  57. package/dist/src/func/builtins/aggregate.js +127 -21
  58. package/dist/src/func/builtins/aggregate.js.map +1 -1
  59. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  60. package/dist/src/func/builtins/explain.js +2 -1
  61. package/dist/src/func/builtins/explain.js.map +1 -1
  62. package/dist/src/func/builtins/json.d.ts.map +1 -1
  63. package/dist/src/func/builtins/json.js +2 -1
  64. package/dist/src/func/builtins/json.js.map +1 -1
  65. package/dist/src/func/builtins/mutation.d.ts.map +1 -1
  66. package/dist/src/func/builtins/mutation.js +3 -2
  67. package/dist/src/func/builtins/mutation.js.map +1 -1
  68. package/dist/src/func/registration.d.ts +6 -1
  69. package/dist/src/func/registration.d.ts.map +1 -1
  70. package/dist/src/func/registration.js +16 -0
  71. package/dist/src/func/registration.js.map +1 -1
  72. package/dist/src/index.d.ts +16 -6
  73. package/dist/src/index.d.ts.map +1 -1
  74. package/dist/src/index.js +33 -7
  75. package/dist/src/index.js.map +1 -1
  76. package/dist/src/parser/ast.d.ts +2 -2
  77. package/dist/src/parser/lexer.d.ts +11 -1
  78. package/dist/src/parser/lexer.d.ts.map +1 -1
  79. package/dist/src/parser/lexer.js +40 -34
  80. package/dist/src/parser/lexer.js.map +1 -1
  81. package/dist/src/parser/parser.d.ts.map +1 -1
  82. package/dist/src/parser/parser.js +16 -9
  83. package/dist/src/parser/parser.js.map +1 -1
  84. package/dist/src/planner/analysis/authored-inverse.js +1 -1
  85. package/dist/src/planner/analysis/comparison-collation.d.ts +52 -0
  86. package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
  87. package/dist/src/planner/analysis/comparison-collation.js +84 -7
  88. package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
  89. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  90. package/dist/src/planner/analysis/constraint-extractor.js +64 -17
  91. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  92. package/dist/src/planner/analysis/coverage-prover.d.ts +1 -1
  93. package/dist/src/planner/analysis/coverage-prover.js +1 -1
  94. package/dist/src/planner/analysis/equi-correlation.d.ts +26 -0
  95. package/dist/src/planner/analysis/equi-correlation.d.ts.map +1 -0
  96. package/dist/src/planner/analysis/equi-correlation.js +62 -0
  97. package/dist/src/planner/analysis/equi-correlation.js.map +1 -0
  98. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts +54 -18
  99. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
  100. package/dist/src/planner/analysis/query-rewrite-matcher.js +86 -42
  101. package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -1
  102. package/dist/src/planner/analysis/sat-checker.d.ts +8 -1
  103. package/dist/src/planner/analysis/sat-checker.d.ts.map +1 -1
  104. package/dist/src/planner/analysis/sat-checker.js +117 -22
  105. package/dist/src/planner/analysis/sat-checker.js.map +1 -1
  106. package/dist/src/planner/analysis/scalar-invertibility.d.ts +13 -4
  107. package/dist/src/planner/analysis/scalar-invertibility.d.ts.map +1 -1
  108. package/dist/src/planner/analysis/scalar-invertibility.js +12 -3
  109. package/dist/src/planner/analysis/scalar-invertibility.js.map +1 -1
  110. package/dist/src/planner/analysis/scalar-subqueries.d.ts +28 -0
  111. package/dist/src/planner/analysis/scalar-subqueries.d.ts.map +1 -0
  112. package/dist/src/planner/analysis/scalar-subqueries.js +60 -0
  113. package/dist/src/planner/analysis/scalar-subqueries.js.map +1 -0
  114. package/dist/src/planner/analysis/update-lineage.d.ts +1 -1
  115. package/dist/src/planner/analysis/update-lineage.js +1 -1
  116. package/dist/src/planner/analysis/update-lineage.js.map +1 -1
  117. package/dist/src/planner/analysis/view-complement.d.ts +2 -2
  118. package/dist/src/planner/building/delete.js +2 -2
  119. package/dist/src/planner/building/delete.js.map +1 -1
  120. package/dist/src/planner/building/dml-target.d.ts +2 -2
  121. package/dist/src/planner/building/dml-target.js +2 -2
  122. package/dist/src/planner/building/insert.d.ts.map +1 -1
  123. package/dist/src/planner/building/insert.js +53 -2
  124. package/dist/src/planner/building/insert.js.map +1 -1
  125. package/dist/src/planner/building/schema-resolution.d.ts +3 -0
  126. package/dist/src/planner/building/schema-resolution.d.ts.map +1 -1
  127. package/dist/src/planner/building/schema-resolution.js +4 -5
  128. package/dist/src/planner/building/schema-resolution.js.map +1 -1
  129. package/dist/src/planner/building/select.d.ts.map +1 -1
  130. package/dist/src/planner/building/select.js +18 -4
  131. package/dist/src/planner/building/select.js.map +1 -1
  132. package/dist/src/planner/building/update.js +2 -2
  133. package/dist/src/planner/building/update.js.map +1 -1
  134. package/dist/src/planner/building/view-mutation-builder.js +7 -7
  135. package/dist/src/planner/building/view-mutation-builder.js.map +1 -1
  136. package/dist/src/planner/building/with.d.ts.map +1 -1
  137. package/dist/src/planner/building/with.js +5 -8
  138. package/dist/src/planner/building/with.js.map +1 -1
  139. package/dist/src/planner/cache/materialization-advisory.d.ts +34 -2
  140. package/dist/src/planner/cache/materialization-advisory.d.ts.map +1 -1
  141. package/dist/src/planner/cache/materialization-advisory.js +185 -42
  142. package/dist/src/planner/cache/materialization-advisory.js.map +1 -1
  143. package/dist/src/planner/cache/reference-graph.d.ts +14 -5
  144. package/dist/src/planner/cache/reference-graph.d.ts.map +1 -1
  145. package/dist/src/planner/cache/reference-graph.js +31 -39
  146. package/dist/src/planner/cache/reference-graph.js.map +1 -1
  147. package/dist/src/planner/cost/index.d.ts +30 -5
  148. package/dist/src/planner/cost/index.d.ts.map +1 -1
  149. package/dist/src/planner/cost/index.js +26 -0
  150. package/dist/src/planner/cost/index.js.map +1 -1
  151. package/dist/src/planner/debug.d.ts +3 -2
  152. package/dist/src/planner/debug.d.ts.map +1 -1
  153. package/dist/src/planner/debug.js +9 -3
  154. package/dist/src/planner/debug.js.map +1 -1
  155. package/dist/src/planner/framework/characteristics.d.ts +46 -19
  156. package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
  157. package/dist/src/planner/framework/characteristics.js +50 -134
  158. package/dist/src/planner/framework/characteristics.js.map +1 -1
  159. package/dist/src/planner/framework/context.d.ts +8 -44
  160. package/dist/src/planner/framework/context.d.ts.map +1 -1
  161. package/dist/src/planner/framework/context.js +0 -91
  162. package/dist/src/planner/framework/context.js.map +1 -1
  163. package/dist/src/planner/framework/pass.d.ts +7 -0
  164. package/dist/src/planner/framework/pass.d.ts.map +1 -1
  165. package/dist/src/planner/framework/pass.js +84 -0
  166. package/dist/src/planner/framework/pass.js.map +1 -1
  167. package/dist/src/planner/framework/registry.d.ts +13 -42
  168. package/dist/src/planner/framework/registry.d.ts.map +1 -1
  169. package/dist/src/planner/framework/registry.js +14 -182
  170. package/dist/src/planner/framework/registry.js.map +1 -1
  171. package/dist/src/planner/mutation/backward-body.d.ts +2 -2
  172. package/dist/src/planner/mutation/cte-flatten.js +1 -1
  173. package/dist/src/planner/mutation/decomposition.d.ts +2 -2
  174. package/dist/src/planner/mutation/decomposition.js +1 -1
  175. package/dist/src/planner/mutation/lens-enforcement.d.ts.map +1 -1
  176. package/dist/src/planner/mutation/lens-enforcement.js +2 -1
  177. package/dist/src/planner/mutation/lens-enforcement.js.map +1 -1
  178. package/dist/src/planner/mutation/multi-source.d.ts +8 -8
  179. package/dist/src/planner/mutation/multi-source.js +11 -11
  180. package/dist/src/planner/mutation/multi-source.js.map +1 -1
  181. package/dist/src/planner/mutation/propagate.d.ts +1 -1
  182. package/dist/src/planner/mutation/propagate.js +1 -1
  183. package/dist/src/planner/mutation/scope-transform.d.ts +2 -2
  184. package/dist/src/planner/mutation/scope-transform.js +3 -3
  185. package/dist/src/planner/mutation/scope-transform.js.map +1 -1
  186. package/dist/src/planner/mutation/set-op.d.ts +1 -1
  187. package/dist/src/planner/mutation/set-op.d.ts.map +1 -1
  188. package/dist/src/planner/mutation/set-op.js +3 -2
  189. package/dist/src/planner/mutation/set-op.js.map +1 -1
  190. package/dist/src/planner/mutation/single-source.d.ts +3 -3
  191. package/dist/src/planner/mutation/single-source.js +9 -9
  192. package/dist/src/planner/mutation/single-source.js.map +1 -1
  193. package/dist/src/planner/nodes/aggregate-function.d.ts +3 -1
  194. package/dist/src/planner/nodes/aggregate-function.d.ts.map +1 -1
  195. package/dist/src/planner/nodes/aggregate-function.js +1 -0
  196. package/dist/src/planner/nodes/aggregate-function.js.map +1 -1
  197. package/dist/src/planner/nodes/aggregate-node.d.ts +1 -0
  198. package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
  199. package/dist/src/planner/nodes/aggregate-node.js +8 -1
  200. package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
  201. package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
  202. package/dist/src/planner/nodes/alias-node.js +3 -1
  203. package/dist/src/planner/nodes/alias-node.js.map +1 -1
  204. package/dist/src/planner/nodes/asof-scan-node.d.ts.map +1 -1
  205. package/dist/src/planner/nodes/asof-scan-node.js +3 -2
  206. package/dist/src/planner/nodes/asof-scan-node.js.map +1 -1
  207. package/dist/src/planner/nodes/asserted-keys-node.d.ts +1 -1
  208. package/dist/src/planner/nodes/asserted-keys-node.d.ts.map +1 -1
  209. package/dist/src/planner/nodes/asserted-keys-node.js +5 -2
  210. package/dist/src/planner/nodes/asserted-keys-node.js.map +1 -1
  211. package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -1
  212. package/dist/src/planner/nodes/async-gather-node.js +3 -1
  213. package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
  214. package/dist/src/planner/nodes/block.js +3 -3
  215. package/dist/src/planner/nodes/block.js.map +1 -1
  216. package/dist/src/planner/nodes/bloom-join-node.d.ts +2 -0
  217. package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
  218. package/dist/src/planner/nodes/bloom-join-node.js +5 -1
  219. package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
  220. package/dist/src/planner/nodes/cache-node.d.ts +19 -2
  221. package/dist/src/planner/nodes/cache-node.d.ts.map +1 -1
  222. package/dist/src/planner/nodes/cache-node.js +43 -3
  223. package/dist/src/planner/nodes/cache-node.js.map +1 -1
  224. package/dist/src/planner/nodes/cte-node.d.ts +16 -1
  225. package/dist/src/planner/nodes/cte-node.d.ts.map +1 -1
  226. package/dist/src/planner/nodes/cte-node.js +16 -3
  227. package/dist/src/planner/nodes/cte-node.js.map +1 -1
  228. package/dist/src/planner/nodes/distinct-node.js +3 -3
  229. package/dist/src/planner/nodes/distinct-node.js.map +1 -1
  230. package/dist/src/planner/nodes/dml-executor-node.d.ts +21 -0
  231. package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
  232. package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
  233. package/dist/src/planner/nodes/envelope-scan-node.d.ts +1 -1
  234. package/dist/src/planner/nodes/envelope-scan-node.js +1 -1
  235. package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts.map +1 -1
  236. package/dist/src/planner/nodes/fanout-lookup-join-node.js +4 -2
  237. package/dist/src/planner/nodes/fanout-lookup-join-node.js.map +1 -1
  238. package/dist/src/planner/nodes/filter.d.ts +10 -2
  239. package/dist/src/planner/nodes/filter.d.ts.map +1 -1
  240. package/dist/src/planner/nodes/filter.js +81 -14
  241. package/dist/src/planner/nodes/filter.js.map +1 -1
  242. package/dist/src/planner/nodes/hash-aggregate.d.ts +12 -1
  243. package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
  244. package/dist/src/planner/nodes/hash-aggregate.js +28 -1
  245. package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
  246. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.d.ts +3 -1
  247. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.d.ts.map +1 -1
  248. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js +1 -0
  249. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js.map +1 -1
  250. package/dist/src/planner/nodes/join-node.d.ts +3 -1
  251. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  252. package/dist/src/planner/nodes/join-node.js +5 -5
  253. package/dist/src/planner/nodes/join-node.js.map +1 -1
  254. package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts.map +1 -1
  255. package/dist/src/planner/nodes/lens-auxiliary-access-node.js +4 -1
  256. package/dist/src/planner/nodes/lens-auxiliary-access-node.js.map +1 -1
  257. package/dist/src/planner/nodes/limit-offset.d.ts +1 -0
  258. package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
  259. package/dist/src/planner/nodes/limit-offset.js +4 -3
  260. package/dist/src/planner/nodes/limit-offset.js.map +1 -1
  261. package/dist/src/planner/nodes/merge-join-node.d.ts +2 -0
  262. package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
  263. package/dist/src/planner/nodes/merge-join-node.js +6 -1
  264. package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
  265. package/dist/src/planner/nodes/ordinal-slice-node.d.ts.map +1 -1
  266. package/dist/src/planner/nodes/ordinal-slice-node.js +3 -1
  267. package/dist/src/planner/nodes/ordinal-slice-node.js.map +1 -1
  268. package/dist/src/planner/nodes/plan-node.d.ts +68 -5
  269. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  270. package/dist/src/planner/nodes/plan-node.js +137 -24
  271. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  272. package/dist/src/planner/nodes/project-node.d.ts +3 -2
  273. package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
  274. package/dist/src/planner/nodes/project-node.js +1 -0
  275. package/dist/src/planner/nodes/project-node.js.map +1 -1
  276. package/dist/src/planner/nodes/recursive-cte-node.d.ts +30 -1
  277. package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -1
  278. package/dist/src/planner/nodes/recursive-cte-node.js +38 -5
  279. package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
  280. package/dist/src/planner/nodes/reference.d.ts +5 -1
  281. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  282. package/dist/src/planner/nodes/reference.js +3 -0
  283. package/dist/src/planner/nodes/reference.js.map +1 -1
  284. package/dist/src/planner/nodes/remote-query-node.d.ts.map +1 -1
  285. package/dist/src/planner/nodes/remote-query-node.js +3 -1
  286. package/dist/src/planner/nodes/remote-query-node.js.map +1 -1
  287. package/dist/src/planner/nodes/retrieve-node.d.ts.map +1 -1
  288. package/dist/src/planner/nodes/retrieve-node.js +3 -1
  289. package/dist/src/planner/nodes/retrieve-node.js.map +1 -1
  290. package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
  291. package/dist/src/planner/nodes/set-operation-node.js +3 -1
  292. package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
  293. package/dist/src/planner/nodes/sink-node.d.ts.map +1 -1
  294. package/dist/src/planner/nodes/sink-node.js +3 -1
  295. package/dist/src/planner/nodes/sink-node.js.map +1 -1
  296. package/dist/src/planner/nodes/sort.d.ts +2 -1
  297. package/dist/src/planner/nodes/sort.d.ts.map +1 -1
  298. package/dist/src/planner/nodes/sort.js +9 -5
  299. package/dist/src/planner/nodes/sort.js.map +1 -1
  300. package/dist/src/planner/nodes/stream-aggregate.d.ts +12 -1
  301. package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
  302. package/dist/src/planner/nodes/stream-aggregate.js +32 -3
  303. package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
  304. package/dist/src/planner/nodes/table-access-nodes.d.ts +2 -1
  305. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
  306. package/dist/src/planner/nodes/table-access-nodes.js +2 -0
  307. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  308. package/dist/src/planner/nodes/view-mutation-node.d.ts +2 -2
  309. package/dist/src/planner/nodes/view-mutation-node.d.ts.map +1 -1
  310. package/dist/src/planner/nodes/view-mutation-node.js +5 -1
  311. package/dist/src/planner/nodes/view-mutation-node.js.map +1 -1
  312. package/dist/src/planner/nodes/window-function.d.ts +3 -1
  313. package/dist/src/planner/nodes/window-function.d.ts.map +1 -1
  314. package/dist/src/planner/nodes/window-function.js +1 -0
  315. package/dist/src/planner/nodes/window-function.js.map +1 -1
  316. package/dist/src/planner/optimizer.d.ts +52 -8
  317. package/dist/src/planner/optimizer.d.ts.map +1 -1
  318. package/dist/src/planner/optimizer.js +1014 -895
  319. package/dist/src/planner/optimizer.js.map +1 -1
  320. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  321. package/dist/src/planner/rules/access/rule-select-access-path.js +235 -202
  322. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  323. package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts.map +1 -1
  324. package/dist/src/planner/rules/cache/rule-cte-optimization.js +8 -1
  325. package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +1 -1
  326. package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts +7 -0
  327. package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts.map +1 -1
  328. package/dist/src/planner/rules/cache/rule-in-subquery-cache.js +14 -1
  329. package/dist/src/planner/rules/cache/rule-in-subquery-cache.js.map +1 -1
  330. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts +2 -2
  331. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts.map +1 -1
  332. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +55 -56
  333. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js.map +1 -1
  334. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.d.ts.map +1 -1
  335. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js +6 -0
  336. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js.map +1 -1
  337. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts +25 -0
  338. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts.map +1 -0
  339. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js +176 -0
  340. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js.map +1 -0
  341. package/dist/src/planner/rules/cache/rule-scalar-cse.d.ts +1 -1
  342. package/dist/src/planner/rules/cache/rule-scalar-cse.js +1 -1
  343. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts +29 -0
  344. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts.map +1 -0
  345. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js +66 -0
  346. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js.map +1 -0
  347. package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts +1 -1
  348. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +1 -1
  349. package/dist/src/planner/rules/join/rule-fanout-lookup-join.d.ts.map +1 -1
  350. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +1 -54
  351. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -1
  352. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.d.ts +1 -1
  353. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.js +1 -1
  354. package/dist/src/planner/rules/join/rule-join-elimination.d.ts +1 -1
  355. package/dist/src/planner/rules/join/rule-join-elimination.js +1 -1
  356. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js +5 -6
  357. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js.map +1 -1
  358. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.d.ts +1 -1
  359. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js +1 -1
  360. package/dist/src/planner/rules/predicate/rule-filter-contradiction.d.ts +2 -2
  361. package/dist/src/planner/rules/predicate/rule-filter-contradiction.d.ts.map +1 -1
  362. package/dist/src/planner/rules/predicate/rule-filter-contradiction.js +4 -3
  363. package/dist/src/planner/rules/predicate/rule-filter-contradiction.js.map +1 -1
  364. package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts +19 -0
  365. package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts.map +1 -0
  366. package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +48 -0
  367. package/dist/src/planner/rules/predicate/rule-filter-selectivity.js.map +1 -0
  368. package/dist/src/planner/rules/predicate/rule-sargable-range-rewrite.js +12 -1
  369. package/dist/src/planner/rules/predicate/rule-sargable-range-rewrite.js.map +1 -1
  370. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
  371. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +22 -20
  372. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  373. package/dist/src/planner/rules/shared/index-style-context.d.ts +39 -0
  374. package/dist/src/planner/rules/shared/index-style-context.d.ts.map +1 -0
  375. package/dist/src/planner/rules/shared/index-style-context.js +26 -0
  376. package/dist/src/planner/rules/shared/index-style-context.js.map +1 -0
  377. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.d.ts +1 -1
  378. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js +1 -1
  379. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.d.ts +1 -1
  380. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js +1 -1
  381. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.d.ts +191 -0
  382. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.d.ts.map +1 -0
  383. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.js +623 -0
  384. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.js.map +1 -0
  385. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts +10 -1
  386. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
  387. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +242 -51
  388. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
  389. package/dist/src/planner/stats/analyze.d.ts.map +1 -1
  390. package/dist/src/planner/stats/analyze.js +2 -20
  391. package/dist/src/planner/stats/analyze.js.map +1 -1
  392. package/dist/src/planner/stats/histogram.d.ts.map +1 -1
  393. package/dist/src/planner/stats/histogram.js +4 -0
  394. package/dist/src/planner/stats/histogram.js.map +1 -1
  395. package/dist/src/planner/util/fd-utils.d.ts +2 -3
  396. package/dist/src/planner/util/fd-utils.d.ts.map +1 -1
  397. package/dist/src/planner/util/fd-utils.js +2 -3
  398. package/dist/src/planner/util/fd-utils.js.map +1 -1
  399. package/dist/src/planner/validation/plan-validator.d.ts +16 -0
  400. package/dist/src/planner/validation/plan-validator.d.ts.map +1 -1
  401. package/dist/src/planner/validation/plan-validator.js +36 -0
  402. package/dist/src/planner/validation/plan-validator.js.map +1 -1
  403. package/dist/src/runtime/async-util.d.ts +26 -0
  404. package/dist/src/runtime/async-util.d.ts.map +1 -1
  405. package/dist/src/runtime/async-util.js +139 -55
  406. package/dist/src/runtime/async-util.js.map +1 -1
  407. package/dist/src/runtime/cache/shared-cache.d.ts +7 -0
  408. package/dist/src/runtime/cache/shared-cache.d.ts.map +1 -1
  409. package/dist/src/runtime/cache/shared-cache.js +34 -1
  410. package/dist/src/runtime/cache/shared-cache.js.map +1 -1
  411. package/dist/src/runtime/context-helpers.d.ts +32 -4
  412. package/dist/src/runtime/context-helpers.d.ts.map +1 -1
  413. package/dist/src/runtime/context-helpers.js +26 -9
  414. package/dist/src/runtime/context-helpers.js.map +1 -1
  415. package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
  416. package/dist/src/runtime/deferred-constraint-queue.js +2 -1
  417. package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
  418. package/dist/src/runtime/emission-context.d.ts +27 -3
  419. package/dist/src/runtime/emission-context.d.ts.map +1 -1
  420. package/dist/src/runtime/emission-context.js +38 -7
  421. package/dist/src/runtime/emission-context.js.map +1 -1
  422. package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
  423. package/dist/src/runtime/emit/add-constraint.js +7 -1
  424. package/dist/src/runtime/emit/add-constraint.js.map +1 -1
  425. package/dist/src/runtime/emit/aggregate.d.ts +2 -3
  426. package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
  427. package/dist/src/runtime/emit/aggregate.js +23 -28
  428. package/dist/src/runtime/emit/aggregate.js.map +1 -1
  429. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  430. package/dist/src/runtime/emit/alter-table.js +98 -9
  431. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  432. package/dist/src/runtime/emit/analyze.d.ts.map +1 -1
  433. package/dist/src/runtime/emit/analyze.js +2 -1
  434. package/dist/src/runtime/emit/analyze.js.map +1 -1
  435. package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
  436. package/dist/src/runtime/emit/asof-scan.js +13 -10
  437. package/dist/src/runtime/emit/asof-scan.js.map +1 -1
  438. package/dist/src/runtime/emit/async-gather.d.ts.map +1 -1
  439. package/dist/src/runtime/emit/async-gather.js +4 -3
  440. package/dist/src/runtime/emit/async-gather.js.map +1 -1
  441. package/dist/src/runtime/emit/between.d.ts.map +1 -1
  442. package/dist/src/runtime/emit/between.js +2 -1
  443. package/dist/src/runtime/emit/between.js.map +1 -1
  444. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  445. package/dist/src/runtime/emit/binary.js +122 -14
  446. package/dist/src/runtime/emit/binary.js.map +1 -1
  447. package/dist/src/runtime/emit/block.d.ts.map +1 -1
  448. package/dist/src/runtime/emit/block.js +2 -1
  449. package/dist/src/runtime/emit/block.js.map +1 -1
  450. package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
  451. package/dist/src/runtime/emit/bloom-join.js +20 -8
  452. package/dist/src/runtime/emit/bloom-join.js.map +1 -1
  453. package/dist/src/runtime/emit/cache.d.ts +7 -3
  454. package/dist/src/runtime/emit/cache.d.ts.map +1 -1
  455. package/dist/src/runtime/emit/cache.js +25 -7
  456. package/dist/src/runtime/emit/cache.js.map +1 -1
  457. package/dist/src/runtime/emit/case.d.ts.map +1 -1
  458. package/dist/src/runtime/emit/case.js +66 -45
  459. package/dist/src/runtime/emit/case.js.map +1 -1
  460. package/dist/src/runtime/emit/cast.d.ts.map +1 -1
  461. package/dist/src/runtime/emit/cast.js +2 -1
  462. package/dist/src/runtime/emit/cast.js.map +1 -1
  463. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  464. package/dist/src/runtime/emit/constraint-check.js +13 -7
  465. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  466. package/dist/src/runtime/emit/create-assertion.d.ts.map +1 -1
  467. package/dist/src/runtime/emit/create-assertion.js +2 -1
  468. package/dist/src/runtime/emit/create-assertion.js.map +1 -1
  469. package/dist/src/runtime/emit/create-index.d.ts.map +1 -1
  470. package/dist/src/runtime/emit/create-index.js +12 -1
  471. package/dist/src/runtime/emit/create-index.js.map +1 -1
  472. package/dist/src/runtime/emit/create-table.d.ts.map +1 -1
  473. package/dist/src/runtime/emit/create-table.js +12 -1
  474. package/dist/src/runtime/emit/create-table.js.map +1 -1
  475. package/dist/src/runtime/emit/cte-reference.d.ts.map +1 -1
  476. package/dist/src/runtime/emit/cte-reference.js +2 -1
  477. package/dist/src/runtime/emit/cte-reference.js.map +1 -1
  478. package/dist/src/runtime/emit/cte.d.ts.map +1 -1
  479. package/dist/src/runtime/emit/cte.js +45 -21
  480. package/dist/src/runtime/emit/cte.js.map +1 -1
  481. package/dist/src/runtime/emit/ddl-transaction-policy.d.ts +50 -0
  482. package/dist/src/runtime/emit/ddl-transaction-policy.d.ts.map +1 -0
  483. package/dist/src/runtime/emit/ddl-transaction-policy.js +69 -0
  484. package/dist/src/runtime/emit/ddl-transaction-policy.js.map +1 -0
  485. package/dist/src/runtime/emit/delete.d.ts.map +1 -1
  486. package/dist/src/runtime/emit/delete.js +2 -1
  487. package/dist/src/runtime/emit/delete.js.map +1 -1
  488. package/dist/src/runtime/emit/distinct.d.ts.map +1 -1
  489. package/dist/src/runtime/emit/distinct.js +2 -1
  490. package/dist/src/runtime/emit/distinct.js.map +1 -1
  491. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  492. package/dist/src/runtime/emit/dml-executor.js +138 -74
  493. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  494. package/dist/src/runtime/emit/drop-assertion.d.ts.map +1 -1
  495. package/dist/src/runtime/emit/drop-assertion.js +2 -1
  496. package/dist/src/runtime/emit/drop-assertion.js.map +1 -1
  497. package/dist/src/runtime/emit/drop-index.d.ts.map +1 -1
  498. package/dist/src/runtime/emit/drop-index.js +17 -1
  499. package/dist/src/runtime/emit/drop-index.js.map +1 -1
  500. package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
  501. package/dist/src/runtime/emit/drop-table.js +11 -1
  502. package/dist/src/runtime/emit/drop-table.js.map +1 -1
  503. package/dist/src/runtime/emit/eager-prefetch.d.ts.map +1 -1
  504. package/dist/src/runtime/emit/eager-prefetch.js +2 -1
  505. package/dist/src/runtime/emit/eager-prefetch.js.map +1 -1
  506. package/dist/src/runtime/emit/envelope-scan.d.ts.map +1 -1
  507. package/dist/src/runtime/emit/envelope-scan.js +2 -1
  508. package/dist/src/runtime/emit/envelope-scan.js.map +1 -1
  509. package/dist/src/runtime/emit/fanout-lookup-join.d.ts.map +1 -1
  510. package/dist/src/runtime/emit/fanout-lookup-join.js +3 -2
  511. package/dist/src/runtime/emit/fanout-lookup-join.js.map +1 -1
  512. package/dist/src/runtime/emit/filter.d.ts.map +1 -1
  513. package/dist/src/runtime/emit/filter.js +8 -3
  514. package/dist/src/runtime/emit/filter.js.map +1 -1
  515. package/dist/src/runtime/emit/hash-aggregate.d.ts.map +1 -1
  516. package/dist/src/runtime/emit/hash-aggregate.js +16 -11
  517. package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
  518. package/dist/src/runtime/emit/insert.d.ts.map +1 -1
  519. package/dist/src/runtime/emit/insert.js +2 -1
  520. package/dist/src/runtime/emit/insert.js.map +1 -1
  521. package/dist/src/runtime/emit/join.d.ts.map +1 -1
  522. package/dist/src/runtime/emit/join.js +20 -6
  523. package/dist/src/runtime/emit/join.js.map +1 -1
  524. package/dist/src/runtime/emit/limit-offset.d.ts.map +1 -1
  525. package/dist/src/runtime/emit/limit-offset.js +2 -1
  526. package/dist/src/runtime/emit/limit-offset.js.map +1 -1
  527. package/dist/src/runtime/emit/literal.d.ts.map +1 -1
  528. package/dist/src/runtime/emit/literal.js +2 -1
  529. package/dist/src/runtime/emit/literal.js.map +1 -1
  530. package/dist/src/runtime/emit/materialized-view-helpers.d.ts +22 -0
  531. package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
  532. package/dist/src/runtime/emit/materialized-view-helpers.js +128 -16
  533. package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
  534. package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
  535. package/dist/src/runtime/emit/materialized-view.js +6 -0
  536. package/dist/src/runtime/emit/materialized-view.js.map +1 -1
  537. package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
  538. package/dist/src/runtime/emit/merge-join.js +14 -4
  539. package/dist/src/runtime/emit/merge-join.js.map +1 -1
  540. package/dist/src/runtime/emit/ordinal-slice.d.ts.map +1 -1
  541. package/dist/src/runtime/emit/ordinal-slice.js +2 -1
  542. package/dist/src/runtime/emit/ordinal-slice.js.map +1 -1
  543. package/dist/src/runtime/emit/pragma.d.ts.map +1 -1
  544. package/dist/src/runtime/emit/pragma.js +2 -1
  545. package/dist/src/runtime/emit/pragma.js.map +1 -1
  546. package/dist/src/runtime/emit/project.d.ts.map +1 -1
  547. package/dist/src/runtime/emit/project.js +7 -2
  548. package/dist/src/runtime/emit/project.js.map +1 -1
  549. package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
  550. package/dist/src/runtime/emit/recursive-cte.js +61 -2
  551. package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
  552. package/dist/src/runtime/emit/returning.d.ts.map +1 -1
  553. package/dist/src/runtime/emit/returning.js +7 -2
  554. package/dist/src/runtime/emit/returning.js.map +1 -1
  555. package/dist/src/runtime/emit/scalar-function.d.ts.map +1 -1
  556. package/dist/src/runtime/emit/scalar-function.js +2 -1
  557. package/dist/src/runtime/emit/scalar-function.js.map +1 -1
  558. package/dist/src/runtime/emit/scan.d.ts.map +1 -1
  559. package/dist/src/runtime/emit/scan.js +55 -17
  560. package/dist/src/runtime/emit/scan.js.map +1 -1
  561. package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
  562. package/dist/src/runtime/emit/schema-declarative.js +6 -5
  563. package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
  564. package/dist/src/runtime/emit/sequencing.d.ts.map +1 -1
  565. package/dist/src/runtime/emit/sequencing.js +2 -1
  566. package/dist/src/runtime/emit/sequencing.js.map +1 -1
  567. package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
  568. package/dist/src/runtime/emit/set-operation.js +6 -5
  569. package/dist/src/runtime/emit/set-operation.js.map +1 -1
  570. package/dist/src/runtime/emit/sink.d.ts.map +1 -1
  571. package/dist/src/runtime/emit/sink.js +2 -1
  572. package/dist/src/runtime/emit/sink.js.map +1 -1
  573. package/dist/src/runtime/emit/sort.d.ts.map +1 -1
  574. package/dist/src/runtime/emit/sort.js +2 -1
  575. package/dist/src/runtime/emit/sort.js.map +1 -1
  576. package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
  577. package/dist/src/runtime/emit/subquery.js +42 -23
  578. package/dist/src/runtime/emit/subquery.js.map +1 -1
  579. package/dist/src/runtime/emit/table-valued-function.d.ts.map +1 -1
  580. package/dist/src/runtime/emit/table-valued-function.js +2 -1
  581. package/dist/src/runtime/emit/table-valued-function.js.map +1 -1
  582. package/dist/src/runtime/emit/temporal-arithmetic.d.ts.map +1 -1
  583. package/dist/src/runtime/emit/temporal-arithmetic.js +2 -1
  584. package/dist/src/runtime/emit/temporal-arithmetic.js.map +1 -1
  585. package/dist/src/runtime/emit/transaction.d.ts.map +1 -1
  586. package/dist/src/runtime/emit/transaction.js +2 -1
  587. package/dist/src/runtime/emit/transaction.js.map +1 -1
  588. package/dist/src/runtime/emit/unary.d.ts.map +1 -1
  589. package/dist/src/runtime/emit/unary.js +2 -1
  590. package/dist/src/runtime/emit/unary.js.map +1 -1
  591. package/dist/src/runtime/emit/update.d.ts.map +1 -1
  592. package/dist/src/runtime/emit/update.js +2 -1
  593. package/dist/src/runtime/emit/update.js.map +1 -1
  594. package/dist/src/runtime/emit/values.d.ts.map +1 -1
  595. package/dist/src/runtime/emit/values.js +2 -1
  596. package/dist/src/runtime/emit/values.js.map +1 -1
  597. package/dist/src/runtime/emit/view-mutation.d.ts +1 -1
  598. package/dist/src/runtime/emit/view-mutation.d.ts.map +1 -1
  599. package/dist/src/runtime/emit/view-mutation.js +6 -3
  600. package/dist/src/runtime/emit/view-mutation.js.map +1 -1
  601. package/dist/src/runtime/emit/window.d.ts.map +1 -1
  602. package/dist/src/runtime/emit/window.js +26 -9
  603. package/dist/src/runtime/emit/window.js.map +1 -1
  604. package/dist/src/runtime/emitters.d.ts +11 -3
  605. package/dist/src/runtime/emitters.d.ts.map +1 -1
  606. package/dist/src/runtime/emitters.js +13 -22
  607. package/dist/src/runtime/emitters.js.map +1 -1
  608. package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
  609. package/dist/src/runtime/foreign-key-actions.js +39 -13
  610. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  611. package/dist/src/runtime/parallel-driver.d.ts +32 -4
  612. package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
  613. package/dist/src/runtime/parallel-driver.js +88 -18
  614. package/dist/src/runtime/parallel-driver.js.map +1 -1
  615. package/dist/src/runtime/scheduler.d.ts +56 -7
  616. package/dist/src/runtime/scheduler.d.ts.map +1 -1
  617. package/dist/src/runtime/scheduler.js +223 -200
  618. package/dist/src/runtime/scheduler.js.map +1 -1
  619. package/dist/src/runtime/strict-flags.d.ts +22 -0
  620. package/dist/src/runtime/strict-flags.d.ts.map +1 -0
  621. package/dist/src/runtime/strict-flags.js +26 -0
  622. package/dist/src/runtime/strict-flags.js.map +1 -0
  623. package/dist/src/runtime/strict-fork.d.ts +4 -4
  624. package/dist/src/runtime/strict-fork.d.ts.map +1 -1
  625. package/dist/src/runtime/strict-fork.js +175 -31
  626. package/dist/src/runtime/strict-fork.js.map +1 -1
  627. package/dist/src/runtime/types.d.ts +102 -4
  628. package/dist/src/runtime/types.d.ts.map +1 -1
  629. package/dist/src/runtime/types.js +37 -0
  630. package/dist/src/runtime/types.js.map +1 -1
  631. package/dist/src/runtime/utils.d.ts.map +1 -1
  632. package/dist/src/runtime/utils.js +8 -17
  633. package/dist/src/runtime/utils.js.map +1 -1
  634. package/dist/src/schema/column.d.ts +8 -0
  635. package/dist/src/schema/column.d.ts.map +1 -1
  636. package/dist/src/schema/column.js.map +1 -1
  637. package/dist/src/schema/ddl-generator.js +5 -0
  638. package/dist/src/schema/ddl-generator.js.map +1 -1
  639. package/dist/src/schema/function.d.ts +79 -0
  640. package/dist/src/schema/function.d.ts.map +1 -1
  641. package/dist/src/schema/function.js.map +1 -1
  642. package/dist/src/schema/lens-compiler.js +2 -2
  643. package/dist/src/schema/lens-compiler.js.map +1 -1
  644. package/dist/src/schema/lens-prover.d.ts.map +1 -1
  645. package/dist/src/schema/lens-prover.js +2 -3
  646. package/dist/src/schema/lens-prover.js.map +1 -1
  647. package/dist/src/schema/lens.d.ts +1 -1
  648. package/dist/src/schema/manager.d.ts.map +1 -1
  649. package/dist/src/schema/manager.js +7 -2
  650. package/dist/src/schema/manager.js.map +1 -1
  651. package/dist/src/schema/rename-rewriter.d.ts +61 -0
  652. package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
  653. package/dist/src/schema/rename-rewriter.js +77 -0
  654. package/dist/src/schema/rename-rewriter.js.map +1 -1
  655. package/dist/src/schema/table.d.ts +36 -8
  656. package/dist/src/schema/table.d.ts.map +1 -1
  657. package/dist/src/schema/table.js +61 -11
  658. package/dist/src/schema/table.js.map +1 -1
  659. package/dist/src/schema/unique-enforcement.d.ts +28 -5
  660. package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
  661. package/dist/src/schema/unique-enforcement.js +37 -5
  662. package/dist/src/schema/unique-enforcement.js.map +1 -1
  663. package/dist/src/schema/view.d.ts +1 -1
  664. package/dist/src/schema/view.js +1 -1
  665. package/dist/src/types/json-type.d.ts.map +1 -1
  666. package/dist/src/types/json-type.js +18 -8
  667. package/dist/src/types/json-type.js.map +1 -1
  668. package/dist/src/types/logical-type.d.ts +26 -0
  669. package/dist/src/types/logical-type.d.ts.map +1 -1
  670. package/dist/src/types/logical-type.js.map +1 -1
  671. package/dist/src/util/comparison.d.ts +83 -59
  672. package/dist/src/util/comparison.d.ts.map +1 -1
  673. package/dist/src/util/comparison.js +191 -131
  674. package/dist/src/util/comparison.js.map +1 -1
  675. package/dist/src/util/json-canonical.d.ts +34 -0
  676. package/dist/src/util/json-canonical.d.ts.map +1 -0
  677. package/dist/src/util/json-canonical.js +32 -0
  678. package/dist/src/util/json-canonical.js.map +1 -0
  679. package/dist/src/util/key-serializer.d.ts +10 -3
  680. package/dist/src/util/key-serializer.d.ts.map +1 -1
  681. package/dist/src/util/key-serializer.js +43 -17
  682. package/dist/src/util/key-serializer.js.map +1 -1
  683. package/dist/src/util/key-tuple-codec.d.ts +37 -0
  684. package/dist/src/util/key-tuple-codec.d.ts.map +1 -0
  685. package/dist/src/util/key-tuple-codec.js +65 -0
  686. package/dist/src/util/key-tuple-codec.js.map +1 -0
  687. package/dist/src/util/latches.d.ts +29 -3
  688. package/dist/src/util/latches.d.ts.map +1 -1
  689. package/dist/src/util/latches.js +60 -6
  690. package/dist/src/util/latches.js.map +1 -1
  691. package/dist/src/util/patterns.d.ts +22 -8
  692. package/dist/src/util/patterns.d.ts.map +1 -1
  693. package/dist/src/util/patterns.js +87 -16
  694. package/dist/src/util/patterns.js.map +1 -1
  695. package/dist/src/util/qualified-name.d.ts +10 -0
  696. package/dist/src/util/qualified-name.d.ts.map +1 -0
  697. package/dist/src/util/qualified-name.js +15 -0
  698. package/dist/src/util/qualified-name.js.map +1 -0
  699. package/dist/src/vtab/backing-host.d.ts +8 -1
  700. package/dist/src/vtab/backing-host.d.ts.map +1 -1
  701. package/dist/src/vtab/backing-host.js +7 -0
  702. package/dist/src/vtab/backing-host.js.map +1 -1
  703. package/dist/src/vtab/best-access-plan.d.ts +18 -0
  704. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  705. package/dist/src/vtab/best-access-plan.js +15 -0
  706. package/dist/src/vtab/best-access-plan.js.map +1 -1
  707. package/dist/src/vtab/capabilities.d.ts +44 -0
  708. package/dist/src/vtab/capabilities.d.ts.map +1 -1
  709. package/dist/src/vtab/filter-info.d.ts +42 -0
  710. package/dist/src/vtab/filter-info.d.ts.map +1 -1
  711. package/dist/src/vtab/filter-info.js +137 -1
  712. package/dist/src/vtab/filter-info.js.map +1 -1
  713. package/dist/src/vtab/idx-str.d.ts +62 -0
  714. package/dist/src/vtab/idx-str.d.ts.map +1 -0
  715. package/dist/src/vtab/idx-str.js +130 -0
  716. package/dist/src/vtab/idx-str.js.map +1 -0
  717. package/dist/src/vtab/index-descriptor.d.ts +122 -0
  718. package/dist/src/vtab/index-descriptor.d.ts.map +1 -0
  719. package/dist/src/vtab/index-descriptor.js +104 -0
  720. package/dist/src/vtab/index-descriptor.js.map +1 -0
  721. package/dist/src/vtab/mapping-advertisement.d.ts +1 -1
  722. package/dist/src/vtab/memory/index.d.ts +12 -4
  723. package/dist/src/vtab/memory/index.d.ts.map +1 -1
  724. package/dist/src/vtab/memory/index.js +17 -9
  725. package/dist/src/vtab/memory/index.js.map +1 -1
  726. package/dist/src/vtab/memory/layer/base.d.ts +85 -31
  727. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  728. package/dist/src/vtab/memory/layer/base.js +127 -86
  729. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  730. package/dist/src/vtab/memory/layer/connection.d.ts +27 -0
  731. package/dist/src/vtab/memory/layer/connection.d.ts.map +1 -1
  732. package/dist/src/vtab/memory/layer/connection.js +36 -1
  733. package/dist/src/vtab/memory/layer/connection.js.map +1 -1
  734. package/dist/src/vtab/memory/layer/interface.d.ts +24 -4
  735. package/dist/src/vtab/memory/layer/interface.d.ts.map +1 -1
  736. package/dist/src/vtab/memory/layer/manager.d.ts +212 -16
  737. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  738. package/dist/src/vtab/memory/layer/manager.js +754 -170
  739. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  740. package/dist/src/vtab/memory/layer/plan-filter.d.ts +26 -1
  741. package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -1
  742. package/dist/src/vtab/memory/layer/plan-filter.js +29 -11
  743. package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -1
  744. package/dist/src/vtab/memory/layer/safe-iterate.d.ts +2 -2
  745. package/dist/src/vtab/memory/layer/safe-iterate.d.ts.map +1 -1
  746. package/dist/src/vtab/memory/layer/safe-iterate.js +2 -2
  747. package/dist/src/vtab/memory/layer/safe-iterate.js.map +1 -1
  748. package/dist/src/vtab/memory/layer/scan-layer.d.ts +5 -1
  749. package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
  750. package/dist/src/vtab/memory/layer/scan-layer.js +59 -24
  751. package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
  752. package/dist/src/vtab/memory/layer/scan-plan.d.ts.map +1 -1
  753. package/dist/src/vtab/memory/layer/scan-plan.js +13 -21
  754. package/dist/src/vtab/memory/layer/scan-plan.js.map +1 -1
  755. package/dist/src/vtab/memory/layer/transaction.d.ts +169 -7
  756. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  757. package/dist/src/vtab/memory/layer/transaction.js +334 -9
  758. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  759. package/dist/src/vtab/memory/module.d.ts +11 -4
  760. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  761. package/dist/src/vtab/memory/module.js +35 -16
  762. package/dist/src/vtab/memory/module.js.map +1 -1
  763. package/dist/src/vtab/memory/table.d.ts +30 -4
  764. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  765. package/dist/src/vtab/memory/table.js +63 -15
  766. package/dist/src/vtab/memory/table.js.map +1 -1
  767. package/dist/src/vtab/memory/utils/predicate.d.ts +9 -1
  768. package/dist/src/vtab/memory/utils/predicate.d.ts.map +1 -1
  769. package/dist/src/vtab/memory/utils/predicate.js +35 -14
  770. package/dist/src/vtab/memory/utils/predicate.js.map +1 -1
  771. package/dist/src/vtab/memory/utils/primary-key-encode.d.ts.map +1 -1
  772. package/dist/src/vtab/memory/utils/primary-key-encode.js +12 -6
  773. package/dist/src/vtab/memory/utils/primary-key-encode.js.map +1 -1
  774. package/dist/src/vtab/memory/utils/primary-key.d.ts +6 -1
  775. package/dist/src/vtab/memory/utils/primary-key.d.ts.map +1 -1
  776. package/dist/src/vtab/memory/utils/primary-key.js +12 -8
  777. package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
  778. package/dist/src/vtab/module.d.ts +38 -14
  779. package/dist/src/vtab/module.d.ts.map +1 -1
  780. package/dist/src/vtab/table.d.ts +41 -2
  781. package/dist/src/vtab/table.d.ts.map +1 -1
  782. package/dist/src/vtab/table.js +19 -0
  783. package/dist/src/vtab/table.js.map +1 -1
  784. package/package.json +5 -4
  785. package/dist/src/planner/rules/cache/rule-materialization-advisory.d.ts +0 -18
  786. package/dist/src/planner/rules/cache/rule-materialization-advisory.d.ts.map +0 -1
  787. package/dist/src/planner/rules/cache/rule-materialization-advisory.js +0 -65
  788. package/dist/src/planner/rules/cache/rule-materialization-advisory.js.map +0 -1
@@ -1,10 +1,17 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
1
  /**
3
2
  * Characteristics-based plan node analysis
4
3
  *
5
4
  * This module provides utilities for analyzing plan nodes based on their capabilities
6
5
  * and characteristics rather than their specific types, enabling robust and extensible
7
6
  * optimization rules.
7
+ *
8
+ * Cross-class capabilities (the `*Capable` interfaces below) are detected via a
9
+ * compiler-enforced brand: each interface declares a unique `readonly is<X>Capable:
10
+ * true` marker, every implementer sets it, and the `CapabilityDetectors` guards test
11
+ * exactly that marker. Because `implements XCapable` fails to compile unless the class
12
+ * also sets the brand, "implements the capability" and "is detected as having it" are
13
+ * the same fact — a new implementer cannot silently be missed by a guard. Concrete
14
+ * class identity still uses `instanceof`; dispatch/serialization still uses `nodeType`.
8
15
  */
9
16
  import { isRelationalNode } from '../nodes/plan-node.js';
10
17
  import { hasAnyKey, hasSingletonFd } from '../util/fd-utils.js';
@@ -29,11 +36,17 @@ export class PlanNodeCharacteristics {
29
36
  * forward the property through its own `computePhysical` override.
30
37
  */
31
38
  static subtreeHasSideEffects(node) {
32
- if (this.hasSideEffects(node))
33
- return true;
34
- for (const child of node.getChildren()) {
35
- if (this.subtreeHasSideEffects(child))
39
+ // Iterative worklist (not recursion) so a deep plan cannot overflow the
40
+ // native call stack — matching the pass framework's iterative traversal.
41
+ // Early-exits on the first side-effecting node rather than draining fully.
42
+ const stack = [node];
43
+ while (stack.length > 0) {
44
+ const current = stack.pop();
45
+ if (this.hasSideEffects(current))
36
46
  return true;
47
+ for (const child of current.getChildren()) {
48
+ stack.push(child);
49
+ }
37
50
  }
38
51
  return false;
39
52
  }
@@ -154,138 +167,75 @@ export class PlanNodeCharacteristics {
154
167
  * Type guards for capability detection
155
168
  */
156
169
  export class CapabilityDetectors {
170
+ // Every guard is a single brand comparison. The cast is typed (never `any`) and
171
+ // narrowed to just the brand field via `Partial<Pick<X, 'is…Capable'>>`: picking
172
+ // only the brand avoids a spurious "insufficient overlap" error that a full
173
+ // `Partial<X>` triggers on the relational/scalar interfaces (their `getType()`
174
+ // return type conflicts with the base `PlanNode.getType()`), while keeping the
175
+ // guard tied to the interface — rename a brand and this stops compiling. A unique
176
+ // brand name cannot misfire on an incidental property. Guards that may receive a
177
+ // possibly-null node keep the leading null-guard so the property read cannot throw.
157
178
  static canPushDownPredicate(node) {
158
- return 'getPredicate' in node &&
159
- typeof node.getPredicate === 'function' &&
160
- 'withPredicate' in node &&
161
- typeof node.withPredicate === 'function';
179
+ return node.isPredicateCapable === true;
162
180
  }
163
181
  static canCombinePredicates(node) {
164
- return this.canPushDownPredicate(node) &&
165
- 'canCombinePredicates' in node &&
166
- typeof node.canCombinePredicates === 'function';
182
+ return node.isPredicateCombinableCapable === true;
167
183
  }
168
184
  static isPredicateSource(node) {
169
- return 'getPredicates' in node && typeof node.getPredicates === 'function';
185
+ return node.isPredicateSourceCapable === true;
170
186
  }
171
187
  static isTableAccess(node) {
172
- return PlanNodeCharacteristics.isRelational(node) &&
173
- 'tableSchema' in node &&
174
- 'getAccessMethod' in node &&
175
- typeof node.getAccessMethod === 'function';
188
+ return node.isTableAccessCapable === true;
176
189
  }
177
190
  static isAggregating(node) {
178
- return PlanNodeCharacteristics.isRelational(node) &&
179
- 'getGroupingKeys' in node &&
180
- typeof node.getGroupingKeys === 'function' &&
181
- 'getAggregateExpressions' in node &&
182
- typeof node.getAggregateExpressions === 'function';
191
+ return node.isAggregationCapable === true;
183
192
  }
184
193
  static isSortable(node) {
185
- return 'getSortKeys' in node &&
186
- typeof node.getSortKeys === 'function' &&
187
- 'withSortKeys' in node &&
188
- typeof node.withSortKeys === 'function';
194
+ return node.isSortCapable === true;
189
195
  }
190
196
  static isLimit(node) {
191
- return 'getLimitExpression' in node &&
192
- typeof node.getLimitExpression === 'function' &&
193
- 'getOffsetExpression' in node &&
194
- typeof node.getOffsetExpression === 'function';
197
+ return node.isLimitCapable === true;
195
198
  }
196
199
  static isColumnBindingProvider(node) {
197
- return 'getBindingRelationName' in node &&
198
- (typeof node.getBindingRelationName === 'string' || typeof node.getBindingRelationName === 'function');
200
+ return node.isColumnBindingProviderCapable === true;
199
201
  }
200
202
  static canProject(node) {
201
- return PlanNodeCharacteristics.isRelational(node) &&
202
- 'getProjections' in node &&
203
- typeof node.getProjections === 'function';
203
+ return node.isProjectionCapable === true;
204
204
  }
205
205
  static isJoin(node) {
206
- return PlanNodeCharacteristics.isRelational(node) &&
207
- 'getJoinType' in node &&
208
- typeof node.getJoinType === 'function' &&
209
- 'getLeftSource' in node &&
210
- 'getRightSource' in node;
206
+ return node.isJoinCapable === true;
211
207
  }
212
208
  static isCached(node) {
213
- return 'getCacheStrategy' in node &&
214
- typeof node.getCacheStrategy === 'function';
209
+ return node.isCacheCapable === true;
215
210
  }
216
211
  static isCTE(node) {
217
- return PlanNodeCharacteristics.isRelational(node) &&
218
- 'cteName' in node &&
219
- typeof node.cteName === 'string' &&
220
- 'getCTESource' in node &&
221
- typeof node.getCTESource === 'function';
212
+ return node.isCTECapable === true;
222
213
  }
223
214
  static isColumnReference(node) {
224
215
  if (!node)
225
216
  return false;
226
- return PlanNodeCharacteristics.isScalar(node) &&
227
- 'attributeId' in node &&
228
- typeof node.attributeId === 'number' &&
229
- 'columnIndex' in node &&
230
- typeof node.columnIndex === 'number' &&
231
- 'expression' in node;
217
+ return node.isColumnReferenceCapable === true;
232
218
  }
233
219
  static isWindowFunction(node) {
234
220
  if (!node)
235
221
  return false;
236
- // Check nodeType specifically to distinguish from AggregateFunctionCallNode
237
- return node.nodeType === 'WindowFunctionCall' &&
238
- PlanNodeCharacteristics.isScalar(node) &&
239
- 'functionName' in node &&
240
- typeof node.functionName === 'string' &&
241
- 'isDistinct' in node &&
242
- typeof node.isDistinct === 'boolean';
222
+ // The window brand is distinct from the aggregate-function brand, so this no
223
+ // longer needs a `nodeType === 'WindowFunctionCall'` tiebreak against
224
+ // AggregateFunctionCallNode — the brand alone tells them apart.
225
+ return node.isWindowFunctionCapable === true;
243
226
  }
244
227
  static isAggregateFunction(node) {
245
228
  if (!node)
246
229
  return false;
247
- // Check for AggregateFunctionCallNode - it uses ScalarFunctionCall nodeType but has args property
248
- return PlanNodeCharacteristics.isScalar(node) &&
249
- 'functionName' in node &&
250
- typeof node.functionName === 'string' &&
251
- 'isDistinct' in node &&
252
- typeof node.isDistinct === 'boolean' &&
253
- 'args' in node &&
254
- Array.isArray(node.args) &&
255
- 'functionSchema' in node;
230
+ // Only AggregateFunctionCallNode carries this brand; ScalarFunctionCallNode (same
231
+ // nodeType) does not, so the old build-time `isAggregateFunctionSchema` tiebreak —
232
+ // and its null-throw hazard on a missing functionSchema — is gone.
233
+ return node.isAggregateFunctionCapable === true;
256
234
  }
257
235
  static isRecursiveCTERef(node) {
258
236
  if (!node)
259
237
  return false;
260
- return PlanNodeCharacteristics.isRelational(node) &&
261
- 'cteName' in node &&
262
- typeof node.cteName === 'string' &&
263
- 'workingTableDescriptor' in node;
264
- }
265
- }
266
- /**
267
- * Extensible capability registry for custom characteristics
268
- */
269
- export class CapabilityRegistry {
270
- static detectors = new Map();
271
- static register(capability, detector) {
272
- this.detectors.set(capability, detector);
273
- }
274
- static hasCapability(node, capability) {
275
- const detector = this.detectors.get(capability);
276
- return detector ? detector(node) : false;
277
- }
278
- static getCapable(nodes, capability) {
279
- const detector = this.detectors.get(capability);
280
- if (!detector)
281
- return [];
282
- return nodes.filter(detector);
283
- }
284
- static getAllCapabilities() {
285
- return Array.from(this.detectors.keys());
286
- }
287
- static unregister(capability) {
288
- return this.detectors.delete(capability);
238
+ return node.isRecursiveCTERefCapable === true;
289
239
  }
290
240
  }
291
241
  /**
@@ -297,7 +247,8 @@ export class CachingAnalysis {
297
247
  if (!PlanNodeCharacteristics.isRelational(node)) {
298
248
  return false;
299
249
  }
300
- // Already cached nodes don't need re-caching
250
+ // Already cached nodes don't need re-caching. `isCached` narrows to
251
+ // `CacheCapable`, so its `isCached()` method is callable without a cast.
301
252
  if (CapabilityDetectors.isCached(node) && node.isCached()) {
302
253
  return false;
303
254
  }
@@ -331,39 +282,4 @@ export class CachingAnalysis {
331
282
  return Math.min(Math.max(estimatedRows * 0.1, 1000), 100000);
332
283
  }
333
284
  }
334
- /**
335
- * Predicate analysis utilities
336
- */
337
- export class PredicateAnalysis {
338
- static canPushDown(predicate, targetNode) {
339
- if (!CapabilityDetectors.canPushDownPredicate(targetNode)) {
340
- return false;
341
- }
342
- // Check if predicate only references columns from target
343
- return this.predicateReferencesOnly(predicate, targetNode);
344
- }
345
- static canCombine(pred1, pred2) {
346
- // Basic heuristic: both must be deterministic
347
- return PlanNodeCharacteristics.isDeterministic(pred1) &&
348
- PlanNodeCharacteristics.isDeterministic(pred2);
349
- }
350
- static predicateReferencesOnly(_predicate, _targetNode) {
351
- // TODO: Implement column reference analysis
352
- // For now, conservatively return true
353
- return true;
354
- }
355
- }
356
- // Register built-in capabilities
357
- CapabilityRegistry.register('predicate-pushdown', CapabilityDetectors.canPushDownPredicate);
358
- CapabilityRegistry.register('table-access', CapabilityDetectors.isTableAccess);
359
- CapabilityRegistry.register('aggregation', CapabilityDetectors.isAggregating);
360
- CapabilityRegistry.register('sort', CapabilityDetectors.isSortable);
361
- CapabilityRegistry.register('projection', CapabilityDetectors.canProject);
362
- CapabilityRegistry.register('join', CapabilityDetectors.isJoin);
363
- CapabilityRegistry.register('cache', CapabilityDetectors.isCached);
364
- CapabilityRegistry.register('cte', CapabilityDetectors.isCTE);
365
- CapabilityRegistry.register('column-reference', CapabilityDetectors.isColumnReference);
366
- CapabilityRegistry.register('window-function', CapabilityDetectors.isWindowFunction);
367
- CapabilityRegistry.register('aggregate-function', CapabilityDetectors.isAggregateFunction);
368
- CapabilityRegistry.register('recursive-cte-ref', CapabilityDetectors.isRecursiveCTERef);
369
285
  //# sourceMappingURL=characteristics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"characteristics.js","sourceRoot":"","sources":["../../../../src/planner/framework/characteristics.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD;;;;;;GAMG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEhE,0CAA0C;AAC1C,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC;;GAEG;AACH,MAAM,OAAO,uBAAuB;IACnC,8BAA8B;IAC9B,MAAM,CAAC,cAAc,CAAC,IAAc;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC;IACzC,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAc;QAC1C,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAc;QACtC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAc;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,IAAc;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,KAAK,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAc;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAc;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,IAAI,IAAI,UAAU,IAAI,IAAI,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAc;QACjC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,wBAAwB;IACxB,MAAM,CAAC,gBAAgB,CAAC,IAAc;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,IAAc;QACtC,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAc;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,2BAA2B;IAC3B,MAAM,CAAC,cAAc,CAAC,IAAc;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAc,EAAE,MAAc;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,uBAAuB;IACvB,MAAM,CAAC,aAAa,CAAC,IAAc;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,oBAAoB,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,oBAAoB,CAAC,IAAc;QACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC;QAC7C,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACpB,sEAAsE;YACtE,8CAA8C;YAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,IAAc;QAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC;QAC7C,OAAO,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAED,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CAAC,IAAc;QACjC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAc;QACjC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAc;QAC7B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,KAAK,QAAQ,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAc;QAC3B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC;IAC5C,CAAC;IAED,8BAA8B;IAC9B,MAAM,CAAC,WAAW,CAAC,IAAc;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,aAAa,GAAG,KAAK,CAAC,CAAC,oBAAoB;IACnD,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,IAAc;QACrC,wEAAwE;QACxE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACD;AAiJD;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAC/B,MAAM,CAAC,oBAAoB,CAAC,IAAc;QACzC,OAAO,cAAc,IAAI,IAAI;YAC5B,OAAQ,IAAY,CAAC,YAAY,KAAK,UAAU;YAChD,eAAe,IAAI,IAAI;YACvB,OAAQ,IAAY,CAAC,aAAa,KAAK,UAAU,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,IAAc;QACzC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YACrC,sBAAsB,IAAI,IAAI;YAC9B,OAAQ,IAAY,CAAC,oBAAoB,KAAK,UAAU,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,IAAc;QACtC,OAAO,eAAe,IAAI,IAAI,IAAI,OAAQ,IAAY,CAAC,aAAa,KAAK,UAAU,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAc;QAClC,OAAO,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC;YAChD,aAAa,IAAI,IAAI;YACrB,iBAAiB,IAAI,IAAI;YACzB,OAAQ,IAAY,CAAC,eAAe,KAAK,UAAU,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAc;QAClC,OAAO,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC;YAChD,iBAAiB,IAAI,IAAI;YACzB,OAAQ,IAAY,CAAC,eAAe,KAAK,UAAU;YACnD,yBAAyB,IAAI,IAAI;YACjC,OAAQ,IAAY,CAAC,uBAAuB,KAAK,UAAU,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAc;QAC/B,OAAO,aAAa,IAAI,IAAI;YAC3B,OAAQ,IAAY,CAAC,WAAW,KAAK,UAAU;YAC/C,cAAc,IAAI,IAAI;YACtB,OAAQ,IAAY,CAAC,YAAY,KAAK,UAAU,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAAc;QAC5B,OAAO,oBAAoB,IAAI,IAAI;YAClC,OAAQ,IAAY,CAAC,kBAAkB,KAAK,UAAU;YACtD,qBAAqB,IAAI,IAAI;YAC7B,OAAQ,IAAY,CAAC,mBAAmB,KAAK,UAAU,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,IAAc;QAC5C,OAAO,wBAAwB,IAAI,IAAI;YACtC,CAAC,OAAQ,IAAY,CAAC,sBAAsB,KAAK,QAAQ,IAAI,OAAQ,IAAY,CAAC,sBAAsB,KAAK,UAAU,CAAC,CAAC;IAC3H,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAc;QAC/B,OAAO,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC;YAChD,gBAAgB,IAAI,IAAI;YACxB,OAAQ,IAAY,CAAC,cAAc,KAAK,UAAU,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAc;QAC3B,OAAO,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC;YAChD,aAAa,IAAI,IAAI;YACrB,OAAQ,IAAY,CAAC,WAAW,KAAK,UAAU;YAC/C,eAAe,IAAI,IAAI;YACvB,gBAAgB,IAAI,IAAI,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAc;QAC7B,OAAO,kBAAkB,IAAI,IAAI;YAChC,OAAQ,IAAY,CAAC,gBAAgB,KAAK,UAAU,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAc;QAC1B,OAAO,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC;YAChD,SAAS,IAAI,IAAI;YACjB,OAAQ,IAAY,CAAC,OAAO,KAAK,QAAQ;YACzC,cAAc,IAAI,IAAI;YACtB,OAAQ,IAAY,CAAC,YAAY,KAAK,UAAU,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,IAAc;QACtC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,OAAO,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC5C,aAAa,IAAI,IAAI;YACrB,OAAQ,IAAY,CAAC,WAAW,KAAK,QAAQ;YAC7C,aAAa,IAAI,IAAI;YACrB,OAAQ,IAAY,CAAC,WAAW,KAAK,QAAQ;YAC7C,YAAY,IAAI,IAAI,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,IAAc;QACrC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,4EAA4E;QAC5E,OAAO,IAAI,CAAC,QAAQ,KAAK,oBAAoB;YAC5C,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtC,cAAc,IAAI,IAAI;YACtB,OAAQ,IAAY,CAAC,YAAY,KAAK,QAAQ;YAC9C,YAAY,IAAI,IAAI;YACpB,OAAQ,IAAY,CAAC,UAAU,KAAK,SAAS,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,IAAc;QACxC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,kGAAkG;QAClG,OAAO,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC5C,cAAc,IAAI,IAAI;YACtB,OAAQ,IAAY,CAAC,YAAY,KAAK,QAAQ;YAC9C,YAAY,IAAI,IAAI;YACpB,OAAQ,IAAY,CAAC,UAAU,KAAK,SAAS;YAC7C,MAAM,IAAI,IAAI;YACd,KAAK,CAAC,OAAO,CAAE,IAAY,CAAC,IAAI,CAAC;YACjC,gBAAgB,IAAI,IAAI,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,IAAc;QACtC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,OAAO,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC;YAChD,SAAS,IAAI,IAAI;YACjB,OAAQ,IAAY,CAAC,OAAO,KAAK,QAAQ;YACzC,wBAAwB,IAAI,IAAI,CAAC;IACnC,CAAC;CACD;AAED;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACtB,MAAM,CAAU,SAAS,GAAG,IAAI,GAAG,EAAuC,CAAC;IAEnF,MAAM,CAAC,QAAQ,CACd,UAAkB,EAClB,QAAqC;QAErC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAc,EAAE,UAAkB;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,UAAU,CAChB,KAA0B,EAC1B,UAAkB;QAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,kBAAkB;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,UAAkB;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;;AAGF;;GAEG;AACH,MAAM,OAAO,eAAe;IAC3B,MAAM,CAAC,WAAW,CAAC,IAAc;QAChC,sCAAsC;QACtC,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC;QACd,CAAC;QAED,6CAA6C;QAC7C,IAAI,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAK,IAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpE,OAAO,KAAK,CAAC;QACd,CAAC;QAED,6CAA6C;QAC7C,IAAI,uBAAuB,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,0DAA0D;YAC1D,OAAO,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAc;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACd,CAAC;QAED,6BAA6B;QAC7B,IAAI,uBAAuB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACb,CAAC;QAED,mCAAmC;QACnC,IAAI,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QACb,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAEO,MAAM,CAAC,4BAA4B,CAAC,IAAc;QACzD,OAAO,uBAAuB,CAAC,WAAW,CAAC,IAAI,CAAC;YAC/C,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,IAAc;QACtC,MAAM,aAAa,GAAG,uBAAuB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;CACD;AAED;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAC7B,MAAM,CAAC,WAAW,CAAC,SAAyB,EAAE,UAAoB;QACjE,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,OAAO,KAAK,CAAC;QACd,CAAC;QAED,yDAAyD;QACzD,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAqB,EAAE,KAAqB;QAC7D,8CAA8C;QAC9C,OAAO,uBAAuB,CAAC,eAAe,CAAC,KAAK,CAAC;YACpD,uBAAuB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAEO,MAAM,CAAC,uBAAuB,CAAC,UAA0B,EAAE,WAAqB;QACvF,4CAA4C;QAC5C,sCAAsC;QACtC,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AAED,iCAAiC;AACjC,kBAAkB,CAAC,QAAQ,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;AAC5F,kBAAkB,CAAC,QAAQ,CAAC,cAAc,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAC/E,kBAAkB,CAAC,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAC9E,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;AACpE,kBAAkB,CAAC,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAC1E,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAChE,kBAAkB,CAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AACnE,kBAAkB,CAAC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC9D,kBAAkB,CAAC,QAAQ,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AACvF,kBAAkB,CAAC,QAAQ,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AACrF,kBAAkB,CAAC,QAAQ,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;AAC3F,kBAAkB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"characteristics.js","sourceRoot":"","sources":["../../../../src/planner/framework/characteristics.ts"],"names":[],"mappings":"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"}
@@ -18,10 +18,15 @@ export interface OptContext {
18
18
  readonly stats: StatsProvider;
19
19
  /** Optimizer tuning parameters */
20
20
  readonly tuning: OptimizerTuning;
21
- /** Current optimization phase */
21
+ /**
22
+ * Current optimization phase. Always 'rewrite' today — `createOptContext`'s
23
+ * `phase` parameter is never passed a different value by any call site, and
24
+ * no pass/rule currently branches on it. Kept as a documented part of the
25
+ * phase-management contract (see registry.ts `RulePhase`) rather than
26
+ * removed outright; wire it through `PassManager` if a phase-gated pass
27
+ * needs it.
28
+ */
22
29
  readonly phase: 'rewrite' | 'impl';
23
- /** Additional context data that rules can use */
24
- readonly context: Map<string, unknown>;
25
30
  /** Diagnostics bag that rules can populate (emitted after optimization) */
26
31
  readonly diagnostics: OptimizerDiagnostics;
27
32
  /** Database instance */
@@ -48,54 +53,13 @@ export declare class OptimizationContext implements OptContext {
48
53
  readonly tuning: OptimizerTuning;
49
54
  readonly phase: 'rewrite' | 'impl';
50
55
  readonly db: Database;
51
- readonly context: Map<string, unknown>;
52
56
  readonly visitedRules: Map<string, Set<string>>;
53
57
  readonly optimizedNodes: Map<string, PlanNode>;
54
58
  readonly diagnostics: OptimizerDiagnostics;
55
59
  constructor(optimizer: Optimizer, stats: StatsProvider, tuning: OptimizerTuning, phase: "rewrite" | "impl" | undefined, db: Database);
56
- /**
57
- * Create a new context for a different phase
58
- */
59
- withPhase(phase: 'rewrite' | 'impl'): OptimizationContext;
60
- /**
61
- * Create a new context with additional context data
62
- */
63
- withContext(key: string, value: unknown): OptimizationContext;
64
- /**
65
- * Copy visited tracking state to another context
66
- */
67
- private copyTrackingState;
68
- /**
69
- * Get context value
70
- */
71
- getContext<T>(key: string): T | undefined;
72
- /**
73
- * Check if context has a key
74
- */
75
- hasContext(key: string): boolean;
76
- /**
77
- * Set context value (mutates current context)
78
- */
79
- setContext(key: string, value: unknown): void;
80
- /**
81
- * Remove context value (mutates current context)
82
- */
83
- deleteContext(key: string): boolean;
84
- /**
85
- * Clear all context data (mutates current context)
86
- */
87
- clearContext(): void;
88
- /**
89
- * Get a snapshot of all context data
90
- */
91
- getContextSnapshot(): Record<string, unknown>;
92
60
  }
93
61
  /**
94
62
  * Factory function to create optimization context
95
63
  */
96
64
  export declare function createOptContext(optimizer: Optimizer, stats: StatsProvider, tuning: OptimizerTuning, db: Database, phase?: 'rewrite' | 'impl'): OptContext;
97
- /**
98
- * Type guard to check if an object is an OptContext
99
- */
100
- export declare function isOptContext(obj: any): obj is OptContext;
101
65
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/planner/framework/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAItD;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,6BAA6B;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAE9B,kCAAkC;IAClC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAEjC,iCAAiC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;IAEnC,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEvC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAE3C,wBAAwB;IACxB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IAEtB,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhD,uFAAuF;IACvF,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAC/C;AAED,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IAEpC,SAAS,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,UAAU;aAOpC,SAAS,EAAE,SAAS;aACpB,KAAK,EAAE,aAAa;aACpB,MAAM,EAAE,eAAe;aACvB,KAAK,EAAE,SAAS,GAAG,MAAM;aACzB,EAAE,EAAE,QAAQ;IAV7B,QAAQ,CAAC,OAAO,uBAA8B;IAC9C,QAAQ,CAAC,YAAY,2BAAkC;IACvD,QAAQ,CAAC,cAAc,wBAA+B;IACtD,QAAQ,CAAC,WAAW,EAAS,oBAAoB,CAAC;gBAGjC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,SAAS,GAAG,MAAM,YAAY,EACrC,EAAE,EAAE,QAAQ;IAK7B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,mBAAmB;IAczD;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,mBAAmB;IAsB7D;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAIzC;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAI7C;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAInC;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAO7C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,QAAQ,EACZ,KAAK,GAAE,SAAS,GAAG,MAAkB,GACnC,UAAU,CAEZ;AAED;;GAEG;AAEH,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,UAAU,CAQxD"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/planner/framework/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAItD;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,6BAA6B;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAE9B,kCAAkC;IAClC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAEjC;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;IAEnC,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAE3C,wBAAwB;IACxB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IAEtB,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhD,uFAAuF;IACvF,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAC/C;AAED,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IAEpC,SAAS,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,UAAU;aAMpC,SAAS,EAAE,SAAS;aACpB,KAAK,EAAE,aAAa;aACpB,MAAM,EAAE,eAAe;aACvB,KAAK,EAAE,SAAS,GAAG,MAAM;aACzB,EAAE,EAAE,QAAQ;IAT7B,QAAQ,CAAC,YAAY,2BAAkC;IACvD,QAAQ,CAAC,cAAc,wBAA+B;IACtD,QAAQ,CAAC,WAAW,EAAS,oBAAoB,CAAC;gBAGjC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,SAAS,GAAG,MAAM,YAAY,EACrC,EAAE,EAAE,QAAQ;CAI7B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,QAAQ,EACZ,KAAK,GAAE,SAAS,GAAG,MAAkB,GACnC,UAAU,CAEZ"}
@@ -13,7 +13,6 @@ export class OptimizationContext {
13
13
  tuning;
14
14
  phase;
15
15
  db;
16
- context = new Map();
17
16
  visitedRules = new Map();
18
17
  optimizedNodes = new Map();
19
18
  diagnostics = {};
@@ -25,83 +24,6 @@ export class OptimizationContext {
25
24
  this.db = db;
26
25
  log('Created optimization context (phase: %s)', phase);
27
26
  }
28
- /**
29
- * Create a new context for a different phase
30
- */
31
- withPhase(phase) {
32
- const newContext = new OptimizationContext(this.optimizer, this.stats, this.tuning, phase, this.db);
33
- // Copy visited tracking state
34
- this.copyTrackingState(newContext);
35
- return newContext;
36
- }
37
- /**
38
- * Create a new context with additional context data
39
- */
40
- withContext(key, value) {
41
- const newContext = new OptimizationContext(this.optimizer, this.stats, this.tuning, this.phase, this.db);
42
- // Copy existing context
43
- for (const [k, v] of this.context) {
44
- newContext.context.set(k, v);
45
- }
46
- // Add new context
47
- newContext.context.set(key, value);
48
- // Copy visited tracking state
49
- this.copyTrackingState(newContext);
50
- return newContext;
51
- }
52
- /**
53
- * Copy visited tracking state to another context
54
- */
55
- copyTrackingState(target) {
56
- // Copy visitedRules
57
- for (const [nodeId, ruleIds] of this.visitedRules) {
58
- target.visitedRules.set(nodeId, new Set(ruleIds));
59
- }
60
- // Copy optimizedNodes
61
- for (const [nodeId, node] of this.optimizedNodes) {
62
- target.optimizedNodes.set(nodeId, node);
63
- }
64
- }
65
- /**
66
- * Get context value
67
- */
68
- getContext(key) {
69
- return this.context.get(key);
70
- }
71
- /**
72
- * Check if context has a key
73
- */
74
- hasContext(key) {
75
- return this.context.has(key);
76
- }
77
- /**
78
- * Set context value (mutates current context)
79
- */
80
- setContext(key, value) {
81
- this.context.set(key, value);
82
- }
83
- /**
84
- * Remove context value (mutates current context)
85
- */
86
- deleteContext(key) {
87
- return this.context.delete(key);
88
- }
89
- /**
90
- * Clear all context data (mutates current context)
91
- */
92
- clearContext() {
93
- this.context.clear();
94
- }
95
- /**
96
- * Get a snapshot of all context data
97
- */
98
- getContextSnapshot() {
99
- const snapshot = {};
100
- for (const [key, value] of this.context) {
101
- snapshot[key] = value;
102
- }
103
- return snapshot;
104
- }
105
27
  }
106
28
  /**
107
29
  * Factory function to create optimization context
@@ -109,17 +31,4 @@ export class OptimizationContext {
109
31
  export function createOptContext(optimizer, stats, tuning, db, phase = 'rewrite') {
110
32
  return new OptimizationContext(optimizer, stats, tuning, phase, db);
111
33
  }
112
- /**
113
- * Type guard to check if an object is an OptContext
114
- */
115
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
116
- export function isOptContext(obj) {
117
- return obj &&
118
- typeof obj === 'object' &&
119
- 'optimizer' in obj &&
120
- 'stats' in obj &&
121
- 'tuning' in obj &&
122
- 'phase' in obj &&
123
- 'context' in obj;
124
- }
125
34
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/planner/framework/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/planner/framework/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItD,MAAM,GAAG,GAAG,YAAY,CAAC,6BAA6B,CAAC,CAAC;AAmDxD;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAMd;IACA;IACA;IACA;IACA;IATR,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC9C,cAAc,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,WAAW,GAAG,EAA0B,CAAC;IAElD,YACiB,SAAoB,EACpB,KAAoB,EACpB,MAAuB,EACvB,QAA4B,SAAS,EACrC,EAAY;QAJZ,cAAS,GAAT,SAAS,CAAW;QACpB,UAAK,GAAL,KAAK,CAAe;QACpB,WAAM,GAAN,MAAM,CAAiB;QACvB,UAAK,GAAL,KAAK,CAAgC;QACrC,OAAE,GAAF,EAAE,CAAU;QAE5B,GAAG,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;CACD;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC/B,SAAoB,EACpB,KAAoB,EACpB,MAAuB,EACvB,EAAY,EACZ,QAA4B,SAAS;IAErC,OAAO,IAAI,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC"}
@@ -50,6 +50,8 @@ export declare enum PassId {
50
50
  Physical = "physical",
51
51
  /** Post-optimization cleanup and caching */
52
52
  PostOptimization = "post-opt",
53
+ /** Cache materialization advisory — one whole-tree pass */
54
+ Materialization = "materialization",
53
55
  /** Final validation */
54
56
  Validation = "validation"
55
57
  }
@@ -70,6 +72,11 @@ export declare class PassManager {
70
72
  constructor(passes?: readonly OptimizationPass[]);
71
73
  /**
72
74
  * Register an optimization pass
75
+ *
76
+ * NOTE: `pass.rules` is taken as-is; only `addRuleToPass` runs
77
+ * `validateSideEffectMode` (see docs/invariants.md § OPT-001). Every pass ships with
78
+ * `rules: []`, so nothing bypasses the gate today. If a pass ever arrives pre-populated,
79
+ * validate each rule here.
73
80
  */
74
81
  registerPass(pass: OptimizationPass): void;
75
82
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"pass.d.ts","sourceRoot":"","sources":["../../../../src/planner/framework/pass.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAUhD;;GAEG;AACH,oBAAY,cAAc;IACzB,sCAAsC;IACtC,QAAQ,cAAc;IACtB,sCAAsC;IACtC,OAAO,aAAa;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IAEX,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IAEb,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IAEpB,oCAAoC;IACpC,cAAc,EAAE,cAAc,CAAC;IAE/B,yEAAyE;IACzE,KAAK,EAAE,UAAU,EAAE,CAAC;IAEpB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,KAAK,QAAQ,CAAC;IAE5D,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,oBAAY,MAAM;IACjB,wCAAwC;IACxC,eAAe,qBAAqB;IAEpC,sEAAsE;IACtE,UAAU,eAAe;IAEzB,qDAAqD;IACrD,QAAQ,aAAa;IAErB,4CAA4C;IAC5C,gBAAgB,aAAa;IAE7B,uBAAuB;IACvB,UAAU,eAAe;CACzB;AAED;;GAEG;AACH,wBAAgB,UAAU,CACzB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,cAAc,GAAE,cAAwC,GACtD,gBAAgB,CAUlB;AAyBD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,gBAAgB,EAkC7C,CAAC;AAoDF;;GAEG;AACH,qBAAa,WAAW;IACvB,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,YAAY,CAA0B;gBAElC,MAAM,GAAE,SAAS,gBAAgB,EAAoB;IAOjE;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAY1C;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIjD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAkBrD;;OAEG;IACH,SAAS,IAAI,SAAS,gBAAgB,EAAE;IAIxC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ;IAItD;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ;IAqB/E;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,uBAAuB;IAM/B;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IA6BpB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAoDvB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAmDxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAsCtB,OAAO,CAAC,mBAAmB;CAc3B"}
1
+ {"version":3,"file":"pass.d.ts","sourceRoot":"","sources":["../../../../src/planner/framework/pass.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAWhD;;GAEG;AACH,oBAAY,cAAc;IACzB,sCAAsC;IACtC,QAAQ,cAAc;IACtB,sCAAsC;IACtC,OAAO,aAAa;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IAEX,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IAEb,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IAEpB,oCAAoC;IACpC,cAAc,EAAE,cAAc,CAAC;IAE/B,yEAAyE;IACzE,KAAK,EAAE,UAAU,EAAE,CAAC;IAEpB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,KAAK,QAAQ,CAAC;IAE5D,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,oBAAY,MAAM;IACjB,wCAAwC;IACxC,eAAe,qBAAqB;IAEpC,sEAAsE;IACtE,UAAU,eAAe;IAEzB,qDAAqD;IACrD,QAAQ,aAAa;IAErB,4CAA4C;IAC5C,gBAAgB,aAAa;IAE7B,2DAA2D;IAC3D,eAAe,oBAAoB;IAEnC,uBAAuB;IACvB,UAAU,eAAe;CACzB;AAED;;GAEG;AACH,wBAAgB,UAAU,CACzB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,cAAc,GAAE,cAAwC,GACtD,gBAAgB,CAUlB;AAoED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,gBAAgB,EAoC7C,CAAC;AAoDF;;GAEG;AACH,qBAAa,WAAW;IACvB,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,YAAY,CAA0B;gBAElC,MAAM,GAAE,SAAS,gBAAgB,EAAoB;IAOjE;;;;;;;OAOG;IACH,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAY1C;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIjD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAkBrD;;OAEG;IACH,SAAS,IAAI,SAAS,gBAAgB,EAAE;IAIxC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ;IAItD;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ;IAqB/E;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,uBAAuB;IAM/B;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY;IA6BpB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAoDvB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAmDxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAsEtB,OAAO,CAAC,mBAAmB;CAc3B"}