@quereus/quereus 4.11.0 → 4.12.1

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 (451) hide show
  1. package/dist/src/common/type-inference.d.ts +12 -6
  2. package/dist/src/common/type-inference.d.ts.map +1 -1
  3. package/dist/src/common/type-inference.js +12 -24
  4. package/dist/src/common/type-inference.js.map +1 -1
  5. package/dist/src/core/database-assertions.d.ts.map +1 -1
  6. package/dist/src/core/database-assertions.js +7 -5
  7. package/dist/src/core/database-assertions.js.map +1 -1
  8. package/dist/src/core/database-events.d.ts +4 -3
  9. package/dist/src/core/database-events.d.ts.map +1 -1
  10. package/dist/src/core/database-events.js +4 -3
  11. package/dist/src/core/database-events.js.map +1 -1
  12. package/dist/src/core/database-materialized-views-analysis.d.ts +1 -3
  13. package/dist/src/core/database-materialized-views-analysis.d.ts.map +1 -1
  14. package/dist/src/core/database-materialized-views-analysis.js +1 -11
  15. package/dist/src/core/database-materialized-views-analysis.js.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 +12 -10
  18. package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
  19. package/dist/src/core/database.d.ts.map +1 -1
  20. package/dist/src/core/database.js +13 -2
  21. package/dist/src/core/database.js.map +1 -1
  22. package/dist/src/core/derived-row-validator.d.ts.map +1 -1
  23. package/dist/src/core/derived-row-validator.js +14 -2
  24. package/dist/src/core/derived-row-validator.js.map +1 -1
  25. package/dist/src/core/param.d.ts +9 -0
  26. package/dist/src/core/param.d.ts.map +1 -1
  27. package/dist/src/core/param.js +21 -1
  28. package/dist/src/core/param.js.map +1 -1
  29. package/dist/src/core/statement.d.ts.map +1 -1
  30. package/dist/src/core/statement.js +38 -15
  31. package/dist/src/core/statement.js.map +1 -1
  32. package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
  33. package/dist/src/func/builtins/aggregate.js +7 -2
  34. package/dist/src/func/builtins/aggregate.js.map +1 -1
  35. package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
  36. package/dist/src/func/builtins/builtin-window-functions.js +27 -11
  37. package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
  38. package/dist/src/func/builtins/datetime.d.ts.map +1 -1
  39. package/dist/src/func/builtins/datetime.js +8 -3
  40. package/dist/src/func/builtins/datetime.js.map +1 -1
  41. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  42. package/dist/src/func/builtins/explain.js +9 -29
  43. package/dist/src/func/builtins/explain.js.map +1 -1
  44. package/dist/src/func/builtins/json-tvf.d.ts.map +1 -1
  45. package/dist/src/func/builtins/json-tvf.js +14 -7
  46. package/dist/src/func/builtins/json-tvf.js.map +1 -1
  47. package/dist/src/func/builtins/return-types.d.ts +29 -0
  48. package/dist/src/func/builtins/return-types.d.ts.map +1 -1
  49. package/dist/src/func/builtins/return-types.js +4 -1
  50. package/dist/src/func/builtins/return-types.js.map +1 -1
  51. package/dist/src/func/builtins/scalar.d.ts.map +1 -1
  52. package/dist/src/func/builtins/scalar.js +22 -67
  53. package/dist/src/func/builtins/scalar.js.map +1 -1
  54. package/dist/src/func/builtins/schema.d.ts.map +1 -1
  55. package/dist/src/func/builtins/schema.js +26 -16
  56. package/dist/src/func/builtins/schema.js.map +1 -1
  57. package/dist/src/index.d.ts +1 -1
  58. package/dist/src/index.d.ts.map +1 -1
  59. package/dist/src/index.js +6 -1
  60. package/dist/src/index.js.map +1 -1
  61. package/dist/src/parser/parser.d.ts.map +1 -1
  62. package/dist/src/parser/parser.js +8 -5
  63. package/dist/src/parser/parser.js.map +1 -1
  64. package/dist/src/parser/visitor.d.ts +16 -0
  65. package/dist/src/parser/visitor.d.ts.map +1 -1
  66. package/dist/src/parser/visitor.js +16 -0
  67. package/dist/src/parser/visitor.js.map +1 -1
  68. package/dist/src/planner/analysis/assertion-plan.d.ts +33 -0
  69. package/dist/src/planner/analysis/assertion-plan.d.ts.map +1 -0
  70. package/dist/src/planner/analysis/assertion-plan.js +39 -0
  71. package/dist/src/planner/analysis/assertion-plan.js.map +1 -0
  72. package/dist/src/planner/analysis/binary-operator-class.d.ts +55 -0
  73. package/dist/src/planner/analysis/binary-operator-class.d.ts.map +1 -0
  74. package/dist/src/planner/analysis/binary-operator-class.js +57 -0
  75. package/dist/src/planner/analysis/binary-operator-class.js.map +1 -0
  76. package/dist/src/planner/analysis/binding-extractor.d.ts +9 -3
  77. package/dist/src/planner/analysis/binding-extractor.d.ts.map +1 -1
  78. package/dist/src/planner/analysis/binding-extractor.js +11 -16
  79. package/dist/src/planner/analysis/binding-extractor.js.map +1 -1
  80. package/dist/src/planner/analysis/change-scope.d.ts.map +1 -1
  81. package/dist/src/planner/analysis/change-scope.js +19 -6
  82. package/dist/src/planner/analysis/change-scope.js.map +1 -1
  83. package/dist/src/planner/analysis/check-extraction.d.ts +1 -7
  84. package/dist/src/planner/analysis/check-extraction.d.ts.map +1 -1
  85. package/dist/src/planner/analysis/check-extraction.js.map +1 -1
  86. package/dist/src/planner/analysis/comparison-collation.d.ts +17 -0
  87. package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
  88. package/dist/src/planner/analysis/comparison-collation.js +17 -5
  89. package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
  90. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  91. package/dist/src/planner/analysis/constraint-extractor.js +18 -18
  92. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  93. package/dist/src/planner/analysis/coverage-prover.d.ts +11 -7
  94. package/dist/src/planner/analysis/coverage-prover.d.ts.map +1 -1
  95. package/dist/src/planner/analysis/coverage-prover.js +11 -7
  96. package/dist/src/planner/analysis/coverage-prover.js.map +1 -1
  97. package/dist/src/planner/analysis/equi-correlation.d.ts +1 -1
  98. package/dist/src/planner/analysis/equi-correlation.js +1 -1
  99. package/dist/src/planner/analysis/expression-fingerprint.d.ts.map +1 -1
  100. package/dist/src/planner/analysis/expression-fingerprint.js +0 -2
  101. package/dist/src/planner/analysis/expression-fingerprint.js.map +1 -1
  102. package/dist/src/planner/analysis/key-filter.d.ts.map +1 -1
  103. package/dist/src/planner/analysis/key-filter.js +2 -3
  104. package/dist/src/planner/analysis/key-filter.js.map +1 -1
  105. package/dist/src/planner/analysis/relation-key.d.ts +104 -0
  106. package/dist/src/planner/analysis/relation-key.d.ts.map +1 -0
  107. package/dist/src/planner/analysis/relation-key.js +121 -0
  108. package/dist/src/planner/analysis/relation-key.js.map +1 -0
  109. package/dist/src/planner/analysis/scalar-param-usage.d.ts.map +1 -1
  110. package/dist/src/planner/analysis/scalar-param-usage.js +12 -4
  111. package/dist/src/planner/analysis/scalar-param-usage.js.map +1 -1
  112. package/dist/src/planner/analysis/set-op-type-merge.d.ts +9 -3
  113. package/dist/src/planner/analysis/set-op-type-merge.d.ts.map +1 -1
  114. package/dist/src/planner/analysis/set-op-type-merge.js +22 -8
  115. package/dist/src/planner/analysis/set-op-type-merge.js.map +1 -1
  116. package/dist/src/planner/building/alter-table.d.ts.map +1 -1
  117. package/dist/src/planner/building/alter-table.js +31 -23
  118. package/dist/src/planner/building/alter-table.js.map +1 -1
  119. package/dist/src/planner/building/analyze.d.ts.map +1 -1
  120. package/dist/src/planner/building/analyze.js +21 -0
  121. package/dist/src/planner/building/analyze.js.map +1 -1
  122. package/dist/src/planner/building/block.d.ts.map +1 -1
  123. package/dist/src/planner/building/block.js +222 -82
  124. package/dist/src/planner/building/block.js.map +1 -1
  125. package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
  126. package/dist/src/planner/building/constraint-builder.js +5 -3
  127. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  128. package/dist/src/planner/building/delete.js +1 -1
  129. package/dist/src/planner/building/delete.js.map +1 -1
  130. package/dist/src/planner/building/expression.d.ts.map +1 -1
  131. package/dist/src/planner/building/expression.js +11 -3
  132. package/dist/src/planner/building/expression.js.map +1 -1
  133. package/dist/src/planner/building/foreign-key-builder.d.ts +16 -6
  134. package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
  135. package/dist/src/planner/building/foreign-key-builder.js +43 -20
  136. package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
  137. package/dist/src/planner/building/generated-column-scope.d.ts +58 -0
  138. package/dist/src/planner/building/generated-column-scope.d.ts.map +1 -0
  139. package/dist/src/planner/building/generated-column-scope.js +117 -0
  140. package/dist/src/planner/building/generated-column-scope.js.map +1 -0
  141. package/dist/src/planner/building/insert.d.ts.map +1 -1
  142. package/dist/src/planner/building/insert.js +20 -28
  143. package/dist/src/planner/building/insert.js.map +1 -1
  144. package/dist/src/planner/building/select-aggregates.d.ts +73 -132
  145. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  146. package/dist/src/planner/building/select-aggregates.js +405 -81
  147. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  148. package/dist/src/planner/building/select-modifiers.d.ts +37 -8
  149. package/dist/src/planner/building/select-modifiers.d.ts.map +1 -1
  150. package/dist/src/planner/building/select-modifiers.js +8 -9
  151. package/dist/src/planner/building/select-modifiers.js.map +1 -1
  152. package/dist/src/planner/building/select-ordinal.d.ts +6 -0
  153. package/dist/src/planner/building/select-ordinal.d.ts.map +1 -1
  154. package/dist/src/planner/building/select-ordinal.js +1 -1
  155. package/dist/src/planner/building/select-ordinal.js.map +1 -1
  156. package/dist/src/planner/building/select-window.d.ts +2 -2
  157. package/dist/src/planner/building/select-window.d.ts.map +1 -1
  158. package/dist/src/planner/building/select-window.js +82 -101
  159. package/dist/src/planner/building/select-window.js.map +1 -1
  160. package/dist/src/planner/building/select.d.ts.map +1 -1
  161. package/dist/src/planner/building/select.js +78 -33
  162. package/dist/src/planner/building/select.js.map +1 -1
  163. package/dist/src/planner/building/update.d.ts.map +1 -1
  164. package/dist/src/planner/building/update.js +14 -8
  165. package/dist/src/planner/building/update.js.map +1 -1
  166. package/dist/src/planner/building/view-mutation-builder.d.ts.map +1 -1
  167. package/dist/src/planner/building/view-mutation-builder.js +329 -14
  168. package/dist/src/planner/building/view-mutation-builder.js.map +1 -1
  169. package/dist/src/planner/building/with.d.ts +6 -0
  170. package/dist/src/planner/building/with.d.ts.map +1 -1
  171. package/dist/src/planner/building/with.js +52 -3
  172. package/dist/src/planner/building/with.js.map +1 -1
  173. package/dist/src/planner/cache/correlation-detector.d.ts.map +1 -1
  174. package/dist/src/planner/cache/correlation-detector.js +44 -17
  175. package/dist/src/planner/cache/correlation-detector.js.map +1 -1
  176. package/dist/src/planner/framework/physical-utils.d.ts +6 -0
  177. package/dist/src/planner/framework/physical-utils.d.ts.map +1 -1
  178. package/dist/src/planner/framework/physical-utils.js +6 -0
  179. package/dist/src/planner/framework/physical-utils.js.map +1 -1
  180. package/dist/src/planner/mutation/lens-enforcement.d.ts +123 -0
  181. package/dist/src/planner/mutation/lens-enforcement.d.ts.map +1 -1
  182. package/dist/src/planner/mutation/lens-enforcement.js +362 -5
  183. package/dist/src/planner/mutation/lens-enforcement.js.map +1 -1
  184. package/dist/src/planner/mutation/mutation-diagnostic.d.ts +1 -1
  185. package/dist/src/planner/mutation/mutation-diagnostic.d.ts.map +1 -1
  186. package/dist/src/planner/mutation/mutation-diagnostic.js.map +1 -1
  187. package/dist/src/planner/nodes/alter-table-node.d.ts +15 -11
  188. package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
  189. package/dist/src/planner/nodes/alter-table-node.js +5 -0
  190. package/dist/src/planner/nodes/alter-table-node.js.map +1 -1
  191. package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
  192. package/dist/src/planner/nodes/bloom-join-node.js +7 -0
  193. package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
  194. package/dist/src/planner/nodes/constraint-check-node.d.ts +16 -0
  195. package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -1
  196. package/dist/src/planner/nodes/constraint-check-node.js.map +1 -1
  197. package/dist/src/planner/nodes/plan-node-type.d.ts +1 -1
  198. package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
  199. package/dist/src/planner/nodes/plan-node-type.js +1 -1
  200. package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
  201. package/dist/src/planner/nodes/pragma.d.ts.map +1 -1
  202. package/dist/src/planner/nodes/pragma.js +5 -2
  203. package/dist/src/planner/nodes/pragma.js.map +1 -1
  204. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  205. package/dist/src/planner/nodes/reference.js +9 -1
  206. package/dist/src/planner/nodes/reference.js.map +1 -1
  207. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  208. package/dist/src/planner/nodes/scalar.js +117 -91
  209. package/dist/src/planner/nodes/scalar.js.map +1 -1
  210. package/dist/src/planner/nodes/sequence-node.d.ts +50 -0
  211. package/dist/src/planner/nodes/sequence-node.d.ts.map +1 -0
  212. package/dist/src/planner/nodes/sequence-node.js +96 -0
  213. package/dist/src/planner/nodes/sequence-node.js.map +1 -0
  214. package/dist/src/planner/nodes/values-node.d.ts +8 -0
  215. package/dist/src/planner/nodes/values-node.d.ts.map +1 -1
  216. package/dist/src/planner/nodes/values-node.js +29 -6
  217. package/dist/src/planner/nodes/values-node.js.map +1 -1
  218. package/dist/src/planner/nodes/view-mutation-node.d.ts +43 -1
  219. package/dist/src/planner/nodes/view-mutation-node.d.ts.map +1 -1
  220. package/dist/src/planner/nodes/view-mutation-node.js +27 -6
  221. package/dist/src/planner/nodes/view-mutation-node.js.map +1 -1
  222. package/dist/src/planner/nodes/window-node.d.ts +33 -4
  223. package/dist/src/planner/nodes/window-node.d.ts.map +1 -1
  224. package/dist/src/planner/nodes/window-node.js +80 -36
  225. package/dist/src/planner/nodes/window-node.js.map +1 -1
  226. package/dist/src/planner/planning-context.d.ts +38 -1
  227. package/dist/src/planner/planning-context.d.ts.map +1 -1
  228. package/dist/src/planner/rules/access/rule-key-set-seek.d.ts.map +1 -1
  229. package/dist/src/planner/rules/access/rule-key-set-seek.js +8 -3
  230. package/dist/src/planner/rules/access/rule-key-set-seek.js.map +1 -1
  231. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +18 -12
  232. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -1
  233. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +4 -3
  234. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  235. package/dist/src/planner/rules/window/rule-monotonic-window.d.ts.map +1 -1
  236. package/dist/src/planner/rules/window/rule-monotonic-window.js +6 -0
  237. package/dist/src/planner/rules/window/rule-monotonic-window.js.map +1 -1
  238. package/dist/src/planner/scopes/param.d.ts.map +1 -1
  239. package/dist/src/planner/scopes/param.js +10 -5
  240. package/dist/src/planner/scopes/param.js.map +1 -1
  241. package/dist/src/planner/util/ind-utils.d.ts +25 -8
  242. package/dist/src/planner/util/ind-utils.d.ts.map +1 -1
  243. package/dist/src/planner/util/ind-utils.js +53 -10
  244. package/dist/src/planner/util/ind-utils.js.map +1 -1
  245. package/dist/src/planner/util/key-utils.d.ts +7 -7
  246. package/dist/src/planner/util/key-utils.js +9 -9
  247. package/dist/src/planner/util/key-utils.js.map +1 -1
  248. package/dist/src/runtime/delta-executor.d.ts.map +1 -1
  249. package/dist/src/runtime/delta-executor.js +7 -2
  250. package/dist/src/runtime/delta-executor.js.map +1 -1
  251. package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
  252. package/dist/src/runtime/emit/add-constraint.js +50 -15
  253. package/dist/src/runtime/emit/add-constraint.js.map +1 -1
  254. package/dist/src/runtime/emit/alter-schema-event.d.ts +2 -43
  255. package/dist/src/runtime/emit/alter-schema-event.d.ts.map +1 -1
  256. package/dist/src/runtime/emit/alter-schema-event.js +2 -53
  257. package/dist/src/runtime/emit/alter-schema-event.js.map +1 -1
  258. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  259. package/dist/src/runtime/emit/alter-table.js +59 -24
  260. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  261. package/dist/src/runtime/emit/analyze.d.ts.map +1 -1
  262. package/dist/src/runtime/emit/analyze.js +7 -0
  263. package/dist/src/runtime/emit/analyze.js.map +1 -1
  264. package/dist/src/runtime/emit/assertion-rename-helpers.d.ts.map +1 -1
  265. package/dist/src/runtime/emit/assertion-rename-helpers.js +2 -3
  266. package/dist/src/runtime/emit/assertion-rename-helpers.js.map +1 -1
  267. package/dist/src/runtime/emit/binary.d.ts +5 -0
  268. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  269. package/dist/src/runtime/emit/binary.js +22 -22
  270. package/dist/src/runtime/emit/binary.js.map +1 -1
  271. package/dist/src/runtime/emit/block.d.ts.map +1 -1
  272. package/dist/src/runtime/emit/block.js +9 -3
  273. package/dist/src/runtime/emit/block.js.map +1 -1
  274. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  275. package/dist/src/runtime/emit/constraint-check.js +5 -6
  276. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  277. package/dist/src/runtime/emit/create-assertion.d.ts.map +1 -1
  278. package/dist/src/runtime/emit/create-assertion.js +71 -70
  279. package/dist/src/runtime/emit/create-assertion.js.map +1 -1
  280. package/dist/src/runtime/emit/create-index.d.ts.map +1 -1
  281. package/dist/src/runtime/emit/create-index.js +8 -3
  282. package/dist/src/runtime/emit/create-index.js.map +1 -1
  283. package/dist/src/runtime/emit/create-table.d.ts.map +1 -1
  284. package/dist/src/runtime/emit/create-table.js +20 -10
  285. package/dist/src/runtime/emit/create-table.js.map +1 -1
  286. package/dist/src/runtime/emit/create-view.d.ts.map +1 -1
  287. package/dist/src/runtime/emit/create-view.js +51 -44
  288. package/dist/src/runtime/emit/create-view.js.map +1 -1
  289. package/dist/src/runtime/emit/ddl-event-scope.d.ts +71 -0
  290. package/dist/src/runtime/emit/ddl-event-scope.d.ts.map +1 -0
  291. package/dist/src/runtime/emit/ddl-event-scope.js +80 -0
  292. package/dist/src/runtime/emit/ddl-event-scope.js.map +1 -0
  293. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  294. package/dist/src/runtime/emit/dml-executor.js +23 -23
  295. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  296. package/dist/src/runtime/emit/drop-assertion.d.ts.map +1 -1
  297. package/dist/src/runtime/emit/drop-assertion.js +23 -17
  298. package/dist/src/runtime/emit/drop-assertion.js.map +1 -1
  299. package/dist/src/runtime/emit/drop-index.d.ts.map +1 -1
  300. package/dist/src/runtime/emit/drop-index.js +7 -2
  301. package/dist/src/runtime/emit/drop-index.js.map +1 -1
  302. package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
  303. package/dist/src/runtime/emit/drop-table.js +16 -10
  304. package/dist/src/runtime/emit/drop-table.js.map +1 -1
  305. package/dist/src/runtime/emit/drop-view.d.ts.map +1 -1
  306. package/dist/src/runtime/emit/drop-view.js +50 -43
  307. package/dist/src/runtime/emit/drop-view.js.map +1 -1
  308. package/dist/src/runtime/emit/insert.d.ts.map +1 -1
  309. package/dist/src/runtime/emit/insert.js +2 -1
  310. package/dist/src/runtime/emit/insert.js.map +1 -1
  311. package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
  312. package/dist/src/runtime/emit/materialized-view.js +87 -67
  313. package/dist/src/runtime/emit/materialized-view.js.map +1 -1
  314. package/dist/src/runtime/emit/schema-declarative.d.ts +8 -0
  315. package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
  316. package/dist/src/runtime/emit/schema-declarative.js +128 -25
  317. package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
  318. package/dist/src/runtime/emit/sequence.d.ts +17 -0
  319. package/dist/src/runtime/emit/sequence.d.ts.map +1 -0
  320. package/dist/src/runtime/emit/sequence.js +40 -0
  321. package/dist/src/runtime/emit/sequence.js.map +1 -0
  322. package/dist/src/runtime/emit/set-object-tags.d.ts.map +1 -1
  323. package/dist/src/runtime/emit/set-object-tags.js +40 -32
  324. package/dist/src/runtime/emit/set-object-tags.js.map +1 -1
  325. package/dist/src/runtime/emit/table-valued-function.d.ts.map +1 -1
  326. package/dist/src/runtime/emit/table-valued-function.js +3 -2
  327. package/dist/src/runtime/emit/table-valued-function.js.map +1 -1
  328. package/dist/src/runtime/emit/update.js +3 -3
  329. package/dist/src/runtime/emit/update.js.map +1 -1
  330. package/dist/src/runtime/emit/view-mutation.d.ts.map +1 -1
  331. package/dist/src/runtime/emit/view-mutation.js +45 -3
  332. package/dist/src/runtime/emit/view-mutation.js.map +1 -1
  333. package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
  334. package/dist/src/runtime/foreign-key-actions.js +9 -10
  335. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  336. package/dist/src/runtime/register.d.ts.map +1 -1
  337. package/dist/src/runtime/register.js +3 -2
  338. package/dist/src/runtime/register.js.map +1 -1
  339. package/dist/src/runtime/row-constraints.d.ts +14 -8
  340. package/dist/src/runtime/row-constraints.d.ts.map +1 -1
  341. package/dist/src/runtime/row-constraints.js +41 -15
  342. package/dist/src/runtime/row-constraints.js.map +1 -1
  343. package/dist/src/runtime/strict-representation.d.ts +11 -6
  344. package/dist/src/runtime/strict-representation.d.ts.map +1 -1
  345. package/dist/src/runtime/strict-representation.js +1 -44
  346. package/dist/src/runtime/strict-representation.js.map +1 -1
  347. package/dist/src/schema/assertion.d.ts +25 -2
  348. package/dist/src/schema/assertion.d.ts.map +1 -1
  349. package/dist/src/schema/assertion.js.map +1 -1
  350. package/dist/src/schema/catalog-rendering.d.ts +38 -0
  351. package/dist/src/schema/catalog-rendering.d.ts.map +1 -0
  352. package/dist/src/schema/catalog-rendering.js +171 -0
  353. package/dist/src/schema/catalog-rendering.js.map +1 -0
  354. package/dist/src/schema/catalog.d.ts +69 -3
  355. package/dist/src/schema/catalog.d.ts.map +1 -1
  356. package/dist/src/schema/catalog.js +124 -19
  357. package/dist/src/schema/catalog.js.map +1 -1
  358. package/dist/src/schema/column-source-resolver.d.ts +9 -5
  359. package/dist/src/schema/column-source-resolver.d.ts.map +1 -1
  360. package/dist/src/schema/column-source-resolver.js +9 -5
  361. package/dist/src/schema/column-source-resolver.js.map +1 -1
  362. package/dist/src/schema/constraint-builder.d.ts +13 -10
  363. package/dist/src/schema/constraint-builder.d.ts.map +1 -1
  364. package/dist/src/schema/constraint-builder.js +45 -17
  365. package/dist/src/schema/constraint-builder.js.map +1 -1
  366. package/dist/src/schema/declared-schema-manager.d.ts +50 -0
  367. package/dist/src/schema/declared-schema-manager.d.ts.map +1 -1
  368. package/dist/src/schema/declared-schema-manager.js +52 -0
  369. package/dist/src/schema/declared-schema-manager.js.map +1 -1
  370. package/dist/src/schema/expr-scope/frame.d.ts +65 -0
  371. package/dist/src/schema/expr-scope/frame.d.ts.map +1 -0
  372. package/dist/src/schema/expr-scope/frame.js +104 -0
  373. package/dist/src/schema/expr-scope/frame.js.map +1 -0
  374. package/dist/src/schema/expr-scope/walk.d.ts +40 -0
  375. package/dist/src/schema/expr-scope/walk.d.ts.map +1 -0
  376. package/dist/src/schema/expr-scope/walk.js +260 -0
  377. package/dist/src/schema/expr-scope/walk.js.map +1 -0
  378. package/dist/src/schema/generated-column-refs.d.ts +41 -0
  379. package/dist/src/schema/generated-column-refs.d.ts.map +1 -0
  380. package/dist/src/schema/generated-column-refs.js +124 -0
  381. package/dist/src/schema/generated-column-refs.js.map +1 -0
  382. package/dist/src/schema/lens-ack.d.ts.map +1 -1
  383. package/dist/src/schema/lens-ack.js +5 -2
  384. package/dist/src/schema/lens-ack.js.map +1 -1
  385. package/dist/src/schema/lens-compiler.d.ts.map +1 -1
  386. package/dist/src/schema/lens-compiler.js +9 -1
  387. package/dist/src/schema/lens-compiler.js.map +1 -1
  388. package/dist/src/schema/lens-prover.d.ts +7 -2
  389. package/dist/src/schema/lens-prover.d.ts.map +1 -1
  390. package/dist/src/schema/lens-prover.js +105 -11
  391. package/dist/src/schema/lens-prover.js.map +1 -1
  392. package/dist/src/schema/lens.d.ts +12 -0
  393. package/dist/src/schema/lens.d.ts.map +1 -1
  394. package/dist/src/schema/lens.js +10 -0
  395. package/dist/src/schema/lens.js.map +1 -1
  396. package/dist/src/schema/manager.d.ts +35 -1
  397. package/dist/src/schema/manager.d.ts.map +1 -1
  398. package/dist/src/schema/manager.js +125 -26
  399. package/dist/src/schema/manager.js.map +1 -1
  400. package/dist/src/schema/rename/self-qualifier-strip.d.ts +16 -10
  401. package/dist/src/schema/rename/self-qualifier-strip.d.ts.map +1 -1
  402. package/dist/src/schema/rename/self-qualifier-strip.js +30 -213
  403. package/dist/src/schema/rename/self-qualifier-strip.js.map +1 -1
  404. package/dist/src/schema/rename-rewriter.d.ts +4 -3
  405. package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
  406. package/dist/src/schema/rename-rewriter.js +4 -3
  407. package/dist/src/schema/rename-rewriter.js.map +1 -1
  408. package/dist/src/schema/schema-differ.d.ts +54 -6
  409. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  410. package/dist/src/schema/schema-differ.js +108 -42
  411. package/dist/src/schema/schema-differ.js.map +1 -1
  412. package/dist/src/schema/schema-hasher.d.ts +12 -0
  413. package/dist/src/schema/schema-hasher.d.ts.map +1 -1
  414. package/dist/src/schema/schema-hasher.js +28 -10
  415. package/dist/src/schema/schema-hasher.js.map +1 -1
  416. package/dist/src/schema/table.d.ts +74 -19
  417. package/dist/src/schema/table.d.ts.map +1 -1
  418. package/dist/src/schema/table.js +133 -71
  419. package/dist/src/schema/table.js.map +1 -1
  420. package/dist/src/types/comparison-coercion.d.ts +5 -1
  421. package/dist/src/types/comparison-coercion.d.ts.map +1 -1
  422. package/dist/src/types/comparison-coercion.js +21 -5
  423. package/dist/src/types/comparison-coercion.js.map +1 -1
  424. package/dist/src/types/representation.d.ts +65 -0
  425. package/dist/src/types/representation.d.ts.map +1 -0
  426. package/dist/src/types/representation.js +63 -0
  427. package/dist/src/types/representation.js.map +1 -0
  428. package/dist/src/types/validation.d.ts +76 -22
  429. package/dist/src/types/validation.d.ts.map +1 -1
  430. package/dist/src/types/validation.js +110 -31
  431. package/dist/src/types/validation.js.map +1 -1
  432. package/dist/src/vtab/best-access-plan.d.ts +10 -0
  433. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  434. package/dist/src/vtab/best-access-plan.js +16 -0
  435. package/dist/src/vtab/best-access-plan.js.map +1 -1
  436. package/dist/src/vtab/capabilities.d.ts +72 -4
  437. package/dist/src/vtab/capabilities.d.ts.map +1 -1
  438. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  439. package/dist/src/vtab/memory/layer/manager.js +17 -13
  440. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  441. package/dist/src/vtab/module.d.ts +13 -7
  442. package/dist/src/vtab/module.d.ts.map +1 -1
  443. package/package.json +3 -3
  444. package/dist/src/planner/nodes/array-index-node.d.ts +0 -22
  445. package/dist/src/planner/nodes/array-index-node.d.ts.map +0 -1
  446. package/dist/src/planner/nodes/array-index-node.js +0 -41
  447. package/dist/src/planner/nodes/array-index-node.js.map +0 -1
  448. package/dist/src/runtime/emit/array-index.d.ts +0 -5
  449. package/dist/src/runtime/emit/array-index.d.ts.map +0 -1
  450. package/dist/src/runtime/emit/array-index.js +0 -22
  451. package/dist/src/runtime/emit/array-index.js.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { mergeSetOpAdvertisedType } from '../analysis/set-op-type-merge.js';
