@quereus/quereus 4.4.0 → 4.5.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 (491) hide show
  1. package/README.md +6 -1
  2. package/dist/src/common/types.d.ts +9 -0
  3. package/dist/src/common/types.d.ts.map +1 -1
  4. package/dist/src/common/types.js.map +1 -1
  5. package/dist/src/core/database-events.d.ts +49 -0
  6. package/dist/src/core/database-events.d.ts.map +1 -1
  7. package/dist/src/core/database-events.js +148 -0
  8. package/dist/src/core/database-events.js.map +1 -1
  9. package/dist/src/core/database-materialized-views-analysis.d.ts.map +1 -1
  10. package/dist/src/core/database-materialized-views-analysis.js +1 -0
  11. package/dist/src/core/database-materialized-views-analysis.js.map +1 -1
  12. package/dist/src/core/database-materialized-views-plan-builders.d.ts +2 -1
  13. package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -1
  14. package/dist/src/core/database-materialized-views-plan-builders.js +26 -5
  15. package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
  16. package/dist/src/core/database-materialized-views-plans.d.ts +6 -3
  17. package/dist/src/core/database-materialized-views-plans.d.ts.map +1 -1
  18. package/dist/src/core/database-materialized-views.d.ts +3 -2
  19. package/dist/src/core/database-materialized-views.d.ts.map +1 -1
  20. package/dist/src/core/database-materialized-views.js +26 -5
  21. package/dist/src/core/database-materialized-views.js.map +1 -1
  22. package/dist/src/core/database.d.ts +5 -0
  23. package/dist/src/core/database.d.ts.map +1 -1
  24. package/dist/src/core/database.js +21 -1
  25. package/dist/src/core/database.js.map +1 -1
  26. package/dist/src/core/internal-statement-cache.d.ts +18 -0
  27. package/dist/src/core/internal-statement-cache.d.ts.map +1 -0
  28. package/dist/src/core/internal-statement-cache.js +211 -0
  29. package/dist/src/core/internal-statement-cache.js.map +1 -0
  30. package/dist/src/func/builtins/aggregate.d.ts +13 -12
  31. package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
  32. package/dist/src/func/builtins/aggregate.js +45 -67
  33. package/dist/src/func/builtins/aggregate.js.map +1 -1
  34. package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
  35. package/dist/src/func/builtins/builtin-window-functions.js +63 -48
  36. package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
  37. package/dist/src/func/builtins/scalar.d.ts.map +1 -1
  38. package/dist/src/func/builtins/scalar.js +92 -3
  39. package/dist/src/func/builtins/scalar.js.map +1 -1
  40. package/dist/src/func/registration.d.ts +18 -1
  41. package/dist/src/func/registration.d.ts.map +1 -1
  42. package/dist/src/func/registration.js +26 -0
  43. package/dist/src/func/registration.js.map +1 -1
  44. package/dist/src/index.d.ts +10 -10
  45. package/dist/src/index.d.ts.map +1 -1
  46. package/dist/src/index.js +13 -12
  47. package/dist/src/index.js.map +1 -1
  48. package/dist/src/parser/parser.d.ts +6 -0
  49. package/dist/src/parser/parser.d.ts.map +1 -1
  50. package/dist/src/parser/parser.js +45 -34
  51. package/dist/src/parser/parser.js.map +1 -1
  52. package/dist/src/planner/analysis/coarsened-key.d.ts +4 -3
  53. package/dist/src/planner/analysis/coarsened-key.d.ts.map +1 -1
  54. package/dist/src/planner/analysis/coarsened-key.js +37 -3
  55. package/dist/src/planner/analysis/coarsened-key.js.map +1 -1
  56. package/dist/src/planner/analysis/comparison-collation.d.ts +35 -3
  57. package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
  58. package/dist/src/planner/analysis/comparison-collation.js +37 -3
  59. package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
  60. package/dist/src/planner/analysis/coverage-prover.d.ts +13 -2
  61. package/dist/src/planner/analysis/coverage-prover.d.ts.map +1 -1
  62. package/dist/src/planner/analysis/coverage-prover.js +10 -14
  63. package/dist/src/planner/analysis/coverage-prover.js.map +1 -1
  64. package/dist/src/planner/analysis/expression-fingerprint.d.ts.map +1 -1
  65. package/dist/src/planner/analysis/expression-fingerprint.js +29 -0
  66. package/dist/src/planner/analysis/expression-fingerprint.js.map +1 -1
  67. package/dist/src/planner/analysis/predicate-conjuncts.d.ts +10 -4
  68. package/dist/src/planner/analysis/predicate-conjuncts.d.ts.map +1 -1
  69. package/dist/src/planner/analysis/predicate-conjuncts.js +28 -7
  70. package/dist/src/planner/analysis/predicate-conjuncts.js.map +1 -1
  71. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts +6 -0
  72. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
  73. package/dist/src/planner/analysis/query-rewrite-matcher.js +19 -29
  74. package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -1
  75. package/dist/src/planner/analysis/sat-checker.d.ts.map +1 -1
  76. package/dist/src/planner/analysis/sat-checker.js +43 -4
  77. package/dist/src/planner/analysis/sat-checker.js.map +1 -1
  78. package/dist/src/planner/analysis/scalar-subqueries.d.ts +22 -3
  79. package/dist/src/planner/analysis/scalar-subqueries.d.ts.map +1 -1
  80. package/dist/src/planner/analysis/scalar-subqueries.js +32 -3
  81. package/dist/src/planner/analysis/scalar-subqueries.js.map +1 -1
  82. package/dist/src/planner/analysis/set-op-type-merge.d.ts +64 -0
  83. package/dist/src/planner/analysis/set-op-type-merge.d.ts.map +1 -0
  84. package/dist/src/planner/analysis/set-op-type-merge.js +97 -0
  85. package/dist/src/planner/analysis/set-op-type-merge.js.map +1 -0
  86. package/dist/src/planner/building/coercion.d.ts +78 -0
  87. package/dist/src/planner/building/coercion.d.ts.map +1 -0
  88. package/dist/src/planner/building/coercion.js +137 -0
  89. package/dist/src/planner/building/coercion.js.map +1 -0
  90. package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
  91. package/dist/src/planner/building/constraint-builder.js +5 -18
  92. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  93. package/dist/src/planner/building/delete.d.ts.map +1 -1
  94. package/dist/src/planner/building/delete.js +10 -3
  95. package/dist/src/planner/building/delete.js.map +1 -1
  96. package/dist/src/planner/building/expression.d.ts.map +1 -1
  97. package/dist/src/planner/building/expression.js +13 -35
  98. package/dist/src/planner/building/expression.js.map +1 -1
  99. package/dist/src/planner/building/foreign-key-builder.d.ts +44 -1
  100. package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
  101. package/dist/src/planner/building/foreign-key-builder.js +54 -0
  102. package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
  103. package/dist/src/planner/building/function-call.d.ts.map +1 -1
  104. package/dist/src/planner/building/function-call.js +8 -0
  105. package/dist/src/planner/building/function-call.js.map +1 -1
  106. package/dist/src/planner/building/insert.d.ts.map +1 -1
  107. package/dist/src/planner/building/insert.js +9 -12
  108. package/dist/src/planner/building/insert.js.map +1 -1
  109. package/dist/src/planner/building/select-compound.d.ts.map +1 -1
  110. package/dist/src/planner/building/select-compound.js +10 -6
  111. package/dist/src/planner/building/select-compound.js.map +1 -1
  112. package/dist/src/planner/building/update.d.ts.map +1 -1
  113. package/dist/src/planner/building/update.js +13 -4
  114. package/dist/src/planner/building/update.js.map +1 -1
  115. package/dist/src/planner/cost/conjunct-cost.d.ts +42 -0
  116. package/dist/src/planner/cost/conjunct-cost.d.ts.map +1 -0
  117. package/dist/src/planner/cost/conjunct-cost.js +62 -0
  118. package/dist/src/planner/cost/conjunct-cost.js.map +1 -0
  119. package/dist/src/planner/framework/pass.js +3 -3
  120. package/dist/src/planner/mutation/propagate.d.ts.map +1 -1
  121. package/dist/src/planner/mutation/propagate.js +1 -0
  122. package/dist/src/planner/mutation/propagate.js.map +1 -1
  123. package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -1
  124. package/dist/src/planner/nodes/async-gather-node.js +19 -8
  125. package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
  126. package/dist/src/planner/nodes/bloom-join-node.d.ts +2 -0
  127. package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
  128. package/dist/src/planner/nodes/bloom-join-node.js +10 -5
  129. package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
  130. package/dist/src/planner/nodes/dml-executor-node.d.ts +0 -9
  131. package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
  132. package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
  133. package/dist/src/planner/nodes/join-node.d.ts +5 -0
  134. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  135. package/dist/src/planner/nodes/join-node.js +8 -1
  136. package/dist/src/planner/nodes/join-node.js.map +1 -1
  137. package/dist/src/planner/nodes/join-utils.d.ts +57 -0
  138. package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
  139. package/dist/src/planner/nodes/join-utils.js +47 -0
  140. package/dist/src/planner/nodes/join-utils.js.map +1 -1
  141. package/dist/src/planner/nodes/key-set-semi-join-node.d.ts +87 -0
  142. package/dist/src/planner/nodes/key-set-semi-join-node.d.ts.map +1 -0
  143. package/dist/src/planner/nodes/key-set-semi-join-node.js +137 -0
  144. package/dist/src/planner/nodes/key-set-semi-join-node.js.map +1 -0
  145. package/dist/src/planner/nodes/merge-join-node.d.ts +2 -0
  146. package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
  147. package/dist/src/planner/nodes/merge-join-node.js +14 -6
  148. package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
  149. package/dist/src/planner/nodes/plan-node-type.d.ts +1 -0
  150. package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
  151. package/dist/src/planner/nodes/plan-node-type.js +1 -0
  152. package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
  153. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  154. package/dist/src/planner/nodes/scalar.js +26 -3
  155. package/dist/src/planner/nodes/scalar.js.map +1 -1
  156. package/dist/src/planner/nodes/set-operation-node.d.ts +68 -16
  157. package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
  158. package/dist/src/planner/nodes/set-operation-node.js +147 -26
  159. package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
  160. package/dist/src/planner/nodes/table-access-nodes.d.ts +19 -1
  161. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
  162. package/dist/src/planner/nodes/table-access-nodes.js +13 -2
  163. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  164. package/dist/src/planner/optimizer.d.ts.map +1 -1
  165. package/dist/src/planner/optimizer.js +54 -12
  166. package/dist/src/planner/optimizer.js.map +1 -1
  167. package/dist/src/planner/rules/access/rule-key-set-seek.d.ts +68 -0
  168. package/dist/src/planner/rules/access/rule-key-set-seek.d.ts.map +1 -0
  169. package/dist/src/planner/rules/access/rule-key-set-seek.js +408 -0
  170. package/dist/src/planner/rules/access/rule-key-set-seek.js.map +1 -0
  171. package/dist/src/planner/rules/access/rule-monotonic-range-access.d.ts.map +1 -1
  172. package/dist/src/planner/rules/access/rule-monotonic-range-access.js +2 -2
  173. package/dist/src/planner/rules/access/rule-monotonic-range-access.js.map +1 -1
  174. package/dist/src/planner/rules/access/rule-select-access-path.d.ts +27 -0
  175. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  176. package/dist/src/planner/rules/access/rule-select-access-path.js +74 -29
  177. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  178. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts.map +1 -1
  179. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +23 -4
  180. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js.map +1 -1
  181. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts +10 -8
  182. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts.map +1 -1
  183. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js +10 -8
  184. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js.map +1 -1
  185. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts +67 -41
  186. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts.map +1 -1
  187. package/dist/src/planner/rules/join/equi-pair-extractor.js +72 -36
  188. package/dist/src/planner/rules/join/equi-pair-extractor.js.map +1 -1
  189. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
  190. package/dist/src/planner/rules/join/rule-join-physical-selection.js +14 -2
  191. package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
  192. package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts.map +1 -1
  193. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +11 -1
  194. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js.map +1 -1
  195. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.d.ts +1 -1
  196. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js +1 -1
  197. package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.d.ts +30 -0
  198. package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.d.ts.map +1 -0
  199. package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.js +63 -0
  200. package/dist/src/planner/rules/predicate/rule-filter-conjunct-ordering.js.map +1 -0
  201. package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts +17 -1
  202. package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts.map +1 -1
  203. package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +206 -12
  204. package/dist/src/planner/rules/predicate/rule-filter-selectivity.js.map +1 -1
  205. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js +8 -1
  206. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js.map +1 -1
  207. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts +3 -1
  208. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.d.ts.map +1 -1
  209. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js +13 -1
  210. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
  211. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
  212. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +18 -3
  213. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  214. package/dist/src/planner/rules/shared/index-style-context.d.ts +17 -0
  215. package/dist/src/planner/rules/shared/index-style-context.d.ts.map +1 -1
  216. package/dist/src/planner/rules/shared/index-style-context.js +7 -0
  217. package/dist/src/planner/rules/shared/index-style-context.js.map +1 -1
  218. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.js +4 -0
  219. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.js.map +1 -1
  220. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts +24 -6
  221. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
  222. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +175 -60
  223. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
  224. package/dist/src/planner/stats/catalog-stats.d.ts +52 -0
  225. package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -1
  226. package/dist/src/planner/stats/catalog-stats.js +151 -5
  227. package/dist/src/planner/stats/catalog-stats.js.map +1 -1
  228. package/dist/src/planner/stats/index.d.ts +15 -0
  229. package/dist/src/planner/stats/index.d.ts.map +1 -1
  230. package/dist/src/planner/stats/index.js.map +1 -1
  231. package/dist/src/planner/stats/selectivity-combine.d.ts +53 -0
  232. package/dist/src/planner/stats/selectivity-combine.d.ts.map +1 -0
  233. package/dist/src/planner/stats/selectivity-combine.js +75 -0
  234. package/dist/src/planner/stats/selectivity-combine.js.map +1 -0
  235. package/dist/src/planner/util/column-origins.d.ts +58 -0
  236. package/dist/src/planner/util/column-origins.d.ts.map +1 -0
  237. package/dist/src/planner/util/column-origins.js +90 -0
  238. package/dist/src/planner/util/column-origins.js.map +1 -0
  239. package/dist/src/runtime/deferred-constraint-queue.d.ts +40 -0
  240. package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
  241. package/dist/src/runtime/deferred-constraint-queue.js +91 -0
  242. package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
  243. package/dist/src/runtime/emit/aggregate-setup.d.ts +49 -0
  244. package/dist/src/runtime/emit/aggregate-setup.d.ts.map +1 -0
  245. package/dist/src/runtime/emit/aggregate-setup.js +99 -0
  246. package/dist/src/runtime/emit/aggregate-setup.js.map +1 -0
  247. package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
  248. package/dist/src/runtime/emit/aggregate.js +4 -69
  249. package/dist/src/runtime/emit/aggregate.js.map +1 -1
  250. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  251. package/dist/src/runtime/emit/alter-table.js +354 -165
  252. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  253. package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
  254. package/dist/src/runtime/emit/asof-scan.js +11 -0
  255. package/dist/src/runtime/emit/asof-scan.js.map +1 -1
  256. package/dist/src/runtime/emit/between.d.ts.map +1 -1
  257. package/dist/src/runtime/emit/between.js +7 -12
  258. package/dist/src/runtime/emit/between.js.map +1 -1
  259. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  260. package/dist/src/runtime/emit/binary.js +24 -25
  261. package/dist/src/runtime/emit/binary.js.map +1 -1
  262. package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
  263. package/dist/src/runtime/emit/bloom-join.js +8 -16
  264. package/dist/src/runtime/emit/bloom-join.js.map +1 -1
  265. package/dist/src/runtime/emit/case.d.ts.map +1 -1
  266. package/dist/src/runtime/emit/case.js +40 -6
  267. package/dist/src/runtime/emit/case.js.map +1 -1
  268. package/dist/src/runtime/emit/cast.d.ts.map +1 -1
  269. package/dist/src/runtime/emit/cast.js +10 -23
  270. package/dist/src/runtime/emit/cast.js.map +1 -1
  271. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  272. package/dist/src/runtime/emit/constraint-check.js +72 -51
  273. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  274. package/dist/src/runtime/emit/create-view.d.ts.map +1 -1
  275. package/dist/src/runtime/emit/create-view.js +6 -0
  276. package/dist/src/runtime/emit/create-view.js.map +1 -1
  277. package/dist/src/runtime/emit/distinct.d.ts.map +1 -1
  278. package/dist/src/runtime/emit/distinct.js +6 -3
  279. package/dist/src/runtime/emit/distinct.js.map +1 -1
  280. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  281. package/dist/src/runtime/emit/dml-executor.js +188 -84
  282. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  283. package/dist/src/runtime/emit/filter.d.ts +18 -0
  284. package/dist/src/runtime/emit/filter.d.ts.map +1 -1
  285. package/dist/src/runtime/emit/filter.js +52 -10
  286. package/dist/src/runtime/emit/filter.js.map +1 -1
  287. package/dist/src/runtime/emit/hash-aggregate.d.ts.map +1 -1
  288. package/dist/src/runtime/emit/hash-aggregate.js +16 -65
  289. package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
  290. package/dist/src/runtime/emit/insert.d.ts.map +1 -1
  291. package/dist/src/runtime/emit/insert.js +18 -7
  292. package/dist/src/runtime/emit/insert.js.map +1 -1
  293. package/dist/src/runtime/emit/join-key-extractor.d.ts +46 -0
  294. package/dist/src/runtime/emit/join-key-extractor.d.ts.map +1 -0
  295. package/dist/src/runtime/emit/join-key-extractor.js +60 -0
  296. package/dist/src/runtime/emit/join-key-extractor.js.map +1 -0
  297. package/dist/src/runtime/emit/join.d.ts.map +1 -1
  298. package/dist/src/runtime/emit/join.js +37 -11
  299. package/dist/src/runtime/emit/join.js.map +1 -1
  300. package/dist/src/runtime/emit/key-set-semi-join.d.ts +29 -0
  301. package/dist/src/runtime/emit/key-set-semi-join.d.ts.map +1 -0
  302. package/dist/src/runtime/emit/key-set-semi-join.js +143 -0
  303. package/dist/src/runtime/emit/key-set-semi-join.js.map +1 -0
  304. package/dist/src/runtime/emit/materialized-view-helpers.d.ts +14 -1
  305. package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
  306. package/dist/src/runtime/emit/materialized-view-helpers.js +33 -3
  307. package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
  308. package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
  309. package/dist/src/runtime/emit/materialized-view.js +47 -6
  310. package/dist/src/runtime/emit/materialized-view.js.map +1 -1
  311. package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
  312. package/dist/src/runtime/emit/merge-join.js +32 -15
  313. package/dist/src/runtime/emit/merge-join.js.map +1 -1
  314. package/dist/src/runtime/emit/operand-comparator.d.ts +40 -0
  315. package/dist/src/runtime/emit/operand-comparator.d.ts.map +1 -0
  316. package/dist/src/runtime/emit/operand-comparator.js +59 -0
  317. package/dist/src/runtime/emit/operand-comparator.js.map +1 -0
  318. package/dist/src/runtime/emit/scan.d.ts.map +1 -1
  319. package/dist/src/runtime/emit/scan.js +11 -2
  320. package/dist/src/runtime/emit/scan.js.map +1 -1
  321. package/dist/src/runtime/emit/set-object-tags.d.ts +8 -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 +8 -0
  324. package/dist/src/runtime/emit/set-object-tags.js.map +1 -1
  325. package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
  326. package/dist/src/runtime/emit/set-operation.js +7 -4
  327. package/dist/src/runtime/emit/set-operation.js.map +1 -1
  328. package/dist/src/runtime/emit/sort.d.ts.map +1 -1
  329. package/dist/src/runtime/emit/sort.js +5 -2
  330. package/dist/src/runtime/emit/sort.js.map +1 -1
  331. package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
  332. package/dist/src/runtime/emit/subquery.js +113 -13
  333. package/dist/src/runtime/emit/subquery.js.map +1 -1
  334. package/dist/src/runtime/emit/temporal-arithmetic.d.ts +7 -0
  335. package/dist/src/runtime/emit/temporal-arithmetic.d.ts.map +1 -1
  336. package/dist/src/runtime/emit/temporal-arithmetic.js +15 -7
  337. package/dist/src/runtime/emit/temporal-arithmetic.js.map +1 -1
  338. package/dist/src/runtime/emit/update.d.ts.map +1 -1
  339. package/dist/src/runtime/emit/update.js +44 -3
  340. package/dist/src/runtime/emit/update.js.map +1 -1
  341. package/dist/src/runtime/emit/window.d.ts.map +1 -1
  342. package/dist/src/runtime/emit/window.js +72 -55
  343. package/dist/src/runtime/emit/window.js.map +1 -1
  344. package/dist/src/runtime/foreign-key-actions.d.ts +36 -1
  345. package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
  346. package/dist/src/runtime/foreign-key-actions.js +238 -116
  347. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  348. package/dist/src/runtime/parallel-driver.d.ts +10 -2
  349. package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
  350. package/dist/src/runtime/parallel-driver.js +12 -2
  351. package/dist/src/runtime/parallel-driver.js.map +1 -1
  352. package/dist/src/runtime/register.d.ts.map +1 -1
  353. package/dist/src/runtime/register.js +2 -0
  354. package/dist/src/runtime/register.js.map +1 -1
  355. package/dist/src/runtime/types.d.ts +25 -0
  356. package/dist/src/runtime/types.d.ts.map +1 -1
  357. package/dist/src/runtime/types.js.map +1 -1
  358. package/dist/src/schema/catalog-persistability.d.ts +58 -0
  359. package/dist/src/schema/catalog-persistability.d.ts.map +1 -0
  360. package/dist/src/schema/catalog-persistability.js +87 -0
  361. package/dist/src/schema/catalog-persistability.js.map +1 -0
  362. package/dist/src/schema/catalog.d.ts +17 -1
  363. package/dist/src/schema/catalog.d.ts.map +1 -1
  364. package/dist/src/schema/catalog.js +25 -3
  365. package/dist/src/schema/catalog.js.map +1 -1
  366. package/dist/src/schema/constraint-builder.d.ts +20 -22
  367. package/dist/src/schema/constraint-builder.d.ts.map +1 -1
  368. package/dist/src/schema/constraint-builder.js +43 -36
  369. package/dist/src/schema/constraint-builder.js.map +1 -1
  370. package/dist/src/schema/ddl-generator.d.ts +23 -0
  371. package/dist/src/schema/ddl-generator.d.ts.map +1 -1
  372. package/dist/src/schema/ddl-generator.js +27 -0
  373. package/dist/src/schema/ddl-generator.js.map +1 -1
  374. package/dist/src/schema/function.d.ts +39 -1
  375. package/dist/src/schema/function.d.ts.map +1 -1
  376. package/dist/src/schema/function.js.map +1 -1
  377. package/dist/src/schema/manager.d.ts +28 -0
  378. package/dist/src/schema/manager.d.ts.map +1 -1
  379. package/dist/src/schema/manager.js +82 -14
  380. package/dist/src/schema/manager.js.map +1 -1
  381. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  382. package/dist/src/schema/schema-differ.js +51 -12
  383. package/dist/src/schema/schema-differ.js.map +1 -1
  384. package/dist/src/schema/unique-enforcement.d.ts +31 -0
  385. package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
  386. package/dist/src/schema/unique-enforcement.js +37 -1
  387. package/dist/src/schema/unique-enforcement.js.map +1 -1
  388. package/dist/src/schema/window-function.d.ts +30 -10
  389. package/dist/src/schema/window-function.d.ts.map +1 -1
  390. package/dist/src/schema/window-function.js +20 -16
  391. package/dist/src/schema/window-function.js.map +1 -1
  392. package/dist/src/types/builtin-types.d.ts.map +1 -1
  393. package/dist/src/types/builtin-types.js +30 -4
  394. package/dist/src/types/builtin-types.js.map +1 -1
  395. package/dist/src/types/cast-semantics.d.ts +43 -0
  396. package/dist/src/types/cast-semantics.d.ts.map +1 -0
  397. package/dist/src/types/cast-semantics.js +59 -0
  398. package/dist/src/types/cast-semantics.js.map +1 -0
  399. package/dist/src/types/index.d.ts +1 -1
  400. package/dist/src/types/index.d.ts.map +1 -1
  401. package/dist/src/types/index.js +1 -1
  402. package/dist/src/types/index.js.map +1 -1
  403. package/dist/src/types/json-type.d.ts.map +1 -1
  404. package/dist/src/types/json-type.js +31 -10
  405. package/dist/src/types/json-type.js.map +1 -1
  406. package/dist/src/types/logical-type.d.ts +22 -0
  407. package/dist/src/types/logical-type.d.ts.map +1 -1
  408. package/dist/src/types/logical-type.js.map +1 -1
  409. package/dist/src/types/temporal-types.d.ts.map +1 -1
  410. package/dist/src/types/temporal-types.js +33 -11
  411. package/dist/src/types/temporal-types.js.map +1 -1
  412. package/dist/src/types/validation.d.ts +39 -1
  413. package/dist/src/types/validation.d.ts.map +1 -1
  414. package/dist/src/types/validation.js +60 -0
  415. package/dist/src/types/validation.js.map +1 -1
  416. package/dist/src/util/ast-spine-clone.d.ts +23 -0
  417. package/dist/src/util/ast-spine-clone.d.ts.map +1 -0
  418. package/dist/src/util/ast-spine-clone.js +41 -0
  419. package/dist/src/util/ast-spine-clone.js.map +1 -0
  420. package/dist/src/util/coercion.d.ts +13 -0
  421. package/dist/src/util/coercion.d.ts.map +1 -1
  422. package/dist/src/util/coercion.js +10 -1
  423. package/dist/src/util/coercion.js.map +1 -1
  424. package/dist/src/util/comparison.d.ts +114 -0
  425. package/dist/src/util/comparison.d.ts.map +1 -1
  426. package/dist/src/util/comparison.js +187 -27
  427. package/dist/src/util/comparison.js.map +1 -1
  428. package/dist/src/vtab/best-access-plan.d.ts +87 -0
  429. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  430. package/dist/src/vtab/best-access-plan.js +87 -0
  431. package/dist/src/vtab/best-access-plan.js.map +1 -1
  432. package/dist/src/vtab/manifest.d.ts +7 -0
  433. package/dist/src/vtab/manifest.d.ts.map +1 -1
  434. package/dist/src/vtab/memory/connection.d.ts +14 -1
  435. package/dist/src/vtab/memory/connection.d.ts.map +1 -1
  436. package/dist/src/vtab/memory/connection.js +20 -2
  437. package/dist/src/vtab/memory/connection.js.map +1 -1
  438. package/dist/src/vtab/memory/layer/base.d.ts +12 -5
  439. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  440. package/dist/src/vtab/memory/layer/base.js +20 -9
  441. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  442. package/dist/src/vtab/memory/layer/connection.d.ts +17 -0
  443. package/dist/src/vtab/memory/layer/connection.d.ts.map +1 -1
  444. package/dist/src/vtab/memory/layer/connection.js +26 -0
  445. package/dist/src/vtab/memory/layer/connection.js.map +1 -1
  446. package/dist/src/vtab/memory/layer/manager.d.ts +156 -31
  447. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  448. package/dist/src/vtab/memory/layer/manager.js +695 -158
  449. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  450. package/dist/src/vtab/memory/layer/plan-filter.d.ts +41 -20
  451. package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -1
  452. package/dist/src/vtab/memory/layer/plan-filter.js +57 -27
  453. package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -1
  454. package/dist/src/vtab/memory/layer/row-convert.d.ts +21 -0
  455. package/dist/src/vtab/memory/layer/row-convert.d.ts.map +1 -0
  456. package/dist/src/vtab/memory/layer/row-convert.js +30 -0
  457. package/dist/src/vtab/memory/layer/row-convert.js.map +1 -0
  458. package/dist/src/vtab/memory/layer/scan-layer.d.ts +6 -3
  459. package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
  460. package/dist/src/vtab/memory/layer/scan-layer.js +48 -34
  461. package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
  462. package/dist/src/vtab/memory/layer/transaction.d.ts +142 -19
  463. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  464. package/dist/src/vtab/memory/layer/transaction.js +237 -73
  465. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  466. package/dist/src/vtab/memory/module.d.ts +14 -2
  467. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  468. package/dist/src/vtab/memory/module.js +60 -41
  469. package/dist/src/vtab/memory/module.js.map +1 -1
  470. package/dist/src/vtab/memory/table.d.ts +1 -1
  471. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  472. package/dist/src/vtab/memory/table.js +12 -4
  473. package/dist/src/vtab/memory/table.js.map +1 -1
  474. package/dist/src/vtab/memory/types.d.ts +27 -1
  475. package/dist/src/vtab/memory/types.d.ts.map +1 -1
  476. package/dist/src/vtab/memory/types.js +16 -1
  477. package/dist/src/vtab/memory/types.js.map +1 -1
  478. package/dist/src/vtab/memory/utils/primary-key.d.ts +9 -0
  479. package/dist/src/vtab/memory/utils/primary-key.d.ts.map +1 -1
  480. package/dist/src/vtab/memory/utils/primary-key.js +11 -0
  481. package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
  482. package/dist/src/vtab/module.d.ts +63 -0
  483. package/dist/src/vtab/module.d.ts.map +1 -1
  484. package/dist/src/vtab/table.d.ts +33 -7
  485. package/dist/src/vtab/table.d.ts.map +1 -1
  486. package/dist/src/vtab/table.js.map +1 -1
  487. package/package.json +3 -3
  488. package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts +0 -26
  489. package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts.map +0 -1
  490. package/dist/src/planner/rules/cache/rule-in-subquery-cache.js +0 -66
  491. package/dist/src/planner/rules/cache/rule-in-subquery-cache.js.map +0 -1
