@quereus/quereus 4.4.1 → 4.6.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 (593) hide show
  1. package/README.md +5 -4
  2. package/dist/src/core/database-events.d.ts +99 -1
  3. package/dist/src/core/database-events.d.ts.map +1 -1
  4. package/dist/src/core/database-events.js +219 -3
  5. package/dist/src/core/database-events.js.map +1 -1
  6. package/dist/src/core/database-materialized-views-analysis.d.ts.map +1 -1
  7. package/dist/src/core/database-materialized-views-analysis.js +1 -0
  8. package/dist/src/core/database-materialized-views-analysis.js.map +1 -1
  9. package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -1
  10. package/dist/src/core/database-materialized-views-plan-builders.js +29 -2
  11. package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
  12. package/dist/src/core/database-transaction.d.ts +9 -0
  13. package/dist/src/core/database-transaction.d.ts.map +1 -1
  14. package/dist/src/core/database-transaction.js +9 -0
  15. package/dist/src/core/database-transaction.js.map +1 -1
  16. package/dist/src/core/database.d.ts +7 -1
  17. package/dist/src/core/database.d.ts.map +1 -1
  18. package/dist/src/core/database.js +20 -5
  19. package/dist/src/core/database.js.map +1 -1
  20. package/dist/src/func/builtins/aggregate.js +11 -11
  21. package/dist/src/func/builtins/aggregate.js.map +1 -1
  22. package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
  23. package/dist/src/func/builtins/builtin-window-functions.js +15 -85
  24. package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
  25. package/dist/src/func/builtins/conversion.d.ts.map +1 -1
  26. package/dist/src/func/builtins/conversion.js +10 -9
  27. package/dist/src/func/builtins/conversion.js.map +1 -1
  28. package/dist/src/func/builtins/datetime.d.ts.map +1 -1
  29. package/dist/src/func/builtins/datetime.js +28 -10
  30. package/dist/src/func/builtins/datetime.js.map +1 -1
  31. package/dist/src/func/builtins/json.d.ts.map +1 -1
  32. package/dist/src/func/builtins/json.js +23 -17
  33. package/dist/src/func/builtins/json.js.map +1 -1
  34. package/dist/src/func/builtins/mutation.js +2 -2
  35. package/dist/src/func/builtins/mutation.js.map +1 -1
  36. package/dist/src/func/builtins/return-types.d.ts +327 -0
  37. package/dist/src/func/builtins/return-types.d.ts.map +1 -0
  38. package/dist/src/func/builtins/return-types.js +43 -0
  39. package/dist/src/func/builtins/return-types.js.map +1 -0
  40. package/dist/src/func/builtins/scalar.d.ts.map +1 -1
  41. package/dist/src/func/builtins/scalar.js +193 -37
  42. package/dist/src/func/builtins/scalar.js.map +1 -1
  43. package/dist/src/func/builtins/schema.d.ts.map +1 -1
  44. package/dist/src/func/builtins/schema.js +11 -3
  45. package/dist/src/func/builtins/schema.js.map +1 -1
  46. package/dist/src/func/builtins/string.d.ts.map +1 -1
  47. package/dist/src/func/builtins/string.js +4 -2
  48. package/dist/src/func/builtins/string.js.map +1 -1
  49. package/dist/src/func/builtins/timespan.d.ts +3 -0
  50. package/dist/src/func/builtins/timespan.d.ts.map +1 -1
  51. package/dist/src/func/builtins/timespan.js +15 -11
  52. package/dist/src/func/builtins/timespan.js.map +1 -1
  53. package/dist/src/func/registration.d.ts +39 -1
  54. package/dist/src/func/registration.d.ts.map +1 -1
  55. package/dist/src/func/registration.js +236 -41
  56. package/dist/src/func/registration.js.map +1 -1
  57. package/dist/src/index.d.ts +14 -7
  58. package/dist/src/index.d.ts.map +1 -1
  59. package/dist/src/index.js +14 -5
  60. package/dist/src/index.js.map +1 -1
  61. package/dist/src/parser/parser.d.ts +46 -0
  62. package/dist/src/parser/parser.d.ts.map +1 -1
  63. package/dist/src/parser/parser.js +160 -44
  64. package/dist/src/parser/parser.js.map +1 -1
  65. package/dist/src/planner/analysis/check-extraction.d.ts.map +1 -1
  66. package/dist/src/planner/analysis/check-extraction.js +37 -4
  67. package/dist/src/planner/analysis/check-extraction.js.map +1 -1
  68. package/dist/src/planner/analysis/coarsened-key.d.ts +4 -3
  69. package/dist/src/planner/analysis/coarsened-key.d.ts.map +1 -1
  70. package/dist/src/planner/analysis/coarsened-key.js +37 -3
  71. package/dist/src/planner/analysis/coarsened-key.js.map +1 -1
  72. package/dist/src/planner/analysis/comparison-collation.d.ts +41 -13
  73. package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
  74. package/dist/src/planner/analysis/comparison-collation.js +51 -14
  75. package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
  76. package/dist/src/planner/analysis/constraint-extractor.d.ts +0 -7
  77. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  78. package/dist/src/planner/analysis/constraint-extractor.js +59 -59
  79. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  80. package/dist/src/planner/analysis/coverage-prover.d.ts +13 -2
  81. package/dist/src/planner/analysis/coverage-prover.d.ts.map +1 -1
  82. package/dist/src/planner/analysis/coverage-prover.js +10 -14
  83. package/dist/src/planner/analysis/coverage-prover.js.map +1 -1
  84. package/dist/src/planner/analysis/predicate-conjuncts.d.ts +10 -4
  85. package/dist/src/planner/analysis/predicate-conjuncts.d.ts.map +1 -1
  86. package/dist/src/planner/analysis/predicate-conjuncts.js +28 -7
  87. package/dist/src/planner/analysis/predicate-conjuncts.js.map +1 -1
  88. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
  89. package/dist/src/planner/analysis/query-rewrite-matcher.js +8 -27
  90. package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -1
  91. package/dist/src/planner/analysis/scalar-subqueries.d.ts +22 -3
  92. package/dist/src/planner/analysis/scalar-subqueries.d.ts.map +1 -1
  93. package/dist/src/planner/analysis/scalar-subqueries.js +32 -3
  94. package/dist/src/planner/analysis/scalar-subqueries.js.map +1 -1
  95. package/dist/src/planner/analysis/set-op-type-merge.d.ts +64 -0
  96. package/dist/src/planner/analysis/set-op-type-merge.d.ts.map +1 -0
  97. package/dist/src/planner/analysis/set-op-type-merge.js +97 -0
  98. package/dist/src/planner/analysis/set-op-type-merge.js.map +1 -0
  99. package/dist/src/planner/building/alter-table.d.ts.map +1 -1
  100. package/dist/src/planner/building/alter-table.js +65 -27
  101. package/dist/src/planner/building/alter-table.js.map +1 -1
  102. package/dist/src/planner/building/coercion.d.ts +54 -0
  103. package/dist/src/planner/building/coercion.d.ts.map +1 -0
  104. package/dist/src/planner/building/coercion.js +88 -0
  105. package/dist/src/planner/building/coercion.js.map +1 -0
  106. package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
  107. package/dist/src/planner/building/constraint-builder.js +5 -18
  108. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  109. package/dist/src/planner/building/expression.d.ts +17 -0
  110. package/dist/src/planner/building/expression.d.ts.map +1 -1
  111. package/dist/src/planner/building/expression.js +23 -115
  112. package/dist/src/planner/building/expression.js.map +1 -1
  113. package/dist/src/planner/building/function-call.d.ts.map +1 -1
  114. package/dist/src/planner/building/function-call.js +13 -0
  115. package/dist/src/planner/building/function-call.js.map +1 -1
  116. package/dist/src/planner/building/select-aggregates.d.ts +1 -1
  117. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  118. package/dist/src/planner/building/select-aggregates.js +53 -2
  119. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  120. package/dist/src/planner/building/select-compound.d.ts.map +1 -1
  121. package/dist/src/planner/building/select-compound.js +10 -6
  122. package/dist/src/planner/building/select-compound.js.map +1 -1
  123. package/dist/src/planner/building/select-context.d.ts +7 -0
  124. package/dist/src/planner/building/select-context.d.ts.map +1 -1
  125. package/dist/src/planner/building/select-context.js +10 -40
  126. package/dist/src/planner/building/select-context.js.map +1 -1
  127. package/dist/src/planner/building/select.d.ts +37 -1
  128. package/dist/src/planner/building/select.d.ts.map +1 -1
  129. package/dist/src/planner/building/select.js +112 -51
  130. package/dist/src/planner/building/select.js.map +1 -1
  131. package/dist/src/planner/cost/conjunct-cost.d.ts +82 -0
  132. package/dist/src/planner/cost/conjunct-cost.d.ts.map +1 -0
  133. package/dist/src/planner/cost/conjunct-cost.js +107 -0
  134. package/dist/src/planner/cost/conjunct-cost.js.map +1 -0
  135. package/dist/src/planner/cost/index.d.ts +10 -0
  136. package/dist/src/planner/cost/index.d.ts.map +1 -1
  137. package/dist/src/planner/cost/index.js +15 -0
  138. package/dist/src/planner/cost/index.js.map +1 -1
  139. package/dist/src/planner/mutation/propagate.d.ts.map +1 -1
  140. package/dist/src/planner/mutation/propagate.js +1 -0
  141. package/dist/src/planner/mutation/propagate.js.map +1 -1
  142. package/dist/src/planner/nodes/aggregate-node.d.ts +6 -0
  143. package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
  144. package/dist/src/planner/nodes/aggregate-node.js +10 -2
  145. package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
  146. package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
  147. package/dist/src/planner/nodes/alias-node.js +2 -1
  148. package/dist/src/planner/nodes/alias-node.js.map +1 -1
  149. package/dist/src/planner/nodes/alter-table-node.d.ts +24 -8
  150. package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
  151. package/dist/src/planner/nodes/alter-table-node.js.map +1 -1
  152. package/dist/src/planner/nodes/asof-scan-node.d.ts.map +1 -1
  153. package/dist/src/planner/nodes/asof-scan-node.js +4 -1
  154. package/dist/src/planner/nodes/asof-scan-node.js.map +1 -1
  155. package/dist/src/planner/nodes/asserted-keys-node.d.ts.map +1 -1
  156. package/dist/src/planner/nodes/asserted-keys-node.js +2 -1
  157. package/dist/src/planner/nodes/asserted-keys-node.js.map +1 -1
  158. package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -1
  159. package/dist/src/planner/nodes/async-gather-node.js +19 -8
  160. package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
  161. package/dist/src/planner/nodes/bloom-join-node.d.ts +2 -0
  162. package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
  163. package/dist/src/planner/nodes/bloom-join-node.js +17 -7
  164. package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
  165. package/dist/src/planner/nodes/cache-node.d.ts.map +1 -1
  166. package/dist/src/planner/nodes/cache-node.js +2 -1
  167. package/dist/src/planner/nodes/cache-node.js.map +1 -1
  168. package/dist/src/planner/nodes/distinct-node.d.ts +6 -0
  169. package/dist/src/planner/nodes/distinct-node.d.ts.map +1 -1
  170. package/dist/src/planner/nodes/distinct-node.js +10 -2
  171. package/dist/src/planner/nodes/distinct-node.js.map +1 -1
  172. package/dist/src/planner/nodes/eager-prefetch-node.d.ts.map +1 -1
  173. package/dist/src/planner/nodes/eager-prefetch-node.js +2 -1
  174. package/dist/src/planner/nodes/eager-prefetch-node.js.map +1 -1
  175. package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts +5 -0
  176. package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts.map +1 -1
  177. package/dist/src/planner/nodes/fanout-lookup-join-node.js +13 -6
  178. package/dist/src/planner/nodes/fanout-lookup-join-node.js.map +1 -1
  179. package/dist/src/planner/nodes/filter.d.ts.map +1 -1
  180. package/dist/src/planner/nodes/filter.js +12 -5
  181. package/dist/src/planner/nodes/filter.js.map +1 -1
  182. package/dist/src/planner/nodes/hash-aggregate.d.ts +6 -0
  183. package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
  184. package/dist/src/planner/nodes/hash-aggregate.js +10 -2
  185. package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
  186. package/dist/src/planner/nodes/join-node.d.ts +25 -1
  187. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  188. package/dist/src/planner/nodes/join-node.js +38 -10
  189. package/dist/src/planner/nodes/join-node.js.map +1 -1
  190. package/dist/src/planner/nodes/join-utils.d.ts +78 -0
  191. package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
  192. package/dist/src/planner/nodes/join-utils.js +73 -0
  193. package/dist/src/planner/nodes/join-utils.js.map +1 -1
  194. package/dist/src/planner/nodes/key-set-semi-join-node.d.ts +87 -0
  195. package/dist/src/planner/nodes/key-set-semi-join-node.d.ts.map +1 -0
  196. package/dist/src/planner/nodes/key-set-semi-join-node.js +141 -0
  197. package/dist/src/planner/nodes/key-set-semi-join-node.js.map +1 -0
  198. package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts.map +1 -1
  199. package/dist/src/planner/nodes/lens-auxiliary-access-node.js +2 -1
  200. package/dist/src/planner/nodes/lens-auxiliary-access-node.js.map +1 -1
  201. package/dist/src/planner/nodes/limit-offset.d.ts +6 -0
  202. package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
  203. package/dist/src/planner/nodes/limit-offset.js +10 -2
  204. package/dist/src/planner/nodes/limit-offset.js.map +1 -1
  205. package/dist/src/planner/nodes/merge-join-node.d.ts +2 -0
  206. package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
  207. package/dist/src/planner/nodes/merge-join-node.js +21 -8
  208. package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
  209. package/dist/src/planner/nodes/ordinal-slice-node.d.ts +5 -0
  210. package/dist/src/planner/nodes/ordinal-slice-node.d.ts.map +1 -1
  211. package/dist/src/planner/nodes/ordinal-slice-node.js +9 -2
  212. package/dist/src/planner/nodes/ordinal-slice-node.js.map +1 -1
  213. package/dist/src/planner/nodes/plan-node-type.d.ts +1 -0
  214. package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
  215. package/dist/src/planner/nodes/plan-node-type.js +1 -0
  216. package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
  217. package/dist/src/planner/nodes/plan-node.d.ts +24 -0
  218. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  219. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  220. package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
  221. package/dist/src/planner/nodes/project-node.js +2 -1
  222. package/dist/src/planner/nodes/project-node.js.map +1 -1
  223. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  224. package/dist/src/planner/nodes/reference.js +3 -2
  225. package/dist/src/planner/nodes/reference.js.map +1 -1
  226. package/dist/src/planner/nodes/retrieve-node.d.ts.map +1 -1
  227. package/dist/src/planner/nodes/retrieve-node.js +2 -1
  228. package/dist/src/planner/nodes/retrieve-node.js.map +1 -1
  229. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  230. package/dist/src/planner/nodes/scalar.js +5 -18
  231. package/dist/src/planner/nodes/scalar.js.map +1 -1
  232. package/dist/src/planner/nodes/set-operation-node.d.ts +68 -16
  233. package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
  234. package/dist/src/planner/nodes/set-operation-node.js +147 -26
  235. package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
  236. package/dist/src/planner/nodes/sort.d.ts.map +1 -1
  237. package/dist/src/planner/nodes/sort.js +3 -1
  238. package/dist/src/planner/nodes/sort.js.map +1 -1
  239. package/dist/src/planner/nodes/stream-aggregate.d.ts +6 -0
  240. package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
  241. package/dist/src/planner/nodes/stream-aggregate.js +10 -2
  242. package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
  243. package/dist/src/planner/nodes/table-access-nodes.d.ts +19 -1
  244. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
  245. package/dist/src/planner/nodes/table-access-nodes.js +18 -2
  246. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  247. package/dist/src/planner/nodes/window-function.d.ts.map +1 -1
  248. package/dist/src/planner/nodes/window-function.js +8 -0
  249. package/dist/src/planner/nodes/window-function.js.map +1 -1
  250. package/dist/src/planner/nodes/window-node.d.ts +1 -1
  251. package/dist/src/planner/nodes/window-node.d.ts.map +1 -1
  252. package/dist/src/planner/nodes/window-node.js +3 -1
  253. package/dist/src/planner/nodes/window-node.js.map +1 -1
  254. package/dist/src/planner/optimizer.d.ts +9 -1
  255. package/dist/src/planner/optimizer.d.ts.map +1 -1
  256. package/dist/src/planner/optimizer.js +126 -6
  257. package/dist/src/planner/optimizer.js.map +1 -1
  258. package/dist/src/planner/rules/access/rule-key-set-seek.d.ts +68 -0
  259. package/dist/src/planner/rules/access/rule-key-set-seek.d.ts.map +1 -0
  260. package/dist/src/planner/rules/access/rule-key-set-seek.js +343 -0
  261. package/dist/src/planner/rules/access/rule-key-set-seek.js.map +1 -0
  262. package/dist/src/planner/rules/access/rule-monotonic-range-access.d.ts.map +1 -1
  263. package/dist/src/planner/rules/access/rule-monotonic-range-access.js +2 -2
  264. package/dist/src/planner/rules/access/rule-monotonic-range-access.js.map +1 -1
  265. package/dist/src/planner/rules/access/rule-select-access-path.d.ts +46 -0
  266. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  267. package/dist/src/planner/rules/access/rule-select-access-path.js +54 -13
  268. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  269. package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts.map +1 -1
  270. package/dist/src/planner/rules/cache/rule-cte-optimization.js +9 -0
  271. package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +1 -1
  272. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts.map +1 -1
  273. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js +6 -4
  274. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js.map +1 -1
  275. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts +49 -49
  276. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts.map +1 -1
  277. package/dist/src/planner/rules/join/equi-pair-extractor.js +54 -58
  278. package/dist/src/planner/rules/join/equi-pair-extractor.js.map +1 -1
  279. package/dist/src/planner/rules/join/index-nested-loop.d.ts +49 -0
  280. package/dist/src/planner/rules/join/index-nested-loop.d.ts.map +1 -0
  281. package/dist/src/planner/rules/join/index-nested-loop.js +285 -0
  282. package/dist/src/planner/rules/join/index-nested-loop.js.map +1 -0
  283. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +8 -8
  284. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts +10 -4
  285. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
  286. package/dist/src/planner/rules/join/rule-join-physical-selection.js +97 -29
  287. package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
  288. package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts.map +1 -1
  289. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +15 -5
  290. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js.map +1 -1
  291. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.d.ts +1 -1
  292. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js +1 -1
  293. package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.d.ts +43 -0
  294. package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.d.ts.map +1 -0
  295. package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.js +119 -0
  296. package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.js.map +1 -0
  297. package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts +44 -3
  298. package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts.map +1 -1
  299. package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +142 -18
  300. package/dist/src/planner/rules/predicate/rule-filter-selectivity.js.map +1 -1
  301. package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.d.ts +73 -0
  302. package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.d.ts.map +1 -0
  303. package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.js +205 -0
  304. package/dist/src/planner/rules/predicate/rule-join-predicate-pushdown.js.map +1 -0
  305. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.d.ts +14 -11
  306. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.d.ts.map +1 -1
  307. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js +21 -85
  308. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js.map +1 -1
  309. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts +10 -2
  310. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts.map +1 -1
  311. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js +20 -2
  312. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
  313. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
  314. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +18 -3
  315. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  316. package/dist/src/planner/rules/shared/access-leaf.d.ts +39 -0
  317. package/dist/src/planner/rules/shared/access-leaf.d.ts.map +1 -0
  318. package/dist/src/planner/rules/shared/access-leaf.js +79 -0
  319. package/dist/src/planner/rules/shared/access-leaf.js.map +1 -0
  320. package/dist/src/planner/rules/shared/index-style-context.d.ts +17 -0
  321. package/dist/src/planner/rules/shared/index-style-context.d.ts.map +1 -1
  322. package/dist/src/planner/rules/shared/index-style-context.js +7 -0
  323. package/dist/src/planner/rules/shared/index-style-context.js.map +1 -1
  324. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.d.ts.map +1 -1
  325. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js +18 -8
  326. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js.map +1 -1
  327. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.d.ts +3 -1
  328. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.d.ts.map +1 -1
  329. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js +27 -10
  330. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js.map +1 -1
  331. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts +24 -6
  332. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
  333. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +243 -70
  334. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
  335. package/dist/src/planner/rules/window/rule-monotonic-window.d.ts +17 -7
  336. package/dist/src/planner/rules/window/rule-monotonic-window.d.ts.map +1 -1
  337. package/dist/src/planner/rules/window/rule-monotonic-window.js +124 -87
  338. package/dist/src/planner/rules/window/rule-monotonic-window.js.map +1 -1
  339. package/dist/src/planner/scopes/aliased.d.ts.map +1 -1
  340. package/dist/src/planner/scopes/aliased.js +6 -0
  341. package/dist/src/planner/scopes/aliased.js.map +1 -1
  342. package/dist/src/planner/stats/catalog-stats.d.ts +87 -4
  343. package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -1
  344. package/dist/src/planner/stats/catalog-stats.js +250 -28
  345. package/dist/src/planner/stats/catalog-stats.js.map +1 -1
  346. package/dist/src/planner/stats/conjunct-selectivity.d.ts +48 -0
  347. package/dist/src/planner/stats/conjunct-selectivity.d.ts.map +1 -0
  348. package/dist/src/planner/stats/conjunct-selectivity.js +168 -0
  349. package/dist/src/planner/stats/conjunct-selectivity.js.map +1 -0
  350. package/dist/src/planner/stats/index.d.ts +36 -2
  351. package/dist/src/planner/stats/index.d.ts.map +1 -1
  352. package/dist/src/planner/stats/index.js.map +1 -1
  353. package/dist/src/planner/stats/selectivity-combine.d.ts +53 -0
  354. package/dist/src/planner/stats/selectivity-combine.d.ts.map +1 -0
  355. package/dist/src/planner/stats/selectivity-combine.js +75 -0
  356. package/dist/src/planner/stats/selectivity-combine.js.map +1 -0
  357. package/dist/src/planner/stats/table-cardinality.d.ts +28 -0
  358. package/dist/src/planner/stats/table-cardinality.d.ts.map +1 -0
  359. package/dist/src/planner/stats/table-cardinality.js +29 -0
  360. package/dist/src/planner/stats/table-cardinality.js.map +1 -0
  361. package/dist/src/planner/util/column-origins.d.ts +79 -0
  362. package/dist/src/planner/util/column-origins.d.ts.map +1 -0
  363. package/dist/src/planner/util/column-origins.js +150 -0
  364. package/dist/src/planner/util/column-origins.js.map +1 -0
  365. package/dist/src/planner/util/fd-utils.d.ts +32 -8
  366. package/dist/src/planner/util/fd-utils.d.ts.map +1 -1
  367. package/dist/src/planner/util/fd-utils.js +46 -9
  368. package/dist/src/planner/util/fd-utils.js.map +1 -1
  369. package/dist/src/planner/util/ind-utils.d.ts +56 -17
  370. package/dist/src/planner/util/ind-utils.d.ts.map +1 -1
  371. package/dist/src/planner/util/ind-utils.js +82 -21
  372. package/dist/src/planner/util/ind-utils.js.map +1 -1
  373. package/dist/src/planner/util/key-utils.d.ts +20 -2
  374. package/dist/src/planner/util/key-utils.d.ts.map +1 -1
  375. package/dist/src/planner/util/key-utils.js +37 -3
  376. package/dist/src/planner/util/key-utils.js.map +1 -1
  377. package/dist/src/planner/util/row-estimates.d.ts +28 -0
  378. package/dist/src/planner/util/row-estimates.d.ts.map +1 -0
  379. package/dist/src/planner/util/row-estimates.js +40 -0
  380. package/dist/src/planner/util/row-estimates.js.map +1 -0
  381. package/dist/src/planner/util/row-population.d.ts +42 -0
  382. package/dist/src/planner/util/row-population.d.ts.map +1 -0
  383. package/dist/src/planner/util/row-population.js +71 -0
  384. package/dist/src/planner/util/row-population.js.map +1 -0
  385. package/dist/src/runtime/deferred-constraint-queue.d.ts +40 -0
  386. package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
  387. package/dist/src/runtime/deferred-constraint-queue.js +90 -9
  388. package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
  389. package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
  390. package/dist/src/runtime/emit/add-constraint.js +39 -1
  391. package/dist/src/runtime/emit/add-constraint.js.map +1 -1
  392. package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
  393. package/dist/src/runtime/emit/aggregate.js +4 -4
  394. package/dist/src/runtime/emit/aggregate.js.map +1 -1
  395. package/dist/src/runtime/emit/alter-schema-event.d.ts +42 -0
  396. package/dist/src/runtime/emit/alter-schema-event.d.ts.map +1 -0
  397. package/dist/src/runtime/emit/alter-schema-event.js +28 -0
  398. package/dist/src/runtime/emit/alter-schema-event.js.map +1 -0
  399. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  400. package/dist/src/runtime/emit/alter-table.js +386 -154
  401. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  402. package/dist/src/runtime/emit/analyze.d.ts.map +1 -1
  403. package/dist/src/runtime/emit/analyze.js +35 -3
  404. package/dist/src/runtime/emit/analyze.js.map +1 -1
  405. package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
  406. package/dist/src/runtime/emit/asof-scan.js +8 -3
  407. package/dist/src/runtime/emit/asof-scan.js.map +1 -1
  408. package/dist/src/runtime/emit/between.d.ts.map +1 -1
  409. package/dist/src/runtime/emit/between.js +4 -38
  410. package/dist/src/runtime/emit/between.js.map +1 -1
  411. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  412. package/dist/src/runtime/emit/binary.js +2 -23
  413. package/dist/src/runtime/emit/binary.js.map +1 -1
  414. package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
  415. package/dist/src/runtime/emit/bloom-join.js +6 -35
  416. package/dist/src/runtime/emit/bloom-join.js.map +1 -1
  417. package/dist/src/runtime/emit/case.d.ts.map +1 -1
  418. package/dist/src/runtime/emit/case.js +40 -6
  419. package/dist/src/runtime/emit/case.js.map +1 -1
  420. package/dist/src/runtime/emit/cast.d.ts.map +1 -1
  421. package/dist/src/runtime/emit/cast.js +4 -19
  422. package/dist/src/runtime/emit/cast.js.map +1 -1
  423. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  424. package/dist/src/runtime/emit/constraint-check.js +32 -8
  425. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  426. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  427. package/dist/src/runtime/emit/dml-executor.js +90 -50
  428. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  429. package/dist/src/runtime/emit/drop-index.d.ts.map +1 -1
  430. package/dist/src/runtime/emit/drop-index.js +4 -3
  431. package/dist/src/runtime/emit/drop-index.js.map +1 -1
  432. package/dist/src/runtime/emit/filter.d.ts +18 -0
  433. package/dist/src/runtime/emit/filter.d.ts.map +1 -1
  434. package/dist/src/runtime/emit/filter.js +52 -10
  435. package/dist/src/runtime/emit/filter.js.map +1 -1
  436. package/dist/src/runtime/emit/hash-aggregate.d.ts.map +1 -1
  437. package/dist/src/runtime/emit/hash-aggregate.js +2 -2
  438. package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
  439. package/dist/src/runtime/emit/join-key-extractor.d.ts +46 -0
  440. package/dist/src/runtime/emit/join-key-extractor.d.ts.map +1 -0
  441. package/dist/src/runtime/emit/join-key-extractor.js +60 -0
  442. package/dist/src/runtime/emit/join-key-extractor.js.map +1 -0
  443. package/dist/src/runtime/emit/join.d.ts.map +1 -1
  444. package/dist/src/runtime/emit/join.js +8 -46
  445. package/dist/src/runtime/emit/join.js.map +1 -1
  446. package/dist/src/runtime/emit/key-set-semi-join.d.ts +29 -0
  447. package/dist/src/runtime/emit/key-set-semi-join.d.ts.map +1 -0
  448. package/dist/src/runtime/emit/key-set-semi-join.js +149 -0
  449. package/dist/src/runtime/emit/key-set-semi-join.js.map +1 -0
  450. package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
  451. package/dist/src/runtime/emit/merge-join.js +15 -8
  452. package/dist/src/runtime/emit/merge-join.js.map +1 -1
  453. package/dist/src/runtime/emit/operand-comparator.d.ts +70 -0
  454. package/dist/src/runtime/emit/operand-comparator.d.ts.map +1 -0
  455. package/dist/src/runtime/emit/operand-comparator.js +93 -0
  456. package/dist/src/runtime/emit/operand-comparator.js.map +1 -0
  457. package/dist/src/runtime/emit/scan.d.ts.map +1 -1
  458. package/dist/src/runtime/emit/scan.js +11 -2
  459. package/dist/src/runtime/emit/scan.js.map +1 -1
  460. package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
  461. package/dist/src/runtime/emit/schema-declarative.js +30 -0
  462. package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
  463. package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
  464. package/dist/src/runtime/emit/subquery.js +153 -52
  465. package/dist/src/runtime/emit/subquery.js.map +1 -1
  466. package/dist/src/runtime/emit/window.js +36 -23
  467. package/dist/src/runtime/emit/window.js.map +1 -1
  468. package/dist/src/runtime/parallel-driver.d.ts +5 -2
  469. package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
  470. package/dist/src/runtime/parallel-driver.js +6 -2
  471. package/dist/src/runtime/parallel-driver.js.map +1 -1
  472. package/dist/src/runtime/register.d.ts.map +1 -1
  473. package/dist/src/runtime/register.js +2 -0
  474. package/dist/src/runtime/register.js.map +1 -1
  475. package/dist/src/runtime/types.d.ts +7 -0
  476. package/dist/src/runtime/types.d.ts.map +1 -1
  477. package/dist/src/runtime/types.js.map +1 -1
  478. package/dist/src/schema/catalog-persistability.d.ts +19 -16
  479. package/dist/src/schema/catalog-persistability.d.ts.map +1 -1
  480. package/dist/src/schema/catalog-persistability.js +76 -20
  481. package/dist/src/schema/catalog-persistability.js.map +1 -1
  482. package/dist/src/schema/catalog.d.ts +67 -2
  483. package/dist/src/schema/catalog.d.ts.map +1 -1
  484. package/dist/src/schema/catalog.js +194 -3
  485. package/dist/src/schema/catalog.js.map +1 -1
  486. package/dist/src/schema/column.d.ts +26 -3
  487. package/dist/src/schema/column.d.ts.map +1 -1
  488. package/dist/src/schema/column.js.map +1 -1
  489. package/dist/src/schema/ddl-generator.d.ts.map +1 -1
  490. package/dist/src/schema/ddl-generator.js +19 -6
  491. package/dist/src/schema/ddl-generator.js.map +1 -1
  492. package/dist/src/schema/function.d.ts +40 -0
  493. package/dist/src/schema/function.d.ts.map +1 -1
  494. package/dist/src/schema/function.js +10 -2
  495. package/dist/src/schema/function.js.map +1 -1
  496. package/dist/src/schema/manager.d.ts +84 -7
  497. package/dist/src/schema/manager.d.ts.map +1 -1
  498. package/dist/src/schema/manager.js +153 -53
  499. package/dist/src/schema/manager.js.map +1 -1
  500. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  501. package/dist/src/schema/schema-differ.js +104 -28
  502. package/dist/src/schema/schema-differ.js.map +1 -1
  503. package/dist/src/schema/table.d.ts +149 -1
  504. package/dist/src/schema/table.d.ts.map +1 -1
  505. package/dist/src/schema/table.js +248 -1
  506. package/dist/src/schema/table.js.map +1 -1
  507. package/dist/src/schema/unique-enforcement.d.ts +5 -3
  508. package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
  509. package/dist/src/schema/unique-enforcement.js +5 -3
  510. package/dist/src/schema/unique-enforcement.js.map +1 -1
  511. package/dist/src/types/builtin-types.d.ts +16 -0
  512. package/dist/src/types/builtin-types.d.ts.map +1 -1
  513. package/dist/src/types/builtin-types.js +76 -12
  514. package/dist/src/types/builtin-types.js.map +1 -1
  515. package/dist/src/types/cast-semantics.d.ts +42 -0
  516. package/dist/src/types/cast-semantics.d.ts.map +1 -1
  517. package/dist/src/types/cast-semantics.js +64 -0
  518. package/dist/src/types/cast-semantics.js.map +1 -1
  519. package/dist/src/types/comparison-coercion.d.ts +101 -0
  520. package/dist/src/types/comparison-coercion.d.ts.map +1 -0
  521. package/dist/src/types/comparison-coercion.js +162 -0
  522. package/dist/src/types/comparison-coercion.js.map +1 -0
  523. package/dist/src/types/index.d.ts +2 -2
  524. package/dist/src/types/index.d.ts.map +1 -1
  525. package/dist/src/types/index.js +2 -2
  526. package/dist/src/types/index.js.map +1 -1
  527. package/dist/src/types/logical-type.d.ts +7 -0
  528. package/dist/src/types/logical-type.d.ts.map +1 -1
  529. package/dist/src/types/logical-type.js.map +1 -1
  530. package/dist/src/types/validation.d.ts +56 -0
  531. package/dist/src/types/validation.d.ts.map +1 -1
  532. package/dist/src/types/validation.js +68 -0
  533. package/dist/src/types/validation.js.map +1 -1
  534. package/dist/src/util/coercion.d.ts +8 -0
  535. package/dist/src/util/coercion.d.ts.map +1 -1
  536. package/dist/src/util/coercion.js +8 -0
  537. package/dist/src/util/coercion.js.map +1 -1
  538. package/dist/src/util/comparison.d.ts +41 -3
  539. package/dist/src/util/comparison.d.ts.map +1 -1
  540. package/dist/src/util/comparison.js +52 -5
  541. package/dist/src/util/comparison.js.map +1 -1
  542. package/dist/src/util/key-serializer.d.ts +46 -0
  543. package/dist/src/util/key-serializer.d.ts.map +1 -1
  544. package/dist/src/util/key-serializer.js +47 -0
  545. package/dist/src/util/key-serializer.js.map +1 -1
  546. package/dist/src/util/value-set.d.ts +21 -0
  547. package/dist/src/util/value-set.d.ts.map +1 -0
  548. package/dist/src/util/value-set.js +22 -0
  549. package/dist/src/util/value-set.js.map +1 -0
  550. package/dist/src/vtab/best-access-plan.d.ts +87 -0
  551. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  552. package/dist/src/vtab/best-access-plan.js +87 -0
  553. package/dist/src/vtab/best-access-plan.js.map +1 -1
  554. package/dist/src/vtab/capabilities.d.ts +1 -1
  555. package/dist/src/vtab/events.d.ts +5 -1
  556. package/dist/src/vtab/events.d.ts.map +1 -1
  557. package/dist/src/vtab/events.js.map +1 -1
  558. package/dist/src/vtab/memory/layer/alter-column.d.ts +147 -0
  559. package/dist/src/vtab/memory/layer/alter-column.d.ts.map +1 -0
  560. package/dist/src/vtab/memory/layer/alter-column.js +214 -0
  561. package/dist/src/vtab/memory/layer/alter-column.js.map +1 -0
  562. package/dist/src/vtab/memory/layer/base.d.ts +6 -4
  563. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  564. package/dist/src/vtab/memory/layer/base.js +10 -7
  565. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  566. package/dist/src/vtab/memory/layer/interface.d.ts +2 -2
  567. package/dist/src/vtab/memory/layer/interface.d.ts.map +1 -1
  568. package/dist/src/vtab/memory/layer/manager.d.ts +232 -39
  569. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  570. package/dist/src/vtab/memory/layer/manager.js +657 -519
  571. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  572. package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
  573. package/dist/src/vtab/memory/layer/scan-layer.js +32 -5
  574. package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
  575. package/dist/src/vtab/memory/layer/transaction.d.ts +111 -16
  576. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  577. package/dist/src/vtab/memory/layer/transaction.js +154 -51
  578. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  579. package/dist/src/vtab/memory/module.d.ts +14 -2
  580. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  581. package/dist/src/vtab/memory/module.js +53 -40
  582. package/dist/src/vtab/memory/module.js.map +1 -1
  583. package/dist/src/vtab/memory/table.d.ts +1 -1
  584. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  585. package/dist/src/vtab/memory/table.js +15 -3
  586. package/dist/src/vtab/memory/table.js.map +1 -1
  587. package/dist/src/vtab/module.d.ts +51 -21
  588. package/dist/src/vtab/module.d.ts.map +1 -1
  589. package/dist/src/vtab/table.d.ts +10 -2
  590. package/dist/src/vtab/table.d.ts.map +1 -1
  591. package/dist/src/vtab/table.js +1 -1
  592. package/dist/src/vtab/table.js.map +1 -1
  593. package/package.json +3 -3
