@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
@@ -45,11 +45,12 @@ import { buildSourceUnionScope } from '../planner/analysis/change-scope.js';
45
45
  import { isBodyIrrelevantTableChange, tryRecompileMaterializedViewLive } from '../runtime/emit/materialized-view-helpers.js';
46
46
  import { buildDerivedRowValidator, makePoisonedDerivedRowValidator } from './derived-row-validator.js';
47
47
  import { compareSqlValuesFast, resolveCollationFunctions } from '../util/comparison.js';
48
- import { coveringMvHonorsIndexCollation } from '../schema/unique-enforcement.js';
48
+ import { coveringMvHonorsIndexCollation, uniqueEnforcementComparators } from '../schema/unique-enforcement.js';
49
49
  import { splitBaseKey } from '../util/qualified-name.js';
50
50
  import { mvKey, planSourceBases, isBinaryCollation, } from './database-materialized-views-analysis.js';
51
+ import { shouldDegradeToRebuild } from '../planner/cost/index.js';
51
52
  import { buildMaintenancePlan } from './database-materialized-views-plan-builders.js';
52
- import { applyInverseProjection, applyForwardResidual, applyJoinResidual, applyPrefixDelete, runScheduler, validateDerivedChanges, assertNoNullInNotNullSeededPkRowTime, enforceParentSideReferentialActions, backingHost, getBackingConnection, } from './database-materialized-views-apply.js';
53
+ import { applyInverseProjection, applyForwardResidual, applyJoinResidual, applyPrefixDelete, accumulateResidualKeys, computeResidualBatchOps, computeDeltaAggregateOps, resolveBackingApplyTarget, runScheduler, validateDerivedChanges, assertNoNullInNotNullSeededPkRowTime, enforceParentSideReferentialActions, } from './database-materialized-views-apply.js';
53
54
  const log = createLogger('core:materialized-views');