@@ -29,13 +29,15 @@ export declare class SetOperationNode extends PlanNode implements BinaryRelation
29
29
  readonly nodeType = PlanNodeType.SetOperation;
30
30
  private attributesCache;
31
31
  /**
32
- * Per-data-column collation resolved across BOTH inputs through the shared
33
- * comparison lattice (`set-operation-cross-input-collation-merge`). Cached so
32
+ * Per-data-column output metadata resolved across BOTH inputs: the symmetric
33
+ * logical-type merge, OR-merged nullability, and the comparison-lattice
34
+ * collation (`set-operation-cross-input-collation-merge`). Cached so
34
35
  * `buildAttributes` and `getType` read ONE result and cannot drift — the dedup
35
- * comparator (which keys off the output attribute collation) and an enclosing
36
- * ORDER BY (which keys off the output column collation) thus stay in lockstep.
36
+ * comparator (which keys off the output attribute type/collation) and an
37
+ * enclosing ORDER BY (which keys off the output column type/collation) thus
38
+ * stay in lockstep.
37
39
  */
38
- private dataCollationsCache;
40
+ private dataColumnsCache;
39
41
  constructor(scope: Scope, left: RelationalPlanNode, right: RelationalPlanNode, op: 'union' | 'unionAll' | 'intersect' | 'except',
40
42
  /**
41
43
  * Membership-flag columns appended after the data columns (read half:
@@ -43,9 +45,24 @@ export declare class SetOperationNode extends PlanNode implements BinaryRelation
43
45
  */
44
46
  membership?: readonly SetOpMembershipSpec[] | undefined);