@@ -1,4 +1,5 @@
1
1
  import { LiteralNode, BinaryOpNode, UnaryOpNode, CaseExprNode, CastNode, CollateNode, BetweenNode } from '../nodes/scalar.js';
2
+ import { insertCrossTypeCoercion, coerceComparisonSet } from './coercion.js';
2
3
  import { ScalarSubqueryNode, InNode, ExistsNode } from '../nodes/subquery.js';
3
4
  import { WindowFunctionCallNode } from '../nodes/window-function.js';
4
5
  import { QuereusError } from '../../common/errors.js';
@@ -12,8 +13,6 @@ import { buildDeleteStmt } from './delete.js';
12
13
  import { resolveWindowFunction } from '../../schema/window-function.js';
13
14
  import { buildFunctionCall } from './function-call.js';
14
15
  import { createLogger } from '../../common/logger.js';
15
- import { PhysicalType } from '../../types/logical-type.js';
16
- import { NULL_TYPE } from '../../types/builtin-types.js';
17
16
  /**
18
17
  * Plans a `QueryExpr` in scalar / IN / EXISTS expression position.
19
18
  *
@@ -42,106 +41,24 @@ const logger = createLogger('planner:expression');
42
41
  /** Comparison operators that should trigger cross-category coercion insertion */
