@quereus/quereus 4.3.2 → 4.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/README.md +5 -0
  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-external-changes.d.ts +2 -2
  10. package/dist/src/core/database-external-changes.d.ts.map +1 -1
  11. package/dist/src/core/database-external-changes.js +12 -9
  12. package/dist/src/core/database-external-changes.js.map +1 -1
  13. package/dist/src/core/database-materialized-views-apply.d.ts +156 -14
  14. package/dist/src/core/database-materialized-views-apply.d.ts.map +1 -1
  15. package/dist/src/core/database-materialized-views-apply.js +370 -65
  16. package/dist/src/core/database-materialized-views-apply.js.map +1 -1
  17. package/dist/src/core/database-materialized-views-plan-builders.d.ts +66 -1
  18. package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -1
  19. package/dist/src/core/database-materialized-views-plan-builders.js +368 -8
  20. package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
  21. package/dist/src/core/database-materialized-views-plans.d.ts +257 -30
  22. package/dist/src/core/database-materialized-views-plans.d.ts.map +1 -1
  23. package/dist/src/core/database-materialized-views.d.ts +99 -42
  24. package/dist/src/core/database-materialized-views.d.ts.map +1 -1
  25. package/dist/src/core/database-materialized-views.js +198 -121
  26. package/dist/src/core/database-materialized-views.js.map +1 -1
  27. package/dist/src/core/database.d.ts +5 -0
  28. package/dist/src/core/database.d.ts.map +1 -1
  29. package/dist/src/core/database.js +41 -18
  30. package/dist/src/core/database.js.map +1 -1
  31. package/dist/src/core/internal-statement-cache.d.ts +18 -0
  32. package/dist/src/core/internal-statement-cache.d.ts.map +1 -0
  33. package/dist/src/core/internal-statement-cache.js +211 -0
  34. package/dist/src/core/internal-statement-cache.js.map +1 -0
  35. package/dist/src/func/builtins/aggregate.d.ts +13 -12
  36. package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
  37. package/dist/src/func/builtins/aggregate.js +146 -62
  38. package/dist/src/func/builtins/aggregate.js.map +1 -1
  39. package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
  40. package/dist/src/func/builtins/builtin-window-functions.js +63 -48
  41. package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
  42. package/dist/src/func/registration.d.ts +19 -1
  43. package/dist/src/func/registration.d.ts.map +1 -1
  44. package/dist/src/func/registration.js +41 -0
  45. package/dist/src/func/registration.js.map +1 -1
  46. package/dist/src/index.d.ts +8 -8
  47. package/dist/src/index.d.ts.map +1 -1
  48. package/dist/src/index.js +12 -11
  49. package/dist/src/index.js.map +1 -1
  50. package/dist/src/parser/parser.d.ts +6 -0
  51. package/dist/src/parser/parser.d.ts.map +1 -1
  52. package/dist/src/parser/parser.js +45 -34
  53. package/dist/src/parser/parser.js.map +1 -1
  54. package/dist/src/planner/analysis/comparison-collation.d.ts +2 -0
  55. package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
  56. package/dist/src/planner/analysis/comparison-collation.js +1 -1
  57. package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
  58. package/dist/src/planner/analysis/equi-correlation.d.ts +26 -0
  59. package/dist/src/planner/analysis/equi-correlation.d.ts.map +1 -0
  60. package/dist/src/planner/analysis/equi-correlation.js +62 -0
  61. package/dist/src/planner/analysis/equi-correlation.js.map +1 -0
  62. package/dist/src/planner/analysis/expression-fingerprint.d.ts.map +1 -1
  63. package/dist/src/planner/analysis/expression-fingerprint.js +29 -0
  64. package/dist/src/planner/analysis/expression-fingerprint.js.map +1 -1
  65. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts +60 -18
  66. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
  67. package/dist/src/planner/analysis/query-rewrite-matcher.js +95 -42
  68. package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -1
  69. package/dist/src/planner/analysis/sat-checker.d.ts.map +1 -1
  70. package/dist/src/planner/analysis/sat-checker.js +43 -4
  71. package/dist/src/planner/analysis/sat-checker.js.map +1 -1
  72. package/dist/src/planner/analysis/scalar-subqueries.d.ts +28 -0
  73. package/dist/src/planner/analysis/scalar-subqueries.d.ts.map +1 -0
  74. package/dist/src/planner/analysis/scalar-subqueries.js +60 -0
  75. package/dist/src/planner/analysis/scalar-subqueries.js.map +1 -0
  76. package/dist/src/planner/building/delete.d.ts.map +1 -1
  77. package/dist/src/planner/building/delete.js +10 -3
  78. package/dist/src/planner/building/delete.js.map +1 -1
  79. package/dist/src/planner/building/expression.d.ts.map +1 -1
  80. package/dist/src/planner/building/expression.js +87 -6
  81. package/dist/src/planner/building/expression.js.map +1 -1
  82. package/dist/src/planner/building/foreign-key-builder.d.ts +44 -1
  83. package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
  84. package/dist/src/planner/building/foreign-key-builder.js +54 -0
  85. package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
  86. package/dist/src/planner/building/insert.d.ts.map +1 -1
  87. package/dist/src/planner/building/insert.js +9 -12
  88. package/dist/src/planner/building/insert.js.map +1 -1
  89. package/dist/src/planner/building/select.d.ts.map +1 -1
  90. package/dist/src/planner/building/select.js +15 -1
  91. package/dist/src/planner/building/select.js.map +1 -1
  92. package/dist/src/planner/building/update.d.ts.map +1 -1
  93. package/dist/src/planner/building/update.js +13 -4
  94. package/dist/src/planner/building/update.js.map +1 -1
  95. package/dist/src/planner/building/with.d.ts.map +1 -1
  96. package/dist/src/planner/building/with.js +5 -8
  97. package/dist/src/planner/building/with.js.map +1 -1
  98. package/dist/src/planner/cache/materialization-advisory.d.ts +33 -0
  99. package/dist/src/planner/cache/materialization-advisory.d.ts.map +1 -1
  100. package/dist/src/planner/cache/materialization-advisory.js +164 -28
  101. package/dist/src/planner/cache/materialization-advisory.js.map +1 -1
  102. package/dist/src/planner/cache/reference-graph.d.ts +0 -4
  103. package/dist/src/planner/cache/reference-graph.d.ts.map +1 -1
  104. package/dist/src/planner/cache/reference-graph.js +5 -13
  105. package/dist/src/planner/cache/reference-graph.js.map +1 -1
  106. package/dist/src/planner/cost/index.d.ts +28 -7
  107. package/dist/src/planner/cost/index.d.ts.map +1 -1
  108. package/dist/src/planner/cost/index.js +26 -0
  109. package/dist/src/planner/cost/index.js.map +1 -1
  110. package/dist/src/planner/framework/pass.js +3 -3
  111. package/dist/src/planner/nodes/cache-node.d.ts +18 -2
  112. package/dist/src/planner/nodes/cache-node.d.ts.map +1 -1
  113. package/dist/src/planner/nodes/cache-node.js +42 -3
  114. package/dist/src/planner/nodes/cache-node.js.map +1 -1
  115. package/dist/src/planner/nodes/cte-node.d.ts +15 -1
  116. package/dist/src/planner/nodes/cte-node.d.ts.map +1 -1
  117. package/dist/src/planner/nodes/cte-node.js +12 -2
  118. package/dist/src/planner/nodes/cte-node.js.map +1 -1
  119. package/dist/src/planner/nodes/dml-executor-node.d.ts +0 -9
  120. package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
  121. package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
  122. package/dist/src/planner/nodes/recursive-cte-node.d.ts +30 -1
  123. package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -1
  124. package/dist/src/planner/nodes/recursive-cte-node.js +30 -3
  125. package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
  126. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  127. package/dist/src/planner/nodes/scalar.js +26 -3
  128. package/dist/src/planner/nodes/scalar.js.map +1 -1
  129. package/dist/src/planner/optimizer.d.ts.map +1 -1
  130. package/dist/src/planner/optimizer.js +129 -8
  131. package/dist/src/planner/optimizer.js.map +1 -1
  132. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  133. package/dist/src/planner/rules/access/rule-select-access-path.js +43 -18
  134. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  135. package/dist/src/planner/rules/cache/rule-cte-optimization.d.ts.map +1 -1
  136. package/dist/src/planner/rules/cache/rule-cte-optimization.js +8 -1
  137. package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +1 -1
  138. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts.map +1 -1
  139. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +72 -54
  140. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js.map +1 -1
  141. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.d.ts.map +1 -1
  142. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js +6 -0
  143. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js.map +1 -1
  144. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts +25 -0
  145. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.d.ts.map +1 -0
  146. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js +176 -0
  147. package/dist/src/planner/rules/cache/rule-nested-loop-right-cache.js.map +1 -0
  148. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts +31 -0
  149. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts.map +1 -0
  150. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js +68 -0
  151. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js.map +1 -0
  152. package/dist/src/planner/rules/join/rule-fanout-lookup-join.d.ts.map +1 -1
  153. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +1 -54
  154. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -1
  155. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js +8 -1
  156. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js.map +1 -1
  157. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.d.ts +191 -0
  158. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.d.ts.map +1 -0
  159. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.js +627 -0
  160. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.js.map +1 -0
  161. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts +10 -1
  162. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
  163. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +242 -51
  164. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
  165. package/dist/src/runtime/cache/shared-cache.d.ts +7 -0
  166. package/dist/src/runtime/cache/shared-cache.d.ts.map +1 -1
  167. package/dist/src/runtime/cache/shared-cache.js +34 -1
  168. package/dist/src/runtime/cache/shared-cache.js.map +1 -1
  169. package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
  170. package/dist/src/runtime/deferred-constraint-queue.js +10 -0
  171. package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
  172. package/dist/src/runtime/emit/aggregate-setup.d.ts +49 -0
  173. package/dist/src/runtime/emit/aggregate-setup.d.ts.map +1 -0
  174. package/dist/src/runtime/emit/aggregate-setup.js +99 -0
  175. package/dist/src/runtime/emit/aggregate-setup.js.map +1 -0
  176. package/dist/src/runtime/emit/aggregate.d.ts +2 -3
  177. package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
  178. package/dist/src/runtime/emit/aggregate.js +10 -84
  179. package/dist/src/runtime/emit/aggregate.js.map +1 -1
  180. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  181. package/dist/src/runtime/emit/alter-table.js +348 -165
  182. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  183. package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
  184. package/dist/src/runtime/emit/asof-scan.js +6 -0
  185. package/dist/src/runtime/emit/asof-scan.js.map +1 -1
  186. package/dist/src/runtime/emit/between.d.ts.map +1 -1
  187. package/dist/src/runtime/emit/between.js +32 -3
  188. package/dist/src/runtime/emit/between.js.map +1 -1
  189. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  190. package/dist/src/runtime/emit/binary.js +22 -2
  191. package/dist/src/runtime/emit/binary.js.map +1 -1
  192. package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
  193. package/dist/src/runtime/emit/bloom-join.js +24 -3
  194. package/dist/src/runtime/emit/bloom-join.js.map +1 -1
  195. package/dist/src/runtime/emit/cache.d.ts +7 -3
  196. package/dist/src/runtime/emit/cache.d.ts.map +1 -1
  197. package/dist/src/runtime/emit/cache.js +23 -6
  198. package/dist/src/runtime/emit/cache.js.map +1 -1
  199. package/dist/src/runtime/emit/cast.d.ts.map +1 -1
  200. package/dist/src/runtime/emit/cast.js +10 -23
  201. package/dist/src/runtime/emit/cast.js.map +1 -1
  202. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  203. package/dist/src/runtime/emit/constraint-check.js +41 -44
  204. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  205. package/dist/src/runtime/emit/create-view.d.ts.map +1 -1
  206. package/dist/src/runtime/emit/create-view.js +6 -0
  207. package/dist/src/runtime/emit/create-view.js.map +1 -1
  208. package/dist/src/runtime/emit/cte.d.ts.map +1 -1
  209. package/dist/src/runtime/emit/cte.js +43 -20
  210. package/dist/src/runtime/emit/cte.js.map +1 -1
  211. package/dist/src/runtime/emit/distinct.d.ts.map +1 -1
  212. package/dist/src/runtime/emit/distinct.js +6 -3
  213. package/dist/src/runtime/emit/distinct.js.map +1 -1
  214. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  215. package/dist/src/runtime/emit/dml-executor.js +241 -115
  216. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  217. package/dist/src/runtime/emit/hash-aggregate.d.ts.map +1 -1
  218. package/dist/src/runtime/emit/hash-aggregate.js +16 -65
  219. package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
  220. package/dist/src/runtime/emit/insert.d.ts.map +1 -1
  221. package/dist/src/runtime/emit/insert.js +18 -7
  222. package/dist/src/runtime/emit/insert.js.map +1 -1
  223. package/dist/src/runtime/emit/join.js +5 -0
  224. package/dist/src/runtime/emit/join.js.map +1 -1
  225. package/dist/src/runtime/emit/materialized-view-helpers.d.ts +14 -1
  226. package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
  227. package/dist/src/runtime/emit/materialized-view-helpers.js +38 -7
  228. package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
  229. package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
  230. package/dist/src/runtime/emit/materialized-view.js +47 -6
  231. package/dist/src/runtime/emit/materialized-view.js.map +1 -1
  232. package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
  233. package/dist/src/runtime/emit/merge-join.js +18 -8
  234. package/dist/src/runtime/emit/merge-join.js.map +1 -1
  235. package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
  236. package/dist/src/runtime/emit/recursive-cte.js +59 -1
  237. package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
  238. package/dist/src/runtime/emit/set-object-tags.d.ts +8 -0
  239. package/dist/src/runtime/emit/set-object-tags.d.ts.map +1 -1
  240. package/dist/src/runtime/emit/set-object-tags.js +8 -0
  241. package/dist/src/runtime/emit/set-object-tags.js.map +1 -1
  242. package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
  243. package/dist/src/runtime/emit/set-operation.js +7 -4
  244. package/dist/src/runtime/emit/set-operation.js.map +1 -1
  245. package/dist/src/runtime/emit/sort.d.ts.map +1 -1
  246. package/dist/src/runtime/emit/sort.js +5 -2
  247. package/dist/src/runtime/emit/sort.js.map +1 -1
  248. package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
  249. package/dist/src/runtime/emit/subquery.js +113 -13
  250. package/dist/src/runtime/emit/subquery.js.map +1 -1
  251. package/dist/src/runtime/emit/temporal-arithmetic.d.ts +7 -0
  252. package/dist/src/runtime/emit/temporal-arithmetic.d.ts.map +1 -1
  253. package/dist/src/runtime/emit/temporal-arithmetic.js +15 -7
  254. package/dist/src/runtime/emit/temporal-arithmetic.js.map +1 -1
  255. package/dist/src/runtime/emit/update.d.ts.map +1 -1
  256. package/dist/src/runtime/emit/update.js +44 -3
  257. package/dist/src/runtime/emit/update.js.map +1 -1
  258. package/dist/src/runtime/emit/window.d.ts.map +1 -1
  259. package/dist/src/runtime/emit/window.js +72 -55
  260. package/dist/src/runtime/emit/window.js.map +1 -1
  261. package/dist/src/runtime/foreign-key-actions.d.ts +36 -1
  262. package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
  263. package/dist/src/runtime/foreign-key-actions.js +238 -116
  264. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  265. package/dist/src/runtime/parallel-driver.d.ts +20 -1
  266. package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
  267. package/dist/src/runtime/parallel-driver.js +23 -1
  268. package/dist/src/runtime/parallel-driver.js.map +1 -1
  269. package/dist/src/runtime/types.d.ts +54 -0
  270. package/dist/src/runtime/types.d.ts.map +1 -1
  271. package/dist/src/runtime/types.js.map +1 -1
  272. package/dist/src/schema/catalog-persistability.d.ts +58 -0
  273. package/dist/src/schema/catalog-persistability.d.ts.map +1 -0
  274. package/dist/src/schema/catalog-persistability.js +87 -0
  275. package/dist/src/schema/catalog-persistability.js.map +1 -0
  276. package/dist/src/schema/catalog.d.ts +17 -1
  277. package/dist/src/schema/catalog.d.ts.map +1 -1
  278. package/dist/src/schema/catalog.js +25 -3
  279. package/dist/src/schema/catalog.js.map +1 -1
  280. package/dist/src/schema/constraint-builder.d.ts +20 -22
  281. package/dist/src/schema/constraint-builder.d.ts.map +1 -1
  282. package/dist/src/schema/constraint-builder.js +43 -36
  283. package/dist/src/schema/constraint-builder.js.map +1 -1
  284. package/dist/src/schema/ddl-generator.d.ts +23 -0
  285. package/dist/src/schema/ddl-generator.d.ts.map +1 -1
  286. package/dist/src/schema/ddl-generator.js +27 -0
  287. package/dist/src/schema/ddl-generator.js.map +1 -1
  288. package/dist/src/schema/function.d.ts +109 -1
  289. package/dist/src/schema/function.d.ts.map +1 -1
  290. package/dist/src/schema/function.js.map +1 -1
  291. package/dist/src/schema/manager.d.ts +28 -0
  292. package/dist/src/schema/manager.d.ts.map +1 -1
  293. package/dist/src/schema/manager.js +82 -14
  294. package/dist/src/schema/manager.js.map +1 -1
  295. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  296. package/dist/src/schema/schema-differ.js +51 -12
  297. package/dist/src/schema/schema-differ.js.map +1 -1
  298. package/dist/src/schema/unique-enforcement.d.ts +31 -0
  299. package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
  300. package/dist/src/schema/unique-enforcement.js +37 -1
  301. package/dist/src/schema/unique-enforcement.js.map +1 -1
  302. package/dist/src/schema/window-function.d.ts +30 -10
  303. package/dist/src/schema/window-function.d.ts.map +1 -1
  304. package/dist/src/schema/window-function.js +20 -16
  305. package/dist/src/schema/window-function.js.map +1 -1
  306. package/dist/src/types/cast-semantics.d.ts +43 -0
  307. package/dist/src/types/cast-semantics.d.ts.map +1 -0
  308. package/dist/src/types/cast-semantics.js +59 -0
  309. package/dist/src/types/cast-semantics.js.map +1 -0
  310. package/dist/src/types/index.d.ts +1 -1
  311. package/dist/src/types/index.d.ts.map +1 -1
  312. package/dist/src/types/index.js +1 -1
  313. package/dist/src/types/index.js.map +1 -1
  314. package/dist/src/types/json-type.d.ts.map +1 -1
  315. package/dist/src/types/json-type.js +31 -10
  316. package/dist/src/types/json-type.js.map +1 -1
  317. package/dist/src/types/logical-type.d.ts +22 -0
  318. package/dist/src/types/logical-type.d.ts.map +1 -1
  319. package/dist/src/types/logical-type.js.map +1 -1
  320. package/dist/src/types/temporal-types.d.ts.map +1 -1
  321. package/dist/src/types/temporal-types.js +33 -11
  322. package/dist/src/types/temporal-types.js.map +1 -1
  323. package/dist/src/types/validation.d.ts +39 -1
  324. package/dist/src/types/validation.d.ts.map +1 -1
  325. package/dist/src/types/validation.js +60 -0
  326. package/dist/src/types/validation.js.map +1 -1
  327. package/dist/src/util/ast-spine-clone.d.ts +23 -0
  328. package/dist/src/util/ast-spine-clone.d.ts.map +1 -0
  329. package/dist/src/util/ast-spine-clone.js +41 -0
  330. package/dist/src/util/ast-spine-clone.js.map +1 -0
  331. package/dist/src/util/coercion.d.ts +13 -0
  332. package/dist/src/util/coercion.d.ts.map +1 -1
  333. package/dist/src/util/coercion.js +10 -1
  334. package/dist/src/util/coercion.js.map +1 -1
  335. package/dist/src/util/comparison.d.ts +89 -0
  336. package/dist/src/util/comparison.d.ts.map +1 -1
  337. package/dist/src/util/comparison.js +156 -27
  338. package/dist/src/util/comparison.js.map +1 -1
  339. package/dist/src/vtab/manifest.d.ts +7 -0
  340. package/dist/src/vtab/manifest.d.ts.map +1 -1
  341. package/dist/src/vtab/memory/connection.d.ts +14 -1
  342. package/dist/src/vtab/memory/connection.d.ts.map +1 -1
  343. package/dist/src/vtab/memory/connection.js +20 -2
  344. package/dist/src/vtab/memory/connection.js.map +1 -1
  345. package/dist/src/vtab/memory/layer/base.d.ts +6 -1
  346. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  347. package/dist/src/vtab/memory/layer/base.js +14 -5
  348. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  349. package/dist/src/vtab/memory/layer/connection.d.ts +17 -0
  350. package/dist/src/vtab/memory/layer/connection.d.ts.map +1 -1
  351. package/dist/src/vtab/memory/layer/connection.js +26 -0
  352. package/dist/src/vtab/memory/layer/connection.js.map +1 -1
  353. package/dist/src/vtab/memory/layer/manager.d.ts +96 -13
  354. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  355. package/dist/src/vtab/memory/layer/manager.js +595 -119
  356. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  357. package/dist/src/vtab/memory/layer/plan-filter.d.ts +41 -20
  358. package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -1
  359. package/dist/src/vtab/memory/layer/plan-filter.js +57 -27
  360. package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -1
  361. package/dist/src/vtab/memory/layer/row-convert.d.ts +21 -0
  362. package/dist/src/vtab/memory/layer/row-convert.d.ts.map +1 -0
  363. package/dist/src/vtab/memory/layer/row-convert.js +30 -0
  364. package/dist/src/vtab/memory/layer/row-convert.js.map +1 -0
  365. package/dist/src/vtab/memory/layer/scan-layer.d.ts +6 -3
  366. package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
  367. package/dist/src/vtab/memory/layer/scan-layer.js +69 -36
  368. package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
  369. package/dist/src/vtab/memory/layer/transaction.d.ts +127 -13
  370. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  371. package/dist/src/vtab/memory/layer/transaction.js +214 -65
  372. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  373. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  374. package/dist/src/vtab/memory/module.js +9 -2
  375. package/dist/src/vtab/memory/module.js.map +1 -1
  376. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  377. package/dist/src/vtab/memory/table.js +3 -2
  378. package/dist/src/vtab/memory/table.js.map +1 -1
  379. package/dist/src/vtab/memory/types.d.ts +27 -1
  380. package/dist/src/vtab/memory/types.d.ts.map +1 -1
  381. package/dist/src/vtab/memory/types.js +16 -1
  382. package/dist/src/vtab/memory/types.js.map +1 -1
  383. package/dist/src/vtab/memory/utils/primary-key.d.ts +9 -0
  384. package/dist/src/vtab/memory/utils/primary-key.d.ts.map +1 -1
  385. package/dist/src/vtab/memory/utils/primary-key.js +11 -0
  386. package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
  387. package/dist/src/vtab/module.d.ts +63 -0
  388. package/dist/src/vtab/module.d.ts.map +1 -1
  389. package/dist/src/vtab/table.d.ts +24 -6
  390. package/dist/src/vtab/table.d.ts.map +1 -1
  391. package/dist/src/vtab/table.js.map +1 -1
  392. package/package.json +3 -3
  393. package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts +0 -19
  394. package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts.map +0 -1
  395. package/dist/src/planner/rules/cache/rule-in-subquery-cache.js +0 -53
  396. package/dist/src/planner/rules/cache/rule-in-subquery-cache.js.map +0 -1