45
47
  /**
46
- * Resolve each DATA column's dedup/compare collation across both inputs through
47
- * the shared comparison lattice (`resolveSetOpColumnCollation`). The conflict
48
- * policy is keyed on set-ness:
48
+ * Resolve each DATA column's cross-input output metadata:
49
+ *
50
+ * **Logical type** the symmetric merge (`mergeSetOpAdvertisedType`): identical
51
+ * types keep theirs, NULL yields to the other side, differing builtin numerics
52
+ * merge to NUMERIC (whose `number | bigint` value space covers both branches
53
+ * unconverted), and an irreconcilable pair advertises ANY. A rule-4
54
+ * pair (object-physical vs other) also collapses to ANY *here*, because this
55
+ * node performs no conversion itself — {@link SetOperationNode.create} aligns
56
+ * such operands with a lenient CAST up front, so an aligned tree lands on the
57
+ * identical-types rule instead. Everything downstream (the DML write pass's
58
+ * `buildRowCoercion`, the dedup comparator, predicate coercion) trusts the
59
+ * advertised type, so it must describe BOTH branches' rows.
60
+ *
61
+ * **Nullability** — OR across the two inputs (a nullable right branch must not
62
+ * be masked by a NOT NULL left branch; same merge `AsyncGatherNode` applies).
63
+ *
64
+ * **Collation** — the shared comparison lattice (`resolveSetOpColumnCollation`).
65
+ * The conflict policy is keyed on set-ness:
49
66
  * - DISTINCT operators (`union`/`intersect`/`except`, `op !== 'unionAll'`) DO
50
67
  * dedup, so a same-rank explicit/declared name conflict is a plan-time error
51
68
  * — the same one a spelled-out `l.c = r.c` would throw. Forced at build time
@@ -54,18 +71,20 @@ export declare class SetOperationNode extends PlanNode implements BinaryRelation
54
71
  * - `union all` does NO dedup, so a conflict must NOT throw — it propagates no
55
72
  * collation forward (BINARY-equivalent), exactly as `mergePropagatedCollation`
56
73
  * swallows conflicts for `||` / CASE. Rows pass through unchanged (bag).
74
+ *
57
75
  * Only the first `dataColumnCount()` columns are resolved; flag columns (appended
58
76
  * after, `EXISTENCE_FLAG_TYPE`, no collation) are never touched.
59
77
  */