43
42
  const COMPARISON_OPS = new Set(['=', '==', '!=', '<>', '<', '<=', '>', '>=']);
44
43
  /**
45
- * Reconcile operands of a comparison whose plan-time types cannot be compared
46
- * meaningfully as-is, by wrapping one side in a synthetic CastNode.
47
- * Returns `[left, right]` — possibly with one side replaced by a CastNode.
44
+ * Build a comparison `BinaryOpNode` the ONE way every comparison site must: insert
45
+ * the cross-type coercion casts (so a numeric side and a textual side compare
46
+ * numerically, an object side and a textual side structurally), then force
47
+ * `generateType`'s lazily-cached collation-lattice validation so an ambiguous
48
+ * collation errors at prepare time rather than as the emitter's backstop.
48
49
  *
49
- * Two pairings are handled, in this order:
50
+ * `expression` is the source spelling and is deliberately NOT rewritten to match a
51
+ * coerced operand — EXPLAIN keeps showing what the user wrote.
50
52
  *
51
- * 1. **Object-physical vs anything else.** JSON is the engine's only logical type
52
- * whose `physicalType` is `PhysicalType.OBJECT`: its runtime values are native
53
- * JS objects/arrays, which `compareSqlValuesFast` short-circuits against any
54
- * other storage class — so `json_col = '{"a":1}'` was unconditionally false,
55
- * even for byte-identical text. The non-object side is cast to the object
56
- * side's type, never the reverse: casting the JSON side to text would make
57
- * equality depend on spelling and put `=` out of step with the index, which
58
- * compares structurally.
59
- *
60
- * The gate is deliberately `physicalType === OBJECT`, **not**
61
- * `semanticOrdering`. DATE/TIME/DATETIME/TIMESPAN also carry semantic ordering
62
- * but are physically text, and the runtime's `tryTemporalComparison` already
63
- * reconciles them; routing them through a cast would change behavior for no
64
- * gain.
65
- *
66
- * A cast to JSON is lenient (see `runtime/emit/cast.ts`): text that does not
67
- * parse comes back unchanged, so `json_col = 'not json'` is false rather than
68
- * an error. Note the consequence for JSON *string scalars*, which are stored
69
- * as plain JS strings: a column holding `"hello"` matches BOTH the SQL literal
70
- * `'"hello"'` (parses to the JSON string `hello`) and the bare `'hello'` (does
71
- * not parse, falls back to the raw string `hello`, which `JSON_TYPE.compare`
72
- * then compares as text). Only the first form generalizes — `'[1,2]'` matches
73
- * the JSON array while a bare `[1,2]` is not SQL text at all.
74
- *
75
- * 2. **Numeric vs textual.** The textual operand is cast to the numeric side's
76
- * type name (e.g. 'INTEGER' or 'REAL') so the runtime can take the fast path.
77
- */
78
- function insertCrossTypeCoercion(scope, left, right) {
79
- const leftLogical = left.getType().logicalType;
80
- const rightLogical = right.getType().logicalType;
81
- const leftObject = leftLogical.physicalType === PhysicalType.OBJECT;
82
- const rightObject = rightLogical.physicalType === PhysicalType.OBJECT;
83
- // NOTE: two object-physical operands of DIFFERENT logical types fall through both
84
- // arms onto the generic runtime path. Unreachable while JSON is the only
85
- // PhysicalType.OBJECT type; adding a second one means deciding which side converts.
86
- // Exactly one side is object-physical. A NULL-typed operand is left alone: the
87
- // comparison is UNKNOWN regardless, so the cast would only add a runtime hop.
88
- if (leftObject !== rightObject) {
89
- if (leftObject && rightLogical !== NULL_TYPE) {
90
- return [left, wrapInCast(scope, right, leftLogical.name)];
91
- }
92
- if (rightObject && leftLogical !== NULL_TYPE) {
93
- return [wrapInCast(scope, left, rightLogical.name), right];
94
- }
95
- return [left, right];
96
- }
97
- const leftNumeric = !!leftLogical.isNumeric;
98
- const rightNumeric = !!rightLogical.isNumeric;
99
- const leftTextual = !!leftLogical.isTextual;
100
- const rightTextual = !!rightLogical.isTextual;
101
- if (leftNumeric && rightTextual) {
102
- // Wrap right (textual) in a cast to the left's numeric type
103
- return [left, wrapInCast(scope, right, leftLogical.name)];
104
- }
105
- if (rightNumeric && leftTextual) {
106
- // Wrap left (textual) in a cast to the right's numeric type
107
- return [wrapInCast(scope, left, rightLogical.name), right];
108
- }
109
- return [left, right];
110
- }
111
- /**
112
- * Apply the object-physical arm of {@link insertCrossTypeCoercion} across the
113
- * one-probe-against-many-values shape shared by an IN value list and a simple
114
- * CASE, so `json_col in ('{"a":1}')` and `case json_col when '{"a":1}' …` agree
115
- * with `json_col = '{"a":1}'`.
116
- *
117
- * Scoped to the object-physical pairing on purpose. The numeric ↔ textual arm has
118
- * never been applied to either site (`int_col in ('1')` is false today for the same
119
- * underlying reason), and turning it on here would change unrelated behavior; that
120
- * case is tracked separately.
121
- *
122
- * The probe is shared by every value, so it is wrapped at most once — if any value
123
- * is object-physical while the probe is not, the probe is cast first and the values
124
- * are then reconciled against it.
53
+ * Callers: the `binary` case below, and `buildUsingCondition` (`./select.ts`), which
54
+ * desugars `using (c)` into this node — that shared construction is what keeps a
55
+ * USING pair from drifting away from the spelled-out `l.c = r.c`.
125
56
  */