54
55
  export class MaterializedViewManager {
55
56
  ctx;
@@ -552,18 +553,26 @@ export class MaterializedViewManager {
552
553
  * too. Omitted by the cold enforcement/eviction callers, which re-resolve the same
553
554
  * connection deterministically.
554
555
  *
555
- * `deferred` is the optional per-statement deferred-rebuild set (MV keys). A
556
- * `'full-rebuild'` plan re-evaluates the WHOLE body, so applying it per source row is
557
- * O(rows × body) pathological. When the DML boundary supplies a `deferred` set, a
558
- * full-rebuild plan is instead marked dirty here (no per-row apply) and rebuilt exactly
559
- * once at the end-of-statement {@link flushDeferredRebuilds} boundary. The bounded-delta
560
- * arms stay per-row-immediate (cheap, and the covering-UNIQUE enforcement scan depends on
561
- * their per-row backing visibility; a full-rebuild MV is never a covering structure, so
562
- * deferring it cannot starve that scan). A cold caller without a `deferred` set falls
563
- * through to an inline rebuild a safe, unamortized fallback that the
564
- * enforcement/eviction callers never actually reach (they never name a full-rebuild MV).
556
+ * `deferred` is the optional per-statement deferred-rebuild set (MV keys) and
557
+ * `residualBatch` the optional per-statement residual key batch. A `'full-rebuild'`
558
+ * plan re-evaluates the WHOLE body, so applying it per source row is O(rows × body)
559
+ * pathological; when the DML boundary supplies a `deferred` set it is instead marked
560
+ * dirty here (no per-row apply) and rebuilt exactly once at the end-of-statement
561
+ * {@link flushDeferredMaintenance} boundary. The three **residual** arms
562
+ * (`'residual-recompute'`, `'prefix-delete'`, `'join-residual'`) are likewise per-key
563
+ * recomputes whose per-row apply costs a scheduler run each; when the DML boundary
564
+ * supplies a `residualBatch`, they accumulate their affected binding keys (deduped
565
+ * across the statement) and recompute once per distinct key at the same flush.
566
+ * `'inverse-projection'` alone stays per-row-immediate: its delta is a cheap pure
567
+ * projection AND the covering-UNIQUE enforcement scan depends on its per-row backing
568
+ * visibility ({@link lookupCoveringConflicts} reads only inverse-projection backings,
569
+ * so deferring the other arms cannot starve that scan —
570
+ * {@link findRowTimeCoveringStructure} declines them). A cold caller without the
571
+ * per-statement structures falls through to the inline per-change apply — a safe,
572
+ * unamortized fallback (the enforcement/eviction callers only ever name
573
+ * inverse-projection MVs, but the fallback stays correct for every arm).
565
574
  */
566
- async maintainRowTime(sourceBase, change, cache, deferred, depth = 0) {
575
+ async maintainRowTime(sourceBase, change, cache, deferred, residualBatch, depth = 0) {
567
576
  const changedBase = sourceBase.toLowerCase();
568
577
  const keys = this.rowTimeBySource.get(changedBase);
569
578
  if (!keys || keys.size === 0)
@@ -572,80 +581,103 @@ export class MaterializedViewManager {
572
581
  const plan = this.rowTime.get(key);
573
582
  if (!plan)
574
583
  continue;
575
- // Full-rebuild is the one deferred arm mark dirty and drain at flush.
584
+ // Full-rebuild defers as a dirty mark; the residual arms defer as accumulated
585
+ // binding keys. Both drain at the end-of-statement flush.
576
586
  if (plan.kind === 'full-rebuild' && deferred) {
577
587
  deferred.add(key);
578
588
  continue;
579
589
  }
580
- const backingChanges = await this.applyMaintenancePlan(plan, change, changedBase, cache);
581
- if (backingChanges.length === 0)
590
+ if (residualBatch && plan.kind !== 'inverse-projection' && plan.kind !== 'full-rebuild') {
591
+ accumulateResidualKeys(plan, change, changedBase, residualBatch, key);
582
592
  continue;
583
- // Row-time coarsening collision telemetry: observe-only over the realized
584
- // delta (gated on `coarseningWatch` — a no-op for a non-coarsened MV). Runs
585
- // independently of the cascade below; it neither consumes nor reorders the
586
- // backing changes routed onward.
587
- this.detectAndReportCoarseningCollisions(plan, backingChanges);
588
- // Reject a NULL stored into a NOT-NULL ordering-seeded physical-PK backing
589
- // column whose source loosened — BEFORE the cascade, so the corruption never
590
- // reaches a consumer. No-op (`undefined`) unless this MV carries the skew.
591
- assertNoNullInNotNullSeededPkRowTime(plan, backingChanges);
592
- // Declared CHECK / child-side FK over the rows this delta wrote — BEFORE
593
- // cascading, so a consumer never consumes an invalid producer row. Every
594
- // row already in the backing was validated when it entered (the bulk
595
- // validation at create/attach seeds the induction), so only the delta is
596
- // validated. No-op (`undefined`) for a constraint-less table.
597
- if (plan.derivedRowValidator) {
598
- await validateDerivedChanges(this.ctx, plan, plan.derivedRowValidator, backingChanges, cache);
599
- }
600
- // Parent-side referential enforcement: this maintenance delete/key-update of an
601
- // `M` row may orphan rows in an ordinary table `C` whose FK references `M`. Fire
602
- // the shared engine over the backing delta — RESTRICT-walk then declared actions —
603
- // after `M`'s own image is validated, before the MV-over-MV cascade. Runs whether
604
- // or not `M` has MV consumers (placed before the leaf fast-path).
605
- await enforceParentSideReferentialActions(this.ctx, plan, backingChanges);
606
- const backingBase = `${plan.backingSchema}.${plan.backingTableName}`.toLowerCase();
607
- if (!this.rowTimeBySource.has(backingBase))
608
- continue; // leaf — no dependents
609
- this.assertCascadeDepth(depth + 1, backingBase);
610
- for (const bc of backingChanges) {
611
- await this.maintainRowTime(backingBase, bc, cache, deferred, depth + 1);
612
593
  }
594
+ const backingChanges = await this.applyMaintenancePlan(plan, change, changedBase, cache);
595
+ await this.postApplyBackingChanges(plan, backingChanges, cache, deferred, residualBatch, depth + 1);
613
596
  }
614
597
  }
615
598
  /**
616
- * Flush the per-statement deferred full-rebuild set at the end-of-statement boundary:
617
- * rebuild every dirtied full-rebuild MV exactly once (not once per source row) and
618
- * cascade each rebuild's effective {@link BackingRowChange}(s) onward so MV-over-MV
619
- * consumers converge.
599
+ * The invariant pipeline every realized maintenance delta runs, in order: coarsening
600
+ * collision telemetry (observe-only; gated on `coarseningWatch`), the NOT-NULL
601
+ * ordering-seeded-PK guard (no-op unless the MV carries the skew), derived-row
602
+ * CHECK/FK validation (no-op for a constraint-less table; BEFORE the cascade so a
603
+ * consumer never consumes an invalid producer row), parent-side referential
604
+ * enforcement (RESTRICT-walk then declared actions, after `M`'s own image is
605
+ * validated), then the MV-over-MV cascade — each effective {@link BackingRowChange}
606
+ * routed back through {@link maintainRowTime} with the SAME per-statement structures,
607
+ * so a residual consumer accumulates into the batch and a full-rebuild consumer
608
+ * re-dirties the deferred set. Shared verbatim by the per-row inline path and the
609
+ * end-of-statement flush ({@link flushDeferredMaintenance}, which calls with
610
+ * `depth = 0` — its own round bound {@link assertFlushRounds} replaces the recursion
611
+ * bound {@link assertCascadeDepth} there).
612
+ */
613
+ async postApplyBackingChanges(plan, backingChanges, cache, deferred, residualBatch, depth) {
614
+ if (backingChanges.length === 0)
615
+ return;
616
+ this.detectAndReportCoarseningCollisions(plan, backingChanges);
617
+ assertNoNullInNotNullSeededPkRowTime(plan, backingChanges);
618
+ if (plan.derivedRowValidator) {
619
+ await validateDerivedChanges(this.ctx, plan, plan.derivedRowValidator, backingChanges, cache);
620
+ }
621
+ await enforceParentSideReferentialActions(this.ctx, plan, backingChanges);
622
+ const backingBase = `${plan.backingSchema}.${plan.backingTableName}`.toLowerCase();
623
+ if (!this.rowTimeBySource.has(backingBase))
624
+ return; // leaf — no dependents
625
+ if (depth > 0)
626
+ this.assertCascadeDepth(depth, backingBase);
627
+ for (const bc of backingChanges) {
628
+ await this.maintainRowTime(backingBase, bc, cache, deferred, residualBatch, depth);
629
+ }
630
+ }
631
+ /**
632
+ * Flush the per-statement deferred maintenance at the end-of-statement boundary:
633
+ * recompute every accumulated residual key exactly once per distinct key
634
+ * ({@link applyResidualBatch}) and rebuild every dirtied full-rebuild MV exactly once
635
+ * (not once per source row), cascading each apply's effective
636
+ * {@link BackingRowChange}(s) onward so MV-over-MV consumers converge.
620
637
  *
621
- * Drained as a worklist over the producer→consumer DAG. Each rebuild calls
622
- * {@link applyFullRebuild} (re-run the whole body against live mid-transaction source
623
- * state a `'replace-all'` diff) and routes the realized delta back through
624
- * {@link maintainRowTime} with the SAME `deferred` set: an incremental consumer applies
625
- * inline; a full-rebuild consumer re-dirties into the drain (rebuilt in a later round,
626
- * after its producer's delta has landed). The drain proceeds in **rounds** — each round
627
- * snapshots the current dirty set, clears it, and rebuilds each member, collecting the
628
- * next round's re-dirties so a consumer is never permanently stale (a producer rebuilt
629
- * in the same round re-dirties it for the next), and convergence takes at most one round
630
- * per level of the full-rebuild sub-DAG.
638
+ * Drained as a worklist over the producer→consumer DAG. Each apply routes its realized
639
+ * delta back through {@link maintainRowTime} with the SAME `deferred` set and
640
+ * `residualBatch`: an inverse-projection consumer applies inline; a residual consumer
641
+ * accumulates its keys into the batch and a full-rebuild consumer re-dirties into the
642
+ * drain (recomputed in a later round, after its producer's delta has landed). The drain
643
+ * proceeds in **rounds** — each round snapshots both structures, clears them, and
644
+ * applies each member, collecting the next round's re-accumulations so a consumer is
645
+ * never permanently stale (a producer flushed in the same round re-accumulates it for
646
+ * the next), and convergence takes at most one round per level of the deferred sub-DAG.
647
+ * Residual entries drain before rebuilds within a round (arbitrary for correctness —
648
+ * every apply reads live state — but it lets a same-round rebuild read its residual
649
+ * producers' already-flushed backings, saving a round in mixed chains).
631
650
  *
632
651
  * Termination: the dependency DAG is acyclic (a consumer MV requires its producer to
633
- * pre-exist), so the longest full-rebuild chain — hence the round count — is bounded by
652
+ * pre-exist), so the longest deferred chain — hence the round count — is bounded by
634
653
  * the registered-row-time-MV count. Exceeding it signals a structurally-impossible cycle
635
654
  * and fails loud ({@link assertFlushRounds}) — the worklist analogue of
636
655
  * {@link assertCascadeDepth}. This should never fire.
637
656
  *
638
657
  * The DML executor calls this INSIDE the statement-atomicity savepoint (after the row
639
- * loop, before the savepoint release), so a failed rebuild rolls the whole statement
640
- * back. An empty set is a no-op (no overhead on statements touching no full-rebuild MV).
658
+ * loop, before the savepoint release), so a failed recompute/rebuild including a
659
+ * derived-row validation failure or parent-side RESTRICT over the flushed delta rolls
660
+ * the whole statement back with the same attribution as the per-row path. Empty
661
+ * structures are a no-op (no overhead on statements touching no deferred MV).
641
662
  */
642
- async flushDeferredRebuilds(deferred, cache) {
663
+ async flushDeferredMaintenance(deferred, residualBatch, cache) {
643
664
  let round = 0;
644
- while (deferred.size > 0) {
665
+ while (deferred.size > 0 || residualBatch.size > 0) {
645
666
  this.assertFlushRounds(++round);
646
- const batch = [...deferred];
667
+ const residuals = [...residualBatch.entries()];
668
+ residualBatch.clear();
669
+ const rebuilds = [...deferred];
647
670
  deferred.clear();
648
- for (const key of batch) {
671
+ for (const [key, entry] of residuals) {
672
+ const plan = this.rowTime.get(key);
673
+ // Only residual-arm plans ever accumulate keys; a plan released (or
674
+ // re-registered as a different arm) mid-statement is a no-op here.
675
+ if (!plan || plan.kind === 'inverse-projection' || plan.kind === 'full-rebuild')
676
+ continue;
677
+ const backingChanges = await this.applyResidualBatch(plan, entry, cache);
678
+ await this.postApplyBackingChanges(plan, backingChanges, cache, deferred, residualBatch, 0);
679
+ }
680
+ for (const key of rebuilds) {
649
681
  const plan = this.rowTime.get(key);
650
682
  // Only full-rebuild plans are ever deferred; a non-full-rebuild key (or a
651
683
  // plan released mid-flush) is a no-op. Defensive — `maintainRowTime` only
@@ -653,41 +685,58 @@ export class MaterializedViewManager {
653
685
  if (!plan || plan.kind !== 'full-rebuild')
654
686
  continue;
655
687
  const backingChanges = await this.applyFullRebuild(plan, cache);
656
- if (backingChanges.length === 0)
657
- continue;
658
- // Coarsening collision telemetry over the rebuild diff — the full-rebuild
659
- // floor's collation-keyed `replace-all` realizes the same LWW merge as the
660
- // bounded-delta arms (observe-only; gated on `coarseningWatch`).
661
- this.detectAndReportCoarseningCollisions(plan, backingChanges);
662
- // NOT-NULL ordering-seeded PK guard over the rebuild diff — the
663
- // full-rebuild-floor analogue of the per-row guard in {@link maintainRowTime}.
664
- // No-op (`undefined`) unless this MV carries the skew.
665
- assertNoNullInNotNullSeededPkRowTime(plan, backingChanges);
666
- // Validate the rebuild diff's written images at the flush boundary —
667
- // the full-rebuild analogue of the per-row validation in
668
- // {@link maintainRowTime} (deferred-rebuild semantics preserved: a bulk
669
- // source write fails once at end-of-statement, not per source row).
670
- if (plan.derivedRowValidator) {
671
- await validateDerivedChanges(this.ctx, plan, plan.derivedRowValidator, backingChanges, cache);
672
- }
673
- // Parent-side referential enforcement for the rebuild diff's deletes/key-updates,
674
- // fired inside the statement-atomicity savepoint (the flush runs before its
675
- // release) so a RESTRICT failure or cascade error unwinds the whole statement.
676
- await enforceParentSideReferentialActions(this.ctx, plan, backingChanges);
677
- const backingBase = `${plan.backingSchema}.${plan.backingTableName}`.toLowerCase();
678
- if (!this.rowTimeBySource.has(backingBase))
679
- continue; // leaf — no dependents
680
- for (const bc of backingChanges) {
681
- // Cascade at depth 0: an incremental consumer applies inline (its own
682
- // `assertCascadeDepth` backstops that recursion); a full-rebuild consumer
683
- // re-dirties `deferred` for the next round.
684
- await this.maintainRowTime(backingBase, bc, cache, deferred);
685
- }
688
+ await this.postApplyBackingChanges(plan, backingChanges, cache, deferred, residualBatch, 0);
686
689
  }
687
690
  }
688
691
  }
689
692
  /**
690
- * Round backstop for {@link flushDeferredRebuilds}. The full-rebuild sub-DAG is acyclic,
693
+ * Flush one residual-arm MV's accumulated statement keys: run the residual variant
694
+ * once per distinct key against live post-statement state and apply all resulting ops
695
+ * in one {@link BackingHost.applyMaintenance} call (upsert recomputed slices, delete
696
+ * emptied keys — the same keyed diff the per-row path applies, evaluated once per key
697
+ * instead of once per touching row).
698
+ *
699
+ * **Per-statement rebuild demotion** ({@link shouldDegradeToRebuild}, re-costed here
700
+ * against the statement's ACTUAL distinct-key count and the plan's create-time
701
+ * {@link MaintenancePlanCommon.sourceStats}): when k residual runs cost more than one
702
+ * whole-body rebuild — a statement touching most groups — run the plan's
703
+ * {@link ResidualArmCommon.fullRebuildScheduler} and apply a single `'replace-all'`
704
+ * keyed diff instead. Stateless: the stored strategy is unchanged, so a later
705
+ * low-cardinality statement reverts to per-key residuals. Kept on the manager
706
+ * (delegating op computation to the apply-module free helpers) so the statement-flush
707
+ * suites can instrument it alongside {@link applyFullRebuild}.
708
+ */
709
+ async applyResidualBatch(plan, entry, cache) {
710
+ const distinctKeys = entry.forward.size + entry.lookup.size + entry.prefix.size;
711
+ if (distinctKeys === 0)
712
+ return [];
713
+ // Delta-aggregate fast path: an eligible aggregate MV's accumulated per-group
714
+ // deltas are applied by arithmetic read-modify-write on the stored group rows
715
+ // (computeDeltaAggregateOps) — zero source reads. It BYPASSES the
716
+ // degrade-to-rebuild crossover below: that crossover trades k residual
717
+ // re-executions against one whole-body rebuild, and the delta path already
718
+ // costs O(affected groups) with no residual runs, so the rebuild can never win.
719
+ // A poisoned accumulation (OR FAIL per-row revert — see
720
+ // poisonResidualDeltaAccumulations) has `delta` dropped and falls through to
721
+ // the plain residual over the always-accumulated forward keys.
722
+ if (plan.kind === 'residual-recompute' && plan.delta && entry.delta && !entry.deltaPoisoned) {
723
+ const { host, connection } = await resolveBackingApplyTarget(this.ctx, plan, cache);
724
+ const ops = await computeDeltaAggregateOps(this.ctx, plan, entry, host, connection);
725
+ if (ops.length === 0)
726
+ return [];
727
+ return host.applyMaintenance(connection, ops);
728
+ }
729
+ if (plan.fullRebuildScheduler && shouldDegradeToRebuild(distinctKeys, plan.sourceStats)) {
730
+ return this.applyReplaceAll(plan, plan.fullRebuildScheduler, cache);
731
+ }
732
+ const { host, connection } = await resolveBackingApplyTarget(this.ctx, plan, cache);
733
+ const ops = await computeResidualBatchOps(this.ctx, plan, entry, host, connection);
734
+ if (ops.length === 0)
735
+ return [];
736
+ return host.applyMaintenance(connection, ops);
737
+ }
738
+ /**
739
+ * Round backstop for {@link flushDeferredMaintenance}. The full-rebuild sub-DAG is acyclic,
691
740
  * so the drain converges in at most one round per chain level — bounded by the row-time
692
741
  * MV count. A round count beyond that (`+1` slack for an initial dirty set already
693
742
  * spanning multiple levels) signals a structural impossibility (a cycle) — fail loud
@@ -763,20 +812,24 @@ export class MaterializedViewManager {
763
812
  *
764
813
  * Unlike the bounded-delta arms this ignores the specific changed row — the floor
765
814
  * rebuilds wholesale. It is therefore deferred to a single end-of-statement flush
766
- * ({@link flushDeferredRebuilds}) rather than run per source row, so a bulk statement
815
+ * ({@link flushDeferredMaintenance}) rather than run per source row, so a bulk statement
767
816
  * rebuilds exactly once; this is that one rebuild. An empty body (zero rows) yields a
768
817
  * `'replace-all' []`, which empties the backing. Kept on the manager (delegating the
769
818
  * scan / backing write to the apply-module free helpers) so the per-statement-flush
770
819
  * deferral suite can instrument it to count rebuilds.
771
820
  */
772
821
  async applyFullRebuild(plan, cache) {
773
- const rows = await runScheduler(this.ctx, plan.bodyScheduler, {});
774
- const backing = this.ctx.schemaManager.getTable(plan.backingSchema, plan.backingTableName);
775
- if (!backing) {
776
- throw new QuereusError(`Internal error: backing table '${plan.backingTableName}' for materialized view '${plan.mv.name}' not found`, StatusCode.INTERNAL);
777
- }
778
- const host = backingHost(this.ctx, backing);
779
- const connection = await getBackingConnection(this.ctx, host, `${plan.backingSchema}.${plan.backingTableName}`, cache);
822
+ return this.applyReplaceAll(plan, plan.bodyScheduler, cache);
823
+ }
824
+ /**
825
+ * Run a whole-body scheduler to completion against live mid-transaction source state
826
+ * and apply the single `'replace-all'` keyed diff. The shared kernel of the
827
+ * full-rebuild floor ({@link applyFullRebuild}) and the residual arms' per-statement
828
+ * rebuild demotion ({@link applyResidualBatch}).
829
+ */
830
+ async applyReplaceAll(plan, bodyScheduler, cache) {
831
+ const rows = await runScheduler(this.ctx, bodyScheduler, {});
832
+ const { host, connection } = await resolveBackingApplyTarget(this.ctx, plan, cache);
780
833
  return host.applyMaintenance(connection, [{ kind: 'replace-all', rows }]);
781
834
  }
782
835
  /* ──────────────── row-time covering enforcement ──────────────── */
@@ -787,13 +840,15 @@ export class MaterializedViewManager {
787
840
  * this confirms a live row-time plan exists for the source, the MV is not
788
841
  * `stale` (structural breakage), and the plan is **per-row maintained** — only
789
842
  * then is its backing table row-time consistent enough to answer conflict
790
- * resolution. A `'full-rebuild'` plan is deferred to the end-of-statement flush
791
- * (its backing lags the source mid-statement), so it can never serve as a
792
- * covering structure for a synchronous per-row UNIQUE probe it is skipped here
793
- * regardless of any (informational) `coveringStructureName` link, which keeps the
794
- * eligibility flip from opening a stale-read enforcement path. O(1) negative fast
795
- * path off {@link rowTimeBySource} so a source table with no row-time covering MV
796
- * pays a single map lookup and stays on the synchronous index/scan path.
843
+ * resolution. Only the `'inverse-projection'` arm qualifies: every other arm
844
+ * the `'full-rebuild'` floor and the residual arms is deferred to the
845
+ * end-of-statement flush (its backing lags the source mid-statement), so it can
846
+ * never serve as a covering structure for a synchronous per-row UNIQUE probe —
847
+ * all are skipped here regardless of any (informational) `coveringStructureName`
848
+ * link, which keeps an eligibility flip from opening a stale-read enforcement
849
+ * path. O(1) negative fast path off {@link rowTimeBySource} so a source table
850
+ * with no row-time covering MV pays a single map lookup and stays on the
851
+ * synchronous index/scan path.
797
852
  *
798
853
  * **Collation eligibility gate.** A covering MV generates its conflict candidates
799
854
  * by re-comparing each backing row under the SOURCE column's DECLARED collation
@@ -829,9 +884,11 @@ export class MaterializedViewManager {
829
884
  const mv = plan.mv;
830
885
  if (mv.name !== mvName)
831
886
  continue; // must be THE linked covering MV
832
- // A deferred full-rebuild MV is not per-row consistent (reconciled only at
833
- // the end-of-statement flush), so it cannot answer a synchronous probe.
834
- if (plan.chosenStrategy === 'full-rebuild')
887
+ // Only the inverse-projection arm is per-row maintained; every other arm —
888
+ // the full-rebuild floor AND the residual arms is reconciled at the
889
+ // end-of-statement flush, so its backing lags the source mid-statement and
890
+ // cannot answer a synchronous per-row UNIQUE probe.
891
+ if (plan.kind !== 'inverse-projection')
835
892
  return undefined;
836
893
  if (mv.derivation.stale)
837
894
  return undefined; // not row-time consistent
@@ -937,8 +994,7 @@ export class MaterializedViewManager {
937
994
  const backing = this.ctx.schemaManager.getTable(plan.backingSchema, plan.backingTableName);
938
995
  if (!backing)
939
996
  return [];
940
- const host = backingHost(this.ctx, backing);
941
- const connection = await getBackingConnection(this.ctx, host, `${plan.backingSchema}.${plan.backingTableName}`);
997
+ const { host, connection } = await resolveBackingApplyTarget(this.ctx, plan);
942
998
  // Both comparisons below run per scanned backing row, so resolve their collations
943
999
  // once here, against this database (a redefined NOCASE must be honored).
944
1000
  //
@@ -953,6 +1009,16 @@ export class MaterializedViewManager {
953
1009
  const resolver = this.ctx.getCollationResolver();
954
1010
  const ucCollationFns = resolveCollationFunctions(resolver, uc.columns.map(c => sourceSchema.columns[c]?.collation));
955
1011
  const pkCollationFns = resolveCollationFunctions(resolver, pkDef.map(d => d.collation));
1012
+ // Collation alone is not the whole identity notion: a semantic-ordering column
1013
+ // (`docs/types.md` § Semantic ordering — TIMESPAN's 'PT1H' == 'PT60M') calls two
1014
+ // different spellings one value, and both backends key such a column through the
1015
+ // type's `compare`. Route both comparisons through the shared constructor so a
1016
+ // candidate that is semantically equal but textually different is not dropped here
1017
+ // before the re-validators ever see it. Orthogonal to the declared-vs-enforcement
1018
+ // collation choice above: the two spellings are one value at EVERY site, so
1019
+ // admitting them keeps the candidate set a superset either way.
1020
+ const ucComparators = uniqueEnforcementComparators(sourceSchema.columns, uc.columns, ucCollationFns);
1021
+ const pkComparators = uniqueEnforcementComparators(sourceSchema.columns, pkDef.map(d => d.index), pkCollationFns);
956
1022
  const conflicts = [];
957
1023
  // Fast path: a backing-PK prefix scan keyed on `newRow`'s UC values. The
958
1024
  // covering-index shape guarantees the leading backing-PK columns are the UC
@@ -967,7 +1033,7 @@ export class MaterializedViewManager {
967
1033
  for await (const backingRow of host.scanEffective(connection, { equalityPrefix })) {
968
1034
  let match = true;
969
1035
  for (let k = 0; k < uc.columns.length; k++) {
970
- if (compareSqlValuesFast(newRow[uc.columns[k]], backingRow[ucBackingCols[k]], ucCollationFns[k]) !== 0) {
1036
+ if (ucComparators[k](newRow[uc.columns[k]], backingRow[ucBackingCols[k]]) !== 0) {
971
1037
  match = false;
972
1038
  break;
973
1039
  }
@@ -978,7 +1044,7 @@ export class MaterializedViewManager {
978
1044
  // Exclude the row currently being written (its own source PK).
979
1045
  let isSelf = sourcePk.length === newSourcePk.length;
980
1046
  for (let i = 0; isSelf && i < sourcePk.length; i++) {
981
- if (compareSqlValuesFast(sourcePk[i], newSourcePk[i], pkCollationFns[i]) !== 0)
1047
+ if (pkComparators[i](sourcePk[i], newSourcePk[i]) !== 0)
982
1048
  isSelf = false;
983
1049
  }
984
1050
  if (isSelf)
@@ -1005,8 +1071,9 @@ export class MaterializedViewManager {
1005
1071
  * - the leading `k` backing-PK columns do not map to **exactly** the UC
1006
1072
  * source-column set (defensive guard against a non-UC-leading structure);
1007
1073
  * - any leading backing-PK column, or its source UC column, has a **non-BINARY**
1008
- * collation. This is a *soundness* gate, not a perf choice: the prefix seek's
1009
- * early-termination compares with plain `compareSqlValues` (binary), while the
1074
+ * collation. This is a *soundness* gate, not a perf choice: the scan request
1075
+ * carries no collation names, so the prefix seek's early-termination resolves its
1076
+ * comparators at the BINARY floor (`resolveScanComparators`), while the
1010
1077
  * backing btree orders the PK by its declared collation and the UNIQUE
1011
1078
  * constraint conflicts by the source collation. Under a non-binary collation
1012
1079
  * the binary early-termination could `break` before a collated-equal /
@@ -1034,6 +1101,16 @@ export class MaterializedViewManager {
1034
1101
  // Soundness: both the backing-PK column (btree ordering / early-termination)
1035
1102
  // and its source UC column (UNIQUE semantics) must be BINARY for the binary
1036
1103
  // prefix-equality scan to neither over- nor under-match.
1104
+ //
1105
+ // NOTE: a semantic-ordering column (TIMESPAN — 'PT1H' == 'PT60M') declares no
1106
+ // collation, so `isBinaryCollation` returns true and it PASSES this gate. That is
1107
+ // correct, not an oversight: both backings key such a column through the type
1108
+ // (memory via `createTypedComparator` in `resolveScanComparators`, the store via
1109
+ // `storeSemanticKeyTransform` — TIMESPAN's `groupKey`, JSON's structural byte
1110
+ // encoder), so equal-value rows are physically contiguous and the seek lands on
1111
+ // the whole group regardless of spelling — the early-termination cannot `break`
1112
+ // before a semantically-equal conflict. Do not "fix" the gate to decline these
1113
+ // columns; it would silently lose the fast path.
1037
1114
  if (!isBinaryCollation(d.collation))
1038
1115
  return undefined;
1039
1116
  const sourceCol = projector.sourceCol;
@@ -1 +1 @@
1
- {"version":3,"file":"database-materialized-views.js","sourceRoot":"","sources":["../../../src/core/database-materialized-views.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database-materialized-views.js","sourceRoot":"","sources":["../../../src/core/database-materialized-views.ts"],"names":[],"mappings":"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"}
@@ -773,6 +773,11 @@ export declare class Database implements TransactionManagerContext, AssertionEva
773
773
  * partway leaves earlier MVs converged; the caller (snapshot bootstrap) retries
774
774
  * the whole load idempotently.
775
775
  *
776
+ * An engine convergence primitive, NOT a SQL statement: the
777
+ * `ddl_transaction_policy = 'strict'` gate that refuses `refresh materialized
778
+ * view` inside an explicit transaction does not apply here. A caller that opens
779
+ * its own `begin` around the sweep still gets the commit-first behavior above.
780
+ *
776
781
  * Serialized via the exec mutex like any statement — do NOT call from within
777
782
  * statement execution or a vtab callback (deadlock; same constraint as
778
783
  * `refresh materialized view` itself). Returns the refreshed MV identifiers