60
- private resolveDataCollations;
78
+ private resolveDataColumns;
61
79
  /**
62
- * Data column `i`'s `ScalarType` rebased onto the cross-input-resolved collation:
63
- * the left operand's type stays the base (logicalType, nullable, affinity —
64
- * cross-branch type merge stays out of scope) and ONLY `collationName`/
65
- * `collationSource` are overridden (both possibly `undefined` for the BINARY
66
- * floor). Callers map this over the first `dataColumnCount()` attrs/columns,
67
- * preserving attribute ids (only the type's collation changes) so ORDER BY / an
68
- * enclosing view still resolve and a `withChildren` rebuild yields the same ids.
80
+ * Data column `i`'s `ScalarType` rebased onto the cross-input-resolved output
81
+ * metadata: `logicalType` is the symmetric cross-branch merge, `nullable` the
82
+ * OR of both inputs, `collationName`/`collationSource` the comparison-lattice
83
+ * resolution (both possibly `undefined` for the BINARY floor); the left
84
+ * operand's type stays the base for everything else (`isReadOnly`). Callers map
85
+ * this over the first `dataColumnCount()` attrs/columns, preserving attribute
86
+ * ids (only the type changes) so ORDER BY / an enclosing view still resolve and
87
+ * a `withChildren` rebuild yields the same ids.
69
88
  */
