@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
@@ -9,6 +9,7 @@ import { hasRuleBeenApplied, markRuleApplied, validateSideEffectMode } from './r
9
9
  import { createLogger } from '../../common/logger.js';
10
10
  import { performConstantFolding } from '../analysis/const-pass.js';
11
11
  import { createRuntimeExpressionEvaluator, createRuntimeRelationalEvaluator } from '../analysis/const-evaluator.js';
12
+ import { MaterializationAdvisory } from '../cache/materialization-advisory.js';
12
13
  import { StatusCode } from '../../common/types.js';
13
14
  import { quereusError } from '../../common/errors.js';
14
15
  const log = createLogger('optimizer:framework:pass');
@@ -35,6 +36,8 @@ export var PassId;
35
36
  PassId["Physical"] = "physical";
36
37
  /** Post-optimization cleanup and caching */
37
38
  PassId["PostOptimization"] = "post-opt";
39
+ /** Cache materialization advisory — one whole-tree pass */
40
+ PassId["Materialization"] = "materialization";
38
41
  /** Final validation */
39
42
  PassId["Validation"] = "validation";
40
43
  })(PassId || (PassId = {}));
@@ -74,6 +77,48 @@ function createConstantFoldingPass() {
74
77
  }
75
78
  };
76
79
  }
80
+ /**
81
+ * Create the materialization-advisory pass with custom execution.
82
+ *
83
+ * Runs the cache materialization advisory exactly ONCE over the whole plan.
84
+ * `analyzeAndTransform` builds a single reference graph (parent counts are then
85
+ * global — strictly more correct than the previous per-anchor-subtree-local
86
+ * counts, which under-counted sharing that spanned two anchors) and walks every
87
+ * descendant via `getChildren()`, wrapping each recommended relational node with
88
+ * a `CacheNode`. This replaces the previous 12 per-anchor-type `RuleHandle`
89
+ * registrations, each of which rebuilt a reference graph over its own subtree
90
+ * (O(anchors) graph builds per optimize, now 1).
91
+ *
92
+ * Placement (order 35) is between PostOptimization (30) and Validation (40) so
93
+ * the advisory runs AFTER the CacheNodes injected by `cte-optimization` /
94
+ * `in-subquery-cache` are already in place — it skips `nodeType === Cache`, so
95
+ * running last avoids double-wrapping.
96
+ *
97
+ * Side-effect soundness (a custom `execute` bypasses `sideEffectMode`
98
+ * validation, so the reasoning lives here rather than in a RuleHandle field):
99
+ * the advisory does not explicitly consult `hasSideEffects` — soundness for
100
+ * impure subtrees rests on CacheNode itself being a run-once fence
101
+ * (materialize-on-first-read, replay thereafter), so a side-effect-bearing
102
+ * subtree that the advisory would otherwise wrap runs exactly once instead of
103
+ * per-reference. That is a count-change but order-preserving rewrite — and
104
+ * matches the run-once contract the scalar / IN / EXISTS emitters apply
105
+ * directly when their inner is impure (see `docs/runtime.md`).
106
+ */
107
+ function createMaterializationPass() {
108
+ return {
109
+ id: PassId.Materialization,
110
+ name: 'Materialization Advisory',
111
+ description: 'Inject caching where reference analysis shows materialization pays off',
112
+ traversalOrder: TraversalOrder.BottomUp,
113
+ rules: [],
114
+ enabled: true,
115
+ order: 35,
116
+ execute: (plan, context) => {
117
+ const advisory = new MaterializationAdvisory(context.tuning);
118
+ return advisory.analyzeAndTransform(plan);
119
+ },
120
+ };
121
+ }
77
122
  /**
78
123
  * Standard pass definitions
79
124
  */
@@ -82,6 +127,7 @@ export const STANDARD_PASSES = [
82
127
  createPass(PassId.Structural, 'Structural Transformations', 'Restructure the plan tree for optimal execution boundaries', 10, TraversalOrder.TopDown),
83
128
  createPass(PassId.Physical, 'Physical Selection', 'Convert logical operators to physical implementations', 20, TraversalOrder.BottomUp),
84
129
  createPass(PassId.PostOptimization, 'Post-Optimization', 'Final cleanup, materialization decisions, and caching', 30, TraversalOrder.BottomUp),
130
+ createMaterializationPass(),
85
131
  createPass(PassId.Validation, 'Validation', 'Validate the correctness of the optimized plan', 40, TraversalOrder.BottomUp),
86
132
  ];
