@quereus/quereus 4.5.0 → 4.7.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 (818) hide show
  1. package/README.md +5 -4
  2. package/dist/src/common/errors.d.ts +17 -0
  3. package/dist/src/common/errors.d.ts.map +1 -1
  4. package/dist/src/common/errors.js +21 -0
  5. package/dist/src/common/errors.js.map +1 -1
  6. package/dist/src/core/database-assertions.d.ts +4 -3
  7. package/dist/src/core/database-assertions.d.ts.map +1 -1
  8. package/dist/src/core/database-assertions.js +44 -14
  9. package/dist/src/core/database-assertions.js.map +1 -1
  10. package/dist/src/core/database-events.d.ts +161 -1
  11. package/dist/src/core/database-events.d.ts.map +1 -1
  12. package/dist/src/core/database-events.js +307 -5
  13. package/dist/src/core/database-events.js.map +1 -1
  14. package/dist/src/core/database-internal.d.ts +5 -2
  15. package/dist/src/core/database-internal.d.ts.map +1 -1
  16. package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -1
  17. package/dist/src/core/database-materialized-views-plan-builders.js +33 -4
  18. package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
  19. package/dist/src/core/database-materialized-views-plans.d.ts +12 -2
  20. package/dist/src/core/database-materialized-views-plans.d.ts.map +1 -1
  21. package/dist/src/core/database-materialized-views.d.ts +46 -0
  22. package/dist/src/core/database-materialized-views.d.ts.map +1 -1
  23. package/dist/src/core/database-materialized-views.js +75 -4
  24. package/dist/src/core/database-materialized-views.js.map +1 -1
  25. package/dist/src/core/database-transaction.d.ts +9 -0
  26. package/dist/src/core/database-transaction.d.ts.map +1 -1
  27. package/dist/src/core/database-transaction.js +9 -0
  28. package/dist/src/core/database-transaction.js.map +1 -1
  29. package/dist/src/core/database.d.ts +16 -2
  30. package/dist/src/core/database.d.ts.map +1 -1
  31. package/dist/src/core/database.js +56 -15
  32. package/dist/src/core/database.js.map +1 -1
  33. package/dist/src/core/derived-row-validator.d.ts.map +1 -1
  34. package/dist/src/core/derived-row-validator.js +7 -1
  35. package/dist/src/core/derived-row-validator.js.map +1 -1
  36. package/dist/src/core/statement.d.ts.map +1 -1
  37. package/dist/src/core/statement.js +15 -5
  38. package/dist/src/core/statement.js.map +1 -1
  39. package/dist/src/emit/ast-stringify.d.ts +18 -2
  40. package/dist/src/emit/ast-stringify.d.ts.map +1 -1
  41. package/dist/src/emit/ast-stringify.js +22 -4
  42. package/dist/src/emit/ast-stringify.js.map +1 -1
  43. package/dist/src/func/builtins/aggregate.js +11 -11
  44. package/dist/src/func/builtins/aggregate.js.map +1 -1
  45. package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
  46. package/dist/src/func/builtins/builtin-window-functions.js +15 -85
  47. package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
  48. package/dist/src/func/builtins/conversion.d.ts.map +1 -1
  49. package/dist/src/func/builtins/conversion.js +10 -9
  50. package/dist/src/func/builtins/conversion.js.map +1 -1
  51. package/dist/src/func/builtins/datetime.d.ts.map +1 -1
  52. package/dist/src/func/builtins/datetime.js +28 -10
  53. package/dist/src/func/builtins/datetime.js.map +1 -1
  54. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  55. package/dist/src/func/builtins/explain.js +19 -5
  56. package/dist/src/func/builtins/explain.js.map +1 -1
  57. package/dist/src/func/builtins/json.d.ts.map +1 -1
  58. package/dist/src/func/builtins/json.js +23 -17
  59. package/dist/src/func/builtins/json.js.map +1 -1
  60. package/dist/src/func/builtins/mutation.js +2 -2
  61. package/dist/src/func/builtins/mutation.js.map +1 -1
  62. package/dist/src/func/builtins/return-types.d.ts +327 -0
  63. package/dist/src/func/builtins/return-types.d.ts.map +1 -0
  64. package/dist/src/func/builtins/return-types.js +43 -0
  65. package/dist/src/func/builtins/return-types.js.map +1 -0
  66. package/dist/src/func/builtins/scalar.d.ts.map +1 -1
  67. package/dist/src/func/builtins/scalar.js +150 -79
  68. package/dist/src/func/builtins/scalar.js.map +1 -1
  69. package/dist/src/func/builtins/schema.d.ts.map +1 -1
  70. package/dist/src/func/builtins/schema.js +43 -8
  71. package/dist/src/func/builtins/schema.js.map +1 -1
  72. package/dist/src/func/builtins/string.d.ts.map +1 -1
  73. package/dist/src/func/builtins/string.js +4 -2
  74. package/dist/src/func/builtins/string.js.map +1 -1
  75. package/dist/src/func/builtins/timespan.d.ts +3 -0
  76. package/dist/src/func/builtins/timespan.d.ts.map +1 -1
  77. package/dist/src/func/builtins/timespan.js +15 -11
  78. package/dist/src/func/builtins/timespan.js.map +1 -1
  79. package/dist/src/func/registration.d.ts +35 -1
  80. package/dist/src/func/registration.d.ts.map +1 -1
  81. package/dist/src/func/registration.js +235 -41
  82. package/dist/src/func/registration.js.map +1 -1
  83. package/dist/src/index.d.ts +14 -7
  84. package/dist/src/index.d.ts.map +1 -1
  85. package/dist/src/index.js +15 -6
  86. package/dist/src/index.js.map +1 -1
  87. package/dist/src/parser/ast.d.ts +58 -1
  88. package/dist/src/parser/ast.d.ts.map +1 -1
  89. package/dist/src/parser/parser.d.ts +46 -0
  90. package/dist/src/parser/parser.d.ts.map +1 -1
  91. package/dist/src/parser/parser.js +161 -45
  92. package/dist/src/parser/parser.js.map +1 -1
  93. package/dist/src/parser/utils.d.ts +13 -1
  94. package/dist/src/parser/utils.d.ts.map +1 -1
  95. package/dist/src/parser/utils.js +14 -0
  96. package/dist/src/parser/utils.js.map +1 -1
  97. package/dist/src/planner/analysis/assertion-classifier.d.ts.map +1 -1
  98. package/dist/src/planner/analysis/assertion-classifier.js +7 -2
  99. package/dist/src/planner/analysis/assertion-classifier.js.map +1 -1
  100. package/dist/src/planner/analysis/assertion-hoist-cache.d.ts.map +1 -1
  101. package/dist/src/planner/analysis/assertion-hoist-cache.js +5 -0
  102. package/dist/src/planner/analysis/assertion-hoist-cache.js.map +1 -1
  103. package/dist/src/planner/analysis/change-scope.d.ts +11 -3
  104. package/dist/src/planner/analysis/change-scope.d.ts.map +1 -1
  105. package/dist/src/planner/analysis/change-scope.js +5 -4
  106. package/dist/src/planner/analysis/change-scope.js.map +1 -1
  107. package/dist/src/planner/analysis/check-extraction.d.ts.map +1 -1
  108. package/dist/src/planner/analysis/check-extraction.js +37 -4
  109. package/dist/src/planner/analysis/check-extraction.js.map +1 -1
  110. package/dist/src/planner/analysis/comparison-collation.d.ts +20 -22
  111. package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
  112. package/dist/src/planner/analysis/comparison-collation.js +29 -26
  113. package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
  114. package/dist/src/planner/analysis/constraint-extractor.d.ts +0 -7
  115. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  116. package/dist/src/planner/analysis/constraint-extractor.js +59 -59
  117. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  118. package/dist/src/planner/analysis/coverage-prover.d.ts.map +1 -1
  119. package/dist/src/planner/analysis/coverage-prover.js +13 -5
  120. package/dist/src/planner/analysis/coverage-prover.js.map +1 -1
  121. package/dist/src/planner/analysis/equi-correlation.d.ts +6 -1
  122. package/dist/src/planner/analysis/equi-correlation.d.ts.map +1 -1
  123. package/dist/src/planner/analysis/equi-correlation.js +8 -1
  124. package/dist/src/planner/analysis/equi-correlation.js.map +1 -1
  125. package/dist/src/planner/analysis/predicate-dependencies.d.ts +34 -0
  126. package/dist/src/planner/analysis/predicate-dependencies.d.ts.map +1 -0
  127. package/dist/src/planner/analysis/predicate-dependencies.js +60 -0
  128. package/dist/src/planner/analysis/predicate-dependencies.js.map +1 -0
  129. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts +1 -1
  130. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
  131. package/dist/src/planner/analysis/query-rewrite-matcher.js +0 -26
  132. package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -1
  133. package/dist/src/planner/building/alter-table.d.ts.map +1 -1
  134. package/dist/src/planner/building/alter-table.js +117 -43
  135. package/dist/src/planner/building/alter-table.js.map +1 -1
  136. package/dist/src/planner/building/coercion.d.ts +21 -45
  137. package/dist/src/planner/building/coercion.d.ts.map +1 -1
  138. package/dist/src/planner/building/coercion.js +42 -91
  139. package/dist/src/planner/building/coercion.js.map +1 -1
  140. package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
  141. package/dist/src/planner/building/constraint-builder.js +9 -5
  142. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  143. package/dist/src/planner/building/create-assertion.d.ts.map +1 -1
  144. package/dist/src/planner/building/create-assertion.js +72 -1
  145. package/dist/src/planner/building/create-assertion.js.map +1 -1
  146. package/dist/src/planner/building/create-view.d.ts +6 -1
  147. package/dist/src/planner/building/create-view.d.ts.map +1 -1
  148. package/dist/src/planner/building/create-view.js +12 -3
  149. package/dist/src/planner/building/create-view.js.map +1 -1
  150. package/dist/src/planner/building/ddl.d.ts.map +1 -1
  151. package/dist/src/planner/building/ddl.js +6 -2
  152. package/dist/src/planner/building/ddl.js.map +1 -1
  153. package/dist/src/planner/building/delete.d.ts.map +1 -1
  154. package/dist/src/planner/building/delete.js +23 -10
  155. package/dist/src/planner/building/delete.js.map +1 -1
  156. package/dist/src/planner/building/dml-target.d.ts.map +1 -1
  157. package/dist/src/planner/building/dml-target.js +4 -0
  158. package/dist/src/planner/building/dml-target.js.map +1 -1
  159. package/dist/src/planner/building/drop-assertion.d.ts.map +1 -1
  160. package/dist/src/planner/building/drop-assertion.js +3 -1
  161. package/dist/src/planner/building/drop-assertion.js.map +1 -1
  162. package/dist/src/planner/building/expression.d.ts +17 -0
  163. package/dist/src/planner/building/expression.d.ts.map +1 -1
  164. package/dist/src/planner/building/expression.js +28 -17
  165. package/dist/src/planner/building/expression.js.map +1 -1
  166. package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
  167. package/dist/src/planner/building/foreign-key-builder.js +7 -5
  168. package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
  169. package/dist/src/planner/building/function-call.d.ts +35 -0
  170. package/dist/src/planner/building/function-call.d.ts.map +1 -1
  171. package/dist/src/planner/building/function-call.js +60 -42
  172. package/dist/src/planner/building/function-call.js.map +1 -1
  173. package/dist/src/planner/building/insert.d.ts.map +1 -1
  174. package/dist/src/planner/building/insert.js +185 -48
  175. package/dist/src/planner/building/insert.js.map +1 -1
  176. package/dist/src/planner/building/materialized-view.d.ts.map +1 -1
  177. package/dist/src/planner/building/materialized-view.js +3 -1
  178. package/dist/src/planner/building/materialized-view.js.map +1 -1
  179. package/dist/src/planner/building/schema-authored-context.d.ts +69 -0
  180. package/dist/src/planner/building/schema-authored-context.d.ts.map +1 -0
  181. package/dist/src/planner/building/schema-authored-context.js +75 -0
  182. package/dist/src/planner/building/schema-authored-context.js.map +1 -0
  183. package/dist/src/planner/building/schema-resolution.d.ts.map +1 -1
  184. package/dist/src/planner/building/schema-resolution.js +7 -4
  185. package/dist/src/planner/building/schema-resolution.js.map +1 -1
  186. package/dist/src/planner/building/select-aggregates.d.ts +188 -3
  187. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  188. package/dist/src/planner/building/select-aggregates.js +449 -65
  189. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  190. package/dist/src/planner/building/select-compound.js +2 -2
  191. package/dist/src/planner/building/select-compound.js.map +1 -1
  192. package/dist/src/planner/building/select-context.d.ts +98 -0
  193. package/dist/src/planner/building/select-context.d.ts.map +1 -1
  194. package/dist/src/planner/building/select-context.js +120 -37
  195. package/dist/src/planner/building/select-context.js.map +1 -1
  196. package/dist/src/planner/building/select-modifiers.d.ts +10 -3
  197. package/dist/src/planner/building/select-modifiers.d.ts.map +1 -1
  198. package/dist/src/planner/building/select-modifiers.js +29 -8
  199. package/dist/src/planner/building/select-modifiers.js.map +1 -1
  200. package/dist/src/planner/building/select-ordinal.d.ts +64 -19
  201. package/dist/src/planner/building/select-ordinal.d.ts.map +1 -1
  202. package/dist/src/planner/building/select-ordinal.js +79 -30
  203. package/dist/src/planner/building/select-ordinal.js.map +1 -1
  204. package/dist/src/planner/building/select-projections.d.ts +1 -1
  205. package/dist/src/planner/building/select-projections.d.ts.map +1 -1
  206. package/dist/src/planner/building/select-projections.js +18 -11
  207. package/dist/src/planner/building/select-projections.js.map +1 -1
  208. package/dist/src/planner/building/select-window.d.ts +13 -3
  209. package/dist/src/planner/building/select-window.d.ts.map +1 -1
  210. package/dist/src/planner/building/select-window.js +142 -37
  211. package/dist/src/planner/building/select-window.js.map +1 -1
  212. package/dist/src/planner/building/select.d.ts +37 -1
  213. package/dist/src/planner/building/select.d.ts.map +1 -1
  214. package/dist/src/planner/building/select.js +240 -109
  215. package/dist/src/planner/building/select.js.map +1 -1
  216. package/dist/src/planner/building/update.d.ts.map +1 -1
  217. package/dist/src/planner/building/update.js +27 -13
  218. package/dist/src/planner/building/update.js.map +1 -1
  219. package/dist/src/planner/building/view-mutation-builder.d.ts +1 -1
  220. package/dist/src/planner/building/view-mutation-builder.d.ts.map +1 -1
  221. package/dist/src/planner/building/view-mutation-builder.js +102 -8
  222. package/dist/src/planner/building/view-mutation-builder.js.map +1 -1
  223. package/dist/src/planner/building/with.d.ts.map +1 -1
  224. package/dist/src/planner/building/with.js +34 -4
  225. package/dist/src/planner/building/with.js.map +1 -1
  226. package/dist/src/planner/cache/correlation-detector.d.ts +15 -0
  227. package/dist/src/planner/cache/correlation-detector.d.ts.map +1 -1
  228. package/dist/src/planner/cache/correlation-detector.js +26 -0
  229. package/dist/src/planner/cache/correlation-detector.js.map +1 -1
  230. package/dist/src/planner/cache/materialization-advisory.d.ts +7 -0
  231. package/dist/src/planner/cache/materialization-advisory.d.ts.map +1 -1
  232. package/dist/src/planner/cache/materialization-advisory.js +12 -3
  233. package/dist/src/planner/cache/materialization-advisory.js.map +1 -1
  234. package/dist/src/planner/cost/conjunct-cost.d.ts +40 -0
  235. package/dist/src/planner/cost/conjunct-cost.d.ts.map +1 -1
  236. package/dist/src/planner/cost/conjunct-cost.js +45 -0
  237. package/dist/src/planner/cost/conjunct-cost.js.map +1 -1
  238. package/dist/src/planner/cost/index.d.ts +10 -0
  239. package/dist/src/planner/cost/index.d.ts.map +1 -1
  240. package/dist/src/planner/cost/index.js +15 -0
  241. package/dist/src/planner/cost/index.js.map +1 -1
  242. package/dist/src/planner/framework/characteristics.d.ts +9 -0
  243. package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
  244. package/dist/src/planner/framework/characteristics.js.map +1 -1
  245. package/dist/src/planner/framework/pass.d.ts +2 -0
  246. package/dist/src/planner/framework/pass.d.ts.map +1 -1
  247. package/dist/src/planner/framework/pass.js +15 -0
  248. package/dist/src/planner/framework/pass.js.map +1 -1
  249. package/dist/src/planner/mutation/backward-body.d.ts.map +1 -1
  250. package/dist/src/planner/mutation/backward-body.js +4 -1
  251. package/dist/src/planner/mutation/backward-body.js.map +1 -1
  252. package/dist/src/planner/mutation/body-context.d.ts +23 -0
  253. package/dist/src/planner/mutation/body-context.d.ts.map +1 -0
  254. package/dist/src/planner/mutation/body-context.js +26 -0
  255. package/dist/src/planner/mutation/body-context.js.map +1 -0
  256. package/dist/src/planner/mutation/cte-flatten.js +15 -2
  257. package/dist/src/planner/mutation/cte-flatten.js.map +1 -1
  258. package/dist/src/planner/mutation/decomposition.d.ts +8 -0
  259. package/dist/src/planner/mutation/decomposition.d.ts.map +1 -1
  260. package/dist/src/planner/mutation/decomposition.js +8 -3
  261. package/dist/src/planner/mutation/decomposition.js.map +1 -1
  262. package/dist/src/planner/mutation/lens-enforcement.js +1 -1
  263. package/dist/src/planner/mutation/multi-source.d.ts +7 -0
  264. package/dist/src/planner/mutation/multi-source.d.ts.map +1 -1
  265. package/dist/src/planner/mutation/multi-source.js +5 -0
  266. package/dist/src/planner/mutation/multi-source.js.map +1 -1
  267. package/dist/src/planner/mutation/mutation-diagnostic.d.ts +1 -1
  268. package/dist/src/planner/mutation/mutation-diagnostic.d.ts.map +1 -1
  269. package/dist/src/planner/mutation/mutation-diagnostic.js.map +1 -1
  270. package/dist/src/planner/mutation/scope-transform.d.ts +32 -0
  271. package/dist/src/planner/mutation/scope-transform.d.ts.map +1 -1
  272. package/dist/src/planner/mutation/scope-transform.js +181 -33
  273. package/dist/src/planner/mutation/scope-transform.js.map +1 -1
  274. package/dist/src/planner/mutation/set-op.d.ts.map +1 -1
  275. package/dist/src/planner/mutation/set-op.js +66 -16
  276. package/dist/src/planner/mutation/set-op.js.map +1 -1
  277. package/dist/src/planner/mutation/single-source.d.ts.map +1 -1
  278. package/dist/src/planner/mutation/single-source.js +100 -24
  279. package/dist/src/planner/mutation/single-source.js.map +1 -1
  280. package/dist/src/planner/nodes/add-constraint-node.d.ts +15 -1
  281. package/dist/src/planner/nodes/add-constraint-node.d.ts.map +1 -1
  282. package/dist/src/planner/nodes/add-constraint-node.js +10 -1
  283. package/dist/src/planner/nodes/add-constraint-node.js.map +1 -1
  284. package/dist/src/planner/nodes/aggregate-node.d.ts +15 -0
  285. package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
  286. package/dist/src/planner/nodes/aggregate-node.js +32 -17
  287. package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
  288. package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
  289. package/dist/src/planner/nodes/alias-node.js +2 -1
  290. package/dist/src/planner/nodes/alias-node.js.map +1 -1
  291. package/dist/src/planner/nodes/alter-table-node.d.ts +51 -10
  292. package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
  293. package/dist/src/planner/nodes/alter-table-node.js +49 -2
  294. package/dist/src/planner/nodes/alter-table-node.js.map +1 -1
  295. package/dist/src/planner/nodes/asof-scan-node.d.ts.map +1 -1
  296. package/dist/src/planner/nodes/asof-scan-node.js +4 -1
  297. package/dist/src/planner/nodes/asof-scan-node.js.map +1 -1
  298. package/dist/src/planner/nodes/asserted-keys-node.d.ts.map +1 -1
  299. package/dist/src/planner/nodes/asserted-keys-node.js +2 -1
  300. package/dist/src/planner/nodes/asserted-keys-node.js.map +1 -1
  301. package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
  302. package/dist/src/planner/nodes/bloom-join-node.js +8 -3
  303. package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
  304. package/dist/src/planner/nodes/cache-node.d.ts.map +1 -1
  305. package/dist/src/planner/nodes/cache-node.js +2 -1
  306. package/dist/src/planner/nodes/cache-node.js.map +1 -1
  307. package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -1
  308. package/dist/src/planner/nodes/constraint-check-node.js +17 -19
  309. package/dist/src/planner/nodes/constraint-check-node.js.map +1 -1
  310. package/dist/src/planner/nodes/create-assertion-node.d.ts +2 -1
  311. package/dist/src/planner/nodes/create-assertion-node.d.ts.map +1 -1
  312. package/dist/src/planner/nodes/create-assertion-node.js +5 -2
  313. package/dist/src/planner/nodes/create-assertion-node.js.map +1 -1
  314. package/dist/src/planner/nodes/cte-node.d.ts +19 -9
  315. package/dist/src/planner/nodes/cte-node.d.ts.map +1 -1
  316. package/dist/src/planner/nodes/cte-node.js +25 -9
  317. package/dist/src/planner/nodes/cte-node.js.map +1 -1
  318. package/dist/src/planner/nodes/delete-node.d.ts +20 -2
  319. package/dist/src/planner/nodes/delete-node.d.ts.map +1 -1
  320. package/dist/src/planner/nodes/delete-node.js +11 -2
  321. package/dist/src/planner/nodes/delete-node.js.map +1 -1
  322. package/dist/src/planner/nodes/distinct-node.d.ts +6 -0
  323. package/dist/src/planner/nodes/distinct-node.d.ts.map +1 -1
  324. package/dist/src/planner/nodes/distinct-node.js +10 -2
  325. package/dist/src/planner/nodes/distinct-node.js.map +1 -1
  326. package/dist/src/planner/nodes/dml-executor-node.d.ts +58 -1
  327. package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
  328. package/dist/src/planner/nodes/dml-executor-node.js +107 -15
  329. package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
  330. package/dist/src/planner/nodes/drop-assertion-node.d.ts +2 -1
  331. package/dist/src/planner/nodes/drop-assertion-node.d.ts.map +1 -1
  332. package/dist/src/planner/nodes/drop-assertion-node.js +5 -2
  333. package/dist/src/planner/nodes/drop-assertion-node.js.map +1 -1
  334. package/dist/src/planner/nodes/eager-prefetch-node.d.ts.map +1 -1
  335. package/dist/src/planner/nodes/eager-prefetch-node.js +2 -1
  336. package/dist/src/planner/nodes/eager-prefetch-node.js.map +1 -1
  337. package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts +5 -0
  338. package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts.map +1 -1
  339. package/dist/src/planner/nodes/fanout-lookup-join-node.js +13 -6
  340. package/dist/src/planner/nodes/fanout-lookup-join-node.js.map +1 -1
  341. package/dist/src/planner/nodes/filter.d.ts.map +1 -1
  342. package/dist/src/planner/nodes/filter.js +18 -5
  343. package/dist/src/planner/nodes/filter.js.map +1 -1
  344. package/dist/src/planner/nodes/hash-aggregate.d.ts +1 -0
  345. package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
  346. package/dist/src/planner/nodes/hash-aggregate.js +21 -16
  347. package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
  348. package/dist/src/planner/nodes/insert-node.d.ts +19 -2
  349. package/dist/src/planner/nodes/insert-node.d.ts.map +1 -1
  350. package/dist/src/planner/nodes/insert-node.js +10 -2
  351. package/dist/src/planner/nodes/insert-node.js.map +1 -1
  352. package/dist/src/planner/nodes/join-node.d.ts +20 -1
  353. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  354. package/dist/src/planner/nodes/join-node.js +30 -9
  355. package/dist/src/planner/nodes/join-node.js.map +1 -1
  356. package/dist/src/planner/nodes/join-utils.d.ts +21 -0
  357. package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
  358. package/dist/src/planner/nodes/join-utils.js +26 -0
  359. package/dist/src/planner/nodes/join-utils.js.map +1 -1
  360. package/dist/src/planner/nodes/key-set-semi-join-node.d.ts +42 -10
  361. package/dist/src/planner/nodes/key-set-semi-join-node.d.ts.map +1 -1
  362. package/dist/src/planner/nodes/key-set-semi-join-node.js +90 -17
  363. package/dist/src/planner/nodes/key-set-semi-join-node.js.map +1 -1
  364. package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts +5 -0
  365. package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts.map +1 -1
  366. package/dist/src/planner/nodes/lens-auxiliary-access-node.js +2 -1
  367. package/dist/src/planner/nodes/lens-auxiliary-access-node.js.map +1 -1
  368. package/dist/src/planner/nodes/limit-offset.d.ts +6 -0
  369. package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
  370. package/dist/src/planner/nodes/limit-offset.js +10 -2
  371. package/dist/src/planner/nodes/limit-offset.js.map +1 -1
  372. package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
  373. package/dist/src/planner/nodes/merge-join-node.js +8 -3
  374. package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
  375. package/dist/src/planner/nodes/ordinal-slice-node.d.ts +5 -0
  376. package/dist/src/planner/nodes/ordinal-slice-node.d.ts.map +1 -1
  377. package/dist/src/planner/nodes/ordinal-slice-node.js +9 -2
  378. package/dist/src/planner/nodes/ordinal-slice-node.js.map +1 -1
  379. package/dist/src/planner/nodes/plan-node.d.ts +29 -0
  380. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  381. package/dist/src/planner/nodes/plan-node.js +12 -0
  382. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  383. package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
  384. package/dist/src/planner/nodes/project-node.js +18 -36
  385. package/dist/src/planner/nodes/project-node.js.map +1 -1
  386. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  387. package/dist/src/planner/nodes/reference.js +3 -2
  388. package/dist/src/planner/nodes/reference.js.map +1 -1
  389. package/dist/src/planner/nodes/retrieve-node.d.ts +16 -2
  390. package/dist/src/planner/nodes/retrieve-node.d.ts.map +1 -1
  391. package/dist/src/planner/nodes/retrieve-node.js +10 -2
  392. package/dist/src/planner/nodes/retrieve-node.js.map +1 -1
  393. package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
  394. package/dist/src/planner/nodes/returning-node.js +13 -32
  395. package/dist/src/planner/nodes/returning-node.js.map +1 -1
  396. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  397. package/dist/src/planner/nodes/scalar.js +5 -18
  398. package/dist/src/planner/nodes/scalar.js.map +1 -1
  399. package/dist/src/planner/nodes/sort.d.ts.map +1 -1
  400. package/dist/src/planner/nodes/sort.js +3 -1
  401. package/dist/src/planner/nodes/sort.js.map +1 -1
  402. package/dist/src/planner/nodes/stream-aggregate.d.ts +1 -0
  403. package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
  404. package/dist/src/planner/nodes/stream-aggregate.js +22 -20
  405. package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
  406. package/dist/src/planner/nodes/table-access-nodes.d.ts +89 -1
  407. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
  408. package/dist/src/planner/nodes/table-access-nodes.js +69 -2
  409. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  410. package/dist/src/planner/nodes/update-node.d.ts +19 -2
  411. package/dist/src/planner/nodes/update-node.d.ts.map +1 -1
  412. package/dist/src/planner/nodes/update-node.js +10 -2
  413. package/dist/src/planner/nodes/update-node.js.map +1 -1
  414. package/dist/src/planner/nodes/window-function.d.ts.map +1 -1
  415. package/dist/src/planner/nodes/window-function.js +8 -0
  416. package/dist/src/planner/nodes/window-function.js.map +1 -1
  417. package/dist/src/planner/nodes/window-node.d.ts +1 -1
  418. package/dist/src/planner/nodes/window-node.d.ts.map +1 -1
  419. package/dist/src/planner/nodes/window-node.js +3 -1
  420. package/dist/src/planner/nodes/window-node.js.map +1 -1
  421. package/dist/src/planner/optimizer.d.ts +27 -1
  422. package/dist/src/planner/optimizer.d.ts.map +1 -1
  423. package/dist/src/planner/optimizer.js +130 -10
  424. package/dist/src/planner/optimizer.js.map +1 -1
  425. package/dist/src/planner/planning-context.d.ts +24 -0
  426. package/dist/src/planner/planning-context.d.ts.map +1 -1
  427. package/dist/src/planner/planning-context.js.map +1 -1
  428. package/dist/src/planner/rules/access/rule-key-set-seek.d.ts +78 -20
  429. package/dist/src/planner/rules/access/rule-key-set-seek.d.ts.map +1 -1
  430. package/dist/src/planner/rules/access/rule-key-set-seek.js +296 -135
  431. package/dist/src/planner/rules/access/rule-key-set-seek.js.map +1 -1
  432. package/dist/src/planner/rules/access/rule-monotonic-range-access.d.ts.map +1 -1
  433. package/dist/src/planner/rules/access/rule-monotonic-range-access.js +2 -2
  434. package/dist/src/planner/rules/access/rule-monotonic-range-access.js.map +1 -1
  435. package/dist/src/planner/rules/access/rule-select-access-path.d.ts +30 -1
  436. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  437. package/dist/src/planner/rules/access/rule-select-access-path.js +70 -5
  438. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  439. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts +7 -4
  440. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts.map +1 -1
  441. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js +39 -5
  442. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js.map +1 -1
  443. package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts.map +1 -1
  444. package/dist/src/planner/rules/cache/rule-cte-optimization.js +15 -2
  445. package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +1 -1
  446. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +10 -3
  447. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js.map +1 -1
  448. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts.map +1 -1
  449. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js +6 -4
  450. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js.map +1 -1
  451. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts +5 -31
  452. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts.map +1 -1
  453. package/dist/src/planner/rules/join/equi-pair-extractor.js +4 -44
  454. package/dist/src/planner/rules/join/equi-pair-extractor.js.map +1 -1
  455. package/dist/src/planner/rules/join/index-nested-loop.d.ts +49 -0
  456. package/dist/src/planner/rules/join/index-nested-loop.d.ts.map +1 -0
  457. package/dist/src/planner/rules/join/index-nested-loop.js +291 -0
  458. package/dist/src/planner/rules/join/index-nested-loop.js.map +1 -0
  459. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +8 -8
  460. package/dist/src/planner/rules/join/rule-fanout-lookup-join.d.ts +4 -0
  461. package/dist/src/planner/rules/join/rule-fanout-lookup-join.d.ts.map +1 -1
  462. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +50 -15
  463. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -1
  464. package/dist/src/planner/rules/join/rule-join-elimination.d.ts +6 -0
  465. package/dist/src/planner/rules/join/rule-join-elimination.d.ts.map +1 -1
  466. package/dist/src/planner/rules/join/rule-join-elimination.js +25 -9
  467. package/dist/src/planner/rules/join/rule-join-elimination.js.map +1 -1
  468. package/dist/src/planner/rules/join/rule-join-key-inference.d.ts +7 -0
  469. package/dist/src/planner/rules/join/rule-join-key-inference.d.ts.map +1 -1
  470. package/dist/src/planner/rules/join/rule-join-key-inference.js +23 -11
  471. package/dist/src/planner/rules/join/rule-join-key-inference.js.map +1 -1
  472. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts +10 -4
  473. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
  474. package/dist/src/planner/rules/join/rule-join-physical-selection.js +115 -29
  475. package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
  476. package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts +2 -0
  477. package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts.map +1 -1
  478. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +18 -4
  479. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js.map +1 -1
  480. package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.d.ts +2 -2
  481. package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.d.ts.map +1 -1
  482. package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js +19 -22
  483. package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js.map +1 -1
  484. package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.d.ts +21 -8
  485. package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.d.ts.map +1 -1
  486. package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.js +70 -14
  487. package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.js.map +1 -1
  488. package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts +56 -17
  489. package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts.map +1 -1
  490. package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +103 -154
  491. package/dist/src/planner/rules/predicate/rule-filter-selectivity.js.map +1 -1
  492. package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.d.ts +76 -0
  493. package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.d.ts.map +1 -0
  494. package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.js +208 -0
  495. package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.js.map +1 -0
  496. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.d.ts +14 -11
  497. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.d.ts.map +1 -1
  498. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js +21 -85
  499. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js.map +1 -1
  500. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts +7 -1
  501. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts.map +1 -1
  502. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js +18 -22
  503. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
  504. package/dist/src/planner/rules/shared/access-leaf.d.ts +52 -0
  505. package/dist/src/planner/rules/shared/access-leaf.d.ts.map +1 -0
  506. package/dist/src/planner/rules/shared/access-leaf.js +95 -0
  507. package/dist/src/planner/rules/shared/access-leaf.js.map +1 -0
  508. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.d.ts.map +1 -1
  509. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js +17 -7
  510. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js.map +1 -1
  511. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.d.ts +3 -1
  512. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.d.ts.map +1 -1
  513. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js +26 -9
  514. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js.map +1 -1
  515. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
  516. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +69 -11
  517. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
  518. package/dist/src/planner/rules/window/rule-monotonic-window.d.ts +17 -7
  519. package/dist/src/planner/rules/window/rule-monotonic-window.d.ts.map +1 -1
  520. package/dist/src/planner/rules/window/rule-monotonic-window.js +124 -87
  521. package/dist/src/planner/rules/window/rule-monotonic-window.js.map +1 -1
  522. package/dist/src/planner/scopes/aliased.d.ts.map +1 -1
  523. package/dist/src/planner/scopes/aliased.js +6 -0
  524. package/dist/src/planner/scopes/aliased.js.map +1 -1
  525. package/dist/src/planner/stats/catalog-stats.d.ts +44 -13
  526. package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -1
  527. package/dist/src/planner/stats/catalog-stats.js +137 -61
  528. package/dist/src/planner/stats/catalog-stats.js.map +1 -1
  529. package/dist/src/planner/stats/conjunct-selectivity.d.ts +48 -0
  530. package/dist/src/planner/stats/conjunct-selectivity.d.ts.map +1 -0
  531. package/dist/src/planner/stats/conjunct-selectivity.js +168 -0
  532. package/dist/src/planner/stats/conjunct-selectivity.js.map +1 -0
  533. package/dist/src/planner/stats/index.d.ts +22 -3
  534. package/dist/src/planner/stats/index.d.ts.map +1 -1
  535. package/dist/src/planner/stats/index.js.map +1 -1
  536. package/dist/src/planner/stats/table-cardinality.d.ts +28 -0
  537. package/dist/src/planner/stats/table-cardinality.d.ts.map +1 -0
  538. package/dist/src/planner/stats/table-cardinality.js +29 -0
  539. package/dist/src/planner/stats/table-cardinality.js.map +1 -0
  540. package/dist/src/planner/stored-body-context.d.ts +57 -0
  541. package/dist/src/planner/stored-body-context.d.ts.map +1 -0
  542. package/dist/src/planner/stored-body-context.js +64 -0
  543. package/dist/src/planner/stored-body-context.js.map +1 -0
  544. package/dist/src/planner/util/column-origins.d.ts +29 -8
  545. package/dist/src/planner/util/column-origins.d.ts.map +1 -1
  546. package/dist/src/planner/util/column-origins.js +74 -14
  547. package/dist/src/planner/util/column-origins.js.map +1 -1
  548. package/dist/src/planner/util/fd-utils.d.ts +32 -8
  549. package/dist/src/planner/util/fd-utils.d.ts.map +1 -1
  550. package/dist/src/planner/util/fd-utils.js +46 -9
  551. package/dist/src/planner/util/fd-utils.js.map +1 -1
  552. package/dist/src/planner/util/ind-utils.d.ts +66 -19
  553. package/dist/src/planner/util/ind-utils.d.ts.map +1 -1
  554. package/dist/src/planner/util/ind-utils.js +91 -21
  555. package/dist/src/planner/util/ind-utils.js.map +1 -1
  556. package/dist/src/planner/util/key-utils.d.ts +36 -3
  557. package/dist/src/planner/util/key-utils.d.ts.map +1 -1
  558. package/dist/src/planner/util/key-utils.js +57 -7
  559. package/dist/src/planner/util/key-utils.js.map +1 -1
  560. package/dist/src/planner/util/output-names.d.ts +12 -0
  561. package/dist/src/planner/util/output-names.d.ts.map +1 -0
  562. package/dist/src/planner/util/output-names.js +20 -0
  563. package/dist/src/planner/util/output-names.js.map +1 -0
  564. package/dist/src/planner/util/row-estimates.d.ts +39 -0
  565. package/dist/src/planner/util/row-estimates.d.ts.map +1 -0
  566. package/dist/src/planner/util/row-estimates.js +68 -0
  567. package/dist/src/planner/util/row-estimates.js.map +1 -0
  568. package/dist/src/planner/util/row-population.d.ts +42 -0
  569. package/dist/src/planner/util/row-population.d.ts.map +1 -0
  570. package/dist/src/planner/util/row-population.js +71 -0
  571. package/dist/src/planner/util/row-population.js.map +1 -0
  572. package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
  573. package/dist/src/runtime/deferred-constraint-queue.js +3 -2
  574. package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
  575. package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
  576. package/dist/src/runtime/emit/add-constraint.js +60 -6
  577. package/dist/src/runtime/emit/add-constraint.js.map +1 -1
  578. package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
  579. package/dist/src/runtime/emit/aggregate.js +4 -4
  580. package/dist/src/runtime/emit/aggregate.js.map +1 -1
  581. package/dist/src/runtime/emit/alter-schema-event.d.ts +97 -0
  582. package/dist/src/runtime/emit/alter-schema-event.d.ts.map +1 -0
  583. package/dist/src/runtime/emit/alter-schema-event.js +87 -0
  584. package/dist/src/runtime/emit/alter-schema-event.js.map +1 -0
  585. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  586. package/dist/src/runtime/emit/alter-table.js +582 -236
  587. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  588. package/dist/src/runtime/emit/analyze.d.ts.map +1 -1
  589. package/dist/src/runtime/emit/analyze.js +50 -7
  590. package/dist/src/runtime/emit/analyze.js.map +1 -1
  591. package/dist/src/runtime/emit/assertion-drop-guard.d.ts +37 -0
  592. package/dist/src/runtime/emit/assertion-drop-guard.d.ts.map +1 -0
  593. package/dist/src/runtime/emit/assertion-drop-guard.js +59 -0
  594. package/dist/src/runtime/emit/assertion-drop-guard.js.map +1 -0
  595. package/dist/src/runtime/emit/assertion-rename-helpers.d.ts +33 -0
  596. package/dist/src/runtime/emit/assertion-rename-helpers.d.ts.map +1 -0
  597. package/dist/src/runtime/emit/assertion-rename-helpers.js +124 -0
  598. package/dist/src/runtime/emit/assertion-rename-helpers.js.map +1 -0
  599. package/dist/src/runtime/emit/cast.d.ts.map +1 -1
  600. package/dist/src/runtime/emit/cast.js +4 -19
  601. package/dist/src/runtime/emit/cast.js.map +1 -1
  602. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  603. package/dist/src/runtime/emit/constraint-check.js +10 -227
  604. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  605. package/dist/src/runtime/emit/create-assertion.d.ts.map +1 -1
  606. package/dist/src/runtime/emit/create-assertion.js +31 -14
  607. package/dist/src/runtime/emit/create-assertion.js.map +1 -1
  608. package/dist/src/runtime/emit/cte.d.ts.map +1 -1
  609. package/dist/src/runtime/emit/cte.js +11 -6
  610. package/dist/src/runtime/emit/cte.js.map +1 -1
  611. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  612. package/dist/src/runtime/emit/dml-executor.js +233 -28
  613. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  614. package/dist/src/runtime/emit/drop-assertion.js +8 -8
  615. package/dist/src/runtime/emit/drop-assertion.js.map +1 -1
  616. package/dist/src/runtime/emit/drop-column-guards.d.ts +151 -0
  617. package/dist/src/runtime/emit/drop-column-guards.d.ts.map +1 -0
  618. package/dist/src/runtime/emit/drop-column-guards.js +230 -0
  619. package/dist/src/runtime/emit/drop-column-guards.js.map +1 -0
  620. package/dist/src/runtime/emit/drop-index.d.ts.map +1 -1
  621. package/dist/src/runtime/emit/drop-index.js +4 -3
  622. package/dist/src/runtime/emit/drop-index.js.map +1 -1
  623. package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
  624. package/dist/src/runtime/emit/drop-table.js +6 -0
  625. package/dist/src/runtime/emit/drop-table.js.map +1 -1
  626. package/dist/src/runtime/emit/drop-view.d.ts.map +1 -1
  627. package/dist/src/runtime/emit/drop-view.js +4 -0
  628. package/dist/src/runtime/emit/drop-view.js.map +1 -1
  629. package/dist/src/runtime/emit/hash-aggregate.d.ts.map +1 -1
  630. package/dist/src/runtime/emit/hash-aggregate.js +2 -2
  631. package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
  632. package/dist/src/runtime/emit/join.d.ts.map +1 -1
  633. package/dist/src/runtime/emit/join.js +8 -67
  634. package/dist/src/runtime/emit/join.js.map +1 -1
  635. package/dist/src/runtime/emit/key-set-semi-join.d.ts.map +1 -1
  636. package/dist/src/runtime/emit/key-set-semi-join.js +11 -3
  637. package/dist/src/runtime/emit/key-set-semi-join.js.map +1 -1
  638. package/dist/src/runtime/emit/materialized-view-helpers.d.ts +4 -4
  639. package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
  640. package/dist/src/runtime/emit/materialized-view-helpers.js +34 -22
  641. package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
  642. package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
  643. package/dist/src/runtime/emit/materialized-view.js +7 -2
  644. package/dist/src/runtime/emit/materialized-view.js.map +1 -1
  645. package/dist/src/runtime/emit/operand-comparator.d.ts +30 -0
  646. package/dist/src/runtime/emit/operand-comparator.d.ts.map +1 -1
  647. package/dist/src/runtime/emit/operand-comparator.js +34 -0
  648. package/dist/src/runtime/emit/operand-comparator.js.map +1 -1
  649. package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
  650. package/dist/src/runtime/emit/recursive-cte.js +4 -5
  651. package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
  652. package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
  653. package/dist/src/runtime/emit/schema-declarative.js +30 -0
  654. package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
  655. package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
  656. package/dist/src/runtime/emit/subquery.js +153 -52
  657. package/dist/src/runtime/emit/subquery.js.map +1 -1
  658. package/dist/src/runtime/emit/update.d.ts.map +1 -1
  659. package/dist/src/runtime/emit/update.js +18 -6
  660. package/dist/src/runtime/emit/update.js.map +1 -1
  661. package/dist/src/runtime/emit/window.js +36 -23
  662. package/dist/src/runtime/emit/window.js.map +1 -1
  663. package/dist/src/runtime/row-constraints.d.ts +85 -0
  664. package/dist/src/runtime/row-constraints.d.ts.map +1 -0
  665. package/dist/src/runtime/row-constraints.js +239 -0
  666. package/dist/src/runtime/row-constraints.js.map +1 -0
  667. package/dist/src/runtime/types.d.ts +8 -11
  668. package/dist/src/runtime/types.d.ts.map +1 -1
  669. package/dist/src/runtime/types.js.map +1 -1
  670. package/dist/src/schema/assertion.d.ts +14 -1
  671. package/dist/src/schema/assertion.d.ts.map +1 -1
  672. package/dist/src/schema/assertion.js +14 -1
  673. package/dist/src/schema/assertion.js.map +1 -1
  674. package/dist/src/schema/catalog-persistability.d.ts +19 -16
  675. package/dist/src/schema/catalog-persistability.d.ts.map +1 -1
  676. package/dist/src/schema/catalog-persistability.js +92 -20
  677. package/dist/src/schema/catalog-persistability.js.map +1 -1
  678. package/dist/src/schema/catalog.d.ts +73 -2
  679. package/dist/src/schema/catalog.d.ts.map +1 -1
  680. package/dist/src/schema/catalog.js +220 -39
  681. package/dist/src/schema/catalog.js.map +1 -1
  682. package/dist/src/schema/column-source-resolver.d.ts +18 -0
  683. package/dist/src/schema/column-source-resolver.d.ts.map +1 -0
  684. package/dist/src/schema/column-source-resolver.js +22 -0
  685. package/dist/src/schema/column-source-resolver.js.map +1 -0
  686. package/dist/src/schema/column.d.ts +26 -3
  687. package/dist/src/schema/column.d.ts.map +1 -1
  688. package/dist/src/schema/column.js.map +1 -1
  689. package/dist/src/schema/constraint-builder.d.ts.map +1 -1
  690. package/dist/src/schema/constraint-builder.js +7 -1
  691. package/dist/src/schema/constraint-builder.js.map +1 -1
  692. package/dist/src/schema/ddl-generator.d.ts.map +1 -1
  693. package/dist/src/schema/ddl-generator.js +27 -6
  694. package/dist/src/schema/ddl-generator.js.map +1 -1
  695. package/dist/src/schema/function.d.ts +32 -1
  696. package/dist/src/schema/function.d.ts.map +1 -1
  697. package/dist/src/schema/function.js +10 -2
  698. package/dist/src/schema/function.js.map +1 -1
  699. package/dist/src/schema/lens-compiler.d.ts.map +1 -1
  700. package/dist/src/schema/lens-compiler.js +203 -51
  701. package/dist/src/schema/lens-compiler.js.map +1 -1
  702. package/dist/src/schema/lens-prover.d.ts +2 -3
  703. package/dist/src/schema/lens-prover.d.ts.map +1 -1
  704. package/dist/src/schema/lens-prover.js +19 -11
  705. package/dist/src/schema/lens-prover.js.map +1 -1
  706. package/dist/src/schema/manager.d.ts +115 -20
  707. package/dist/src/schema/manager.d.ts.map +1 -1
  708. package/dist/src/schema/manager.js +202 -70
  709. package/dist/src/schema/manager.js.map +1 -1
  710. package/dist/src/schema/rename-rewriter.d.ts +142 -0
  711. package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
  712. package/dist/src/schema/rename-rewriter.js +254 -9
  713. package/dist/src/schema/rename-rewriter.js.map +1 -1
  714. package/dist/src/schema/reserved-tags.d.ts +1 -1
  715. package/dist/src/schema/reserved-tags.d.ts.map +1 -1
  716. package/dist/src/schema/reserved-tags.js +4 -3
  717. package/dist/src/schema/reserved-tags.js.map +1 -1
  718. package/dist/src/schema/schema-differ.d.ts +16 -0
  719. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  720. package/dist/src/schema/schema-differ.js +225 -38
  721. package/dist/src/schema/schema-differ.js.map +1 -1
  722. package/dist/src/schema/table.d.ts +149 -1
  723. package/dist/src/schema/table.d.ts.map +1 -1
  724. package/dist/src/schema/table.js +248 -1
  725. package/dist/src/schema/table.js.map +1 -1
  726. package/dist/src/schema/unique-enforcement.d.ts +5 -3
  727. package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
  728. package/dist/src/schema/unique-enforcement.js +5 -3
  729. package/dist/src/schema/unique-enforcement.js.map +1 -1
  730. package/dist/src/schema/view.d.ts +11 -0
  731. package/dist/src/schema/view.d.ts.map +1 -1
  732. package/dist/src/schema/view.js +12 -0
  733. package/dist/src/schema/view.js.map +1 -1
  734. package/dist/src/types/builtin-types.d.ts +54 -0
  735. package/dist/src/types/builtin-types.d.ts.map +1 -1
  736. package/dist/src/types/builtin-types.js +123 -34
  737. package/dist/src/types/builtin-types.js.map +1 -1
  738. package/dist/src/types/cast-semantics.d.ts +42 -0
  739. package/dist/src/types/cast-semantics.d.ts.map +1 -1
  740. package/dist/src/types/cast-semantics.js +64 -0
  741. package/dist/src/types/cast-semantics.js.map +1 -1
  742. package/dist/src/types/comparison-coercion.d.ts +101 -0
  743. package/dist/src/types/comparison-coercion.d.ts.map +1 -0
  744. package/dist/src/types/comparison-coercion.js +162 -0
  745. package/dist/src/types/comparison-coercion.js.map +1 -0
  746. package/dist/src/types/index.d.ts +2 -2
  747. package/dist/src/types/index.d.ts.map +1 -1
  748. package/dist/src/types/index.js +2 -2
  749. package/dist/src/types/index.js.map +1 -1
  750. package/dist/src/types/logical-type.d.ts +7 -0
  751. package/dist/src/types/logical-type.d.ts.map +1 -1
  752. package/dist/src/types/logical-type.js.map +1 -1
  753. package/dist/src/types/validation.d.ts +56 -0
  754. package/dist/src/types/validation.d.ts.map +1 -1
  755. package/dist/src/types/validation.js +68 -0
  756. package/dist/src/types/validation.js.map +1 -1
  757. package/dist/src/util/{working-table-iterable.d.ts → array-row-iterable.d.ts} +6 -6
  758. package/dist/src/util/array-row-iterable.d.ts.map +1 -0
  759. package/dist/src/util/{working-table-iterable.js → array-row-iterable.js} +6 -6
  760. package/dist/src/util/array-row-iterable.js.map +1 -0
  761. package/dist/src/util/coercion.d.ts +8 -0
  762. package/dist/src/util/coercion.d.ts.map +1 -1
  763. package/dist/src/util/coercion.js +8 -0
  764. package/dist/src/util/coercion.js.map +1 -1
  765. package/dist/src/util/comparison.d.ts +16 -3
  766. package/dist/src/util/comparison.d.ts.map +1 -1
  767. package/dist/src/util/comparison.js +21 -5
  768. package/dist/src/util/comparison.js.map +1 -1
  769. package/dist/src/util/key-serializer.d.ts +46 -0
  770. package/dist/src/util/key-serializer.d.ts.map +1 -1
  771. package/dist/src/util/key-serializer.js +47 -0
  772. package/dist/src/util/key-serializer.js.map +1 -1
  773. package/dist/src/util/value-set.d.ts +21 -0
  774. package/dist/src/util/value-set.d.ts.map +1 -0
  775. package/dist/src/util/value-set.js +22 -0
  776. package/dist/src/util/value-set.js.map +1 -0
  777. package/dist/src/vtab/capabilities.d.ts +1 -1
  778. package/dist/src/vtab/events.d.ts +8 -1
  779. package/dist/src/vtab/events.d.ts.map +1 -1
  780. package/dist/src/vtab/events.js.map +1 -1
  781. package/dist/src/vtab/manifest.d.ts +15 -0
  782. package/dist/src/vtab/manifest.d.ts.map +1 -1
  783. package/dist/src/vtab/memory/layer/alter-column.d.ts +147 -0
  784. package/dist/src/vtab/memory/layer/alter-column.d.ts.map +1 -0
  785. package/dist/src/vtab/memory/layer/alter-column.js +214 -0
  786. package/dist/src/vtab/memory/layer/alter-column.js.map +1 -0
  787. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  788. package/dist/src/vtab/memory/layer/base.js +4 -3
  789. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  790. package/dist/src/vtab/memory/layer/interface.d.ts +2 -2
  791. package/dist/src/vtab/memory/layer/interface.d.ts.map +1 -1
  792. package/dist/src/vtab/memory/layer/manager.d.ts +176 -25
  793. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  794. package/dist/src/vtab/memory/layer/manager.js +569 -558
  795. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  796. package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
  797. package/dist/src/vtab/memory/layer/scan-layer.js +32 -5
  798. package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
  799. package/dist/src/vtab/memory/layer/transaction.d.ts +101 -15
  800. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  801. package/dist/src/vtab/memory/layer/transaction.js +133 -45
  802. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  803. package/dist/src/vtab/memory/module.d.ts +16 -1
  804. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  805. package/dist/src/vtab/memory/module.js +64 -3
  806. package/dist/src/vtab/memory/module.js.map +1 -1
  807. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  808. package/dist/src/vtab/memory/table.js +11 -6
  809. package/dist/src/vtab/memory/table.js.map +1 -1
  810. package/dist/src/vtab/module.d.ts +77 -23
  811. package/dist/src/vtab/module.d.ts.map +1 -1
  812. package/dist/src/vtab/table.d.ts +9 -2
  813. package/dist/src/vtab/table.d.ts.map +1 -1
  814. package/dist/src/vtab/table.js +1 -1
  815. package/dist/src/vtab/table.js.map +1 -1
  816. package/package.json +3 -3
  817. package/dist/src/util/working-table-iterable.d.ts.map +0 -1
  818. package/dist/src/util/working-table-iterable.js.map +0 -1