70
89
  private resolvedDataType;
71
90
  /** True when this set operation exposes its OWN membership flags. */
@@ -138,7 +157,40 @@ export declare class SetOperationNode extends PlanNode implements BinaryRelation
138
157
  */
139
158
  private membershipLineage;
140
159
  withChildren(newChildren: readonly PlanNode[]): PlanNode;
160
+ /**
161
+ * Build a `SetOperationNode` over operands ALIGNED to the cross-branch merged
162
+ * column types ({@link alignSetOpOperands}) — the construction path every
163
+ * builder should use. Alignment is what lets the node advertise a concrete
164
+ * merged type for a rule-4 pair (JSON ∪ TEXT): the non-object branch is
165
+ * wrapped so it actually produces the merged type, after which both branches
166
+ * agree and every consumer (DML write pass, dedup comparator, predicate
167
+ * coercion) reads an honest type. Idempotent — aligned operands re-align to
168
+ * themselves — so `withChildren` routes through here safely.
169
+ */
170
+ static create(scope: Scope, left: RelationalPlanNode, right: RelationalPlanNode, op: 'union' | 'unionAll' | 'intersect' | 'except', membership?: readonly SetOpMembershipSpec[]): SetOperationNode;
141
171
  toString(): string;
142
172
  getLogicalAttributes(): Record<string, unknown>;
143
173
  }
174
+ /**
175
+ * Align two set-operation operands to their cross-branch merged column types:
176
+ * wherever the per-column merge requires converting one operand (rule 4 —
177
+ * object-physical vs other, `mergeSetOpColumnType().convert`), wrap that operand
178
+ * in a projection that CASTs the column to the merged type (lenient — a value
179
+ * that does not parse falls back through `castFallback` rather than throwing, so
180
+ * `select j from src union all select 'not json'` stays total). All other merge
181
+ * outcomes (identical, NULL, numeric promotion, ANY) require no conversion and
182
+ * leave both operands untouched.
183
+ *
184
+ * A DIFF builder must call this ONCE on the original operands before expanding
185
+ * to `(A except B) union (B except A)`, so both inner nodes see the same aligned
186
+ * pair; the subsequent {@link SetOperationNode.create} calls then re-align to a
187
+ * no-op (identical types).
188
+ *
189
+ * A flag-surfacing operand (a flagged set operation, or a flag-less one over a
190
+ * flagged operand) is never wrapped: a `ProjectNode` would flatten its surfaced
191
+ * flag columns into the data arity `dataArity` recursively derives, breaking the
192
+ * enclosing node's data/flag split. Such a pair stays unconverted and the node
193
+ * honestly advertises ANY for the affected column (`mergeSetOpAdvertisedType`).
194
+ */
195
+ export declare function alignSetOpOperands(scope: Scope, left: RelationalPlanNode, right: RelationalPlanNode): [RelationalPlanNode, RelationalPlanNode];
144
196
  //# sourceMappingURL=set-operation-node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-operation-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/set-operation-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,oBAAoB,EAAE,kBAAkB,EAAuE,MAAM,gBAAgB,CAAC;AACnL,OAAO,KAAK,EAAE,YAAY,EAA0C,MAAM,0BAA0B,CAAC;AAErG,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAchD;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAqBD,qBAAa,gBAAiB,SAAQ,QAAS,YAAW,oBAAoB;aAc1D,IAAI,EAAE,kBAAkB;aACxB,KAAK,EAAE,kBAAkB;aACzB,EAAE,EAAE,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ;IACjE;;;OAGG;aACa,UAAU,CAAC,EAAE,SAAS,mBAAmB,EAAE;IApB7D,QAAQ,CAAC,QAAQ,6BAA6B;IAC9C,OAAO,CAAC,eAAe,CAA+B;IACtD;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB,CAA2C;gBAGpE,KAAK,EAAE,KAAK,EACI,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,kBAAkB,EACzB,EAAE,EAAE,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ;IACjE;;;OAGG;IACa,UAAU,CAAC,EAAE,SAAS,mBAAmB,EAAE,YAAA;IAqB7D;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAKxB,qEAAqE;IACrE,IAAI,oBAAoB,IAAI,OAAO,CAElC;IAED;;;;;OAKG;IACH,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED;;;;OAIG;IACH,eAAe,IAAI,MAAM;IAIzB,6FAA6F;IAC7F,OAAO,KAAK,aAAa,GAExB;IAED,8FAA8F;IAC9F,OAAO,KAAK,cAAc,GAEzB;IAED;;;;OAIG;IACH,OAAO,KAAK,WAAW,GAEtB;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAoBvB,aAAa,IAAI,SAAS,SAAS,EAAE;IAIrC,OAAO,IAAI,YAAY;IAoCvB,WAAW,IAAI,SAAS,QAAQ,EAAE;IAIlC,YAAY,IAAI,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAIjE,eAAe,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6CrF;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAarB,+EAA+E;IAC/E,OAAO,CAAC,iBAAiB;IASzB;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;IAgBlC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;IAczB,YAAY,CAAC,WAAW,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ;IAgC/C,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAOzD"}