126
- function coerceObjectPhysicalSet(scope, probe, values) {
127
- const isObject = (node) => node.getType().logicalType.physicalType === PhysicalType.OBJECT;
128
- const objectValue = values.find(isObject);
129
- if (!isObject(probe) && !objectValue)
130
- return [probe, values];
131
- const coercedProbe = isObject(probe)
132
- ? probe
133
- : wrapInCast(scope, probe, objectValue.getType().logicalType.name);
134
- return [coercedProbe, values.map(val => insertCrossTypeCoercion(scope, coercedProbe, val)[1])];
135
- }
136
- /** Create a synthetic CastNode wrapping `operand` with the given target type name. */
137
- function wrapInCast(scope, operand, targetType) {
138
- // Synthesise a minimal AST.CastExpr — `targetType` is the only field CastNode reads.
139
- const syntheticExpr = {
140
- type: 'cast',
141
- expr: { type: 'literal', value: null }, // placeholder
142
- targetType,
143
- };
144
- return new CastNode(scope, syntheticExpr, operand);
57
+ export function buildComparison(scope, expression, left, right) {
58
+ const [coercedLeft, coercedRight] = insertCrossTypeCoercion(scope, left, right);
59
+ const node = new BinaryOpNode(scope, expression, coercedLeft, coercedRight);
60
+ node.getType();
61
+ return node;
145
62
  }
146
63
  /**
147
64
  * Builds an expression plan node from an AST expression.
@@ -189,20 +106,11 @@ export function buildExpression(ctx, expr, allowAggregates = false) {
189
106
  return new UnaryOpNode(ctx.scope, expr, operand);
190
107
  }
191
108
  case 'binary': {
192
- let left = buildExpression(ctx, expr.left, allowAggregates);
193
- let right = buildExpression(ctx, expr.right, allowAggregates);
194
- // For comparison operators, insert explicit casts when one side is
195
- // numeric and the other textual so the runtime can use the fast path.
196
- if (COMPARISON_OPS.has(expr.operator)) {
197
- [left, right] = insertCrossTypeCoercion(ctx.scope, left, right);
198
- }
199
- const binaryNode = new BinaryOpNode(ctx.scope, expr, left, right);
200
- // Comparisons validate their collation lattice in generateType, which is
201
- // lazily cached — force it so a conflict errors at prepare time.
202
- if (COMPARISON_OPS.has(expr.operator)) {
203
- binaryNode.getType();
204
- }
205
- return binaryNode;
109
+ const left = buildExpression(ctx, expr.left, allowAggregates);
110
+ const right = buildExpression(ctx, expr.right, allowAggregates);
111
+ return COMPARISON_OPS.has(expr.operator)
112
+ ? buildComparison(ctx.scope, expr, left, right)
113
+ : new BinaryOpNode(ctx.scope, expr, left, right);
206
114
  }
207
115
  case 'case': {
208
116
  // Build base expression if present
@@ -216,7 +124,7 @@ export function buildExpression(ctx, expr, allowAggregates = false) {
216
124
  // object-physical reconciliation an IN list gets — otherwise
217
125
  // `case json_col when '{"a":1}'` disagrees with `json_col = '{"a":1}'`.
218
126
  if (baseExpr) {
219
- const [coercedBase, coercedWhens] = coerceObjectPhysicalSet(ctx.scope, baseExpr, whenThenClauses.map(c => c.when));
127
+ const [coercedBase, coercedWhens] = coerceComparisonSet(ctx.scope, baseExpr, whenThenClauses.map(c => c.when));
220
128
  baseExpr = coercedBase;
221
129
  coercedWhens.forEach((when, i) => { whenThenClauses[i].when = when; });
222
130
  }
@@ -301,7 +209,7 @@ export function buildExpression(ctx, expr, allowAggregates = false) {
301
209
  else if (expr.values) {
302
210
  // IN value list: expr IN (value1, value2, ...)
303
211
  const rawValueExprs = expr.values.map(val => buildExpression(ctx, val, allowAggregates));
304
- const [inLeft, valueExprs] = coerceObjectPhysicalSet(ctx.scope, leftExpr, rawValueExprs);
212
+ const [inLeft, valueExprs] = coerceComparisonSet(ctx.scope, leftExpr, rawValueExprs);
305
213
  const inListNode = new InNode(ctx.scope, expr, inLeft, undefined, valueExprs);
306
214
  // Same eager collation-lattice validation as the subquery form.
307
215
  inListNode.getType();
@@ -1 +1 @@
1
- {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../../src/planner/building/expression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../../src/planner/building/expression.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"function-call.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/function-call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQvD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,GAAG,cAAc,CAmHxH"}
1
+ {"version":3,"file":"function-call.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/function-call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AASvD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,GAAG,cAAc,CAgIxH"}
@@ -4,6 +4,7 @@ import { QuereusError } from "../../common/errors.js";
4
4
  import { StatusCode } from "../../common/types.js";
5
5
  import { isAggregateFunctionSchema, isScalarFunctionSchema } from '../../schema/function.js';
6
6
  import { buildExpression } from "./expression.js";
7
+ import { coerceComparisonGroup } from "./coercion.js";
7
8
  import { ScalarFunctionCallNode } from "../nodes/function.js";
8
9
  import { resolveFunctionSchema } from "./schema-resolution.js";
9
10
  import { CapabilityDetectors } from '../framework/characteristics.js';
@@ -76,6 +77,18 @@ export function buildFunctionCall(ctx, expr, allowAggregates) {
76
77
  else {
77
78
  // Regular scalar function
78
79
  const args = expr.args.map(arg => buildExpression(ctx, arg, allowAggregates));
80
+ // Reconcile a declared comparison group's object-physical operands the way
81
+ // `=` / IN / simple CASE do, so e.g. `same_value(json_col, '<text>')` compares
82
+ // JSON against JSON. Must run BEFORE inferReturnType: coercion inserts
83
+ // CastNodes, which changes the argument types inference sees.
84
+ //
85
+ // Skipped for a function that returns one of its arguments (`returnsArg` —
86
+ // nullif/greatest/least): the cast would replace the RETURNED value too. Those
87
+ // coerce comparison keys at emit time (`makeComparisonGroup`) instead, which
88
+ // also lets inferReturnType see the arguments the user actually wrote.
89
+ if (isScalarFunctionSchema(functionSchema) && functionSchema.comparesArgs && !functionSchema.returnsArg) {
90
+ coerceComparisonGroup(ctx.scope, functionSchema.comparesArgs, args);
91
+ }
79
92
  // Perform type inference if available
80
93
  let inferredType;
81
94
  if (isScalarFunctionSchema(functionSchema) && functionSchema.inferReturnType) {
@@ -1 +1 @@
1
- {"version":3,"file":"function-call.js","sourceRoot":"","sources":["../../../../src/planner/building/function-call.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function-call.js","sourceRoot":"","sources":["../../../../src/planner/building/function-call.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGtE,MAAM,UAAU,iBAAiB,CAAC,GAAoB,EAAE,IAAsB,EAAE,eAAwB;IACvG,0EAA0E;IAC1E,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,mCAAmC;QACnC,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7D,MAAM,WAAW,GAAG,GAAG,CAAC,UAAuC,CAAC;gBAChE,kEAAkE;gBAClE,IAAI,WAAW,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;oBACrE,WAAW,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM;oBAC5C,CAAC,WAAW,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC;oBACjE,2BAA2B;oBAC3B,IAAI,SAAS,GAAG,IAAI,CAAC;oBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC7B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACnC,iEAAiE;wBACjE,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;4BACvE,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gCACzE,SAAS,GAAG,KAAK,CAAC;gCAClB,MAAM;4BACP,CAAC;wBACF,CAAC;6BAAM,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;4BAChF,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gCAC/C,SAAS,GAAG,KAAK,CAAC;gCAClB,MAAM;4BACP,CAAC;wBACF,CAAC;wBACD,2DAA2D;oBAC5D,CAAC;oBAED,IAAI,SAAS,EAAE,CAAC;wBACf,6DAA6D;wBAC7D,MAAM,UAAU,GAAmB;4BAClC,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,GAAG,CAAC,KAAK;yBACf,CAAC;wBACF,OAAO,IAAI,mBAAmB,CAC7B,GAAG,CAAC,KAAK,EACT,UAAU,EACV,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,EACxB,GAAG,CAAC,WAAW,EACf,GAAG,CAAC,WAAW,CACf,CAAC;oBACH,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,wCAAwC;IACxC,MAAM,cAAc,GAAG,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/E,IAAI,cAAc,IAAI,yBAAyB,CAAC,cAAc,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,MAAM,IAAI,YAAY,CAAC,sBAAsB,IAAI,CAAC,IAAI,8BAA8B,EAAE,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAClK,CAAC;QAED,yCAAyC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,4CAA4C;QAEjH,sCAAsC;QACtC,IAAI,YAAoC,CAAC;QACzC,IAAI,cAAc,CAAC,eAAe,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;YAE5D,mDAAmD;YACnD,IAAI,cAAc,CAAC,gBAAgB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnF,MAAM,IAAI,YAAY,CACrB,iDAAiD,IAAI,CAAC,IAAI,EAAE,EAC5D,UAAU,CAAC,QAAQ,EACnB,SAAS,EACT,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EACpB,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CACtB,CAAC;YACH,CAAC;YAED,YAAY,GAAG,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,IAAI,yBAAyB,CACnC,GAAG,CAAC,KAAK,EACT,IAAI,EACJ,IAAI,CAAC,IAAI,EACT,cAAc,EACd,IAAI,EACJ,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE,sCAAsC;QAC9D,SAAS,EAAE,kCAAkC;QAC7C,SAAS,EAAG,iCAAiC;QAC7C,YAAY,CACZ,CAAC;IACH,CAAC;SAAM,CAAC;QACP,0BAA0B;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;QAE9E,2EAA2E;QAC3E,+EAA+E;QAC/E,uEAAuE;QACvE,8DAA8D;QAC9D,EAAE;QACF,2EAA2E;QAC3E,+EAA+E;QAC/E,6EAA6E;QAC7E,uEAAuE;QACvE,IAAI,sBAAsB,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,YAAY,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;YACzG,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;QAED,sCAAsC;QACtC,IAAI,YAAoC,CAAC;QACzC,IAAI,sBAAsB,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,eAAe,EAAE,CAAC;YAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;YAE5D,mDAAmD;YACnD,IAAI,cAAc,CAAC,gBAAgB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnF,MAAM,IAAI,YAAY,CACrB,uCAAuC,IAAI,CAAC,IAAI,EAAE,EAClD,UAAU,CAAC,QAAQ,EACnB,SAAS,EACT,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EACpB,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CACtB,CAAC;YACH,CAAC;YAED,YAAY,GAAG,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACxF,CAAC;AACF,CAAC"}
@@ -27,5 +27,5 @@ export declare function buildAggregatePhase(input: RelationalPlanNode, stmt: AST
27
27
  export declare function buildFinalAggregateProjections(stmt: AST.SelectStmt, selectContext: PlanningContext, aggregateOutputScope: RegisteredScope, aggregateNode: RelationalPlanNode, aggregates: {
28
28
  expression: ScalarPlanNode;
29
29
  alias: string;
30
- }[], groupByExpressions: ScalarPlanNode[]): Projection[];
30
+ }[], groupByExpressions: ScalarPlanNode[], starProjectionsByColumn?: ReadonlyMap<AST.ResultColumn, readonly Projection[]>): Projection[];
31
31
  //# sourceMappingURL=select-aggregates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-aggregates.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/select-aggregates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAmD,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACtI,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAc1D;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,aAAa,EAAE,eAAe,EAC9B,UAAU,EAAE;IAAE,UAAU,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3D,aAAa,EAAE,OAAO,EACtB,WAAW,EAAE,UAAU,EAAE,EACzB,oBAAoB,GAAE,OAAe,EACrC,cAAc,GAAE,GAAG,CAAC,UAAU,EAAO,GACnC;IACF,MAAM,EAAE,kBAAkB,CAAC;IAC3B,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;IACtC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;CAClD,CAgIA;AAueD;;GAEG;AACH,wBAAgB,8BAA8B,CAC7C,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,aAAa,EAAE,eAAe,EAC9B,oBAAoB,EAAE,eAAe,EACrC,aAAa,EAAE,kBAAkB,EACjC,UAAU,EAAE;IAAE,UAAU,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3D,kBAAkB,EAAE,cAAc,EAAE,GAClC,UAAU,EAAE,CAyEd"}
1
+ {"version":3,"file":"select-aggregates.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/select-aggregates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAmD,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACtI,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAc1D;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,aAAa,EAAE,eAAe,EAC9B,UAAU,EAAE;IAAE,UAAU,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3D,aAAa,EAAE,OAAO,EACtB,WAAW,EAAE,UAAU,EAAE,EACzB,oBAAoB,GAAE,OAAe,EACrC,cAAc,GAAE,GAAG,CAAC,UAAU,EAAO,GACnC;IACF,MAAM,EAAE,kBAAkB,CAAC;IAC3B,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;IACtC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;CAClD,CA6IA;AAueD;;GAEG;AACH,wBAAgB,8BAA8B,CAC7C,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,aAAa,EAAE,eAAe,EAC9B,oBAAoB,EAAE,eAAe,EACrC,aAAa,EAAE,kBAAkB,EACjC,UAAU,EAAE;IAAE,UAAU,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3D,kBAAkB,EAAE,cAAc,EAAE,EACpC,uBAAuB,GAAE,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,UAAU,EAAE,CAAa,GACvF,UAAU,EAAE,CAyGd"}
@@ -110,7 +110,20 @@ export function buildAggregatePhase(input, stmt, selectContext, aggregates, hasA
110
110
  // Determine if final projection is needed.
111
111
  // Force a final projection when HAVING-only or ORDER-BY-only aggregates were
112
112
  // added, to strip them from the output (they exist only for those clauses).
113
- const needsFinalProjection = hasHavingOnlyAggregates || hasOrderByOnlyAggregates || hasWrappedAggregates || checkNeedsFinalProjection(projections);
113
+ const needsFinalProjection = hasHavingOnlyAggregates || hasOrderByOnlyAggregates || hasWrappedAggregates || checkNeedsFinalProjection(projections)
114
+ // A GROUP BY with no aggregate functions has no other projection step: the
115
+ // select list must be projected over the AggregateNode output here, or the
116
+ // output would be the raw group keys in GROUP BY order.
117
+ // NOTE: the `!hasAggregates` guard is load-bearing. Forcing the projection for
118
+ // every grouped query changes the plan shape of a grouped materialized-view body
119
+ // (`select k, count(*), sum(a) … group by k`) and re-routes its incremental
120
+ // maintenance from residual-recompute to full-rebuild — see
121
+ // test/incremental/delta-aggregate.spec.ts. It is also why an aggregate-only
122
+ // select list still leaks its grouping key into the output
123
+ // (backlog/bug-grouped-aggregate-only-select-returns-extra-column); fixing that
124
+ // means reconciling the projection with maintenance routing, not just dropping
125
+ // this guard.
126
+ || Boolean(hasGroupBy && !hasAggregates && projections.length > 0);
114
127
  return {
115
128
  output: currentInput,
116
129
  aggregateScope: aggregateOutputScope,
@@ -515,7 +528,7 @@ function dedupeNewAggregates(funcExprs, selectContext, existingAggregates) {
515
528
  /**
516
529
  * Builds final projections for the complete SELECT list in aggregate context
517
530
  */
518
- export function buildFinalAggregateProjections(stmt, selectContext, aggregateOutputScope, aggregateNode, aggregates, groupByExpressions) {
531
+ export function buildFinalAggregateProjections(stmt, selectContext, aggregateOutputScope, aggregateNode, aggregates, groupByExpressions, starProjectionsByColumn = new Map()) {
519
532
  const finalProjections = [];
520
533
  const aggregateAttributes = aggregateNode.getAttributes();
521
534
  // Build context with aggregates so buildFunctionCall can resolve aggregate references
@@ -546,7 +559,36 @@ export function buildFinalAggregateProjections(stmt, selectContext, aggregateOut
546
559
  if (!groupByFingerprints.has(fp))
547
560
  groupByFingerprints.set(fp, index);
548
561
  });
562
+ // Bare source columns that are themselves group keys map straight to the
563
+ // aggregate's group output column. Used to expand `SELECT *` in a grouped
564
+ // query, which must emit source-column order rather than GROUP BY order.
565
+ const groupKeyByAttrId = new Map();
566
+ groupByExpressions.forEach((expr, index) => {
567
+ if (CapabilityDetectors.isColumnReference(expr)) {
568
+ const attrId = expr.attributeId;
569
+ if (!groupKeyByAttrId.has(attrId))
570
+ groupKeyByAttrId.set(attrId, index);
571
+ }
572
+ });
549
573
  for (const column of stmt.columns) {
574
+ if (column.type === 'all') {
575
+ for (const starProj of starProjectionsByColumn.get(column) ?? []) {
576
+ const gbIdx = starGroupKeyIndex(starProj, groupKeyByAttrId);
577
+ if (gbIdx === undefined) {
578
+ // validateAggregateProjections already rejected every star column that
579
+ // is not a grouping key, so reaching here means the two disagree.
580
+ throw new QuereusError(`Internal: SELECT * column '${starProj.alias ?? '?'}' is not a GROUP BY key`, StatusCode.INTERNAL);
581
+ }
582
+ const starRef = starProj.node;
583
+ const colRef = buildGroupKeyColumnRef(aggregateOutputScope, aggregateAttributes[gbIdx], starRef.expression, gbIdx);
584
+ finalProjections.push({
585
+ node: colRef,
586
+ alias: starProj.alias,
587
+ attributeId: colRef.attributeId
588
+ });
589
+ }
590
+ continue;
591
+ }
550
592
  if (column.type === 'column') {
551
593
  // Bare columns (`type === 'column'`) already resolve against the aggregate
552
594
  // group symbol (registered under the column name) in recompute, so their
@@ -583,6 +625,15 @@ export function buildFinalAggregateProjections(stmt, selectContext, aggregateOut
583
625
  }
584
626
  return finalProjections;
585
627
  }
628
+ /**
629
+ * Resolves one expanded `SELECT *` column to the GROUP BY index it was grouped on,
630
+ * or `undefined` if it is not a bare reference to a grouping key.
631
+ */
632
+ function starGroupKeyIndex(starProj, groupKeyByAttrId) {
633
+ if (!CapabilityDetectors.isColumnReference(starProj.node))
634
+ return undefined;
635
+ return groupKeyByAttrId.get(starProj.node.attributeId);
636
+ }
586
637
  /**
587
638
  * Synthesizes a bare {@link ColumnReferenceNode} to an AggregateNode group output
588
639
  * column for a SELECT-list item that fingerprint-matches a GROUP BY expression.
@@ -1 +1 @@
1
- {"version":3,"file":"select-aggregates.js","sourceRoot":"","sources":["../../../../src/planner/building/select-aggregates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select-aggregates.js","sourceRoot":"","sources":["../../../../src/planner/building/select-aggregates.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"select-compound.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/select-compound.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAkBzD;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACnC,eAAe,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,kBAAkB,GACzH,kBAAkB,CAsFpB"}
1
+ {"version":3,"file":"select-compound.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/select-compound.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAkBzD;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,GAAG,CAAC,UAAU,EACpB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACnC,eAAe,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,kBAAkB,GACzH,kBAAkB,CA0FpB"}
@@ -1,5 +1,5 @@
1
1
  import { PlanNode } from '../nodes/plan-node.js';
2
- import { SetOperationNode } from '../nodes/set-operation-node.js';
2
+ import { SetOperationNode, alignSetOpOperands } from '../nodes/set-operation-node.js';
3
3
  import { SortNode } from '../nodes/sort.js';
4
4
  import { LimitOffsetNode } from '../nodes/limit-offset.js';
5
5
  import { LiteralNode } from '../nodes/scalar.js';
@@ -76,15 +76,19 @@ export function buildCompoundSelect(stmt, contextWithCTEs, cteNodes, buildSelect
76
76
  }
77
77
  membership = stmt.compound.existence.map(e => ({ attrId: PlanNode.nextAttrId(), name: e.name, branch: e.branch }));
78
78
  }
79
- // Expand DIFF as (A EXCEPT B) UNION (B EXCEPT A)
79
+ // Expand DIFF as (A EXCEPT B) UNION (B EXCEPT A). Align the ORIGINAL operands
80
+ // once, before the expansion, so both inner EXCEPTs see the same aligned pair
81
+ // (aligning per-node would convert each independently and hand the outer UNION
82
+ // a third combination); the `create` calls then re-align to a no-op.
80
83
  let setNode;
81
84
  if (stmt.compound.op === 'diff') {
82
- const leftMinusRight = new SetOperationNode(contextWithCTEs.scope, leftPlan, rightPlan, 'except');
83
- const rightMinusLeft = new SetOperationNode(contextWithCTEs.scope, rightPlan, leftPlan, 'except');
84
- setNode = new SetOperationNode(contextWithCTEs.scope, leftMinusRight, rightMinusLeft, 'union');
85
+ const [alignedLeft, alignedRight] = alignSetOpOperands(contextWithCTEs.scope, leftPlan, rightPlan);
86
+ const leftMinusRight = SetOperationNode.create(contextWithCTEs.scope, alignedLeft, alignedRight, 'except');
87
+ const rightMinusLeft = SetOperationNode.create(contextWithCTEs.scope, alignedRight, alignedLeft, 'except');
88
+ setNode = SetOperationNode.create(contextWithCTEs.scope, leftMinusRight, rightMinusLeft, 'union');
85
89
  }
86
90
  else {
87
- setNode = new SetOperationNode(contextWithCTEs.scope, leftPlan, rightPlan, stmt.compound.op, membership);
91
+ setNode = SetOperationNode.create(contextWithCTEs.scope, leftPlan, rightPlan, stmt.compound.op, membership);
88
92
  }
89
93
  // After set operation, apply ORDER BY / LIMIT / OFFSET from the *outer* (original) statement
90
94
  let input = setNode;
@@ -1 +1 @@
1
- {"version":3,"file":"select-compound.js","sourceRoot":"","sources":["../../../../src/planner/building/select-compound.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select-compound.js","sourceRoot":"","sources":["../../../../src/planner/building/select-compound.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,13 @@ import type { CTEScopeNode } from '../nodes/cte-node.js';
9
9
  * the same path SELECT uses — closing the read gap where a CTE referenced in an
10
10
  * UPDATE/DELETE `where` / `set` subquery previously failed to resolve, and giving a
11
11
  * CTE-name DML target its sibling CTEs.
12
+ *
13
+ * The WITH clause contributes CTE *definitions* (`cteNodes`), not scope symbols. A
14
+ * `cteName.column` symbol is published by `buildFrom`'s CTE branch, against the
15
+ * attribute ids the `CTEReferenceNode` for that FROM entry republishes. This used to
16
+ * also register `cteName.column` here, bound to the CTE **body's** attribute ids —
17
+ * ids no `CTEReferenceNode` ever publishes, so any reference resolving through them
18
+ * could only fail at runtime with "No row context found for column ...".
12
19
  */
13
20
  export declare function buildWithContext(ctx: PlanningContext, stmt: {
14
21
  readonly withClause?: AST.WithClause;
@@ -1 +1 @@
1
- {"version":3,"file":"select-context.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/select-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKzD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,UAAU,CAAA;CAAE,EAC9C,UAAU,GAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAa,GAC/C;IACF,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACpC,CAsBA"}
1
+ {"version":3,"file":"select-context.d.ts","sourceRoot":"","sources":["../../../../src/planner/building/select-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,UAAU,CAAA;CAAE,EAC9C,UAAU,GAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAa,GAC/C;IACF,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACpC,CAeA"}