@@ -77,6 +77,13 @@ defaultCollation = 'BINARY') {
77
77
  // these physical sites; an MV's hint validates (over-permissive: the differ
78
78
  // supports no MV rename and simply ignores it — harmless, see Decision 1).
79
79
  const tagDiagnostics = [];
80
+ // First duplicate declared index name, if any — index names are unique per
81
+ // schema (enforced imperatively by `SchemaManager.createIndex`), and
82
+ // `declaredIndexes` is keyed schema-wide by lowercased name, so a duplicate
83
+ // used to silently last-writer-wins and half-apply the declaration. Recorded
84
+ // here and raised below, AFTER the tag diagnostics, so a reserved-tag typo
85
+ // still surfaces first (same deterministic order the tag/rename split has).
86
+ let duplicateDeclaredIndex;
80
87
  for (const item of declaredSchema.items) {
81
88
  switch (item.type) {
82
89
  case 'declaredTable':
@@ -122,10 +129,20 @@ defaultCollation = 'BINARY') {
122
129
  declaredMaterializedViews.set(item.viewStmt.view.name.toLowerCase(), item);
123
130
  tagDiagnostics.push(...validateReservedTags(item.viewStmt.tags, 'view-ddl'));
124
131
  break;
125
- case 'declaredIndex':
126
- declaredIndexes.set(item.indexStmt.index.name.toLowerCase(), item);
132
+ case 'declaredIndex': {
133
+ const indexKey = item.indexStmt.index.name.toLowerCase();
134
+ const priorIndex = declaredIndexes.get(indexKey);
135
+ if (priorIndex && !duplicateDeclaredIndex) {
136
+ duplicateDeclaredIndex = {
137
+ name: item.indexStmt.index.name,
138
+ firstTable: priorIndex.indexStmt.table.name,
139
+ secondTable: item.indexStmt.table.name,
140
+ };
141
+ }
142
+ declaredIndexes.set(indexKey, item);
127
143
  tagDiagnostics.push(...validateReservedTags(item.indexStmt.tags, 'physical-index'));
128
144
  break;
145
+ }
129
146
  case 'declaredAssertion':
130
147
  declaredAssertions.set(item.assertionStmt.name.toLowerCase(), item);
131
148
  break;
@@ -134,6 +151,11 @@ defaultCollation = 'BINARY') {
134
151
  raiseReservedTagDiagnostics(tagDiagnostics, {
135
152
  log: (d) => warnLog('reserved tag advisory (%s) on %s: %s', d.reason, d.site, d.message),
136
153
  });
154
+ if (duplicateDeclaredIndex) {
155
+ const { name, firstTable, secondTable } = duplicateDeclaredIndex;
156
+ throw new QuereusError(`Index '${name}' is declared more than once in schema '${targetSchemaName}'`
157
+ + ` (on '${firstTable}' and '${secondTable}') — index names are unique per schema`, StatusCode.ERROR);
158
+ }
137
159
  // Normalize every declared `materialized view` into the TABLE category: a
138
160
  // declared table whose `maintained` clause carries the body (no declared
139
161
  // columns — the body owns the shape). This is what dissolves the standalone MV
@@ -1915,6 +1937,27 @@ function orderDropsByFKDependency(dropSet, actualTables) {
1915
1937
  visit(name);
1916
1938
  return result.reverse();
1917
1939
  }
1940
+ /**
1941
+ * One column's `SET DATA TYPE` / `SET COLLATE` statements, ordered so the engine
1942
+ * accepts them. `SET DATA TYPE` carries the column's CURRENT collation into the new
1943
+ * type and is rejected when the new type does not accept it, so a retype into a
1944
+ * BINARY-only type (`DATE`/`TIME`/`DATETIME`/`TIMESPAN`/`JSON`) must follow its
1945
+ * `SET COLLATE BINARY` rather than precede it.
1946
+ *
1947
+ * Collate-first is the right order exactly when the target collation is BINARY: every
1948
+ * type accepts BINARY, so that statement never fails on the OLD type, and the retype
1949
+ * then arrives with a collation the new type accepts. A non-BINARY target must land
1950
+ * AFTER the retype instead — the new type is the one declaring support for it, and
1951
+ * setting it on the old type could be rejected (`DATE` → `TEXT COLLATE NOCASE`).
1952
+ */
1953
+ function comparisonDomainAlters(quotedTable, quotedCol, change) {
1954
+ const prefix = `ALTER TABLE ${quotedTable} ALTER COLUMN ${quotedCol}`;
1955
+ const retype = change.dataType !== undefined ? [`${prefix} SET DATA TYPE ${change.dataType}`] : [];
1956
+ const recollate = change.collation !== undefined ? [`${prefix} SET COLLATE ${change.collation}`] : [];
1957
+ return normalizeCollationName(change.collation ?? 'BINARY') === 'BINARY'
1958
+ ? [...recollate, ...retype]
1959
+ : [...retype, ...recollate];
1960
+ }
1918
1961
  /**
1919
1962
  * Generates migration DDL statements from a schema diff
1920
1963
  */
@@ -1970,8 +2013,9 @@ export function generateMigrationDDL(diff, schemaName) {
1970
2013
  // Phase order within one table:
1971
2014
  // RENAME COLUMN (so subsequent phases see post-rename column names)
1972
2015
  // → ADD COLUMN
1973
- // → ALTER COLUMN (type, then default, then nullability — so SET NOT NULL
1974
- // can rely on an already-populated DEFAULT for backfill)
2016
+ // → ALTER COLUMN (comparison domain, then default, then nullability — so SET
2017
+ // NOT NULL can rely on an already-populated DEFAULT for backfill; the
2018
+ // type/collation pair orders internally, see comparisonDomainAlters)
1975
2019
  // → RENAME CONSTRAINT, then DROP CONSTRAINT (free / remove a name before any
1976
2020
  // re-add; a UNIQUE drop precedes the PK change so it can't strand a PK dep)
1977
2021
  // → ALTER PRIMARY KEY
@@ -1987,14 +2031,9 @@ export function generateMigrationDDL(diff, schemaName) {
1987
2031
  }
1988
2032
  for (const colAlter of alter.columnsToAlter) {
1989
2033
  const quotedCol = quoteIdentifier(colAlter.columnName);
1990
- if (colAlter.dataType !== undefined) {
1991
- statements.push(`ALTER TABLE ${quotedTable} ALTER COLUMN ${quotedCol} SET DATA TYPE ${colAlter.dataType}`);
1992
- }
1993
- // SET COLLATE right after SET DATA TYPE (both are comparison-domain
1994
- // changes), before DEFAULT / NOT NULL.
1995
- if (colAlter.collation !== undefined) {
1996
- statements.push(`ALTER TABLE ${quotedTable} ALTER COLUMN ${quotedCol} SET COLLATE ${colAlter.collation}`);
1997
- }
2034
+ // SET DATA TYPE / SET COLLATE lead the per-column phase (both are
2035
+ // comparison-domain changes), before DEFAULT / NOT NULL.
2036
+ statements.push(...comparisonDomainAlters(quotedTable, quotedCol, colAlter));
1998
2037
  if (colAlter.defaultValue !== undefined) {
1999
2038
  if (colAlter.defaultValue === null) {
2000
2039
  statements.push(`ALTER TABLE ${quotedTable} ALTER COLUMN ${quotedCol} DROP DEFAULT`);
@@ -1 +1 @@
1
- {"version":3,"file":"schema-differ.js","sourceRoot":"","sources":["../../../src/schema/schema-differ.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-differ.js","sourceRoot":"","sources":["../../../src/schema/schema-differ.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,8 @@
50
50
  * test fires is declined (perf-only loss in an already-exotic shape).
51
51
  */
52
52
  import type { CollationFunction, CollationResolver } from '../types/logical-type.js';
53
+ import type { SqlValue } from '../common/types.js';
54
+ import type { ColumnSchema } from './column.js';
53
55
  import type { IndexSchema, TableSchema, UniqueConstraintSchema } from './table.js';
54
56
  /**
55
57
  * True when populating `indexSchema` must reject duplicate keys: either the index
@@ -84,6 +86,35 @@ export declare function uniqueEnforcementCollations(schema: TableSchema, uc: Uni
84
86
  * two calls itself.
85
87
  */
86
88
  export declare function resolveUniqueEnforcementCollations(schema: TableSchema, uc: UniqueConstraintSchema, resolver: CollationResolver): CollationFunction[];
89
+ /**
90
+ * Per-column comparison functions for one row-identity check, one entry per
91
+ * `ucColumns` position: the declared type's `compare` for a semantic-ordering
92
+ * column (so TIMESPAN 'PT1H' conflicts with 'PT60M', matching the memory backend's
93
+ * typed BTree and `=` / DISTINCT / GROUP BY), else the enforcement collation through
94
+ * {@link compareSqlValuesFast} — the exact comparison every re-validator used before.
95
+ *
96
+ * `ucColumns` is usually a UNIQUE constraint's `uc.columns`, but any list of source
97
+ * column indices works: the covering-MV candidate generator
98
+ * (`lookupCoveringConflicts`) also builds a PRIMARY KEY set this way, so a re-spelled
99
+ * PK member still names the same row.
100
+ *
101
+ * Only semantic-ordering types are routed through `compare` ({@link hasSemanticOrdering}
102
+ * is the gate): a TEXT/ANY column's declared `compare` is not collation-aware, so
103
+ * consulting it would break NOCASE/RTRIM enforcement.
104
+ *
105
+ * Takes PRE-RESOLVED collations rather than `(schema, uc, resolver)` because the call
106
+ * sites do not share one collation resolution. Memory's `checkUniqueViaIndex`
107
+ * deliberately reads them from the LIVE `MemoryIndex` handle rather than from
108
+ * {@link uniqueEnforcementCollations} (see the divergence note in this file's docstring;
109
+ * it is conformance-locked by `test/unique-enforcement-collation.spec.ts`), while the
110
+ * store, the isolation overlay, and memory's MV/scan paths resolve by name. A
111
+ * pre-resolved-collation signature lets all of them share the comparator construction
112
+ * while each keeps its own collation resolution.
113
+ *
114
+ * Call ONCE per constraint check, above the candidate loop — same discipline as
115
+ * {@link resolveUniqueEnforcementCollations}.
116
+ */
117
+ export declare function uniqueEnforcementComparators(columns: readonly ColumnSchema[], ucColumns: readonly number[], collations: readonly CollationFunction[]): Array<(a: SqlValue, b: SqlValue) => number>;
87
118
  /**
88
119
  * True iff a row-time covering MV may soundly answer `uc` — i.e. for every
89
120
  * constrained column the index per-column collation `I` is coarser-or-equal to
@@ -1 +1 @@
1
- {"version":3,"file":"unique-enforcement.d.ts","sourceRoot":"","sources":["../../../src/schema/unique-enforcement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEnF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAQ1F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAC1C,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,sBAAsB,GACxB,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAKxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kCAAkC,CACjD,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,sBAAsB,EAC1B,QAAQ,EAAE,iBAAiB,GACzB,iBAAiB,EAAE,CAErB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAC7C,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,sBAAsB,GACxB,OAAO,CAUT"}
1
+ {"version":3,"file":"unique-enforcement.d.ts","sourceRoot":"","sources":["../../../src/schema/unique-enforcement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEnF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAQ1F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAC1C,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,sBAAsB,GACxB,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAKxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kCAAkC,CACjD,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,sBAAsB,EAC1B,QAAQ,EAAE,iBAAiB,GACzB,iBAAiB,EAAE,CAErB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,UAAU,EAAE,SAAS,iBAAiB,EAAE,GACtC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC,CAM7C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAC7C,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,sBAAsB,GACxB,OAAO,CAUT"}
@@ -49,7 +49,7 @@
49
49
  * safely: an exotic custom pair where `D ⊒ I` holds semantically but neither
50
50
  * test fires is declined (perf-only loss in an already-exotic shape).
51
51
  */
52
- import { normalizeCollationName, resolveCollationFunctions } from '../util/comparison.js';
52
+ import { compareSqlValuesFast, createTypedComparator, hasSemanticOrdering, normalizeCollationName, resolveCollationFunctions } from '../util/comparison.js';
53
53
  /**
54
54
  * True when populating `indexSchema` must reject duplicate keys: either the index
55
55
  * is itself declared UNIQUE, or it is the auto-built covering structure for a
@@ -98,6 +98,42 @@ export function uniqueEnforcementCollations(schema, uc) {
98
98
  export function resolveUniqueEnforcementCollations(schema, uc, resolver) {
99
99
  return resolveCollationFunctions(resolver, uniqueEnforcementCollations(schema, uc));
100
100
  }
101
+ /**
102
+ * Per-column comparison functions for one row-identity check, one entry per
103
+ * `ucColumns` position: the declared type's `compare` for a semantic-ordering
104
+ * column (so TIMESPAN 'PT1H' conflicts with 'PT60M', matching the memory backend's
105
+ * typed BTree and `=` / DISTINCT / GROUP BY), else the enforcement collation through
106
+ * {@link compareSqlValuesFast} — the exact comparison every re-validator used before.
107
+ *
108
+ * `ucColumns` is usually a UNIQUE constraint's `uc.columns`, but any list of source
109
+ * column indices works: the covering-MV candidate generator
110
+ * (`lookupCoveringConflicts`) also builds a PRIMARY KEY set this way, so a re-spelled
111
+ * PK member still names the same row.
112
+ *
113
+ * Only semantic-ordering types are routed through `compare` ({@link hasSemanticOrdering}
114
+ * is the gate): a TEXT/ANY column's declared `compare` is not collation-aware, so
115
+ * consulting it would break NOCASE/RTRIM enforcement.
116
+ *
117
+ * Takes PRE-RESOLVED collations rather than `(schema, uc, resolver)` because the call
118
+ * sites do not share one collation resolution. Memory's `checkUniqueViaIndex`
119
+ * deliberately reads them from the LIVE `MemoryIndex` handle rather than from
120
+ * {@link uniqueEnforcementCollations} (see the divergence note in this file's docstring;
121
+ * it is conformance-locked by `test/unique-enforcement-collation.spec.ts`), while the
122
+ * store, the isolation overlay, and memory's MV/scan paths resolve by name. A
123
+ * pre-resolved-collation signature lets all of them share the comparator construction
124
+ * while each keeps its own collation resolution.
125
+ *
126
+ * Call ONCE per constraint check, above the candidate loop — same discipline as
127
+ * {@link resolveUniqueEnforcementCollations}.
128
+ */
129
+ export function uniqueEnforcementComparators(columns, ucColumns, collations) {
130
+ return ucColumns.map((colIdx, i) => {
131
+ const logicalType = columns[colIdx]?.logicalType;
132
+ if (hasSemanticOrdering(logicalType))
133
+ return createTypedComparator(logicalType, collations[i]);
134
+ return (a, b) => compareSqlValuesFast(a, b, collations[i]);
135
+ });
136
+ }
101
137
  /**
102
138
  * True iff a row-time covering MV may soundly answer `uc` — i.e. for every
103
139
  * constrained column the index per-column collation `I` is coarser-or-equal to
@@ -1 +1 @@
1
- {"version":3,"file":"unique-enforcement.js","sourceRoot":"","sources":["../../../src/schema/unique-enforcement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAI1F;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAmB,EAAE,WAAwB;IAChF,IAAI,WAAW,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACrC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CACpB,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,WAAW,CAAC,OAAO,CAAC,MAAM;QAChD,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CACxE,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,2BAA2B,CAC1C,MAAmB,EACnB,EAA0B;IAE1B,MAAM,KAAK,GAAG,EAAE,CAAC,gBAAgB;QAChC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,gBAAgB,CAAC;QAC7D,CAAC,CAAC,SAAS,CAAC;IACb,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AAClG,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kCAAkC,CACjD,MAAmB,EACnB,EAA0B,EAC1B,QAA2B;IAE3B,OAAO,yBAAyB,CAAC,QAAQ,EAAE,2BAA2B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACrF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,8BAA8B,CAC7C,MAAmB,EACnB,EAA0B;IAE1B,MAAM,KAAK,GAAG,EAAE,CAAC,gBAAgB;QAChC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,gBAAgB,CAAC;QAC7D,CAAC,CAAC,SAAS,CAAC;IACb,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;QAC/C,MAAM,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC;QACvF,MAAM,CAAC,GAAG,sBAAsB,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;QACvD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"unique-enforcement.js","sourceRoot":"","sources":["../../../src/schema/unique-enforcement.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,12 @@
1
1
  import type { ScalarType } from '../common/datatype.js';
2
2
  import type { DeepReadonly, SqlValue } from '../common/types.js';
3
3
  import type { LogicalType } from '../types/logical-type.js';
4
+ import type { AggregateArgBinding } from './function.js';
5
+ /** The pieces a window bind may replace. Any field omitted keeps the declared default. */
6
+ export interface WindowFunctionBinding {
7
+ readonly step?: WindowFunctionSchema['step'];
8
+ readonly final?: WindowFunctionSchema['final'];
9
+ }
4
10
  export interface WindowFunctionSchema {
5
11
  name: string;
6
12
  argCount: number | 'variadic';
@@ -16,19 +22,33 @@ export interface WindowFunctionSchema {
16
22
  inferReturnType?: (argTypes: ReadonlyArray<DeepReadonly<LogicalType>>) => ScalarType;
17
23
  step?: (state: any, value: SqlValue) => any;
18
24
  final?: (state: any, rowCount: number) => SqlValue;
25
+ /**
26
+ * Specialize step/final to this call site's argument comparison context —
27
+ * the arguments' declared logical types and resolved collations. Called ONCE
28
+ * at emit time, never per row; apply via {@link bindWindowSchema}. Returning
29
+ * undefined (or omitting a field) keeps the declared default.
30
+ *
31
+ * Mirrors `AggregateFunctionSchema.bindArgs`, and shares its argument type
32
+ * ({@link AggregateArgBinding}) so the comparison-routing rule
33
+ * (`createSemanticValueComparator`) has exactly one home: window MIN/MAX must
34
+ * rank exactly as the MIN/MAX aggregate does.
35
+ */
36
+ readonly bindArgs?: (args: readonly AggregateArgBinding[]) => WindowFunctionBinding | undefined;
19
37
  }
20
38
  export declare function registerWindowFunction(schema: WindowFunctionSchema): void;
21
39
  export declare function resolveWindowFunction(name: string): WindowFunctionSchema | undefined;
22
40
  export declare function isWindowFunction(name: string): boolean;
23
41
  export declare function getAllWindowFunctions(): WindowFunctionSchema[];
24
- export declare function createRankingState(): {
25
- rowNumber: number;
26
- rank: number;
27
- denseRank: number;
28
- lastValues: SqlValue[] | null;
29
- };
30
- export declare function createAggregateState(schema: WindowFunctionSchema): {
31
- accumulator: null;
32
- rowCount: number;
33
- } | null;
42
+ /**
43
+ * Specialize a window schema to one call site's argument comparison context. A
44
+ * schema with no `bindArgs` hook — or a hook that declines — is returned
45
+ * unchanged. Idempotent: the bound schema keeps `bindArgs`, so no call site has
46
+ * to track whether it already bound.
47
+ *
48
+ * Call once per call site at emit time, never per row. All three window execution
49
+ * shapes (the buffered frame walk, the streaming running accumulator and the
50
+ * streaming sliding-frame scan) must run the SAME bound schema, or they rank
51
+ * differently for the same query.
52
+ */
53
+ export declare function bindWindowSchema(schema: WindowFunctionSchema, args: readonly AggregateArgBinding[]): WindowFunctionSchema;
34
54
  //# sourceMappingURL=window-function.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"window-function.d.ts","sourceRoot":"","sources":["../../../src/schema/window-function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC;IAC9B,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,YAAY,CAAC;IAEvD;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,KAAK,UAAU,CAAC;IAIrF,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,KAAK,GAAG,CAAC;IAE5C,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,QAAQ,CAAC;CACnD;AAKD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAEzE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAEpF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,qBAAqB,IAAI,oBAAoB,EAAE,CAE9D;AAGD,wBAAgB,kBAAkB;;;;gBAKZ,QAAQ,EAAE,GAAG,IAAI;EAEtC;AAGD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB;;;SAQhE"}
1
+ {"version":3,"file":"window-function.d.ts","sourceRoot":"","sources":["../../../src/schema/window-function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,0FAA0F;AAC1F,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC;IAC9B,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,YAAY,CAAC;IAEvD;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,KAAK,UAAU,CAAC;IAIrF,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,KAAK,GAAG,CAAC;IAE5C,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,QAAQ,CAAC;IAEnD;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,mBAAmB,EAAE,KAAK,qBAAqB,GAAG,SAAS,CAAC;CAChG;AAKD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAEzE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAEpF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,qBAAqB,IAAI,oBAAoB,EAAE,CAE9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,oBAAoB,EAC5B,IAAI,EAAE,SAAS,mBAAmB,EAAE,GAClC,oBAAoB,CAUtB"}
@@ -12,23 +12,27 @@ export function isWindowFunction(name) {
12
12
  export function getAllWindowFunctions() {
13
13
  return Array.from(windowRegistry.values());
14
14
  }
15
- // Helper to create ranking function state
16
- export function createRankingState() {
15
+ /**
16
+ * Specialize a window schema to one call site's argument comparison context. A
17
+ * schema with no `bindArgs` hook — or a hook that declines — is returned
18
+ * unchanged. Idempotent: the bound schema keeps `bindArgs`, so no call site has
19
+ * to track whether it already bound.
20
+ *
21
+ * Call once per call site at emit time, never per row. All three window execution
22
+ * shapes (the buffered frame walk, the streaming running accumulator and the
23
+ * streaming sliding-frame scan) must run the SAME bound schema, or they rank
24
+ * differently for the same query.
25
+ */
26
+ export function bindWindowSchema(schema, args) {
27
+ const bound = schema.bindArgs?.(args);
28
+ if (!bound)
29
+ return schema;
30
+ // Merge field-by-field rather than spreading `bound`: an explicitly-`undefined`
31
+ // field must read as "keep the declared default", matching the documented contract.
17
32
  return {
18
- rowNumber: 0,
19
- rank: 0,
20
- denseRank: 0,
21
- lastValues: null
33
+ ...schema,
34
+ step: bound.step ?? schema.step,
35
+ final: bound.final ?? schema.final,
22
36
  };
23
37
  }
24
- // Helper for aggregate window function state
25
- export function createAggregateState(schema) {
26
- if (schema.step && schema.final) {
27
- return {
28
- accumulator: null,
29
- rowCount: 0
30
- };
31
- }
32
- return null;
33
- }
34
38
  //# sourceMappingURL=window-function.js.map