1
+ {"version":3,"file":"set-operation-node.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/set-operation-node.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,10 @@ import { StatusCode } from '../../common/types.js';
6
6
  import { EXISTENCE_FLAG_TYPE } from './join-utils.js';
7
7
  import { superkeyToFd } from '../util/fd-utils.js';
8
8
  import { resolveSetOpColumnCollation, collationConflictError } from '../analysis/comparison-collation.js';
9
+ import { mergeSetOpColumnType, mergeSetOpAdvertisedType } from '../analysis/set-op-type-merge.js';
10
+ import { ProjectNode } from './project-node.js';
11
+ import { ColumnReferenceNode } from './reference.js';
12
+ import { CastNode } from './scalar.js';
9
13
  /**
10
14
  * Recursive DATA (non-flag) arity of a set-operation operand. Flags are always
11
15
  * appended after the data columns at every depth, so a `SetOperationNode`'s data
@@ -31,13 +35,15 @@ export class SetOperationNode extends PlanNode {
31
35
  nodeType = PlanNodeType.SetOperation;
32
36
  attributesCache;
33
37
  /**
34
- * Per-data-column collation resolved across BOTH inputs through the shared
35
- * comparison lattice (`set-operation-cross-input-collation-merge`). Cached so
38
+ * Per-data-column output metadata resolved across BOTH inputs: the symmetric
39
+ * logical-type merge, OR-merged nullability, and the comparison-lattice
40
+ * collation (`set-operation-cross-input-collation-merge`). Cached so
36
41
  * `buildAttributes` and `getType` read ONE result and cannot drift — the dedup
37
- * comparator (which keys off the output attribute collation) and an enclosing
38
- * ORDER BY (which keys off the output column collation) thus stay in lockstep.
42
+ * comparator (which keys off the output attribute type/collation) and an
43
+ * enclosing ORDER BY (which keys off the output column type/collation) thus
44
+ * stay in lockstep.
39
45
  */
40
- dataCollationsCache;
46
+ dataColumnsCache;
41
47
  constructor(scope, left, right, op,
42
48
  /**
43
49
  * Membership-flag columns appended after the data columns (read half:
@@ -64,12 +70,27 @@ export class SetOperationNode extends PlanNode {
64
70
  }
65
71
  // TODO: optionally check type compatibility (affinity)
66
72
  this.attributesCache = new Cached(() => this.buildAttributes());
67
- this.dataCollationsCache = new Cached(() => this.resolveDataCollations());
73
+ this.dataColumnsCache = new Cached(() => this.resolveDataColumns());
68
74
  }
69
75
  /**
70
- * Resolve each DATA column's dedup/compare collation across both inputs through
71
- * the shared comparison lattice (`resolveSetOpColumnCollation`). The conflict
72
- * policy is keyed on set-ness:
76
+ * Resolve each DATA column's cross-input output metadata:
77
+ *
78
+ * **Logical type** the symmetric merge (`mergeSetOpAdvertisedType`): identical
79
+ * types keep theirs, NULL yields to the other side, differing builtin numerics
80
+ * merge to NUMERIC (whose `number | bigint` value space covers both branches
81
+ * unconverted), and an irreconcilable pair advertises ANY. A rule-4
82
+ * pair (object-physical vs other) also collapses to ANY *here*, because this
83
+ * node performs no conversion itself — {@link SetOperationNode.create} aligns
84
+ * such operands with a lenient CAST up front, so an aligned tree lands on the
85
+ * identical-types rule instead. Everything downstream (the DML write pass's
86
+ * `buildRowCoercion`, the dedup comparator, predicate coercion) trusts the
87
+ * advertised type, so it must describe BOTH branches' rows.
88
+ *
89
+ * **Nullability** — OR across the two inputs (a nullable right branch must not
90
+ * be masked by a NOT NULL left branch; same merge `AsyncGatherNode` applies).
91
+ *
92
+ * **Collation** — the shared comparison lattice (`resolveSetOpColumnCollation`).
93
+ * The conflict policy is keyed on set-ness:
73
94
  * - DISTINCT operators (`union`/`intersect`/`except`, `op !== 'unionAll'`) DO
74
95
  * dedup, so a same-rank explicit/declared name conflict is a plan-time error
75
96
  * — the same one a spelled-out `l.c = r.c` would throw. Forced at build time
@@ -78,40 +99,52 @@ export class SetOperationNode extends PlanNode {
78
99
  * - `union all` does NO dedup, so a conflict must NOT throw — it propagates no
79
100
  * collation forward (BINARY-equivalent), exactly as `mergePropagatedCollation`
80
101
  * swallows conflicts for `||` / CASE. Rows pass through unchanged (bag).
102
+ *
81
103
  * Only the first `dataColumnCount()` columns are resolved; flag columns (appended
82
104
  * after, `EXISTENCE_FLAG_TYPE`, no collation) are never touched.
83
105
  */
84
- resolveDataCollations() {
106
+ resolveDataColumns() {
85
107
  const isSet = this.op !== 'unionAll';
86
108
  const leftColumns = this.left.getType().columns;
87
109
  const rightColumns = this.right.getType().columns;
88
110
  const dataCount = this.dataColumnCount();
89
111
  const resolved = [];
90
112
  for (let i = 0; i < dataCount; i++) {
91
- const res = resolveSetOpColumnCollation(leftColumns[i].type, rightColumns[i].type);
113
+ const leftType = leftColumns[i].type;
114
+ const rightType = rightColumns[i].type;
115
+ const logicalType = mergeSetOpAdvertisedType(leftType.logicalType, rightType.logicalType);
116
+ const nullable = leftType.nullable || rightType.nullable;
117
+ const res = resolveSetOpColumnCollation(leftType, rightType);
92
118
  if (res.kind === 'conflict') {
93
119
  if (isSet)
94
120
  throw collationConflictError(res);
95
- resolved.push({}); // union all: no comparison, carry no collation forward
121
+ resolved.push({ logicalType, nullable }); // union all: no comparison, carry no collation forward
96
122
  }
97
123
  else {
98
- resolved.push({ collationName: res.collationName, collationSource: res.collationSource });
124
+ resolved.push({ logicalType, nullable, collationName: res.collationName, collationSource: res.collationSource });
99
125
  }
100
126
  }
101
127
  return resolved;
102
128
  }
103
129
  /**
104
- * Data column `i`'s `ScalarType` rebased onto the cross-input-resolved collation:
105
- * the left operand's type stays the base (logicalType, nullable, affinity —
106
- * cross-branch type merge stays out of scope) and ONLY `collationName`/
107
- * `collationSource` are overridden (both possibly `undefined` for the BINARY
108
- * floor). Callers map this over the first `dataColumnCount()` attrs/columns,
109
- * preserving attribute ids (only the type's collation changes) so ORDER BY / an
110
- * enclosing view still resolve and a `withChildren` rebuild yields the same ids.
130
+ * Data column `i`'s `ScalarType` rebased onto the cross-input-resolved output
131
+ * metadata: `logicalType` is the symmetric cross-branch merge, `nullable` the
132
+ * OR of both inputs, `collationName`/`collationSource` the comparison-lattice
133
+ * resolution (both possibly `undefined` for the BINARY floor); the left
134
+ * operand's type stays the base for everything else (`isReadOnly`). Callers map
135
+ * this over the first `dataColumnCount()` attrs/columns, preserving attribute
136
+ * ids (only the type changes) so ORDER BY / an enclosing view still resolve and
137
+ * a `withChildren` rebuild yields the same ids.
111
138
  */
112
139
  resolvedDataType(baseType, i) {
113
- const c = this.dataCollationsCache.value[i];
114
- return { ...baseType, collationName: c.collationName, collationSource: c.collationSource };
140
+ const c = this.dataColumnsCache.value[i];
141
+ return {
142
+ ...baseType,
143
+ logicalType: c.logicalType,
144
+ nullable: c.nullable,
145
+ collationName: c.collationName,
146
+ collationSource: c.collationSource,
147
+ };
115
148
  }
116
149
  /** True when this set operation exposes its OWN membership flags. */
117
150
  get hasMembershipColumns() {
@@ -359,10 +392,32 @@ export class SetOperationNode extends PlanNode {
359
392
  if (newLeft === this.left && newRight === this.right) {
360
393
  return this;
361
394
  }
362
- // Create new instance preserving attributes (set operation preserves left child's
363
- // attributes). The membership specs carry pre-minted stable attribute ids, so they
364
- // are threaded verbatim (the appended flag columns survive the rebuild).
365
- return new SetOperationNode(this.scope, newLeft, newRight, this.op, this.membership);
395
+ // Rebuild through the aligning factory so an optimizer rewrite that changed a
396
+ // branch's column types re-aligns (alignment is idempotent: already-aligned
397
+ // operands hit the identical-types merge rule and are not re-wrapped, so the
398
+ // ordinary type-preserving rewrite keeps the same children and attribute ids).
399
+ // The membership specs carry pre-minted stable attribute ids, so they are
400
+ // threaded verbatim (the appended flag columns survive the rebuild).
401
+ // NOTE: every optimizer rule is type-preserving today, so re-alignment here is
402
+ // always a no-op. If a rule ever hands back a child whose column TYPES changed,
403
+ // this wraps that child and mints fresh cast-column attribute ids mid-optimization
404
+ // — stale references above would then fail to resolve. Align before the rewrite
405
+ // (or re-publish the ids) if that day comes.
406
+ return SetOperationNode.create(this.scope, newLeft, newRight, this.op, this.membership);
407
+ }
408
+ /**
409
+ * Build a `SetOperationNode` over operands ALIGNED to the cross-branch merged
410
+ * column types ({@link alignSetOpOperands}) — the construction path every
411
+ * builder should use. Alignment is what lets the node advertise a concrete
412
+ * merged type for a rule-4 pair (JSON ∪ TEXT): the non-object branch is
413
+ * wrapped so it actually produces the merged type, after which both branches
414
+ * agree and every consumer (DML write pass, dedup comparator, predicate
415
+ * coercion) reads an honest type. Idempotent — aligned operands re-align to
416
+ * themselves — so `withChildren` routes through here safely.
417
+ */
418
+ static create(scope, left, right, op, membership) {
419
+ const [alignedLeft, alignedRight] = alignSetOpOperands(scope, left, right);
420
+ return new SetOperationNode(scope, alignedLeft, alignedRight, op, membership);
366
421
  }
367
422
  toString() {
368
423
  return `${this.op.toUpperCase()}(${this.left.id}, ${this.right.id})`;
@@ -375,4 +430,70 @@ export class SetOperationNode extends PlanNode {
375
430
  return base;
376
431
  }
377
432
  }
433
+ /**
434
+ * Align two set-operation operands to their cross-branch merged column types:
435
+ * wherever the per-column merge requires converting one operand (rule 4 —
436
+ * object-physical vs other, `mergeSetOpColumnType().convert`), wrap that operand
437
+ * in a projection that CASTs the column to the merged type (lenient — a value
438
+ * that does not parse falls back through `castFallback` rather than throwing, so
439
+ * `select j from src union all select 'not json'` stays total). All other merge
440
+ * outcomes (identical, NULL, numeric promotion, ANY) require no conversion and
441
+ * leave both operands untouched.
442
+ *
443
+ * A DIFF builder must call this ONCE on the original operands before expanding
444
+ * to `(A except B) union (B except A)`, so both inner nodes see the same aligned
445
+ * pair; the subsequent {@link SetOperationNode.create} calls then re-align to a
446
+ * no-op (identical types).
447
+ *
448
+ * A flag-surfacing operand (a flagged set operation, or a flag-less one over a
449
+ * flagged operand) is never wrapped: a `ProjectNode` would flatten its surfaced
450
+ * flag columns into the data arity `dataArity` recursively derives, breaking the
451
+ * enclosing node's data/flag split. Such a pair stays unconverted and the node
452
+ * honestly advertises ANY for the affected column (`mergeSetOpAdvertisedType`).
453
+ */
454
+ export function alignSetOpOperands(scope, left, right) {
455
+ // Align only the shared data prefix; a data-arity mismatch is left for the
456
+ // SetOperationNode constructor's error.
457
+ const dataCount = Math.min(dataArity(left), dataArity(right));
458
+ const leftColumns = left.getType().columns;
459
+ const rightColumns = right.getType().columns;
460
+ const leftCasts = new Map();
461
+ const rightCasts = new Map();
462
+ for (let i = 0; i < dataCount; i++) {
463
+ const merged = mergeSetOpColumnType(leftColumns[i].type.logicalType, rightColumns[i].type.logicalType);
464
+ if (merged.convert === 'left')
465
+ leftCasts.set(i, merged.logicalType);
466
+ else if (merged.convert === 'right')
467
+ rightCasts.set(i, merged.logicalType);
468
+ }
469
+ const alignedLeft = leftCasts.size > 0 && flagCount(left) === 0 ? castColumns(scope, left, leftCasts) : left;
470
+ const alignedRight = rightCasts.size > 0 && flagCount(right) === 0 ? castColumns(scope, right, rightCasts) : right;
471
+ return [alignedLeft, alignedRight];
472
+ }
473
+ /**
474
+ * Wrap `branch` in a `ProjectNode` that CASTs the columns in `casts` to their
475
+ * target logical types and passes every other column through verbatim. A
476
+ * passed-through column keeps its attribute id (an explicit `attributeId` on a
477
+ * bare column-reference projection); a cast column mints a fresh id — its values
478
+ * change, so reusing the source id would let a predicate be pushed below the
479
+ * conversion. Only called for flag-less branches (see {@link alignSetOpOperands}),
480
+ * so every projected column is a data column.
481
+ */
482
+ function castColumns(scope, branch, casts) {
483
+ const attrs = branch.getAttributes();
484
+ const projections = attrs.map((attr, i) => {
485
+ const columnExpr = { type: 'column', name: attr.name };
486
+ const columnRef = new ColumnReferenceNode(scope, columnExpr, attr.type, attr.id, i);
487
+ const target = casts.get(i);
488
+ if (!target) {
489
+ return { node: columnRef, alias: attr.name, attributeId: attr.id };
490
+ }
491
+ // `CastNode` resolves the target through the registry by name; rule-4 targets
492
+ // are registered types (JSON today), so the name round-trips to the same
493
+ // logical-type instance.
494
+ const castExpr = { type: 'cast', expr: columnExpr, targetType: target.name };
495
+ return { node: new CastNode(scope, castExpr, columnRef), alias: attr.name, attributeId: PlanNode.nextAttrId() };
496
+ });
497
+ return new ProjectNode(scope, branch, projections);
498
+ }
378
499
  //# sourceMappingURL=set-operation-node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-operation-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/set-operation-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"set-operation-node.js","sourceRoot":"","sources":["../../../../src/planner/nodes/set-operation-node.ts"],"names":[],"mappings":"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"}
@@ -78,13 +78,31 @@ export declare class IndexScanNode extends TableAccessNode {
78
78
  readonly rangeBoundedOn?: PhysicalProperties['rangeBoundedOn'];
79
79
  /** When true, suppress the lifted `monotonicOn` advertisement (defensive escalation). */
80
80
  readonly suppressMonotonic: boolean;
81
+ /**
82
+ * True when a SortNode was dropped on the strength of this scan's
83
+ * `providesOrdering` (sort absorption in `rule-grow-retrieve`): the
84
+ * scan's emission order is the only thing producing the requested
85
+ * ORDER BY. Rewrites that change this leaf's emission order
86
+ * (`rule-key-set-seek`) must decline. False for a vacuously-advertised
87
+ * ordering nothing consumed.
88
+ */
89
+ readonly orderingLoadBearing: boolean;
81
90
  readonly nodeType = PlanNodeType.IndexScan;
82
91
  constructor(scope: Scope, source: TableReferenceNode, filterInfo: FilterInfo, indexName: string, providesOrdering?: {
83
92
  column: number;
84
93
  desc: boolean;
85
94
  }[] | undefined, estimatedCostOverride?: number, advertisement?: AccessPathAdvertisement | undefined, rangeBoundedOn?: PhysicalProperties['rangeBoundedOn'],
86
95
  /** When true, suppress the lifted `monotonicOn` advertisement (defensive escalation). */
87
- suppressMonotonic?: boolean);
96
+ suppressMonotonic?: boolean,
97
+ /**
98
+ * True when a SortNode was dropped on the strength of this scan's
99
+ * `providesOrdering` (sort absorption in `rule-grow-retrieve`): the
100
+ * scan's emission order is the only thing producing the requested
101
+ * ORDER BY. Rewrites that change this leaf's emission order
102
+ * (`rule-key-set-seek`) must decline. False for a vacuously-advertised
103
+ * ordering nothing consumed.
104
+ */
105
+ orderingLoadBearing?: boolean);
88
106
  getAccessMethod(): 'index-scan';
89
107
  computePhysical(childrenPhysical: PhysicalProperties[]): Partial<PhysicalProperties>;
90
108
  toString(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"table-access-nodes.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/table-access-nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table-access-nodes.d.ts","sourceRoot":"","sources":["../../../../src/planner/nodes/table-access-nodes.ts"],"names":[],"mappings":"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"}
@@ -176,16 +176,27 @@ export class IndexScanNode extends TableAccessNode {
176
176
  advertisement;
177
177
  rangeBoundedOn;
178
178
  suppressMonotonic;
179
+ orderingLoadBearing;
179
180
  nodeType = PlanNodeType.IndexScan;
180
181
  constructor(scope, source, filterInfo, indexName, providesOrdering, estimatedCostOverride, advertisement, rangeBoundedOn,
181
182
  /** When true, suppress the lifted `monotonicOn` advertisement (defensive escalation). */
182
- suppressMonotonic = false) {
183
+ suppressMonotonic = false,
184
+ /**
185
+ * True when a SortNode was dropped on the strength of this scan's
186
+ * `providesOrdering` (sort absorption in `rule-grow-retrieve`): the
187
+ * scan's emission order is the only thing producing the requested
188
+ * ORDER BY. Rewrites that change this leaf's emission order
189
+ * (`rule-key-set-seek`) must decline. False for a vacuously-advertised
190
+ * ordering nothing consumed.
191
+ */
192
+ orderingLoadBearing = false) {
183
193
  super(scope, source, filterInfo, estimatedCostOverride);
184
194
  this.indexName = indexName;
185
195
  this.providesOrdering = providesOrdering;
186
196
  this.advertisement = advertisement;
187
197
  this.rangeBoundedOn = rangeBoundedOn;
188
198
  this.suppressMonotonic = suppressMonotonic;
199
+ this.orderingLoadBearing = orderingLoadBearing;
189
200
  }
190
201
  getAccessMethod() {
191
202
  return 'index-scan';
@@ -244,7 +255,7 @@ export class IndexScanNode extends TableAccessNode {
244
255
  return this;
245
256
  }
246
257
  // Create new instance
247
- return new IndexScanNode(this.scope, newSource, this.filterInfo, this.indexName, this.providesOrdering, undefined, this.advertisement, this.rangeBoundedOn, this.suppressMonotonic);
258
+ return new IndexScanNode(this.scope, newSource, this.filterInfo, this.indexName, this.providesOrdering, undefined, this.advertisement, this.rangeBoundedOn, this.suppressMonotonic, this.orderingLoadBearing);
248
259
  }
249
260
  }
250
261
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"table-access-nodes.js","sourceRoot":"","sources":["../../../../src/planner/nodes/table-access-nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table-access-nodes.js","sourceRoot":"","sources":["../../../../src/planner/nodes/table-access-nodes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"optimizer.d.ts","sourceRoot":"","sources":["../../../src/planner/optimizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,CAAC;AAG1B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA+DjF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI/C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IACjC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IACxC,KAAK,EAAE,SAAS,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,cAAc,CAAC;CAC/B;AAq/BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,WAAW,EAAE,WAAW,GACtB,IAAI,CA0CN;AAED;;GAEG;AACH,qBAAa,SAAS;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,eAAe,CAAqC;IACrD,MAAM,EAAE,eAAe,CAAC;gBAG9B,MAAM,GAAE,eAAgC,EACxC,KAAK,CAAC,EAAE,aAAa;IAUtB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAI3C;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,QAAQ;IAgChD;;;OAGG;IACH,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,QAAQ;IAe3D;;OAEG;IACH,QAAQ,IAAI,aAAa;IAIzB,qDAAqD;IACrD,kBAAkB,IAAI,oBAAoB,GAAG,IAAI;CAGjD"}
1
+ {"version":3,"file":"optimizer.d.ts","sourceRoot":"","sources":["../../../src/planner/optimizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,CAAC;AAG1B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAgEjF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAI/C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB;IACjC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IACxC,KAAK,EAAE,SAAS,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,cAAc,CAAC;CAC/B;AAgiCD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,WAAW,EAAE,WAAW,GACtB,IAAI,CA0CN;AAED;;GAEG;AACH,qBAAa,SAAS;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,eAAe,CAAqC;IACrD,MAAM,EAAE,eAAe,CAAC;gBAG9B,MAAM,GAAE,eAAgC,EACxC,KAAK,CAAC,EAAE,aAAa;IAUtB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAI3C;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,QAAQ;IAgChD;;;OAGG;IACH,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,GAAG,QAAQ;IAe3D;;OAEG;IACH,QAAQ,IAAI,aAAa;IAIzB,qDAAqD;IACrD,kBAAkB,IAAI,oBAAoB,GAAG,IAAI;CAGjD"}