1
2
  import { PlanNode } from './plan-node.js';
2
3
  import { PlanNodeType } from './plan-node-type.js';
3
4
  import { Cached } from '../../util/cached.js';
@@ -42,11 +43,9 @@ export class ValuesNode extends PlanNode {
42
43
  rowConstraints: [],
43
44
  };
44
45
  }
45
- // Infer column types from the first row
46
- const firstRow = this.rows[0];
47
- const columns = firstRow.map((expr, index) => ({
46
+ const columns = this.rows[0].map((_, index) => ({
48
47
  name: this.columnNames?.[index] ?? `column_${index}`,
49
- type: expr.getType(),
48
+ type: this.mergedColumnType(index),
50
49
  generated: false,
51
50
  }));
52
51
  return {
@@ -58,16 +57,40 @@ export class ValuesNode extends PlanNode {
58
57
  rowConstraints: [],
59
58
  };
60
59
  }
60
+ /**
61
+ * The type one VALUES column may honestly advertise: every row's expression
62
+ * contributes a value UNCONVERTED, so the column is the same shape as a set
63
+ * operation's output column and folds by the same rules
64
+ * (`mergeSetOpAdvertisedType`). Typing from the first row alone announced
65
+ * INTEGER for `VALUES (1), (1.5)` while the second row yields a fraction.
66
+ */
67
+ mergedColumnType(index) {
68
+ const first = this.rows[0][index].getType();
69
+ let logicalType = first.logicalType;
70
+ let nullable = first.nullable;
71
+ for (let r = 1; r < this.rows.length; r++) {
72
+ // A ragged row is a user error, but `emitValues` is what reports it (with a
73
+ // location); typing must not crash on the way there.
74
+ const rowType = this.rows[r][index]?.getType();
75
+ if (!rowType)
76
+ continue;
77
+ logicalType = mergeSetOpAdvertisedType(logicalType, rowType.logicalType);
78
+ nullable ||= rowType.nullable;
79
+ }
80
+ if (logicalType === first.logicalType && nullable === first.nullable)
81
+ return first;
82
+ return { ...first, logicalType, nullable };
83
+ }
61
84
  buildAttributes() {
62
85
  if (this.rows.length === 0) {
63
86
  return [];
64
87
  }
65
88
  // Create attributes for each column
66
89
  const firstRow = this.rows[0];
67
- return firstRow.map((expr, index) => ({
90
+ return firstRow.map((_expr, index) => ({
68
91
  id: PlanNode.nextAttrId(),
69
92
  name: this.columnNames?.[index] ?? `column_${index}`,
70
- type: expr.getType(),
93
+ type: this.mergedColumnType(index),
71
94
  sourceRelation: `${this.nodeType}:${this.id}`
72
95
  }));
73
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"values-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/values-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"values-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/values-node.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { Scope } from '../scopes/scope.js';
2
2
  import { PlanNode, type RelationalPlanNode, type ScalarPlanNode, type PhysicalProperties, type TableDescriptor, type RowDescriptor, type Attribute } from './plan-node.js';
3
3
  import { PlanNodeType } from './plan-node-type.js';
4
4
  import type { RelationType, ScalarType } from '../../common/datatype.js';
5
+ import type { ConflictResolution } from '../../common/constants.js';
5
6
  /** When a separate {@link ViewMutationNode.returning} relation is captured. */
6
7
  export type ReturningTiming = 'pre' | 'post';
7
8
  /**
@@ -74,6 +75,47 @@ export interface MutationEnvelope {
74
75
  * self-contained and the optimizer cannot dangle it.
75
76
  */
76
77
  readonly keyDefaultRowDescriptor?: RowDescriptor;
78
+ /**
79
+ * Per-row logical CHECKs evaluated once per produced logical row, at the
80
+ * envelope — BEFORE the shared key is minted and before any member op runs.
81
+ * This is the row-local lens constraint seam for a decomposition INSERT
82
+ * (docs/lens.md § Constraint Attachment): the envelope row IS the produced
83
+ * logical row, so a check here fires regardless of which member ops the
84
+ * fan-out plans (an omitted / explicit-NULL column suppresses the member
85
+ * write, never the check). Subquery-free checks only — a subquery-bearing
86
+ * row-local check rides the anchor op as a deferred logical-view constraint
87
+ * instead (`buildDecompositionInsert`).
88
+ */
89
+ readonly rowChecks?: ReadonlyArray<EnvelopeRowCheck>;
90
+ /**
91
+ * The row descriptor over the supplied envelope columns the {@link rowChecks}
92
+ * expressions' column refs resolve through — installed as a row slot over each
93
+ * source row for the duration of the per-row evaluation (the check-side dual of
94
+ * {@link keyDefaultRowDescriptor}, with its own fresh attribute ids). Present
95
+ * exactly when `rowChecks` is.
96
+ */
97
+ readonly rowCheckRowDescriptor?: RowDescriptor;
98
+ /**
99
+ * The statement-level OR clause governing a failing {@link rowChecks} row:
100
+ * IGNORE skips the envelope row (the whole logical row — no member op sees it),
101
+ * FAIL / ROLLBACK throw their conflict subclass, ABORT / REPLACE throw a plain
102
+ * constraint error (REPLACE never masks a CHECK — SQLite parity, matching
103
+ * `runtime/row-constraints.ts`).
104
+ */
105
+ readonly rowCheckOnConflict?: ConflictResolution;
106
+ }
107
+ /** One per-row logical CHECK evaluated at the mutation envelope. */
108
+ export interface EnvelopeRowCheck {
109
+ /** The routed-constraint name (`lens:<name>` / `lens:check`). */
110
+ readonly name: string;
111
+ /** Compiled predicate over the supplied envelope columns (NULL passes; only definite FALSE fails). */
112
+ readonly expression: ScalarPlanNode;
113
+ /**
114
+ * Pre-formatted violation text (`CHECK constraint failed: <name>[ (<expr>)]`),
115
+ * derived at plan time with the same shape `runtime/row-constraints.ts` derives,
116
+ * so the envelope seam reports identically to the constraint pipeline.
117
+ */
118
+ readonly message: string;
77
119
  }
78
120
  /**
79
121
  * The substrate node for view-/materialized-view-mediated DML.
@@ -246,7 +288,7 @@ export declare class ViewMutationNode extends PlanNode {
246
288
  getType(): RelationType | ScalarType;
247
289
  /** The view-projected RETURNING attributes, or `[]` for a void mutation. */
248
290
  getAttributes(): readonly Attribute[];
249
- /** Extra (non-base-op) plan children: the envelope source + optional key-default expr. */
291
+ /** Extra (non-base-op) plan children: the envelope source + optional key-default expr + per-row check exprs. */
250
292
  private envelopeChildren;
251
293
  getChildren(): readonly PlanNode[];
252
294
  getRelations(): readonly RelationalPlanNode[];
@@ -1 +1 @@
1
- {"version":3,"file":"view-mutation-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/view-mutation-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAC7L,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAKzE,+EAA+E;AAC/E,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,MAAM,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IACrC;;;;;;;OAOG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,aAAa,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;IAK5C;;;;;OAKG;aACa,OAAO,EAAE,SAAS,QAAQ,EAAE;IAC5C;;;;;;;OAOG;aACa,SAAS,CAAC,EAAE,kBAAkB;IAC9C;;;OAGG;aACa,QAAQ,CAAC,EAAE,gBAAgB;IAC3C;;;;;OAKG;aACa,eAAe,CAAC,EAAE,eAAe;IACjD;;;;;;;;;OASG;aACa,eAAe,CAAC,EAAE,eAAe;IACjD;;;;;;;;;;;;;;;;;;;;OAoBG;aACa,cAAc,CAAC,EAAE,SAAS,eAAe,EAAE;IAhE5D,SAAkB,QAAQ,6BAA6B;gBAGtD,KAAK,EAAE,KAAK;IACZ;;;;;OAKG;IACa,OAAO,EAAE,SAAS,QAAQ,EAAE;IAC5C;;;;;;;OAOG;IACa,SAAS,CAAC,EAAE,kBAAkB,YAAA;IAC9C;;;OAGG;IACa,QAAQ,CAAC,EAAE,gBAAgB,YAAA;IAC3C;;;;;OAKG;IACa,eAAe,CAAC,EAAE,eAAe,YAAA;IACjD;;;;;;;;;OASG;IACa,eAAe,CAAC,EAAE,eAAe,YAAA;IACjD;;;;;;;;;;;;;;;;;;;;OAoBG;IACa,cAAc,CAAC,EAAE,SAAS,eAAe,EAAE,YAAA;IAY5D;;;;;OAKG;IACH,cAAc,IAAI,kBAAkB,GAAG,SAAS;IAKhD,OAAO,IAAI,YAAY,GAAG,UAAU;IAgBpC,4EAA4E;IAC5E,aAAa,IAAI,SAAS,SAAS,EAAE;IAIrC,0FAA0F;IAC1F,OAAO,CAAC,gBAAgB;IAOxB,WAAW,IAAI,SAAS,QAAQ,EAAE;IAclC,YAAY,IAAI,SAAS,kBAAkB,EAAE;IAmB7C,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAuDxD,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAEtC;IAED,eAAe,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAQrC,QAAQ,IAAI,MAAM;IAYlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CASxD"}
1
+ {"version":3,"file":"view-mutation-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/view-mutation-node.ts"],"names":[],"mappings":"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"}
@@ -154,13 +154,16 @@ export class ViewMutationNode extends PlanNode {
154
154
  getAttributes() {
155
155
  return this.resultRelation()?.getAttributes() ?? [];
156
156
  }
157
- /** Extra (non-base-op) plan children: the envelope source + optional key-default expr. */
157
+ /** Extra (non-base-op) plan children: the envelope source + optional key-default expr + per-row check exprs. */
158
158
  envelopeChildren() {
159
159
  if (!this.envelope)
160
160
  return [];
161
- return this.envelope.keyDefault
162
- ? [this.envelope.source, this.envelope.keyDefault]
163
- : [this.envelope.source];
161
+ const children = [this.envelope.source];
162
+ if (this.envelope.keyDefault)
163
+ children.push(this.envelope.keyDefault);
164
+ for (const check of this.envelope.rowChecks ?? [])
165
+ children.push(check.expression);
166
+ return children;
164
167
  }
165
168
  getChildren() {
166
169
  // Order: base ops, then the optional RETURNING re-query, then the optional
@@ -223,12 +226,29 @@ export class ViewMutationNode extends PlanNode {
223
226
  if (this.envelope) {
224
227
  const newSource = newChildren[cursor];
225
228
  cursor += 1;
226
- const newKeyDefault = this.envelope.keyDefault ? newChildren[cursor] : undefined;
229
+ let newKeyDefault;
230
+ if (this.envelope.keyDefault) {
231
+ newKeyDefault = newChildren[cursor];
232
+ cursor += 1;
233
+ }
234
+ // Rebuild each per-row check with its new expression, preserving name/message
235
+ // (sliced back in the same order envelopeChildren laid them out).
236
+ let newRowChecks = this.envelope.rowChecks;
237
+ if (this.envelope.rowChecks && this.envelope.rowChecks.length > 0) {
238
+ newRowChecks = this.envelope.rowChecks.map(check => {
239
+ const expression = newChildren[cursor];
240
+ cursor += 1;
241
+ return { ...check, expression };
242
+ });
243
+ }
227
244
  newEnvelope = {
228
245
  source: newSource,
229
246
  descriptor: this.envelope.descriptor,
230
247
  keyDefault: newKeyDefault,
231
248
  keyDefaultRowDescriptor: this.envelope.keyDefaultRowDescriptor,
249
+ rowChecks: newRowChecks,
250
+ rowCheckRowDescriptor: this.envelope.rowCheckRowDescriptor,
251
+ rowCheckOnConflict: this.envelope.rowCheckOnConflict,
232
252
  };
233
253
  }
234
254
  const unchanged = newChildren.length === this.getChildren().length
@@ -237,7 +257,8 @@ export class ViewMutationNode extends PlanNode {
237
257
  && (!this.identityCapture || newCapture.source === this.identityCapture.source)
238
258
  && (!this.nestedCaptures || this.nestedCaptures.every((c, i) => newNestedCaptures[i].source === c.source))
239
259
  && (!this.envelope || (newEnvelope.source === this.envelope.source
240
- && newEnvelope.keyDefault === this.envelope.keyDefault));
260
+ && newEnvelope.keyDefault === this.envelope.keyDefault
261
+ && (!this.envelope.rowChecks || this.envelope.rowChecks.every((c, i) => newEnvelope.rowChecks[i].expression === c.expression))));
241
262
  if (unchanged) {
242
263
  return this;
243
264
  }
@@ -1 +1 @@
1
- {"version":3,"file":"view-mutation-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/view-mutation-node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAmI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7L,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AA8EnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAW5B;IASA;IAKA;IAOA;IAWA;IAsBA;IAhEC,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC;IAEvD,YACC,KAAY;IACZ;;;;;OAKG;IACa,OAA4B;IAC5C;;;;;;;OAOG;IACa,SAA8B;IAC9C;;;OAGG;IACa,QAA2B;IAC3C;;;;;OAKG;IACa,eAAiC;IACjD;;;;;;;;;OASG;IACa,eAAiC;IACjD;;;;;;;;;;;;;;;;;;;;OAoBG;IACa,cAA2C;QAE3D,wEAAwE;QACxE,6EAA6E;QAC7E,8EAA8E;QAC9E,uEAAuE;QACvE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QA5DF,YAAO,GAAP,OAAO,CAAqB;QAS5B,cAAS,GAAT,SAAS,CAAqB;QAK9B,aAAQ,GAAR,QAAQ,CAAmB;QAO3B,oBAAe,GAAf,eAAe,CAAkB;QAWjC,oBAAe,GAAf,eAAe,CAAkB;QAsBjC,mBAAc,GAAd,cAAc,CAA6B;QAO3D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,YAAY,CAAC,uDAAuD,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtG,CAAC;IACF,CAAC;IAED;;;;;OAKG;IACH,cAAc;QACb,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO;QACN,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACrC,IAAI,MAAM,EAAE,CAAC;YACZ,wEAAwE;YACxE,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC;QACD,4EAA4E;QAC5E,0BAA0B;QAC1B,OAAO;YACN,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,YAAY;YACzB,QAAQ,EAAE,KAAK;SACf,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,aAAa;QACZ,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC;IAED,0FAA0F;IAClF,gBAAgB;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU;YAC9B,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAClD,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,WAAW;QACV,2EAA2E;QAC3E,4EAA4E;QAC5E,8EAA8E;QAC9E,yDAAyD;QACzD,OAAO;YACN,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YACjD,GAAG,IAAI,CAAC,gBAAgB,EAAE;SAC1B,CAAC;IACH,CAAC;IAED,YAAY;QACX,sEAAsE;QACtE,sEAAsE;QACtE,2EAA2E;QAC3E,qEAAqE;QACrE,2EAA2E;QAC3E,4EAA4E;QAC5E,yEAAyE;QACzE,6EAA6E;QAC7E,8EAA8E;QAC9E,8EAA8E;QAC9E,iFAAiF;QACjF,wEAAwE;QACxE,2EAA2E;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,YAAY,CAAC,WAAgC;QAC5C,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACjC,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAEhD,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,YAAY,GAAG,WAAW,CAAC,MAAM,CAAuB,CAAC;YACzD,MAAM,IAAI,CAAC,CAAC;QACb,CAAC;QAED,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC;QACtC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAuB,CAAC;YACnE,MAAM,IAAI,CAAC,CAAC;YACZ,UAAU,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;QACxF,CAAC;QAED,gFAAgF;QAChF,kFAAkF;QAClF,gFAAgF;QAChF,IAAI,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC;QAC5C,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC/C,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAuB,CAAC;gBACzD,MAAM,IAAI,CAAC,CAAC;gBACZ,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;YAC7C,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAuB,CAAC;YAC5D,MAAM,IAAI,CAAC,CAAC;YACZ,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;YACnG,WAAW,GAAG;gBACb,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;gBACpC,UAAU,EAAE,aAAa;gBACzB,uBAAuB,EAAE,IAAI,CAAC,QAAQ,CAAC,uBAAuB;aAC9D,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM;eAC9D,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;eACzD,YAAY,KAAK,IAAI,CAAC,SAAS;eAC/B,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI,UAAW,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;eAC7E,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;eACxG,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAY,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM;mBAC/D,WAAY,CAAC,UAAU,KAAK,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5D,IAAI,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACrI,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,aAAa,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,eAAe;QACd,OAAO;YACN,QAAQ,EAAE,KAAK,EAAE,2BAA2B;YAC5C,UAAU,EAAE,KAAK;YACjB,aAAa,EAAE,KAAK;SACpB,CAAC;IACH,CAAC;IAEQ,QAAQ;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,iFAAiF;QACjF,4EAA4E;QAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,WAAW,GAAG,CAAC;YAC1B,CAAC,CAAC,aAAa,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,GAAG;YAC7D,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1G,OAAO,kBAAkB,IAAI,CAAC,OAAO,CAAC,MAAM,WAAW,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAClH,CAAC;IAEQ,oBAAoB;QAC5B,OAAO;YACN,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;YACvF,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC9D,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC9G,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;SAChH,CAAC;IACH,CAAC;CACD"}
1
+ {"version":3,"file":"view-mutation-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/view-mutation-node.ts"],"names":[],"mappings":"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"}
@@ -72,25 +72,54 @@ export declare class WindowNode extends PlanNode implements UnaryRelationalNode
72
72
  readonly partitionExpressions: ScalarPlanNode[];
73
73
  readonly orderByExpressions: ScalarPlanNode[];
74
74
  readonly functionArguments: ScalarPlanNode[][];
75
- /** Optional predefined attributes for preserving IDs during optimization */
76
- readonly predefinedAttributes?: Attribute[] | undefined;
75
+ /**
76
+ * The WINDOW-GENERATED output attributes (one per function), supplied by
77
+ * `withChildren`/`withStreaming` so a window result column keeps ONE attribute
78
+ * id for the whole life of the plan. Only these are carried — the pass-through
79
+ * source attributes are always taken from the CURRENT source, so an optimizer
80
+ * rewrite of the source (AggregateNode → HashAggregate, an inserted Retrieve)
81
+ * cannot orphan the ids the projection above references.
82
+ */
83
+ readonly predefinedWindowAttributes?: Attribute[] | undefined;
77
84
  /** Set by `rule-monotonic-window` when the source streams in window order. */
78
85
  readonly streaming?: StreamingWindowConfig | undefined;
79
86
  readonly nodeType = PlanNodeType.Window;
80
87
  private outputTypeCache;
81
88
  private attributesCache;
82
89
  constructor(scope: Scope, source: RelationalPlanNode, windowSpec: WindowSpec, functions: WindowFunctionCallNode[], partitionExpressions: ScalarPlanNode[], orderByExpressions: ScalarPlanNode[], functionArguments: ScalarPlanNode[][], estimatedCostOverride?: number,
83
- /** Optional predefined attributes for preserving IDs during optimization */
84
- predefinedAttributes?: Attribute[] | undefined,
90
+ /**
91
+ * The WINDOW-GENERATED output attributes (one per function), supplied by
92
+ * `withChildren`/`withStreaming` so a window result column keeps ONE attribute
93
+ * id for the whole life of the plan. Only these are carried — the pass-through
94
+ * source attributes are always taken from the CURRENT source, so an optimizer
95
+ * rewrite of the source (AggregateNode → HashAggregate, an inserted Retrieve)
96
+ * cannot orphan the ids the projection above references.
97
+ */
98
+ predefinedWindowAttributes?: Attribute[] | undefined,
85
99
  /** Set by `rule-monotonic-window` when the source streams in window order. */
86
100
  streaming?: StreamingWindowConfig | undefined);
87
101
  getType(): RelationType;
88
102
  getAttributes(): Attribute[];
103
+ /**
104
+ * The window-generated output attributes (one per function, parallel to
105
+ * `functions`), excluding the pass-through source attributes. This is the list
106
+ * `withChildren`/`withStreaming` carry across rebuilds, and the list the window
107
+ * phase records so the projection above addresses each window result by
108
+ * attribute id.
109
+ */
110
+ getWindowAttributes(): Attribute[];
89
111
  getChildren(): readonly PlanNode[];
90
112
  withChildren(newChildren: readonly PlanNode[]): PlanNode;
91
113
  /** Return a new WindowNode with the given streaming config attached. */
92
114
  withStreaming(config: StreamingWindowConfig): WindowNode;
93
115
  getRelations(): readonly [RelationalPlanNode];
116
+ /**
117
+ * The window's ORDER BY expressed as sort keys, in the shape
118
+ * `extractOrderingFromSortKeys` expects. `AST.OrderByClause.direction` is
119
+ * optional; anything that is not `'desc'` is ascending — the same reading
120
+ * `rule-monotonic-window` and the `monotonicOn` derivation use.
121
+ */
122
+ private windowSortKeys;
94
123
  computePhysical(childrenPhysical: PhysicalProperties[]): Partial<PhysicalProperties>;
95
124
  get estimatedRows(): number | undefined;
96
125
  toString(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"window-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/window-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"window-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/window-node.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { StatusCode } from '../../common/types.js';
6
6
  import { ColumnReferenceNode } from './reference.js';
7
7
  import { isUniqueDeterminant } from '../util/fd-utils.js';
8
8
  import { physicalSourceRows } from '../util/row-estimates.js';
9
+ import { extractOrderingFromSortKeys } from '../framework/physical-utils.js';
9
10
  /**
10
11
  * Represents a window operation that computes window functions over partitions of rows.
11
12
  * This node groups window functions that share the same window specification for efficiency.
@@ -17,14 +18,21 @@ export class WindowNode extends PlanNode {
17
18
  partitionExpressions;
18
19
  orderByExpressions;
19
20
  functionArguments;
20
- predefinedAttributes;
21
+ predefinedWindowAttributes;
21
22
  streaming;
22
23
  nodeType = PlanNodeType.Window;
23
24
  outputTypeCache;
24
25
  attributesCache;
25
26
  constructor(scope, source, windowSpec, functions, partitionExpressions, orderByExpressions, functionArguments, estimatedCostOverride,
26
- /** Optional predefined attributes for preserving IDs during optimization */
27
- predefinedAttributes,
27
+ /**
28
+ * The WINDOW-GENERATED output attributes (one per function), supplied by
29
+ * `withChildren`/`withStreaming` so a window result column keeps ONE attribute
30
+ * id for the whole life of the plan. Only these are carried — the pass-through
31
+ * source attributes are always taken from the CURRENT source, so an optimizer
32
+ * rewrite of the source (AggregateNode → HashAggregate, an inserted Retrieve)
33
+ * cannot orphan the ids the projection above references.
34
+ */
35
+ predefinedWindowAttributes,
28
36
  /** Set by `rule-monotonic-window` when the source streams in window order. */
29
37
  streaming) {
30
38
  super(scope, estimatedCostOverride);
@@ -34,8 +42,14 @@ export class WindowNode extends PlanNode {
34
42
  this.partitionExpressions = partitionExpressions;
35
43
  this.orderByExpressions = orderByExpressions;
36
44
  this.functionArguments = functionArguments;
37
- this.predefinedAttributes = predefinedAttributes;
45
+ this.predefinedWindowAttributes = predefinedWindowAttributes;
38
46
  this.streaming = streaming;
47
+ // The preserved list is positional against `functions`: a wrong length silently
48
+ // yields a mis-shaped attribute row (window results addressed to the wrong id),
49
+ // so reject it at construction rather than at some later read.
50
+ if (predefinedWindowAttributes && predefinedWindowAttributes.length !== functions.length) {
51
+ quereusError(`WindowNode expects ${functions.length} preserved window attributes, got ${predefinedWindowAttributes.length}`, StatusCode.INTERNAL);
52
+ }
39
53
  this.outputTypeCache = new Cached(() => {
40
54
  const sourceType = this.source.getType();
41
55
  // Add window function columns to the source columns
@@ -54,18 +68,16 @@ export class WindowNode extends PlanNode {
54
68
  };
55
69
  });
56
70
  this.attributesCache = new Cached(() => {
57
- // If predefined attributes are provided, use them (for optimization)
58
- if (this.predefinedAttributes) {
59
- return this.predefinedAttributes.slice(); // Return a copy
60
- }
61
- // Preserve source attributes and add window function attributes
71
+ // Pass-through attributes always come from the CURRENT source; only the
72
+ // window-generated tail is preserved (or minted once, at build time).
62
73
  const sourceAttrs = this.source.getAttributes();
63
- const windowAttrs = this.functions.map((func) => ({
64
- id: PlanNode.nextAttrId(),
65
- name: func.alias || func.functionName.toLowerCase(),
66
- type: func.getType(),
67
- sourceRelation: `${this.nodeType}:${this.id}`
68
- }));
74
+ const windowAttrs = this.predefinedWindowAttributes
75
+ ?? this.functions.map((func) => ({
76
+ id: PlanNode.nextAttrId(),
77
+ name: func.alias || func.functionName.toLowerCase(),
78
+ type: func.getType(),
79
+ sourceRelation: `${this.nodeType}:${this.id}`
80
+ }));
69
81
  return [...sourceAttrs, ...windowAttrs];
70
82
  });
71
83
  }
@@ -75,6 +87,16 @@ export class WindowNode extends PlanNode {
75
87
  getAttributes() {
76
88
  return this.attributesCache.value;
77
89
  }
90
+ /**
91
+ * The window-generated output attributes (one per function, parallel to
92
+ * `functions`), excluding the pass-through source attributes. This is the list
93
+ * `withChildren`/`withStreaming` carry across rebuilds, and the list the window
94
+ * phase records so the projection above addresses each window result by
95
+ * attribute id.
96
+ */
97
+ getWindowAttributes() {
98
+ return this.getAttributes().slice(this.source.getAttributes().length);
99
+ }
78
100
  getChildren() {
79
101
  return [
80
102
  // Include *both* the relational source and all scalar expression children so
@@ -119,50 +141,70 @@ export class WindowNode extends PlanNode {
119
141
  if (!sourceChanged && !partitionChanged && !orderByChanged && !functionArgsChanged) {
120
142
  return this;
121
143
  }
122
- // **CRITICAL**: Preserve original attribute IDs to maintain column reference stability
123
- const originalAttributes = this.getAttributes();
124
144
  return new WindowNode(this.scope, newSource, this.windowSpec, this.functions, newPartitionExpressions, newOrderByExpressions, newFunctionArguments, undefined,
125
- // Preserve attributes only when the source is unchanged so that column IDs
126
- // stay consistent. If the source relation changed, let the WindowNode rebuild
127
- // its attribute list so that descriptors match the new underlying schema.
128
- sourceChanged ? undefined : originalAttributes, this.streaming);
145
+ // **CRITICAL**: always carry the window-generated attribute ids — the
146
+ // projection above references them, so they must survive even (especially)
147
+ // when the optimizer replaces the source. Pass-through attributes are
148
+ // recomputed from the new source.
149
+ this.getWindowAttributes(), this.streaming);
129
150
  }
130
151
  /** Return a new WindowNode with the given streaming config attached. */
131
152
  withStreaming(config) {
132
- return new WindowNode(this.scope, this.source, this.windowSpec, this.functions, this.partitionExpressions, this.orderByExpressions, this.functionArguments, undefined, this.getAttributes(), config);
153
+ return new WindowNode(this.scope, this.source, this.windowSpec, this.functions, this.partitionExpressions, this.orderByExpressions, this.functionArguments, undefined, this.getWindowAttributes(), config);
133
154
  }
134
155
  getRelations() {
135
156
  return [this.source];
136
157
  }
158
+ /**
159
+ * The window's ORDER BY expressed as sort keys, in the shape
160
+ * `extractOrderingFromSortKeys` expects. `AST.OrderByClause.direction` is
161
+ * optional; anything that is not `'desc'` is ascending — the same reading
162
+ * `rule-monotonic-window` and the `monotonicOn` derivation use.
163
+ */
164
+ windowSortKeys() {
165
+ return this.orderByExpressions.map((expression, i) => ({
166
+ expression,
167
+ direction: this.windowSpec.orderBy[i]?.direction === 'desc' ? 'desc' : 'asc',
168
+ }));
169
+ }
137
170
  computePhysical(childrenPhysical) {
138
171
  const sourcePhysical = childrenPhysical[0];
139
- // Window output ordering is determined by [PARTITION BY, ORDER BY]:
140
- // - streaming set: the runtime walks the source in source order and emits
141
- // in source order — windowing is row-pass-through. Source's monotonicOn
142
- // survives unchanged.
143
- // - PARTITION BY non-empty (buffered): the runtime groups rows by partition
144
- // key in insertion order then sorts within each partition, so a
145
- // single-attribute monotonicOn does not survive at the relation level.
146
- // - PARTITION BY empty, ORDER BY present (buffered): output is sorted by
147
- // the window's ORDER BY — derive monotonicOn from the leading key
148
- // (mirrors SortNode).
149
- // - PARTITION BY empty, ORDER BY empty: rows pass through in source order;
150
- // preserve source's monotonicOn unchanged.
172
+ // `ordering` (the exact emit order) and `monotonicOn` (the stronger
173
+ // per-attribute claim) come out of ONE split over [streaming, PARTITION BY,
174
+ // ORDER BY], so they cannot drift apart from each other or from what
175
+ // `runtime/emit/window.ts` yields. The four cases and the emitter function
176
+ // behind each are tabulated in docs/window-functions.md § "What the
177
+ // WindowNode advertises as its emit order".
178
+ // Column indices from `extractOrderingFromSortKeys` are positions in the
179
+ // SOURCE row; the window only APPENDS columns, so they need no shifting.
180
+ // NOTE: like SortNode, the derived `ordering` carries no NULLS FIRST/LAST
181
+ // information — it is `{ column, desc }` only. Harmless while every ordering
182
+ // consumer is null-placement-blind (merge join skips NULL keys wherever they
183
+ // land); if one is ever taught to honour an explicit `nulls`, this derivation
184
+ // and SortNode's must both withhold the ordering when `windowSpec.orderBy[i]
185
+ // .nulls` contradicts that consumer's convention.
151
186
  // TODO: the partitioned case can be tightened (e.g. when the partition keys
152
187
  // themselves are functionally determined by the candidate attribute) — out
153
188
  // of scope for the carrier ticket.
189
+ let ordering;
154
190
  let monotonicOn;
155
191
  if (this.streaming) {
192
+ // Row pass-through: emitted in source order.
193
+ ordering = sourcePhysical?.ordering;
156
194
  monotonicOn = sourcePhysical?.monotonicOn;
157
195
  }
158
196
  else if (this.partitionExpressions.length === 0) {
159
197
  if (this.orderByExpressions.length === 0) {
198
+ // Buffered, but nothing to sort by — still source order.
199
+ ordering = sourcePhysical?.ordering;
160
200
  monotonicOn = sourcePhysical?.monotonicOn;
161
201
  }
162
202
  else {
203
+ // Sorted by the window's ORDER BY; the source's order is gone.
204
+ const sourceAttrs = this.source.getAttributes();
205
+ ordering = extractOrderingFromSortKeys(this.windowSortKeys(), sourceAttrs);
163
206
  const leadExpr = this.orderByExpressions[0];
164
207
  if (leadExpr instanceof ColumnReferenceNode) {
165
- const sourceAttrs = this.source.getAttributes();
166
208
  const leadAttrId = leadExpr.attributeId;
167
209
  const leadIdx = this.source.getAttributeIndex().get(leadAttrId) ?? -1;
168
210
  if (leadIdx >= 0) {
@@ -173,10 +215,12 @@ export class WindowNode extends PlanNode {
173
215
  }
174
216
  }
175
217
  }
218
+ // Buffered with a PARTITION BY falls through: whole partitions emit in
219
+ // first-seen order, so neither claim survives and both stay undefined.
176
220
  return {
177
221
  // Window functions don't change the row count — relay the PHYSICAL one.
178
222
  estimatedRows: physicalSourceRows(sourcePhysical, this.source),
179
- ordering: sourcePhysical?.ordering,
223
+ ordering,
180
224
  monotonicOn,
181
225
  // Window functions append columns but don't change the source row stream;
182
226
  // FDs, equivalence classes, and constant bindings pass through on the
@@ -1 +1 @@
1
- {"version":3,"file":"window-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/window-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"window-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/window-node.ts"],"names":[],"mappings":"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"}