87
133
  /**
@@ -116,6 +162,11 @@ export class PassManager {
116
162
  }
117
163
  /**
118
164
  * Register an optimization pass
165
+ *
166
+ * NOTE: `pass.rules` is taken as-is; only `addRuleToPass` runs
167
+ * `validateSideEffectMode` (see docs/invariants.md § OPT-001). Every pass ships with
168
+ * `rules: []`, so nothing bypasses the gate today. If a pass ever arrives pre-populated,
169
+ * validate each rule here.
119
170
  */
120
171
  registerPass(pass) {
121
172
  if (this.passes.has(pass.id)) {
@@ -341,6 +392,18 @@ export class PassManager {
341
392
  applyPassRules(node, context, pass, state) {
342
393
  let currentNode = node;
343
394
  let changed = true;
395
+ // Rules that declined (returned null / the same node) on the *current*
396
+ // node id. A declining rule is deterministic in its input node, so once it
397
+ // declines on a given node it will decline again on the same node — no
398
+ // point re-offering it every `while` fixpoint iteration. This set is
399
+ // ephemeral (not stored on the context) and, crucially, is reset whenever
400
+ // a transform mints a NEW node: the plan piece changed, so every decliner
401
+ // gets a fresh shot on the new node (a rule that declined on the old shape
402
+ // may well apply to the new one). Applied rules are handled separately by
403
+ // `hasRuleBeenApplied` (they are inherited across the re-mint for loop
404
+ // prevention); declines are not inherited, so no plan output changes vs.
405
+ // re-scanning every iteration — only redundant same-node re-runs are cut.
406
+ let declinedOnCurrent = new Set();
344
407
  while (changed) {
345
408
  changed = false;
346
409
  for (const rule of pass.rules) {
@@ -350,8 +413,17 @@ export class PassManager {
350
413
  continue;
351
414
  if (hasRuleBeenApplied(currentNode.id, rule.id, context))
352
415
  continue;
416
+ if (declinedOnCurrent.has(rule.id))
417
+ continue;
353
418
  const result = rule.fn(currentNode, context);
354
419
  if (result && result !== currentNode) {
420
+ // NOTE: a rule is not re-offered its own output. marking the old node id
421
+ // applied and then inheriting that applied-rule set onto the new node id
422
+ // means `hasRuleBeenApplied` short-circuits `rule.id` on `result` too, so
423
+ // the fixpoint loop above never re-invokes this rule on the node it just
424
+ // produced. A rule that needs a fixpoint over its own rewrites (e.g. merging
425
+ // an arbitrarily deep stack of nested nodes) must loop internally rather than
426
+ // rely on the engine to re-offer it — see rule-filter-merge for the pattern.
355
427
  markRuleApplied(currentNode.id, rule.id, context);
356
428
  this.inheritVisitedRules(currentNode.id, result.id, context);
357
429
  state.rulesFired++;
@@ -360,8 +432,20 @@ export class PassManager {
360
432
  }
361
433
  log('Rule %s transformed node in pass %s', rule.id, pass.id);
362
434
  currentNode = result;
435
+ // New node id — the plan piece changed, so re-offer every decliner.
436
+ declinedOnCurrent = new Set();
363
437
  changed = true;
364
438
  }
439
+ else {
440
+ // Declined on this exact node id; suppress re-offering it until
441
+ // the node changes (a transform resets the set above).
442
+ // NOTE: this assumes a decline is a pure function of the node — a
443
+ // rule that declines but mutates shared `context` state expecting
444
+ // to re-apply on the *same unchanged* node next iteration would no
445
+ // longer get that second look. No such rule exists today; if one
446
+ // is added, exclude it here or key the skip on a context epoch.
447
+ declinedOnCurrent.add(rule.id);
448
+ }
365
449
  }
366
450
  }
367
451
  return currentNode;
@@ -1 +1 @@
1
- {"version":3,"file":"pass.js","sourceRoot":"","sources":["../../../../src/planner/framework/pass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pass.js","sourceRoot":"","sources":["../../../../src/planner/framework/pass.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Rule registration and management framework for the Titan optimizer
3
- * Provides centralized rule registry with tracing and loop detection
2
+ * Rule handle types and per-node visited-rule tracking for the optimizer's
3
+ * pass framework. Rule application itself lives in `PassManager` (`pass.ts`).
4
4
  */
5
5
  import type { PlanNode } from '../nodes/plan-node.js';
6
- import { PlanNodeType } from '../nodes/plan-node-type.js';
6
+ import type { PlanNodeType } from '../nodes/plan-node-type.js';
7
7
  import type { OptContext } from './context.js';
8
8
  /**
9
9
  * Rule function signature for optimization transformations
@@ -31,9 +31,9 @@ export type RulePhase = 'rewrite' | 'impl';
31
31
  * side effects through run-once memoization (e.g. mutating-subquery-cache).
32
32
  *
33
33
  * This field is intentionally not optional: every future rule author has to
34
- * actively pick one. The registry validates the choice at registration time
35
- * and rejects rules that fail to declare. See `docs/optimizer.md` § Audit
36
- * discipline.
34
+ * actively pick one. `PassManager.addRuleToPass` validates the choice via
35
+ * `validateSideEffectMode` at registration time and rejects rules that fail to
36
+ * declare. See `docs/optimizer.md` § Audit discipline.
37
37
  */
38
38
  export type SideEffectMode = 'safe' | 'aware';
39
39
  /**
@@ -48,8 +48,6 @@ export interface RuleHandle {
48
48
  phase: RulePhase;
49
49
  /** Rule implementation function */
50
50
  fn: RuleFn;
51
- /** Optional priority (lower numbers run first) */
52
- priority?: number;
53
51
  /**
54
52
  * Side-effect awareness declaration — see {@link SideEffectMode}. Required:
55
53
  * registration fails when omitted, so every rule author has to make an
@@ -58,52 +56,25 @@ export interface RuleHandle {
58
56
  sideEffectMode: SideEffectMode;
59
57
  }
60
58
  /**
61
- * Register an optimization rule
62
- */
63
- export declare function registerRule(handle: RuleHandle): void;
64
- /**
65
- * Get rules for a specific node type
66
- */
67
- export declare function rulesFor(nodeType: PlanNodeType): readonly RuleHandle[];
68
- /**
69
- * Check if a rule has been applied to a node
59
+ * Check if a rule has already been applied to a node.
60
+ *
61
+ * Records only *transforming* applications (loop prevention), inherited across
62
+ * a transform's re-mint by `PassManager.inheritVisitedRules`. A rule that
63
+ * *declines* is tracked separately and ephemerally inside
64
+ * `PassManager.applyPassRules` (per node id, not inherited) — see that method.
70
65
  */
71
66
  export declare function hasRuleBeenApplied(nodeId: string, ruleId: string, context: OptContext): boolean;
72
67
  /**
73
68
  * Mark a rule as applied to a node
74
69
  */
75
70
  export declare function markRuleApplied(nodeId: string, ruleId: string, context: OptContext): void;
76
- /**
77
- * Get registry statistics
78
- */
79
- export declare function getRegistryStats(context?: OptContext): {
80
- totalRules: number;
81
- nodesWithRules: number;
82
- appliedRules: number;
83
- };
84
- /**
85
- * Get all registered rules (for debugging/tooling)
86
- */
87
- export declare function getAllRules(): Map<PlanNodeType, readonly RuleHandle[]>;
88
- /**
89
- * Apply rules to a node with tracing and loop detection
90
- */
91
- export declare function applyRules(node: PlanNode, context: OptContext): PlanNode;
92
- /**
93
- * Convenience function to register multiple rules at once
94
- */
95
- export declare function registerRules(rules: RuleHandle[]): void;
96
- /**
97
- * Helper to create rule handles with common patterns
98
- */
99
- export declare function createRule(id: string, nodeType: PlanNodeType, phase: RulePhase, fn: RuleFn, sideEffectMode: SideEffectMode, priority?: number): RuleHandle;
100
71
  /**
101
72
  * Reject any rule registration that fails to declare `sideEffectMode`. The
102
73
  * field is typed as required, but plenty of call sites build rule handles
103
74
  * dynamically (object spreads, generated registries) where TypeScript can't
104
75
  * see through — this runtime check is the load-bearing audit gate. Exported
105
76
  * so the PassManager can apply the same validation when rules are pushed
106
- * directly into a pass's `rules` array (bypassing the global registry).
77
+ * directly into a pass's `rules` array.
107
78
  */
108
79
  export declare function validateSideEffectMode(handle: RuleHandle): void;
109
80
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/planner/framework/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO/C;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,KAAK,QAAQ,GAAG,IAAI,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,qCAAqC;IACrC,QAAQ,EAAE,YAAY,CAAC;IACvB,2BAA2B;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,cAAc,EAAE,cAAc,CAAC;CAC/B;AAuGD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAErD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,UAAU,EAAE,CAEtE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAE/F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAEzF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAE3H;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,GAAG,CAAC,YAAY,EAAE,SAAS,UAAU,EAAE,CAAC,CAEtE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,CAuDxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAIvD;AAED;;GAEG;AACH,wBAAgB,UAAU,CACzB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,EACV,cAAc,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,MAAM,GACf,UAAU,CAEZ;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAS/D"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/planner/framework/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/C;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,KAAK,QAAQ,GAAG,IAAI,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,qCAAqC;IACrC,QAAQ,EAAE,YAAY,CAAC;IACvB,2BAA2B;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX;;;;OAIG;IACH,cAAc,EAAE,cAAc,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAG/F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,CAKzF;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAS/D"}
@@ -1,197 +1,29 @@
1
1
  /**
2
- * Rule registration and management framework for the Titan optimizer
3
- * Provides centralized rule registry with tracing and loop detection
2
+ * Rule handle types and per-node visited-rule tracking for the optimizer's
3
+ * pass framework. Rule application itself lives in `PassManager` (`pass.ts`).
4
4
  */
5
- import { createLogger } from '../../common/logger.js';
6
- import { traceRuleStart, traceRuleEnd } from './trace.js';
7
5
  import { StatusCode } from '../../common/types.js';
8
6
  import { quereusError } from '../../common/errors.js';
9
- const log = createLogger('optimizer:framework:registry');
10
7
  /**
11
- * Global rule registry
12
- */
13
- class RuleRegistry {
14
- rules = new Map();
15
- /**
16
- * Register a new optimization rule
17
- */
18
- registerRule(handle) {
19
- validateSideEffectMode(handle);
20
- if (!this.rules.has(handle.nodeType)) {
21
- this.rules.set(handle.nodeType, []);
22
- }
23
- const nodeRules = this.rules.get(handle.nodeType);
24
- // Check for duplicate rule IDs
25
- if (nodeRules.some(r => r.id === handle.id)) {
26
- quereusError(`Optimization rule '${handle.id}' already registered for node type ${handle.nodeType}`, StatusCode.INTERNAL);
27
- }
28
- // Insert rule maintaining priority order (lower priority first)
29
- const priority = handle.priority ?? 100;
30
- const insertIndex = nodeRules.findIndex(r => (r.priority ?? 100) > priority);
31
- if (insertIndex === -1) {
32
- nodeRules.push(handle);
33
- }
34
- else {
35
- nodeRules.splice(insertIndex, 0, handle);
36
- }
37
- log('Registered rule %s for %s (phase: %s, priority: %d)', handle.id, handle.nodeType, handle.phase, priority);
38
- }
39
- /**
40
- * Get all rules for a specific node type
41
- */
42
- rulesFor(nodeType) {
43
- return this.rules.get(nodeType) ?? [];
44
- }
45
- /**
46
- * Check if a rule has already been applied to a node
47
- */
48
- hasRuleBeenApplied(nodeId, ruleId, context) {
49
- const nodeVisited = context.visitedRules.get(nodeId);
50
- return nodeVisited?.has(ruleId) ?? false;
51
- }
52
- /**
53
- * Mark a rule as applied to a node
54
- */
55
- markRuleApplied(nodeId, ruleId, context) {
56
- if (!context.visitedRules.has(nodeId)) {
57
- context.visitedRules.set(nodeId, new Set());
58
- }
59
- context.visitedRules.get(nodeId).add(ruleId);
60
- }
61
- /**
62
- * Get all registered rules (for debugging)
63
- */
64
- getAllRules() {
65
- const result = new Map();
66
- for (const [nodeType, rules] of this.rules) {
67
- result.set(nodeType, [...rules]);
68
- }
69
- return result;
70
- }
71
- /**
72
- * Get statistics about rule application
73
- */
74
- getStats(context) {
75
- let totalRules = 0;
76
- for (const rules of this.rules.values()) {
77
- totalRules += rules.length;
78
- }
79
- let appliedRules = 0;
80
- if (context) {
81
- for (const ruleSet of context.visitedRules.values()) {
82
- appliedRules += ruleSet.size;
83
- }
84
- }
85
- return {
86
- totalRules,
87
- nodesWithRules: context?.visitedRules.size ?? 0,
88
- appliedRules
89
- };
90
- }
91
- }
92
- /**
93
- * Global registry instance
94
- */
95
- const globalRegistry = new RuleRegistry();
96
- /**
97
- * Register an optimization rule
98
- */
99
- export function registerRule(handle) {
100
- globalRegistry.registerRule(handle);
101
- }
102
- /**
103
- * Get rules for a specific node type
104
- */
105
- export function rulesFor(nodeType) {
106
- return globalRegistry.rulesFor(nodeType);
107
- }
108
- /**
109
- * Check if a rule has been applied to a node
8
+ * Check if a rule has already been applied to a node.
9
+ *
10
+ * Records only *transforming* applications (loop prevention), inherited across
11
+ * a transform's re-mint by `PassManager.inheritVisitedRules`. A rule that
12
+ * *declines* is tracked separately and ephemerally inside
13
+ * `PassManager.applyPassRules` (per node id, not inherited) — see that method.
110
14
  */
111
15
  export function hasRuleBeenApplied(nodeId, ruleId, context) {
112
- return globalRegistry.hasRuleBeenApplied(nodeId, ruleId, context);
16
+ const nodeVisited = context.visitedRules.get(nodeId);
17
+ return nodeVisited?.has(ruleId) ?? false;
113
18
  }
114
19
  /**
115
20
  * Mark a rule as applied to a node
116
21
  */
117
22
  export function markRuleApplied(nodeId, ruleId, context) {
118
- globalRegistry.markRuleApplied(nodeId, ruleId, context);
119
- }
120
- /**
121
- * Get registry statistics
122
- */
123
- export function getRegistryStats(context) {
124
- return globalRegistry.getStats(context);
125
- }
126
- /**
127
- * Get all registered rules (for debugging/tooling)
128
- */
129
- export function getAllRules() {
130
- return globalRegistry.getAllRules();
131
- }
132
- /**
133
- * Apply rules to a node with tracing and loop detection
134
- */
135
- export function applyRules(node, context) {
136
- const applicableRules = rulesFor(node.nodeType);
137
- if (applicableRules.length === 0) {
138
- return node;
139
- }
140
- let currentNode = node;
141
- let appliedAnyRule = false;
142
- for (const rule of applicableRules) {
143
- // Skip if rule is disabled
144
- if (context.tuning.disabledRules?.has(rule.id))
145
- continue;
146
- // Skip if rule already applied to this node
147
- if (hasRuleBeenApplied(currentNode.id, rule.id, context)) {
148
- log('Skipping rule %s for node %s (already applied)', rule.id, currentNode.id);
149
- continue;
150
- }
151
- try {
152
- const ruleLog = createLogger(`optimizer:rule:${rule.id}`);
153
- // Trace rule start
154
- traceRuleStart(rule, currentNode);
155
- ruleLog('Applying rule to node %s', currentNode.id);
156
- const result = rule.fn(currentNode, context);
157
- if (result && result !== currentNode) {
158
- ruleLog('Rule transformed %s to %s', currentNode.nodeType, result.nodeType);
159
- markRuleApplied(currentNode.id, rule.id, context);
160
- // Trace successful transformation
161
- traceRuleEnd(rule, currentNode, result);
162
- currentNode = result;
163
- appliedAnyRule = true;
164
- }
165
- else {
166
- ruleLog('Rule not applicable to node %s', currentNode.id);
167
- // Trace rule not applicable
168
- traceRuleEnd(rule, currentNode, null);
169
- }
170
- }
171
- catch (error) {
172
- const errorMsg = error instanceof Error ? error.message : String(error);
173
- log('Rule %s failed on node %s: %s', rule.id, currentNode.id, errorMsg);
174
- // Continue with other rules rather than failing entire optimization
175
- }
23
+ if (!context.visitedRules.has(nodeId)) {
24
+ context.visitedRules.set(nodeId, new Set());
176
25
  }
177
- if (appliedAnyRule) {
178
- log('Applied rules to node %s, result: %s', node.id, currentNode.nodeType);
179
- }
180
- return currentNode;
181
- }
182
- /**
183
- * Convenience function to register multiple rules at once
184
- */
185
- export function registerRules(rules) {
186
- for (const rule of rules) {
187
- registerRule(rule);
188
- }
189
- }
190
- /**
191
- * Helper to create rule handles with common patterns
192
- */
193
- export function createRule(id, nodeType, phase, fn, sideEffectMode, priority) {
194
- return { id, nodeType, phase, fn, sideEffectMode, priority };
26
+ context.visitedRules.get(nodeId).add(ruleId);
195
27
  }
196
28
  /**
197
29
  * Reject any rule registration that fails to declare `sideEffectMode`. The
@@ -199,7 +31,7 @@ export function createRule(id, nodeType, phase, fn, sideEffectMode, priority) {
199
31
  * dynamically (object spreads, generated registries) where TypeScript can't
200
32
  * see through — this runtime check is the load-bearing audit gate. Exported
201
33
  * so the PassManager can apply the same validation when rules are pushed
202
- * directly into a pass's `rules` array (bypassing the global registry).
34
+ * directly into a pass's `rules` array.
203
35
  */
204
36
  export function validateSideEffectMode(handle) {
205
37
  const mode = handle.sideEffectMode;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/planner/framework/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/planner/framework/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAwDtD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,MAAc,EAAE,OAAmB;IACrF,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrD,OAAO,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,MAAc,EAAE,OAAmB;IAClF,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAkB;IACxD,MAAM,IAAI,GAAI,MAAuC,CAAC,cAAc,CAAC;IACrE,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACzC,YAAY,CACX,sBAAsB,MAAM,CAAC,EAAE,mDAAmD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK;YAC3G,sFAAsF,EACtF,UAAU,CAAC,QAAQ,CACnB,CAAC;IACH,CAAC;AACF,CAAC"}
@@ -6,7 +6,7 @@ import type { Scope } from '../scopes/scope.js';
6
6
  import type { MutableViewLike } from './single-source.js';
7
7
  /**
8
8
  * The **one** plan-node backward-walk consumer the multi-source join walk and the
9
- * decomposition fan-out share (docs/view-updateability.md § Round-Trip Laws and the
9
+ * decomposition fan-out share (docs/vu-roundtrip.md § Round-Trip Laws and the
10
10
  * Derived Backward Walk). It plans a view body **once** and reads the
11
11
  * `PhysicalProperties.updateLineage` the forward pass already threaded, routing
12
12
  * each output column back to its owning base relation — instead of each caller
@@ -61,7 +61,7 @@ export interface BackwardColumn {
61
61
  * `baseColumn` stay undefined so no verbatim-value consumer silently admits it).
62
62
  * Each put names its owning base relation by `TableReferenceNode` id; `newRefIndex`
63
63
  * maps `new.<name>` references to output column indexes
64
- * (docs/view-updateability.md § Authored inverses).
64
+ * (docs/vu-inverses.md § Authored inverses).
65
65
  */
66
66
  readonly authored?: {
67
67
  readonly puts: ReadonlyArray<{
@@ -2,7 +2,7 @@ import { transformExpr, cloneExpr, transformAliasScopedQuery } from './scope-tra
2
2
  import { combineAnd } from './single-source.js';
3
3
  import { raiseMutationDiagnostic } from './mutation-diagnostic.js';
4
4
  /**
5
- * Multi-level CTE-body flattener (`docs/view-updateability.md` § Common Table
5
+ * Multi-level CTE-body flattener (`docs/vu-operators.md` § Common Table
6
6
  * Expressions — multi-level CTE body).
7
7
  *
8
8
  * A CTE-name (or inline-subquery) DML target whose body is a single-source
@@ -112,7 +112,7 @@ import { type MultiSourceKeyCapture } from './multi-source.js';
112
112
  * are derived from the **threaded plan-node `updateLineage`** read through the
113
113
  * shared backward-walk consumer (`analyzeBodyLineage`) — the same n-way reader the
114
114
  * multi-source join walk consumes — rather than a parallel AST scan of the
115
- * synthesized body's projection list (docs/view-updateability.md § Round-Trip Laws
115
+ * synthesized body's projection list (docs/vu-roundtrip.md § Round-Trip Laws
116
116
  * and the Derived Backward Walk, docs/lens.md § The Default Mapper).
117
117
  */
118
118
  export interface DecompShape {
@@ -184,7 +184,7 @@ export interface DecompInsertOp {
184
184
  * column's declared `default` (`keyDefault`). Each member op reads its values back
185
185
  * out of that one materialized envelope, so the default is evaluated once per
186
186
  * produced row and the value threads across every member insert via the
187
- * equivalence class (docs/view-updateability.md § Mutation Context, docs/lens.md § The Default Mapper).
187
+ * equivalence class (docs/vu-mutation-context.md § Mutation Context, docs/lens.md § The Default Mapper).
188
188
  */
189
189
  export interface DecompInsertAnalysis {
190
190
  readonly suppliedColumns: readonly {
@@ -58,7 +58,7 @@ export function analyzeDecomposition(ctx, view, storage) {
58
58
  }
59
59
  /**
60
60
  * The decomposition put fan-out for an authored (`with inverse`) column is
61
- * deferred (docs/view-updateability.md § Authored inverses — the documented
61
+ * deferred (docs/vu-inverses.md § Authored inverses — the documented
62
62
  * decomposition deferral): reject a write that targets one, naming the member(s)
63
63
  * its puts route to, rather than letting it fall through {@link classifyColumn}'s
64
64
  * EAV / computed-mapping fallbacks into a silent mis-route. Read consumers (the
@@ -1 +1 @@
1
- {"version":3,"file":"lens-enforcement.d.ts","sourceRoot":"","sources":["../../../../src/planner/mutation/lens-enforcement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAqB,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAuE,MAAM,uBAAuB,CAAC;AACtI,OAAO,EAAE,SAAS,EAA+B,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAY7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,0FAA0F;AAC1F,eAAO,MAAM,0BAA0B,mCAAmC,CAAC;AAuR3E;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,GAAG,mBAAmB,EAAE,CA+B1G;AA4JD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,GAAG,mBAAmB,EAAE,CAmDpH;AA+DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,0CAA0C,CACzD,UAAU,EAAE,QAAQ,EACpB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAC5C,mBAAmB,EAAE,CAiEvB;AAyED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,mBAAmB,EAAE,CAqDnH;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAEvE"}
1
+ {"version":3,"file":"lens-enforcement.d.ts","sourceRoot":"","sources":["../../../../src/planner/mutation/lens-enforcement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAqB,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAuE,MAAM,uBAAuB,CAAC;AACtI,OAAO,EAAE,SAAS,EAA+B,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAY7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,0FAA0F;AAC1F,eAAO,MAAM,0BAA0B,mCAAmC,CAAC;AAuR3E;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,GAAG,mBAAmB,EAAE,CA+B1G;AA4JD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,GAAG,mBAAmB,EAAE,CAmDpH;AAgED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,0CAA0C,CACzD,UAAU,EAAE,QAAQ,EACpB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAC5C,mBAAmB,EAAE,CAiEvB;AAyED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,mBAAmB,EAAE,CAqDnH;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAEvE"}
@@ -584,7 +584,8 @@ export function collectLensForeignKeyConstraints(slot, schemaManager) {
584
584
  * synthesize into a constraint AST. Crucially this evaluates to a definite **false**
585
585
  * (never NULL) when exactly one side is NULL: the naive `(OLD = NEW) or (OLD is null
586
586
  * and NEW is null)` instead yields `NULL or false = NULL` there, which the
587
- * deferred-constraint check (`value === false || value === 0`) does not treat as a
587
+ * constraint check (NULL passes; only a non-NULL non-truthy value fails, per the
588
+ * shared `isTruthy` rule) does not treat as a
588
589
  * failure — so it would wrongly admit an orphaning value→NULL update.
589
590
  *
590
591
  * Null-safety matters for a **nullable** referenced parent key: a value→NULL update