@@ -86,7 +86,7 @@ function leafWithRangeBound(leaf, rb) {
86
86
  return new IndexScanNode(leaf.scope, leaf.source, leaf.filterInfo, leaf.indexName, leaf.providesOrdering, undefined, leaf.advertisement, rb, leaf.suppressMonotonic, leaf.orderingLoadBearing);
87
87
  }
88
88
  // IndexSeekNode
89
- return new IndexSeekNode(leaf.scope, leaf.source, leaf.filterInfo, leaf.indexName, leaf.seekKeys, leaf.isRange, leaf.providesOrdering, undefined, leaf.advertisement, rb, leaf.suppressMonotonic);
89
+ return new IndexSeekNode(leaf.scope, leaf.source, leaf.filterInfo, leaf.indexName, leaf.seekKeys, leaf.isRange, leaf.providesOrdering, undefined, leaf.advertisement, rb, leaf.suppressMonotonic, leaf.orderingLoadBearing, leaf.pushedConstraints);
90
90
  }
91
91
  /** Clone a leaf, suppressing the lifted `monotonicOn` advertisement. */
92
92
  function leafWithMonotonicSuppressed(leaf) {
@@ -96,7 +96,7 @@ function leafWithMonotonicSuppressed(leaf) {
96
96
  if (leaf instanceof IndexScanNode) {
97
97
  return new IndexScanNode(leaf.scope, leaf.source, leaf.filterInfo, leaf.indexName, leaf.providesOrdering, undefined, leaf.advertisement, leaf.rangeBoundedOn, true, leaf.orderingLoadBearing);
98
98
  }
99
- return new IndexSeekNode(leaf.scope, leaf.source, leaf.filterInfo, leaf.indexName, leaf.seekKeys, leaf.isRange, leaf.providesOrdering, undefined, leaf.advertisement, leaf.rangeBoundedOn, true);
99
+ return new IndexSeekNode(leaf.scope, leaf.source, leaf.filterInfo, leaf.indexName, leaf.seekKeys, leaf.isRange, leaf.providesOrdering, undefined, leaf.advertisement, leaf.rangeBoundedOn, true, leaf.orderingLoadBearing, leaf.pushedConstraints);
100
100
  }
101
101
  /**
102
102
  * Annotation pass for a physical access leaf. Sets `rangeBoundedOn` when the
@@ -1 +1 @@
1
- {"version":3,"file":"rule-monotonic-range-access.js","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-monotonic-range-access.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-monotonic-range-access.js","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-monotonic-range-access.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAC9F,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAKrG,MAAM,GAAG,GAAG,YAAY,CAAC,uCAAuC,CAAC,CAAC;AAIlE,SAAS,YAAY,CAAC,IAAc;IACnC,OAAO,IAAI,YAAY,WAAW,IAAI,IAAI,YAAY,aAAa,IAAI,IAAI,YAAY,aAAa,CAAC;AACtG,CAAC;AAOD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAoB,CAAC,iBAAiB,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1F,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAoB,CAAC,iBAAiB,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;AAE1F;;;;;GAKG;AACH,SAAS,kBAAkB,CAC1B,UAAsB,EACtB,QAA+C,EAC/C,MAAc;IAEd,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;QAC3B,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM;YAAE,SAAS;QACnC,4FAA4F;QAC5F,MAAM,OAAO,GAAG,QAAQ,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC,MAAM;YACrF,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;YAC/B,CAAC,CAAC,SAAS,CAAC;QACb,MAAM,YAAY,GAAG,OAAO,YAAY,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvG,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,MAAM,EAAE,GAAe,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YAClE,GAAG,CAAC,KAAK,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;YACvE,GAAG,GAAG,IAAI,CAAC;QACZ,CAAC;aAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/B,MAAM,EAAE,GAAe,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YAClE,GAAG,CAAC,KAAK,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;YACvE,GAAG,GAAG,IAAI,CAAC;QACZ,CAAC;aAAM,IAAI,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,EAAE,EAAE,CAAC;YAC1C,8DAA8D;YAC9D,MAAM,EAAE,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAa,EAAE,CAAC;YACpG,MAAM,EAAE,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAa,EAAE,CAAC;YACpG,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;YACf,GAAG,GAAG,IAAI,CAAC;QACZ,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAgB,EAAE,MAAc;IAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,2EAA2E;AAC3E,SAAS,kBAAkB,CAAC,IAAgB,EAAE,EAAwC;IACrF,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QACjC,OAAO,IAAI,WAAW,CACrB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,SAAS,EACT,EAAE,EACF,IAAI,CAAC,iBAAiB,CACtB,CAAC;IACH,CAAC;IACD,IAAI,IAAI,YAAY,aAAa,EAAE,CAAC;QACnC,OAAO,IAAI,aAAa,CACvB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,gBAAgB,EACrB,SAAS,EACT,IAAI,CAAC,aAAa,EAClB,EAAE,EACF,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,mBAAmB,CACxB,CAAC;IACH,CAAC;IACD,gBAAgB;IAChB,OAAO,IAAI,aAAa,CACvB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,gBAAgB,EACrB,SAAS,EACT,IAAI,CAAC,aAAa,EAClB,EAAE,EACF,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,iBAAiB,CACtB,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,SAAS,2BAA2B,CAAC,IAAgB;IACpD,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QACjC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACxG,CAAC;IACD,IAAI,IAAI,YAAY,aAAa,EAAE,CAAC;QACnC,OAAO,IAAI,aAAa,CACvB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,gBAAgB,EACrB,SAAS,EACT,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,EACnB,IAAI,EACJ,IAAI,CAAC,mBAAmB,CACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,aAAa,CACvB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,gBAAgB,EACrB,SAAS,EACT,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,EACnB,IAAI,EACJ,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,iBAAiB,CACtB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,IAAgB;IACxC,yDAAyD;IACzD,IAAI,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IAErC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC9C,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAErC,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,QAAQ,GAAG,IAAI,YAAY,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,EAAE,GAAyC;QAChD,MAAM;QACN,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC;IAEF,GAAG,CAAC,+CAA+C,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5E,OAAO,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,MAAkB;IAC7C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC9C,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,IAAI,IAAI,CAAC,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAExC,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACrC,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5B,yEAAyE;IACzE,wEAAwE;IACxE,sEAAsE;IACtE,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAChD,CAAC,CAAC,WAAW,KAAK,MAAM;QACxB,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAChF,CAAC;IACF,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,GAAG,CAAC,kGAAkG,EAAE,MAAM,CAAC,CAAC;IAChH,MAAM,OAAO,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAc,EAAE,IAAgB;IACxE,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAChC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -10,9 +10,28 @@
10
10
  *
11
11
  * Benefits: Enables cost-based access path selection and module-specific execution
12
12
  */
13
- import type { PlanNode } from '../../nodes/plan-node.js';
13
+ import type { PlanNode, ScalarPlanNode } from '../../nodes/plan-node.js';
14
+ import { type RelationalPlanNode } from '../../nodes/plan-node.js';
14
15
  import type { OptContext } from '../../framework/context.js';
16
+ import type { BestAccessPlanResult } from '../../../vtab/best-access-plan.js';
17
+ import { TableReferenceNode } from '../../nodes/reference.js';
18
+ import { type PredicateConstraint as PlannerPredicateConstraint } from '../../analysis/constraint-extractor.js';
15
19
  export declare function ruleSelectAccessPath(node: PlanNode, context: OptContext): PlanNode | null;
20
+ /**
21
+ * Select the appropriate physical node based on access plan.
22
+ *
23
+ * `orderingLoadBearing` records that a SortNode was dropped on the strength of
24
+ * this plan's `providesOrdering` (sort absorption) — lifted onto the
25
+ * ordering-only IndexScan leaf so emission-order-changing rewrites decline.
26
+ *
27
+ * Exported for `rules/join/index-nested-loop.ts`, which feeds it synthesized
28
+ * correlated equality constraints so a per-outer-row seek gets the same
29
+ * collation-cover / composite-seek / NULL-handling / reattach treatment as a
30
+ * pushed user predicate. Callers must inspect the result: this function
31
+ * degrades to a SeqScan + residual on a collation decline and to an
32
+ * EmptyResultNode on an impossible predicate.
33
+ */
34
+ export declare function selectPhysicalNode(tableRef: TableReferenceNode, accessPlan: BestAccessPlanResult, constraints: PlannerPredicateConstraint[], orderingLoadBearing?: boolean): RelationalPlanNode;
16
35
  /**
17
36
  * Per-seek-constraint classification of how an index column's collation relates
18
37
  * to the predicate's effective comparison collation. See {@link classifyConstraintCover}.
@@ -39,5 +58,15 @@ type CollationCover = 'MATCH' | 'COARSER_SAFE' | 'MISMATCH_UNSAFE';
39
58
  * MISMATCH_UNSAFE) rather than restating it.
40
59
  */
41
60
  export declare function classifyConstraintCover(predColl: string, indexColl: string, isEquality: boolean, honorsCollatedRangeBounds: boolean): CollationCover;
61
+ /**
62
+ * AND-combine residual `sourceExpression`s into one predicate, de-duplicating by
63
+ * identity (a BETWEEN yields two constraints sharing one source node). Mirrors the
64
+ * `combineParts`/`combineResiduals` shape in constraint-extractor.ts.
65
+ *
66
+ * Exported for consumers of {@link IndexSeekNode.pushedConstraints}, which need the
67
+ * AND of the recorded `sourceExpression`s to re-apply as a `Filter` — same
68
+ * de-duplication, so a BETWEEN comes back as its single `BetweenNode`.
69
+ */
70
+ export declare function combineResidualExpressions(exprs: ScalarPlanNode[]): ScalarPlanNode | undefined;
42
71
  export {};
43
72
  //# sourceMappingURL=rule-select-access-path.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rule-select-access-path.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-select-access-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,0BAA0B,CAAC;AAEzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AA2H7D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAsFzF;AA0mCD;;;;;;;;;;;;GAYG;AACH,KAAK,cAAc,GAAG,OAAO,GAAG,cAAc,GAAG,iBAAiB,CAAC;AA+EnE;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,yBAAyB,EAAE,OAAO,GAAG,cAAc,CAuBpJ"}
1
+ {"version":3,"file":"rule-select-access-path.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-select-access-path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAK7D,OAAO,KAAK,EAAqC,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AASjH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAA8B,KAAK,mBAAmB,IAAI,0BAA0B,EAA2C,MAAM,wCAAwC,CAAC;AA2GrL,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAsFzF;AAuJD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,oBAAoB,EAChC,WAAW,EAAE,0BAA0B,EAAE,EACzC,mBAAmB,UAAQ,GACzB,kBAAkB,CA8CpB;AAq9BD;;;;;;;;;;;;GAYG;AACH,KAAK,cAAc,GAAG,OAAO,GAAG,cAAc,GAAG,iBAAiB,CAAC;AA+EnE;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,yBAAyB,EAAE,OAAO,GAAG,cAAc,CAuBpJ;AAiDD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,cAAc,GAAG,SAAS,CAa9F"}
@@ -297,10 +297,31 @@ function reattachUnconsumedConstraints(tableRef, accessPlan, constraints, consum
297
297
  * `orderingLoadBearing` records that a SortNode was dropped on the strength of
298
298
  * this plan's `providesOrdering` (sort absorption) — lifted onto the
299
299
  * ordering-only IndexScan leaf so emission-order-changing rewrites decline.
300
+ *
301
+ * Exported for `rules/join/index-nested-loop.ts`, which feeds it synthesized
302
+ * correlated equality constraints so a per-outer-row seek gets the same
303
+ * collation-cover / composite-seek / NULL-handling / reattach treatment as a
304
+ * pushed user predicate. Callers must inspect the result: this function
305
+ * degrades to a SeqScan + residual on a collation decline and to an
306
+ * EmptyResultNode on an impossible predicate.
300
307
  */
301
- function selectPhysicalNode(tableRef, accessPlan, constraints, orderingLoadBearing = false) {
302
- // Empty result optimization (e.g., IS NULL on NOT NULL column)
303
- if (accessPlan.rows === 0 && accessPlan.handledFilters.every(h => h)) {
308
+ export function selectPhysicalNode(tableRef, accessPlan, constraints, orderingLoadBearing = false) {
309
+ // Empty result optimization (e.g., IS NULL on NOT NULL column).
310
+ //
311
+ // `rows === 0` folds the whole table access away, so it is only sound when the module
312
+ // was PROVING a predicate unsatisfiable. `handledFilters.every(...)` alone does not say
313
+ // that — it is vacuously true for a plan with no filters at all, so a module reporting
314
+ // `rows: 0` on a plain full scan (a plausible reading of a field the interface calls a
315
+ // "cardinality estimate", for a table that is empty at plan time) would have its read
316
+ // deleted, and a statement that writes rows into that table before reading them back
317
+ // would return nothing. Requiring at least one claimed filter keeps the fold to the case
318
+ // it was written for. It cannot fire vacuously today — the memory module emits `rows: 0`
319
+ // only for `IS NULL` on a NOT NULL column, which always carries that filter.
320
+ //
321
+ // NOTE: with filters present the fold still trusts a number the interface documents as an
322
+ // estimate; an explicit "predicate is unsatisfiable" signal is tracked in
323
+ // backlog/debt-empty-access-plan-fold-trusts-estimate.
324
+ if (accessPlan.rows === 0 && accessPlan.handledFilters.length > 0 && accessPlan.handledFilters.every(h => h)) {
304
325
  log('Using empty result (impossible predicate detected)');
305
326
  return createEmptyResultNode(tableRef);
306
327
  }
@@ -318,7 +339,38 @@ function selectPhysicalNode(tableRef, accessPlan, constraints, orderingLoadBeari
318
339
  const leaf = (accessPlan.indexName && accessPlan.seekColumnIndexes && accessPlan.seekColumnIndexes.length > 0)
319
340
  ? selectPhysicalNodeFromPlan(tableRef, accessPlan, constraints, filterInfo, providesOrdering, consumed, orderingLoadBearing)
320
341
  : selectPhysicalNodeLegacy(tableRef, accessPlan, constraints, filterInfo, providesOrdering, consumed, orderingLoadBearing);
321
- return reattachUnconsumedConstraints(tableRef, accessPlan, constraints, consumed, leaf);
342
+ // Record on a seek leaf what its FilterInfo is now the sole enforcer of. Iterate
343
+ // `constraints` (not the Set) so the recorded order is deterministic and identical
344
+ // across the index-aware and legacy arms.
345
+ const stamped = stampSeekProvenance(leaf, constraints.filter(c => consumed.has(c)), orderingLoadBearing);
346
+ return reattachUnconsumedConstraints(tableRef, accessPlan, constraints, consumed, stamped);
347
+ }
348
+ /**
349
+ * Record on an IndexSeek leaf which planner-level constraints its `FilterInfo` is
350
+ * enforcing, plus whether its emission order is load-bearing. Descends through the
351
+ * collation-residual `Filter` the seek arms may wrap it in (the `COARSER_SAFE` arm's
352
+ * `finishSeek`), rebuilding on the way back out.
353
+ *
354
+ * A non-seek leaf (SeqScan after a collation decline, EmptyResult, IndexScan — which
355
+ * carries `orderingLoadBearing` from its own construction) is returned unchanged.
356
+ *
357
+ * NOTE: `FilterNode` is the only wrapper descended through, matching the one wrapper the
358
+ * seek arms actually produce (`finishSeek`'s collation residual). If a future arm wraps
359
+ * its seek in anything else, the stamp is skipped silently rather than failing loudly and
360
+ * the seek looks like it enforces nothing — add that node type here when such an arm lands.
361
+ */
362
+ function stampSeekProvenance(node, pushedConstraints, orderingLoadBearing) {
363
+ if (node instanceof IndexSeekNode) {
364
+ return node.withProvenance(pushedConstraints, orderingLoadBearing);
365
+ }
366
+ if (node instanceof FilterNode) {
367
+ const inner = stampSeekProvenance(node.source, pushedConstraints, orderingLoadBearing);
368
+ // `withChildren` rather than `new FilterNode(...)`: it short-circuits to `this`
369
+ // when the stamp was a no-op and carries every field the constructor would
370
+ // otherwise have to re-list.
371
+ return node.withChildren([inner, node.predicate]);
372
+ }
373
+ return node;
322
374
  }
323
375
  /**
324
376
  * Index-aware physical node selection using module-provided indexName and seekColumnIndexes.
@@ -414,6 +466,15 @@ function selectPhysicalNodeFromPlan(tableRef, accessPlan, constraints, filterInf
414
466
  log('IN-list is entirely NULL literals on %s — using empty result', physicalIndexName);
415
467
  return createEmptyResultNode(tableRef);
416
468
  }
469
+ // NOTE: each literal keeps its OWN value and is merely TYPED from the target
470
+ // column — nothing is converted here. That is sound because a numeric index
471
+ // key's identity is its value, not the JS representation holding it (see
472
+ // `sharesSeekKeySpace`, types/builtin-types.ts): `where i in (1.0, 2.0)` on
473
+ // an INTEGER column seeks the very keys `1` and `2` encode to, and returns
474
+ // both rows. Do NOT "fix" this by coercing through the column's `parse` —
475
+ // `INTEGER_TYPE.parse(1.5)` truncates to 1, and this arm reports the IN
476
+ // fully handled, so no residual survives to reject the `i = 1` row that
477
+ // `where i in (1.5)` must not return.
417
478
  const colType = columnScalarType(tableRef, colIdx);
418
479
  seekKeys = effectiveValues.map(v => literalFromValue(tableRef.scope, v, colType));
419
480
  }
@@ -1123,8 +1184,12 @@ function classifyCollationCover(consumed, isEquality, collationForColumn, honors
1123
1184
  * AND-combine residual `sourceExpression`s into one predicate, de-duplicating by
1124
1185
  * identity (a BETWEEN yields two constraints sharing one source node). Mirrors the
1125
1186
  * `combineParts`/`combineResiduals` shape in constraint-extractor.ts.
1187
+ *
1188
+ * Exported for consumers of {@link IndexSeekNode.pushedConstraints}, which need the
1189
+ * AND of the recorded `sourceExpression`s to re-apply as a `Filter` — same
1190
+ * de-duplication, so a BETWEEN comes back as its single `BetweenNode`.
1126
1191
  */
1127
- function combineResidualExpressions(exprs) {
1192
+ export function combineResidualExpressions(exprs) {
1128
1193
  const unique = [];
1129
1194
  for (const e of exprs) {
1130
1195
  if (!unique.includes(e))
@@ -1 +1 @@
1
- {"version":3,"file":"rule-select-access-path.js","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-select-access-path.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-select-access-path.js","sourceRoot":"","sources":["../../../../../src/planner/rules/access/rule-select-access-path.ts"],"names":[],"mappings":"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"}
@@ -25,10 +25,13 @@
25
25
  * `MIN(col)` recovers it. EC-derived FDs from `WHERE a = b` are sound because
26
26
  * every surviving row has equal values on the EC members.
27
27
  *
28
- * Rewrite preserves the output schema (positions may shift, attribute IDs do
29
- * not): kept GROUP BYs come first, then the picker MIN aggregates re-emitting
30
- * the dropped columns at their original attribute IDs (via
31
- * `preserveAttributeIds`), then the original aggregate expressions.
28
+ * The new aggregate's own layout is: kept GROUP BYs first, then the picker MIN
29
+ * aggregates re-emitting the dropped columns at their original attribute IDs
30
+ * (via `preserveAttributeIds`), then the original aggregate expressions. That
31
+ * layout may permute the original output positions, so whenever it does the
32
+ * rule caps the new aggregate with a `ProjectNode` that re-emits the same
33
+ * attribute IDs in their original order. The rewrite therefore preserves the
34
+ * full output schema — attribute IDs *and* positions.
32
35
  */
33
36
  import type { PlanNode } from '../../nodes/plan-node.js';
34
37
  import type { OptContext } from '../../framework/context.js';
@@ -1 +1 @@
1
- {"version":3,"file":"rule-groupby-fd-simplification.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/aggregate/rule-groupby-fd-simplification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAmD,MAAM,0BAA0B,CAAC;AAC1G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAU7D,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAqJhG"}
1
+ {"version":3,"file":"rule-groupby-fd-simplification.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/aggregate/rule-groupby-fd-simplification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAmD,MAAM,0BAA0B,CAAC;AAC1G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAY7D,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAuJhG"}
@@ -25,14 +25,18 @@
25
25
  * `MIN(col)` recovers it. EC-derived FDs from `WHERE a = b` are sound because
26
26
  * every surviving row has equal values on the EC members.
27
27
  *
28
- * Rewrite preserves the output schema (positions may shift, attribute IDs do
29
- * not): kept GROUP BYs come first, then the picker MIN aggregates re-emitting
30
- * the dropped columns at their original attribute IDs (via
31
- * `preserveAttributeIds`), then the original aggregate expressions.
28
+ * The new aggregate's own layout is: kept GROUP BYs first, then the picker MIN
29
+ * aggregates re-emitting the dropped columns at their original attribute IDs
30
+ * (via `preserveAttributeIds`), then the original aggregate expressions. That
31
+ * layout may permute the original output positions, so whenever it does the
32
+ * rule caps the new aggregate with a `ProjectNode` that re-emits the same
33
+ * attribute IDs in their original order. The rewrite therefore preserves the
34
+ * full output schema — attribute IDs *and* positions.
32
35
  */
33
36
  import { createLogger } from '../../../common/logger.js';
34
37
  import { AggregateNode } from '../../nodes/aggregate-node.js';
35
38
  import { AggregateFunctionCallNode } from '../../nodes/aggregate-function.js';
39
+ import { ProjectNode } from '../../nodes/project-node.js';
36
40
  import { ColumnReferenceNode } from '../../nodes/reference.js';
37
41
  import { expandEcsToFds, keysOf, minimalCover, superkeyToFd } from '../../util/fd-utils.js';
38
42
  import { isAggregateFunctionSchema } from '../../../schema/function.js';
@@ -162,6 +166,36 @@ export function ruleGroupByFdSimplification(node, context) {
162
166
  newAttrs.push(aggAttrs[i]);
163
167
  const newAggregates = [...pickerAggregates, ...node.aggregates];
164
168
  log('Dropped %d/%d GROUP BY column(s); picker aggregates: %d', dropped.size, candidateSet.size, pickerAggregates.length);
165
- return new AggregateNode(node.scope, node.source, keptGroupBy, newAggregates, undefined, newAttrs);
169
+ const newAgg = new AggregateNode(node.scope, node.source, keptGroupBy, newAggregates, undefined, newAttrs);
170
+ return restoreOutputOrder(newAgg, aggAttrs, newAttrs, node.scope);
171
+ }
172
+ /**
173
+ * Re-emit `rewritten`'s columns in `originalAttrs` order when the rewrite permuted
174
+ * them, otherwise hand it back bare.
175
+ *
176
+ * Attribute IDs survive the rewrite, so every id-bound consumer is already fine —
177
+ * but the statement result binds by POSITION when the aggregate is the query root,
178
+ * so a permuting rewrite needs the cap. The drop is order-preserving (and the cap
179
+ * skipped) exactly when the dropped keys were already a suffix of the grouping list.
180
+ */
181
+ function restoreOutputOrder(rewritten, originalAttrs, newAttrs, scope) {
182
+ if (newAttrs.every((a, i) => a.id === originalAttrs[i].id))
183
+ return rewritten;
184
+ // NOTE: this stacks under the builder's own select-list projection, so a
185
+ // permuting rewrite costs one extra row copy. If grouped-plan row-copy overhead
186
+ // ever shows up in a profile, collapse a permutation-only Project over Project;
187
+ // the collapse needs no index rebinding because column references resolve by
188
+ // attribute id at runtime (see runtime/emit/column-reference.ts).
189
+ const newIndexById = new Map(newAttrs.map((a, i) => [a.id, i]));
190
+ const projections = originalAttrs.map(attr => ({
191
+ node: new ColumnReferenceNode(scope, { type: 'column', name: attr.name }, attr.type, attr.id, newIndexById.get(attr.id)),
192
+ alias: attr.name,
193
+ attributeId: attr.id,
194
+ }));
195
+ // `preserveInputColumns: true` is inert while `predefinedAttributes` is supplied,
196
+ // but it describes what this node does — every projection is a bare column
197
+ // reference republishing its source attribute id — so it stays correct if a later
198
+ // rebuild ever drops the predefined attributes (`false` would mint fresh ids).
199
+ return new ProjectNode(scope, rewritten, projections, undefined, originalAttrs.slice(), true);
166
200
  }
167
201
  //# sourceMappingURL=rule-groupby-fd-simplification.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rule-groupby-fd-simplification.js","sourceRoot":"","sources":["../../../../../src/planner/rules/aggregate/rule-groupby-fd-simplification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-groupby-fd-simplification.js","sourceRoot":"","sources":["../../../../../src/planner/rules/aggregate/rule-groupby-fd-simplification.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rule-cte-optimization.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/cache/rule-cte-optimization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAO7D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CA+DxF"}
1
+ {"version":3,"file":"rule-cte-optimization.d.ts","sourceRoot":"","sources":["../../../../../src/planner/rules/cache/rule-cte-optimization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAO7D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CA6ExF"}
@@ -30,6 +30,15 @@ export function ruleCteOptimization(node, context) {
30
30
  // 1. CTE has materialization hint
31
31
  // 2. CTE is estimated to be reasonably sized
32
32
  // 3. CTE is not already cached
33
+ // NOTE: the `sourceSize > 0` gate below decides caching on a number that cannot
34
+ // carry the answer. A never-`ANALYZE`d table reports 0 rows, and that 0 means
35
+ // "unknown", not "empty" (`SchemaManager` hardcodes `TableSchema.estimatedRows`
36
+ // to 0 at CREATE TABLE), so today whether a CTE is cached turns on whether
37
+ // ANALYZE has run — and the rule never consults the reference count, so once a
38
+ // real estimate arrives it caches single-reference CTEs too, and double-buffers
39
+ // multi-reference ones against the materialization-advisory pass (see the NOTE
40
+ // below). Tracked in backlog `bug-cte-cache-gate-reads-unknown-as-empty`; do not
41
+ // paper over it with a `|| default` here, which caches single-reference CTEs.
33
42
  const sourceSize = PlanNodeCharacteristics.estimatesRows(source);
34
43
  const isAlreadyCached = CapabilityDetectors.isCached(source) && source.isCached();
35
44
  const shouldCache = (cteNode.materializationHint === 'materialized' ||
@@ -46,8 +55,12 @@ export function ruleCteOptimization(node, context) {
46
55
  // profiles, drop the CTE-specific wrap here (needs its own test pass;
47
56
  // it also changes single-reference CTE caching behavior).
48
57
  const cachedSource = new CacheNode(source.scope, source, 'memory', cacheThreshold);
49
- // Create new CTE with cached source (specific to CTENode implementation)
50
- const result = new CTENode(node.scope, cteNode.cteName, cteNode.columns, cachedSource, cteNode.materializationHint, cteNode.isRecursive, node instanceof CTENode ? node.materialize : false);
58
+ // Create new CTE with cached source (specific to CTENode implementation).
59
+ // `materialize` and `tableDescriptor` are both carried over: emitCTE keys its
60
+ // shared per-execution buffer on that identity, so a replacement that dropped
61
+ // the flag or minted a fresh descriptor would re-drive the source — a second
62
+ // write for a data-modifying body.
63
+ const result = new CTENode(node.scope, cteNode.cteName, cteNode.columns, cachedSource, cteNode.materializationHint, cteNode.isRecursive, cteNode.materialize, cteNode.tableDescriptor);
51
64
  log('Created CTE with caching');
52
65
  return result;
53
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rule-cte-optimization.js","sourceRoot":"","sources":["../../../../../src/planner/rules/cache/rule-cte-optimization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,uBAAuB,EAAmB,MAAM,oCAAoC,CAAC;AAEpI,MAAM,GAAG,GAAG,YAAY,CAAC,iCAAiC,CAAC,CAAC;AAE5D,MAAM,UAAU,mBAAmB,CAAC,IAAc,EAAE,OAAmB;IACtE,0CAA0C;IAC1C,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,0BAA0B;IAC1B,MAAM,OAAO,GAAG,IAAkB,CAAC;IACnC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1C,2CAA2C;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAEtC,qCAAqC;IACrC,kCAAkC;IAClC,6CAA6C;IAC7C,+BAA+B;IAC/B,MAAM,UAAU,GAAG,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,eAAe,GAAG,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;IAClF,MAAM,WAAW,GAAG,CACnB,OAAO,CAAC,mBAAmB,KAAK,cAAc;QAC9C,CAAC,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CACrE,IAAI,CAAC,eAAe,CAAC;IAEtB,IAAI,WAAW,EAAE,CAAC;QACjB,GAAG,CAAC,6CAA6C,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAEhF,wDAAwD;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC9B,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,EACzC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CACpC,CAAC;QAEF,oEAAoE;QACpE,kEAAkE;QAClE,uEAAuE;QACvE,iEAAiE;QACjE,oEAAoE;QACpE,sEAAsE;QACtE,0DAA0D;QAC1D,MAAM,YAAY,GAAG,IAAI,SAAS,CACjC,MAAM,CAAC,KAAK,EACZ,MAAM,EACN,QAAQ,EACR,cAAc,CACd,CAAC;QAEF,yEAAyE;QACzE,MAAM,MAAM,GAAG,IAAI,OAAO,CACzB,IAAI,CAAC,KAAK,EACV,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,EACf,YAAY,EACZ,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,WAAW,EACnB,IAAI,YAAY,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAClD,CAAC;QAEF,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC,CAAC,2BAA2B;AACzC,CAAC"}
1
+ {"version":3,"file":"rule-cte-optimization.js","sourceRoot":"","sources":["../../../../../src/planner/rules/cache/rule-cte-optimization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,uBAAuB,EAAmB,MAAM,oCAAoC,CAAC;AAEpI,MAAM,GAAG,GAAG,YAAY,CAAC,iCAAiC,CAAC,CAAC;AAE5D,MAAM,UAAU,mBAAmB,CAAC,IAAc,EAAE,OAAmB;IACtE,0CAA0C;IAC1C,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,0BAA0B;IAC1B,MAAM,OAAO,GAAG,IAAkB,CAAC;IACnC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1C,2CAA2C;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAEtC,qCAAqC;IACrC,kCAAkC;IAClC,6CAA6C;IAC7C,+BAA+B;IAC/B,gFAAgF;IAChF,8EAA8E;IAC9E,gFAAgF;IAChF,2EAA2E;IAC3E,+EAA+E;IAC/E,gFAAgF;IAChF,+EAA+E;IAC/E,iFAAiF;IACjF,8EAA8E;IAC9E,MAAM,UAAU,GAAG,uBAAuB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,eAAe,GAAG,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;IAClF,MAAM,WAAW,GAAG,CACnB,OAAO,CAAC,mBAAmB,KAAK,cAAc;QAC9C,CAAC,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CACrE,IAAI,CAAC,eAAe,CAAC;IAEtB,IAAI,WAAW,EAAE,CAAC;QACjB,GAAG,CAAC,6CAA6C,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAEhF,wDAAwD;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC9B,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,EACzC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CACpC,CAAC;QAEF,oEAAoE;QACpE,kEAAkE;QAClE,uEAAuE;QACvE,iEAAiE;QACjE,oEAAoE;QACpE,sEAAsE;QACtE,0DAA0D;QAC1D,MAAM,YAAY,GAAG,IAAI,SAAS,CACjC,MAAM,CAAC,KAAK,EACZ,MAAM,EACN,QAAQ,EACR,cAAc,CACd,CAAC;QAEF,0EAA0E;QAC1E,8EAA8E;QAC9E,8EAA8E;QAC9E,6EAA6E;QAC7E,mCAAmC;QACnC,MAAM,MAAM,GAAG,IAAI,OAAO,CACzB,IAAI,CAAC,KAAK,EACV,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,EACf,YAAY,EACZ,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,eAAe,CACvB,CAAC;QAEF,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC,CAAC,2BAA2B;AACzC,CAAC"}