@quereus/quereus 4.11.0 → 4.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/dist/src/common/type-inference.d.ts +12 -6
  2. package/dist/src/common/type-inference.d.ts.map +1 -1
  3. package/dist/src/common/type-inference.js +12 -24
  4. package/dist/src/common/type-inference.js.map +1 -1
  5. package/dist/src/core/database-assertions.d.ts.map +1 -1
  6. package/dist/src/core/database-assertions.js +7 -5
  7. package/dist/src/core/database-assertions.js.map +1 -1
  8. package/dist/src/core/database-events.d.ts +4 -3
  9. package/dist/src/core/database-events.d.ts.map +1 -1
  10. package/dist/src/core/database-events.js +4 -3
  11. package/dist/src/core/database-events.js.map +1 -1
  12. package/dist/src/core/database-materialized-views-analysis.d.ts +1 -3
  13. package/dist/src/core/database-materialized-views-analysis.d.ts.map +1 -1
  14. package/dist/src/core/database-materialized-views-analysis.js +1 -11
  15. package/dist/src/core/database-materialized-views-analysis.js.map +1 -1
  16. package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -1
  17. package/dist/src/core/database-materialized-views-plan-builders.js +12 -10
  18. package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
  19. package/dist/src/core/database.d.ts.map +1 -1
  20. package/dist/src/core/database.js +13 -2
  21. package/dist/src/core/database.js.map +1 -1
  22. package/dist/src/core/derived-row-validator.d.ts.map +1 -1
  23. package/dist/src/core/derived-row-validator.js +14 -2
  24. package/dist/src/core/derived-row-validator.js.map +1 -1
  25. package/dist/src/core/param.d.ts +9 -0
  26. package/dist/src/core/param.d.ts.map +1 -1
  27. package/dist/src/core/param.js +21 -1
  28. package/dist/src/core/param.js.map +1 -1
  29. package/dist/src/core/statement.d.ts.map +1 -1
  30. package/dist/src/core/statement.js +38 -15
  31. package/dist/src/core/statement.js.map +1 -1
  32. package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
  33. package/dist/src/func/builtins/aggregate.js +7 -2
  34. package/dist/src/func/builtins/aggregate.js.map +1 -1
  35. package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
  36. package/dist/src/func/builtins/builtin-window-functions.js +27 -11
  37. package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
  38. package/dist/src/func/builtins/datetime.d.ts.map +1 -1
  39. package/dist/src/func/builtins/datetime.js +8 -3
  40. package/dist/src/func/builtins/datetime.js.map +1 -1
  41. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  42. package/dist/src/func/builtins/explain.js +9 -29
  43. package/dist/src/func/builtins/explain.js.map +1 -1
  44. package/dist/src/func/builtins/json-tvf.d.ts.map +1 -1
  45. package/dist/src/func/builtins/json-tvf.js +14 -7
  46. package/dist/src/func/builtins/json-tvf.js.map +1 -1
  47. package/dist/src/func/builtins/return-types.d.ts +29 -0
  48. package/dist/src/func/builtins/return-types.d.ts.map +1 -1
  49. package/dist/src/func/builtins/return-types.js +4 -1
  50. package/dist/src/func/builtins/return-types.js.map +1 -1
  51. package/dist/src/func/builtins/scalar.d.ts.map +1 -1
  52. package/dist/src/func/builtins/scalar.js +22 -67
  53. package/dist/src/func/builtins/scalar.js.map +1 -1
  54. package/dist/src/func/builtins/schema.d.ts.map +1 -1
  55. package/dist/src/func/builtins/schema.js +26 -16
  56. package/dist/src/func/builtins/schema.js.map +1 -1
  57. package/dist/src/index.d.ts +1 -1
  58. package/dist/src/index.d.ts.map +1 -1
  59. package/dist/src/index.js +6 -1
  60. package/dist/src/index.js.map +1 -1
  61. package/dist/src/parser/parser.d.ts.map +1 -1
  62. package/dist/src/parser/parser.js +8 -5
  63. package/dist/src/parser/parser.js.map +1 -1
  64. package/dist/src/parser/visitor.d.ts +16 -0
  65. package/dist/src/parser/visitor.d.ts.map +1 -1
  66. package/dist/src/parser/visitor.js +16 -0
  67. package/dist/src/parser/visitor.js.map +1 -1
  68. package/dist/src/planner/analysis/assertion-plan.d.ts +33 -0
  69. package/dist/src/planner/analysis/assertion-plan.d.ts.map +1 -0
  70. package/dist/src/planner/analysis/assertion-plan.js +39 -0
  71. package/dist/src/planner/analysis/assertion-plan.js.map +1 -0
  72. package/dist/src/planner/analysis/binary-operator-class.d.ts +55 -0
  73. package/dist/src/planner/analysis/binary-operator-class.d.ts.map +1 -0
  74. package/dist/src/planner/analysis/binary-operator-class.js +57 -0
  75. package/dist/src/planner/analysis/binary-operator-class.js.map +1 -0
  76. package/dist/src/planner/analysis/binding-extractor.d.ts +9 -3
  77. package/dist/src/planner/analysis/binding-extractor.d.ts.map +1 -1
  78. package/dist/src/planner/analysis/binding-extractor.js +11 -16
  79. package/dist/src/planner/analysis/binding-extractor.js.map +1 -1
  80. package/dist/src/planner/analysis/change-scope.d.ts.map +1 -1
  81. package/dist/src/planner/analysis/change-scope.js +19 -6
  82. package/dist/src/planner/analysis/change-scope.js.map +1 -1
  83. package/dist/src/planner/analysis/check-extraction.d.ts +1 -7
  84. package/dist/src/planner/analysis/check-extraction.d.ts.map +1 -1
  85. package/dist/src/planner/analysis/check-extraction.js.map +1 -1
  86. package/dist/src/planner/analysis/comparison-collation.d.ts +17 -0
  87. package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
  88. package/dist/src/planner/analysis/comparison-collation.js +17 -5
  89. package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
  90. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  91. package/dist/src/planner/analysis/constraint-extractor.js +18 -18
  92. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  93. package/dist/src/planner/analysis/coverage-prover.d.ts +11 -7
  94. package/dist/src/planner/analysis/coverage-prover.d.ts.map +1 -1
  95. package/dist/src/planner/analysis/coverage-prover.js +11 -7
  96. package/dist/src/planner/analysis/coverage-prover.js.map +1 -1
  97. package/dist/src/planner/analysis/equi-correlation.d.ts +1 -1
  98. package/dist/src/planner/analysis/equi-correlation.js +1 -1
  99. package/dist/src/planner/analysis/expression-fingerprint.d.ts.map +1 -1
  100. package/dist/src/planner/analysis/expression-fingerprint.js +0 -2
  101. package/dist/src/planner/analysis/expression-fingerprint.js.map +1 -1
  102. package/dist/src/planner/analysis/key-filter.d.ts.map +1 -1
  103. package/dist/src/planner/analysis/key-filter.js +2 -3
  104. package/dist/src/planner/analysis/key-filter.js.map +1 -1
  105. package/dist/src/planner/analysis/relation-key.d.ts +104 -0
  106. package/dist/src/planner/analysis/relation-key.d.ts.map +1 -0
  107. package/dist/src/planner/analysis/relation-key.js +121 -0
  108. package/dist/src/planner/analysis/relation-key.js.map +1 -0
  109. package/dist/src/planner/analysis/scalar-param-usage.d.ts.map +1 -1
  110. package/dist/src/planner/analysis/scalar-param-usage.js +12 -4
  111. package/dist/src/planner/analysis/scalar-param-usage.js.map +1 -1
  112. package/dist/src/planner/analysis/set-op-type-merge.d.ts +9 -3
  113. package/dist/src/planner/analysis/set-op-type-merge.d.ts.map +1 -1
  114. package/dist/src/planner/analysis/set-op-type-merge.js +22 -8
  115. package/dist/src/planner/analysis/set-op-type-merge.js.map +1 -1
  116. package/dist/src/planner/building/alter-table.d.ts.map +1 -1
  117. package/dist/src/planner/building/alter-table.js +31 -23
  118. package/dist/src/planner/building/alter-table.js.map +1 -1
  119. package/dist/src/planner/building/analyze.d.ts.map +1 -1
  120. package/dist/src/planner/building/analyze.js +21 -0
  121. package/dist/src/planner/building/analyze.js.map +1 -1
  122. package/dist/src/planner/building/block.d.ts.map +1 -1
  123. package/dist/src/planner/building/block.js +222 -82
  124. package/dist/src/planner/building/block.js.map +1 -1
  125. package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
  126. package/dist/src/planner/building/constraint-builder.js +5 -3
  127. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  128. package/dist/src/planner/building/delete.js +1 -1
  129. package/dist/src/planner/building/delete.js.map +1 -1
  130. package/dist/src/planner/building/expression.d.ts.map +1 -1
  131. package/dist/src/planner/building/expression.js +11 -3
  132. package/dist/src/planner/building/expression.js.map +1 -1
  133. package/dist/src/planner/building/foreign-key-builder.d.ts +16 -6
  134. package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
  135. package/dist/src/planner/building/foreign-key-builder.js +43 -20
  136. package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
  137. package/dist/src/planner/building/generated-column-scope.d.ts +58 -0
  138. package/dist/src/planner/building/generated-column-scope.d.ts.map +1 -0
  139. package/dist/src/planner/building/generated-column-scope.js +117 -0
  140. package/dist/src/planner/building/generated-column-scope.js.map +1 -0
  141. package/dist/src/planner/building/insert.d.ts.map +1 -1
  142. package/dist/src/planner/building/insert.js +20 -28
  143. package/dist/src/planner/building/insert.js.map +1 -1
  144. package/dist/src/planner/building/select-aggregates.d.ts +73 -132
  145. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  146. package/dist/src/planner/building/select-aggregates.js +405 -81
  147. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  148. package/dist/src/planner/building/select-modifiers.d.ts +37 -8
  149. package/dist/src/planner/building/select-modifiers.d.ts.map +1 -1
  150. package/dist/src/planner/building/select-modifiers.js +8 -9
  151. package/dist/src/planner/building/select-modifiers.js.map +1 -1
  152. package/dist/src/planner/building/select-ordinal.d.ts +6 -0
  153. package/dist/src/planner/building/select-ordinal.d.ts.map +1 -1
  154. package/dist/src/planner/building/select-ordinal.js +1 -1
  155. package/dist/src/planner/building/select-ordinal.js.map +1 -1
  156. package/dist/src/planner/building/select-window.d.ts +2 -2
  157. package/dist/src/planner/building/select-window.d.ts.map +1 -1
  158. package/dist/src/planner/building/select-window.js +82 -101
  159. package/dist/src/planner/building/select-window.js.map +1 -1
  160. package/dist/src/planner/building/select.d.ts.map +1 -1
  161. package/dist/src/planner/building/select.js +78 -33
  162. package/dist/src/planner/building/select.js.map +1 -1
  163. package/dist/src/planner/building/update.d.ts.map +1 -1
  164. package/dist/src/planner/building/update.js +14 -8
  165. package/dist/src/planner/building/update.js.map +1 -1
  166. package/dist/src/planner/building/view-mutation-builder.d.ts.map +1 -1
  167. package/dist/src/planner/building/view-mutation-builder.js +329 -14
  168. package/dist/src/planner/building/view-mutation-builder.js.map +1 -1
  169. package/dist/src/planner/building/with.d.ts +6 -0
  170. package/dist/src/planner/building/with.d.ts.map +1 -1
  171. package/dist/src/planner/building/with.js +52 -3
  172. package/dist/src/planner/building/with.js.map +1 -1
  173. package/dist/src/planner/cache/correlation-detector.d.ts.map +1 -1
  174. package/dist/src/planner/cache/correlation-detector.js +44 -17
  175. package/dist/src/planner/cache/correlation-detector.js.map +1 -1
  176. package/dist/src/planner/framework/physical-utils.d.ts +6 -0
  177. package/dist/src/planner/framework/physical-utils.d.ts.map +1 -1
  178. package/dist/src/planner/framework/physical-utils.js +6 -0
  179. package/dist/src/planner/framework/physical-utils.js.map +1 -1
  180. package/dist/src/planner/mutation/lens-enforcement.d.ts +123 -0
  181. package/dist/src/planner/mutation/lens-enforcement.d.ts.map +1 -1
  182. package/dist/src/planner/mutation/lens-enforcement.js +362 -5
  183. package/dist/src/planner/mutation/lens-enforcement.js.map +1 -1
  184. package/dist/src/planner/mutation/mutation-diagnostic.d.ts +1 -1
  185. package/dist/src/planner/mutation/mutation-diagnostic.d.ts.map +1 -1
  186. package/dist/src/planner/mutation/mutation-diagnostic.js.map +1 -1
  187. package/dist/src/planner/nodes/alter-table-node.d.ts +15 -11
  188. package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
  189. package/dist/src/planner/nodes/alter-table-node.js +5 -0
  190. package/dist/src/planner/nodes/alter-table-node.js.map +1 -1
  191. package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
  192. package/dist/src/planner/nodes/bloom-join-node.js +7 -0
  193. package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
  194. package/dist/src/planner/nodes/constraint-check-node.d.ts +16 -0
  195. package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -1
  196. package/dist/src/planner/nodes/constraint-check-node.js.map +1 -1
  197. package/dist/src/planner/nodes/plan-node-type.d.ts +1 -1
  198. package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
  199. package/dist/src/planner/nodes/plan-node-type.js +1 -1
  200. package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
  201. package/dist/src/planner/nodes/pragma.d.ts.map +1 -1
  202. package/dist/src/planner/nodes/pragma.js +5 -2
  203. package/dist/src/planner/nodes/pragma.js.map +1 -1
  204. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  205. package/dist/src/planner/nodes/reference.js +9 -1
  206. package/dist/src/planner/nodes/reference.js.map +1 -1
  207. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  208. package/dist/src/planner/nodes/scalar.js +117 -91
  209. package/dist/src/planner/nodes/scalar.js.map +1 -1
  210. package/dist/src/planner/nodes/sequence-node.d.ts +50 -0
  211. package/dist/src/planner/nodes/sequence-node.d.ts.map +1 -0
  212. package/dist/src/planner/nodes/sequence-node.js +96 -0
  213. package/dist/src/planner/nodes/sequence-node.js.map +1 -0
  214. package/dist/src/planner/nodes/values-node.d.ts +8 -0
  215. package/dist/src/planner/nodes/values-node.d.ts.map +1 -1
  216. package/dist/src/planner/nodes/values-node.js +29 -6
  217. package/dist/src/planner/nodes/values-node.js.map +1 -1
  218. package/dist/src/planner/nodes/view-mutation-node.d.ts +43 -1
  219. package/dist/src/planner/nodes/view-mutation-node.d.ts.map +1 -1
  220. package/dist/src/planner/nodes/view-mutation-node.js +27 -6
  221. package/dist/src/planner/nodes/view-mutation-node.js.map +1 -1
  222. package/dist/src/planner/nodes/window-node.d.ts +33 -4
  223. package/dist/src/planner/nodes/window-node.d.ts.map +1 -1
  224. package/dist/src/planner/nodes/window-node.js +80 -36
  225. package/dist/src/planner/nodes/window-node.js.map +1 -1
  226. package/dist/src/planner/planning-context.d.ts +38 -1
  227. package/dist/src/planner/planning-context.d.ts.map +1 -1
  228. package/dist/src/planner/rules/access/rule-key-set-seek.d.ts.map +1 -1
  229. package/dist/src/planner/rules/access/rule-key-set-seek.js +8 -3
  230. package/dist/src/planner/rules/access/rule-key-set-seek.js.map +1 -1
  231. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +18 -12
  232. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -1
  233. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +4 -3
  234. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  235. package/dist/src/planner/rules/window/rule-monotonic-window.d.ts.map +1 -1
  236. package/dist/src/planner/rules/window/rule-monotonic-window.js +6 -0
  237. package/dist/src/planner/rules/window/rule-monotonic-window.js.map +1 -1
  238. package/dist/src/planner/scopes/param.d.ts.map +1 -1
  239. package/dist/src/planner/scopes/param.js +10 -5
  240. package/dist/src/planner/scopes/param.js.map +1 -1
  241. package/dist/src/planner/util/ind-utils.d.ts +25 -8
  242. package/dist/src/planner/util/ind-utils.d.ts.map +1 -1
  243. package/dist/src/planner/util/ind-utils.js +53 -10
  244. package/dist/src/planner/util/ind-utils.js.map +1 -1
  245. package/dist/src/planner/util/key-utils.d.ts +7 -7
  246. package/dist/src/planner/util/key-utils.js +9 -9
  247. package/dist/src/planner/util/key-utils.js.map +1 -1
  248. package/dist/src/runtime/delta-executor.d.ts.map +1 -1
  249. package/dist/src/runtime/delta-executor.js +7 -2
  250. package/dist/src/runtime/delta-executor.js.map +1 -1
  251. package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
  252. package/dist/src/runtime/emit/add-constraint.js +50 -15
  253. package/dist/src/runtime/emit/add-constraint.js.map +1 -1
  254. package/dist/src/runtime/emit/alter-schema-event.d.ts +2 -43
  255. package/dist/src/runtime/emit/alter-schema-event.d.ts.map +1 -1
  256. package/dist/src/runtime/emit/alter-schema-event.js +2 -53
  257. package/dist/src/runtime/emit/alter-schema-event.js.map +1 -1
  258. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  259. package/dist/src/runtime/emit/alter-table.js +59 -24
  260. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  261. package/dist/src/runtime/emit/analyze.d.ts.map +1 -1
  262. package/dist/src/runtime/emit/analyze.js +7 -0
  263. package/dist/src/runtime/emit/analyze.js.map +1 -1
  264. package/dist/src/runtime/emit/assertion-rename-helpers.d.ts.map +1 -1
  265. package/dist/src/runtime/emit/assertion-rename-helpers.js +2 -3
  266. package/dist/src/runtime/emit/assertion-rename-helpers.js.map +1 -1
  267. package/dist/src/runtime/emit/binary.d.ts +5 -0
  268. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  269. package/dist/src/runtime/emit/binary.js +22 -22
  270. package/dist/src/runtime/emit/binary.js.map +1 -1
  271. package/dist/src/runtime/emit/block.d.ts.map +1 -1
  272. package/dist/src/runtime/emit/block.js +9 -3
  273. package/dist/src/runtime/emit/block.js.map +1 -1
  274. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  275. package/dist/src/runtime/emit/constraint-check.js +5 -6
  276. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  277. package/dist/src/runtime/emit/create-assertion.d.ts.map +1 -1
  278. package/dist/src/runtime/emit/create-assertion.js +71 -70
  279. package/dist/src/runtime/emit/create-assertion.js.map +1 -1
  280. package/dist/src/runtime/emit/create-index.d.ts.map +1 -1
  281. package/dist/src/runtime/emit/create-index.js +8 -3
  282. package/dist/src/runtime/emit/create-index.js.map +1 -1
  283. package/dist/src/runtime/emit/create-table.d.ts.map +1 -1
  284. package/dist/src/runtime/emit/create-table.js +20 -10
  285. package/dist/src/runtime/emit/create-table.js.map +1 -1
  286. package/dist/src/runtime/emit/create-view.d.ts.map +1 -1
  287. package/dist/src/runtime/emit/create-view.js +51 -44
  288. package/dist/src/runtime/emit/create-view.js.map +1 -1
  289. package/dist/src/runtime/emit/ddl-event-scope.d.ts +71 -0
  290. package/dist/src/runtime/emit/ddl-event-scope.d.ts.map +1 -0
  291. package/dist/src/runtime/emit/ddl-event-scope.js +80 -0
  292. package/dist/src/runtime/emit/ddl-event-scope.js.map +1 -0
  293. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  294. package/dist/src/runtime/emit/dml-executor.js +23 -23
  295. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  296. package/dist/src/runtime/emit/drop-assertion.d.ts.map +1 -1
  297. package/dist/src/runtime/emit/drop-assertion.js +23 -17
  298. package/dist/src/runtime/emit/drop-assertion.js.map +1 -1
  299. package/dist/src/runtime/emit/drop-index.d.ts.map +1 -1
  300. package/dist/src/runtime/emit/drop-index.js +7 -2
  301. package/dist/src/runtime/emit/drop-index.js.map +1 -1
  302. package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
  303. package/dist/src/runtime/emit/drop-table.js +16 -10
  304. package/dist/src/runtime/emit/drop-table.js.map +1 -1
  305. package/dist/src/runtime/emit/drop-view.d.ts.map +1 -1
  306. package/dist/src/runtime/emit/drop-view.js +50 -43
  307. package/dist/src/runtime/emit/drop-view.js.map +1 -1
  308. package/dist/src/runtime/emit/insert.d.ts.map +1 -1
  309. package/dist/src/runtime/emit/insert.js +2 -1
  310. package/dist/src/runtime/emit/insert.js.map +1 -1
  311. package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
  312. package/dist/src/runtime/emit/materialized-view.js +87 -67
  313. package/dist/src/runtime/emit/materialized-view.js.map +1 -1
  314. package/dist/src/runtime/emit/schema-declarative.d.ts +8 -0
  315. package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
  316. package/dist/src/runtime/emit/schema-declarative.js +128 -25
  317. package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
  318. package/dist/src/runtime/emit/sequence.d.ts +17 -0
  319. package/dist/src/runtime/emit/sequence.d.ts.map +1 -0
  320. package/dist/src/runtime/emit/sequence.js +40 -0
  321. package/dist/src/runtime/emit/sequence.js.map +1 -0
  322. package/dist/src/runtime/emit/set-object-tags.d.ts.map +1 -1
  323. package/dist/src/runtime/emit/set-object-tags.js +40 -32
  324. package/dist/src/runtime/emit/set-object-tags.js.map +1 -1
  325. package/dist/src/runtime/emit/table-valued-function.d.ts.map +1 -1
  326. package/dist/src/runtime/emit/table-valued-function.js +3 -2
  327. package/dist/src/runtime/emit/table-valued-function.js.map +1 -1
  328. package/dist/src/runtime/emit/update.js +3 -3
  329. package/dist/src/runtime/emit/update.js.map +1 -1
  330. package/dist/src/runtime/emit/view-mutation.d.ts.map +1 -1
  331. package/dist/src/runtime/emit/view-mutation.js +45 -3
  332. package/dist/src/runtime/emit/view-mutation.js.map +1 -1
  333. package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
  334. package/dist/src/runtime/foreign-key-actions.js +9 -10
  335. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  336. package/dist/src/runtime/register.d.ts.map +1 -1
  337. package/dist/src/runtime/register.js +3 -2
  338. package/dist/src/runtime/register.js.map +1 -1
  339. package/dist/src/runtime/row-constraints.d.ts +14 -8
  340. package/dist/src/runtime/row-constraints.d.ts.map +1 -1
  341. package/dist/src/runtime/row-constraints.js +41 -15
  342. package/dist/src/runtime/row-constraints.js.map +1 -1
  343. package/dist/src/runtime/strict-representation.d.ts +11 -6
  344. package/dist/src/runtime/strict-representation.d.ts.map +1 -1
  345. package/dist/src/runtime/strict-representation.js +1 -44
  346. package/dist/src/runtime/strict-representation.js.map +1 -1
  347. package/dist/src/schema/assertion.d.ts +25 -2
  348. package/dist/src/schema/assertion.d.ts.map +1 -1
  349. package/dist/src/schema/assertion.js.map +1 -1
  350. package/dist/src/schema/catalog-rendering.d.ts +38 -0
  351. package/dist/src/schema/catalog-rendering.d.ts.map +1 -0
  352. package/dist/src/schema/catalog-rendering.js +171 -0
  353. package/dist/src/schema/catalog-rendering.js.map +1 -0
  354. package/dist/src/schema/catalog.d.ts +69 -3
  355. package/dist/src/schema/catalog.d.ts.map +1 -1
  356. package/dist/src/schema/catalog.js +124 -19
  357. package/dist/src/schema/catalog.js.map +1 -1
  358. package/dist/src/schema/column-source-resolver.d.ts +9 -5
  359. package/dist/src/schema/column-source-resolver.d.ts.map +1 -1
  360. package/dist/src/schema/column-source-resolver.js +9 -5
  361. package/dist/src/schema/column-source-resolver.js.map +1 -1
  362. package/dist/src/schema/constraint-builder.d.ts +13 -10
  363. package/dist/src/schema/constraint-builder.d.ts.map +1 -1
  364. package/dist/src/schema/constraint-builder.js +45 -17
  365. package/dist/src/schema/constraint-builder.js.map +1 -1
  366. package/dist/src/schema/declared-schema-manager.d.ts +50 -0
  367. package/dist/src/schema/declared-schema-manager.d.ts.map +1 -1
  368. package/dist/src/schema/declared-schema-manager.js +52 -0
  369. package/dist/src/schema/declared-schema-manager.js.map +1 -1
  370. package/dist/src/schema/expr-scope/frame.d.ts +65 -0
  371. package/dist/src/schema/expr-scope/frame.d.ts.map +1 -0
  372. package/dist/src/schema/expr-scope/frame.js +104 -0
  373. package/dist/src/schema/expr-scope/frame.js.map +1 -0
  374. package/dist/src/schema/expr-scope/walk.d.ts +40 -0
  375. package/dist/src/schema/expr-scope/walk.d.ts.map +1 -0
  376. package/dist/src/schema/expr-scope/walk.js +260 -0
  377. package/dist/src/schema/expr-scope/walk.js.map +1 -0
  378. package/dist/src/schema/generated-column-refs.d.ts +41 -0
  379. package/dist/src/schema/generated-column-refs.d.ts.map +1 -0
  380. package/dist/src/schema/generated-column-refs.js +124 -0
  381. package/dist/src/schema/generated-column-refs.js.map +1 -0
  382. package/dist/src/schema/lens-ack.d.ts.map +1 -1
  383. package/dist/src/schema/lens-ack.js +5 -2
  384. package/dist/src/schema/lens-ack.js.map +1 -1
  385. package/dist/src/schema/lens-compiler.d.ts.map +1 -1
  386. package/dist/src/schema/lens-compiler.js +9 -1
  387. package/dist/src/schema/lens-compiler.js.map +1 -1
  388. package/dist/src/schema/lens-prover.d.ts +7 -2
  389. package/dist/src/schema/lens-prover.d.ts.map +1 -1
  390. package/dist/src/schema/lens-prover.js +105 -11
  391. package/dist/src/schema/lens-prover.js.map +1 -1
  392. package/dist/src/schema/lens.d.ts +12 -0
  393. package/dist/src/schema/lens.d.ts.map +1 -1
  394. package/dist/src/schema/lens.js +10 -0
  395. package/dist/src/schema/lens.js.map +1 -1
  396. package/dist/src/schema/manager.d.ts +35 -1
  397. package/dist/src/schema/manager.d.ts.map +1 -1
  398. package/dist/src/schema/manager.js +125 -26
  399. package/dist/src/schema/manager.js.map +1 -1
  400. package/dist/src/schema/rename/self-qualifier-strip.d.ts +16 -10
  401. package/dist/src/schema/rename/self-qualifier-strip.d.ts.map +1 -1
  402. package/dist/src/schema/rename/self-qualifier-strip.js +30 -213
  403. package/dist/src/schema/rename/self-qualifier-strip.js.map +1 -1
  404. package/dist/src/schema/rename-rewriter.d.ts +4 -3
  405. package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
  406. package/dist/src/schema/rename-rewriter.js +4 -3
  407. package/dist/src/schema/rename-rewriter.js.map +1 -1
  408. package/dist/src/schema/schema-differ.d.ts +54 -6
  409. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  410. package/dist/src/schema/schema-differ.js +108 -42
  411. package/dist/src/schema/schema-differ.js.map +1 -1
  412. package/dist/src/schema/schema-hasher.d.ts +12 -0
  413. package/dist/src/schema/schema-hasher.d.ts.map +1 -1
  414. package/dist/src/schema/schema-hasher.js +28 -10
  415. package/dist/src/schema/schema-hasher.js.map +1 -1
  416. package/dist/src/schema/table.d.ts +74 -19
  417. package/dist/src/schema/table.d.ts.map +1 -1
  418. package/dist/src/schema/table.js +133 -71
  419. package/dist/src/schema/table.js.map +1 -1
  420. package/dist/src/types/comparison-coercion.d.ts +5 -1
  421. package/dist/src/types/comparison-coercion.d.ts.map +1 -1
  422. package/dist/src/types/comparison-coercion.js +21 -5
  423. package/dist/src/types/comparison-coercion.js.map +1 -1
  424. package/dist/src/types/representation.d.ts +65 -0
  425. package/dist/src/types/representation.d.ts.map +1 -0
  426. package/dist/src/types/representation.js +63 -0
  427. package/dist/src/types/representation.js.map +1 -0
  428. package/dist/src/types/validation.d.ts +76 -22
  429. package/dist/src/types/validation.d.ts.map +1 -1
  430. package/dist/src/types/validation.js +110 -31
  431. package/dist/src/types/validation.js.map +1 -1
  432. package/dist/src/vtab/best-access-plan.d.ts +10 -0
  433. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  434. package/dist/src/vtab/best-access-plan.js +16 -0
  435. package/dist/src/vtab/best-access-plan.js.map +1 -1
  436. package/dist/src/vtab/capabilities.d.ts +72 -4
  437. package/dist/src/vtab/capabilities.d.ts.map +1 -1
  438. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  439. package/dist/src/vtab/memory/layer/manager.js +17 -13
  440. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  441. package/dist/src/vtab/module.d.ts +13 -7
  442. package/dist/src/vtab/module.d.ts.map +1 -1
  443. package/package.json +3 -3
  444. package/dist/src/planner/nodes/array-index-node.d.ts +0 -22
  445. package/dist/src/planner/nodes/array-index-node.d.ts.map +0 -1
  446. package/dist/src/planner/nodes/array-index-node.js +0 -41
  447. package/dist/src/planner/nodes/array-index-node.js.map +0 -1
  448. package/dist/src/runtime/emit/array-index.d.ts +0 -5
  449. package/dist/src/runtime/emit/array-index.d.ts.map +0 -1
  450. package/dist/src/runtime/emit/array-index.js +0 -22
  451. package/dist/src/runtime/emit/array-index.js.map +0 -1
@@ -2,29 +2,35 @@ import { asRun } from '../types.js';
2
2
  import { QuereusError } from '../../common/errors.js';
3
3
  import { StatusCode } from '../../common/types.js';
4
4
  import { createLogger } from '../../common/logger.js';
5
+ import { withStatementScopedSchemaEvents } from './ddl-event-scope.js';
5
6
  const log = createLogger('runtime:emit:drop-assertion');
6
7
  export function emitDropAssertion(plan, _ctx) {
7
8
  async function run(rctx) {
8
9
  // Ensure we're in a transaction before DDL (lazy/JIT transaction start)
9
10
  await rctx.db._ensureTransaction();
10
- const schemaManager = rctx.db.schemaManager;
11
- const schema = schemaManager.getSchema(plan.schemaName);
12
- const existing = schema?.getAssertion(plan.name);
13
- if (!existing) {
14
- if (plan.ifExists) {
15
- log('Assertion %s.%s not found, but IF EXISTS specified', plan.schemaName, plan.name);
16
- return null;
11
+ // Statement-scoped schema-event scope. Assertions raise nothing on the public
12
+ // schema channel today, so the scope is a no-op — it is here so the invariant
13
+ // holds by construction: see ddl-event-scope.ts.
14
+ return withStatementScopedSchemaEvents(rctx, async () => {
15
+ const schemaManager = rctx.db.schemaManager;
16
+ const schema = schemaManager.getSchema(plan.schemaName);
17
+ const existing = schema?.getAssertion(plan.name);
18
+ if (!existing) {
19
+ if (plan.ifExists) {
20
+ log('Assertion %s.%s not found, but IF EXISTS specified', plan.schemaName, plan.name);
21
+ return null;
22
+ }
23
+ throw new QuereusError(`Assertion ${plan.name} not found in schema ${plan.schemaName}`, StatusCode.NOTFOUND);
17
24
  }
18
- throw new QuereusError(`Assertion ${plan.name} not found in schema ${plan.schemaName}`, StatusCode.NOTFOUND);
19
- }
20
- const removed = schemaManager.removeAssertion(plan.schemaName, plan.name);
21
- if (!removed && !plan.ifExists) {
22
- throw new QuereusError(`Failed to remove assertion ${plan.name}`, StatusCode.INTERNAL);
23
- }
24
- // Invalidate cached plan for this assertion
25
- rctx.db.invalidateAssertionCache(plan.schemaName, plan.name);
26
- log('Dropped assertion %s.%s', plan.schemaName, plan.name);
27
- return null;
25
+ const removed = schemaManager.removeAssertion(plan.schemaName, plan.name);
26
+ if (!removed && !plan.ifExists) {
27
+ throw new QuereusError(`Failed to remove assertion ${plan.name}`, StatusCode.INTERNAL);
28
+ }
29
+ // Invalidate cached plan for this assertion
30
+ rctx.db.invalidateAssertionCache(plan.schemaName, plan.name);
31
+ log('Dropped assertion %s.%s', plan.schemaName, plan.name);
32
+ return null;
33
+ });
28
34
  }
29
35
  return {
30
36
  params: [],
@@ -1 +1 @@
1
- {"version":3,"file":"drop-assertion.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-assertion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAY,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,GAAG,GAAG,YAAY,CAAC,6BAA6B,CAAC,CAAC;AAExD,MAAM,UAAU,iBAAiB,CAAC,IAAuB,EAAE,IAAqB;IAE/E,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,wEAAwE;QACxE,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,GAAG,CAAC,oDAAoD,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtF,OAAO,IAAI,CAAC;YACb,CAAC;YACD,MAAM,IAAI,YAAY,CACrB,aAAa,IAAI,CAAC,IAAI,wBAAwB,IAAI,CAAC,UAAU,EAAE,EAC/D,UAAU,CAAC,QAAQ,CACnB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,YAAY,CACrB,8BAA8B,IAAI,CAAC,IAAI,EAAE,EACzC,UAAU,CAAC,QAAQ,CACnB,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7D,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO;QACN,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;QACf,IAAI,EAAE,iBAAiB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,GAAG;KACtD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"drop-assertion.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-assertion.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAY,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,MAAM,GAAG,GAAG,YAAY,CAAC,6BAA6B,CAAC,CAAC;AAExD,MAAM,UAAU,iBAAiB,CAAC,IAAuB,EAAE,IAAqB;IAE/E,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,wEAAwE;QACxE,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,8EAA8E;QAC9E,8EAA8E;QAC9E,iDAAiD;QACjD,OAAO,+BAA+B,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;YAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAExD,MAAM,QAAQ,GAAG,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,GAAG,CAAC,oDAAoD,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtF,OAAO,IAAI,CAAC;gBACb,CAAC;gBACD,MAAM,IAAI,YAAY,CACrB,aAAa,IAAI,CAAC,IAAI,wBAAwB,IAAI,CAAC,UAAU,EAAE,EAC/D,UAAU,CAAC,QAAQ,CACnB,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1E,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,YAAY,CACrB,8BAA8B,IAAI,CAAC,IAAI,EAAE,EACzC,UAAU,CAAC,QAAQ,CACnB,CAAC;YACH,CAAC;YAED,4CAA4C;YAC5C,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAE7D,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACN,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;QACf,IAAI,EAAE,iBAAiB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,GAAG;KACtD,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"drop-index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAK9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAiCrF"}
1
+ {"version":3,"file":"drop-index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAqCrF"}
@@ -1,6 +1,7 @@
1
1
  import { asRun } from '../types.js';
2
2
  import { requireVtabModule } from '../../schema/table.js';
3
3
  import { assertDdlTransactionPolicy, isDdlPolicyStrict } from './ddl-transaction-policy.js';
4
+ import { withStatementScopedSchemaEvents } from './ddl-event-scope.js';
4
5
  export function emitDropIndex(plan, _ctx) {
5
6
  async function run(rctx) {
6
7
  // Strict-policy gate (see ddl-transaction-policy.ts). Locating the owning table
@@ -19,8 +20,12 @@ export function emitDropIndex(plan, _ctx) {
19
20
  }
20
21
  // Ensure we're in a transaction before DDL (lazy/JIT transaction start)
21
22
  await rctx.db._ensureTransaction();
22
- await rctx.db.schemaManager.dropIndex(plan.schemaName, plan.indexName, plan.ifExists);
23
- return null;
23
+ // Statement-scoped schema-event scope — the invariant every DDL emitter holds; see
24
+ // ddl-event-scope.ts.
25
+ return withStatementScopedSchemaEvents(rctx, async () => {
26
+ await rctx.db.schemaManager.dropIndex(plan.schemaName, plan.indexName, plan.ifExists);
27
+ return null;
28
+ });
24
29
  }
25
30
  return {
26
31
  params: [],
@@ -1 +1 @@
1
- {"version":3,"file":"drop-index.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE5F,MAAM,UAAU,aAAa,CAAC,IAAmB,EAAE,IAAqB;IACvE,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,gFAAgF;QAChF,+EAA+E;QAC/E,+EAA+E;QAC/E,gFAAgF;QAChF,aAAa;QACb,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,6EAA6E;YAC7E,2EAA2E;YAC3E,kDAAkD;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;YAC3F,IAAI,KAAK,EAAE,CAAC;gBACX,0BAA0B,CACzB,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,cAAc,EACvD,cAAc,IAAI,CAAC,SAAS,EAAE,CAC9B,CAAC;YACH,CAAC;QACF,CAAC;QAED,wEAAwE;QACxE,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtF,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO;QACN,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;QACf,IAAI,EAAE,aAAa,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,GAAG;KACvD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"drop-index.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,MAAM,UAAU,aAAa,CAAC,IAAmB,EAAE,IAAqB;IACvE,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,gFAAgF;QAChF,+EAA+E;QAC/E,+EAA+E;QAC/E,gFAAgF;QAChF,aAAa;QACb,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,6EAA6E;YAC7E,2EAA2E;YAC3E,kDAAkD;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;YAC3F,IAAI,KAAK,EAAE,CAAC;gBACX,0BAA0B,CACzB,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,cAAc,EACvD,cAAc,IAAI,CAAC,SAAS,EAAE,CAC9B,CAAC;YACH,CAAC;QACF,CAAC;QAED,wEAAwE;QACxE,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,mFAAmF;QACnF,sBAAsB;QACtB,OAAO,+BAA+B,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEtF,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACN,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;QACf,IAAI,EAAE,aAAa,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,GAAG;KACvD,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"drop-table.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAO9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAqDpF"}
1
+ {"version":3,"file":"drop-table.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQ9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CA0DpF"}
@@ -4,6 +4,7 @@ import { StatusCode } from '../../common/types.js';
4
4
  import { dropMaintainedTable } from './materialized-view.js';
5
5
  import { requireVtabModule } from '../../schema/table.js';
6
6
  import { assertDdlTransactionPolicy } from './ddl-transaction-policy.js';
7
+ import { withStatementScopedSchemaEvents } from './ddl-event-scope.js';
7
8
  import { assertNoAssertionDependsOn } from './assertion-drop-guard.js';
8
9
  import { assertNoExpressionDependsOn } from './expression-drop-guard.js';
9
10
  export function emitDropTable(plan, ctx) {
@@ -35,17 +36,22 @@ export function emitDropTable(plan, ctx) {
35
36
  }
36
37
  // Ensure we're in a transaction before DDL (lazy/JIT transaction start)
37
38
  await rctx.db._ensureTransaction();
38
- // A maintained table (materialized view) is one record: DROP TABLE drops
39
- // the table AND its derivation — detach maintenance, unlink any covering
40
- // link, and fire materialized_view_removed so persisted catalogs forget
41
- // the `create materialized view` entry.
42
- const maintained = rctx.db.schemaManager.getMaintainedTable(targetSchemaName, objectName);
43
- if (maintained) {
44
- await dropMaintainedTable(rctx.db, maintained);
39
+ // Statement-scoped schema-event scope (see ddl-event-scope.ts). The maintained
40
+ // branch does post-drop work (`materialized_view_removed` and its listeners), and
41
+ // the drop itself is already announced by then.
42
+ return withStatementScopedSchemaEvents(rctx, async () => {
43
+ // A maintained table (materialized view) is one record: DROP TABLE drops
44
+ // the table AND its derivation — detach maintenance, unlink any covering
45
+ // link, and fire materialized_view_removed so persisted catalogs forget
46
+ // the `create materialized view` entry.
47
+ const maintained = rctx.db.schemaManager.getMaintainedTable(targetSchemaName, objectName);
48
+ if (maintained) {
49
+ await dropMaintainedTable(rctx.db, maintained);
50
+ return null;
51
+ }
52
+ await rctx.db.schemaManager.dropTable(targetSchemaName, objectName, stmt.ifExists);
45
53
  return null;
46
- }
47
- await rctx.db.schemaManager.dropTable(targetSchemaName, objectName, stmt.ifExists);
48
- return null;
54
+ });
49
55
  }
50
56
  return { params: [], run: asRun(run), note: `dropTable(${targetSchemaName}.${objectName})` };
51
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"drop-table.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-table.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAiB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,UAAU,aAAa,CAAC,IAAmB,EAAE,GAAoB;IACtE,MAAM,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,eAAe;IAE/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,oBAAoB,EAAE,CAAC;IAClF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAElC,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QACjC,+CAA+C;QAC/C,qGAAqG;QACrG,MAAM,IAAI,YAAY,CAAC,yBAAyB,IAAI,CAAC,UAAU,sCAAsC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAChI,CAAC;IAED,KAAK,UAAU,GAAG,CAAC,IAAoB;QACtC,yEAAyE;QACzE,yEAAyE;QACzE,wDAAwD;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAC5E,IAAI,MAAM,EAAE,CAAC;YACZ,0BAA0B,CACzB,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,EACzD,cAAc,UAAU,EAAE,CAC1B,CAAC;YACF,+DAA+D;YAC/D,oEAAoE;YACpE,wEAAwE;YACxE,0DAA0D;YAC1D,0BAA0B,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAC3E,+EAA+E;YAC/E,+EAA+E;YAC/E,mFAAmF;YACnF,2BAA2B,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7E,CAAC;QAED,wEAAwE;QACxE,MAAM,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAEnC,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,wCAAwC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAC1F,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnF,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,aAAa,gBAAgB,IAAI,UAAU,GAAG,EAAE,CAAC;AAC9F,CAAC"}
1
+ {"version":3,"file":"drop-table.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-table.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"drop-view.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA2EnF"}
1
+ {"version":3,"file":"drop-view.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAO9D,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAiFnF"}
@@ -2,53 +2,60 @@ import { QuereusError } from '../../common/errors.js';
2
2
  import { StatusCode } from '../../common/types.js';
3
3
  import { assertNoAssertionDependsOn } from './assertion-drop-guard.js';
4
4
  import { assertNoExpressionDependsOn } from './expression-drop-guard.js';
5
+ import { withStatementScopedSchemaEvents } from './ddl-event-scope.js';
5
6
  export function emitDropView(plan, _ctx) {
6
7
  async function run(rctx) {
7
8
  // Ensure we're in a transaction before DDL (lazy/JIT transaction start)
8
9
  await rctx.db._ensureTransaction();
9
- // A materialized view must be dropped with DROP MATERIALIZED VIEW.
10
- if (rctx.db.schemaManager.getMaintainedTable(plan.schemaName, plan.viewName)) {
11
- throw new QuereusError(`'${plan.viewName}' is a materialized view — use DROP MATERIALIZED VIEW`, StatusCode.ERROR);
12
- }
13
- // Check if view exists
14
- const existingView = rctx.db.schemaManager.getView(plan.schemaName, plan.viewName);
15
- if (!existingView && !plan.ifExists) {
16
- throw new QuereusError(`View '${plan.schemaName}.${plan.viewName}' does not exist`, StatusCode.ERROR);
17
- }
18
- if (!existingView && plan.ifExists) {
19
- // View doesn't exist but IF EXISTS was specified, so this is a no-op
20
- return null;
21
- }
22
- // An assertion body may name a view exactly as it names a base table, and
23
- // dropping it out from under one breaks every write to the database.
24
- assertNoAssertionDependsOn(rctx.db, plan.schemaName, plan.viewName, 'view');
25
- // A CHECK / DEFAULT / generated body may read a VIEW through a subquery exactly as
26
- // it reads a base table, so the referencing table breaks the same way. (The
27
- // asymmetry is on the other side: a table dropped under a plain view stays legal.)
28
- assertNoExpressionDependsOn(rctx.db, plan.schemaName, plan.viewName, 'view');
29
- // Remove the view from the schema manager
30
- const schema = rctx.db.schemaManager.getSchema(plan.schemaName);
31
- if (!schema) {
32
- throw new QuereusError(`Schema '${plan.schemaName}' does not exist`, StatusCode.ERROR);
33
- }
34
- const removed = schema.removeView(plan.viewName);
35
- if (!removed && !plan.ifExists) {
36
- throw new QuereusError(`View '${plan.schemaName}.${plan.viewName}' does not exist`, StatusCode.ERROR);
37
- }
38
- // Fire view_removed so a store-backed catalog can forget this view. Fired
39
- // here (not from Schema.removeView) to mirror create-view's emitter-scoped
40
- // view_added. Not reached on the IF EXISTS no-op above.
41
- if (removed && existingView) {
42
- rctx.db.schemaManager.getChangeNotifier().notifyChange({
43
- type: 'view_removed',
44
- // Stored names of the dropped view — see
45
- // SchemaManager.canonicalSchemaName for the emitter/stored-name invariant.
46
- schemaName: existingView.schemaName,
47
- objectName: existingView.name,
48
- oldObject: existingView,
49
- });
50
- }
51
- return null; // Explicitly return null for successful void operations
10
+ // Statement-scoped schema-event scope. This statement raises nothing on the public
11
+ // schema channel today (`view_removed` is an internal catalog notification), so the
12
+ // scope is a no-op — it is here so the invariant holds by construction: see
13
+ // ddl-event-scope.ts.
14
+ return withStatementScopedSchemaEvents(rctx, async () => {
15
+ // A materialized view must be dropped with DROP MATERIALIZED VIEW.
16
+ if (rctx.db.schemaManager.getMaintainedTable(plan.schemaName, plan.viewName)) {
17
+ throw new QuereusError(`'${plan.viewName}' is a materialized view — use DROP MATERIALIZED VIEW`, StatusCode.ERROR);
18
+ }
19
+ // Check if view exists
20
+ const existingView = rctx.db.schemaManager.getView(plan.schemaName, plan.viewName);
21
+ if (!existingView && !plan.ifExists) {
22
+ throw new QuereusError(`View '${plan.schemaName}.${plan.viewName}' does not exist`, StatusCode.ERROR);
23
+ }
24
+ if (!existingView && plan.ifExists) {
25
+ // View doesn't exist but IF EXISTS was specified, so this is a no-op
26
+ return null;
27
+ }
28
+ // An assertion body may name a view exactly as it names a base table, and
29
+ // dropping it out from under one breaks every write to the database.
30
+ assertNoAssertionDependsOn(rctx.db, plan.schemaName, plan.viewName, 'view');
31
+ // A CHECK / DEFAULT / generated body may read a VIEW through a subquery exactly as
32
+ // it reads a base table, so the referencing table breaks the same way. (The
33
+ // asymmetry is on the other side: a table dropped under a plain view stays legal.)
34
+ assertNoExpressionDependsOn(rctx.db, plan.schemaName, plan.viewName, 'view');
35
+ // Remove the view from the schema manager
36
+ const schema = rctx.db.schemaManager.getSchema(plan.schemaName);
37
+ if (!schema) {
38
+ throw new QuereusError(`Schema '${plan.schemaName}' does not exist`, StatusCode.ERROR);
39
+ }
40
+ const removed = schema.removeView(plan.viewName);
41
+ if (!removed && !plan.ifExists) {
42
+ throw new QuereusError(`View '${plan.schemaName}.${plan.viewName}' does not exist`, StatusCode.ERROR);
43
+ }
44
+ // Fire view_removed so a store-backed catalog can forget this view. Fired
45
+ // here (not from Schema.removeView) to mirror create-view's emitter-scoped
46
+ // view_added. Not reached on the IF EXISTS no-op above.
47
+ if (removed && existingView) {
48
+ rctx.db.schemaManager.getChangeNotifier().notifyChange({
49
+ type: 'view_removed',
50
+ // Stored names of the dropped view — see
51
+ // SchemaManager.canonicalSchemaName for the emitter/stored-name invariant.
52
+ schemaName: existingView.schemaName,
53
+ objectName: existingView.name,
54
+ oldObject: existingView,
55
+ });
56
+ }
57
+ return null; // Explicitly return null for successful void operations
58
+ });
52
59
  }
53
60
  return {
54
61
  params: [],
@@ -1 +1 @@
1
- {"version":3,"file":"drop-view.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drop-view.js","sourceRoot":"","sources":["../../../../src/runtime/emit/drop-view.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/insert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAiD9E"}
1
+ {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/insert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAI/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAkD9E"}
@@ -13,7 +13,8 @@ export function emitInsert(plan, ctx) {
13
13
  // table-column order (buildExpandedSource), so source attributes align
14
14
  // positionally with table columns. A cell whose source type already IS the
15
15
  // column's type (e.g. `insert into b select j from a` for a JSON column) is
16
- // left alone — see buildRowCoercion.
16
+ // left alone — provided the value in hand also inhabits that type, since the
17
+ // source's announcement is an inference, not a guarantee. See buildRowCoercion.
17
18
  const sourceAttrs = plan.source.getAttributes();
18
19
  const coerceNewRow = buildRowCoercion(tableSchema.columns.map((_, i) => sourceAttrs[i]?.type.logicalType), tableSchema.columns);
19
20
  async function* run(_ctx, sourceValue) {
@@ -1 +1 @@
1
- {"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../src/runtime/emit/insert.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,UAAU,UAAU,CAAC,IAAgB,EAAE,GAAoB;IAChE,8EAA8E;IAC9E,wEAAwE;IACxE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;IAE5C,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,2EAA2E;IAC3E,4EAA4E;IAC5E,qCAAqC;IACrC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,gBAAgB,CACpC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,EACnE,WAAW,CAAC,OAAO,CACnB,CAAC;IAEF,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,IAAoB,EAAE,WAA+B;QACxE,IAAI,KAAK,EAAE,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YAC3C,4CAA4C;YAC5C,kEAAkE;YAClE,MAAM,OAAO,GAAQ,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YAE7C,+CAA+C;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACnB,CAAC;YAED,uEAAuE;YACvE,qEAAqE;YACrE,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;gBAClD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,OAAO,CAAC;QACf,CAAC;IACF,CAAC;IAED,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEzD,OAAO;QACN,MAAM,EAAE,CAAC,iBAAiB,CAAC;QAC3B,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;QACf,IAAI,EAAE,cAAc,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG;KAClD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../../src/runtime/emit/insert.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,UAAU,UAAU,CAAC,IAAgB,EAAE,GAAoB;IAChE,8EAA8E;IAC9E,wEAAwE;IACxE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;IAE5C,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,2EAA2E;IAC3E,4EAA4E;IAC5E,6EAA6E;IAC7E,gFAAgF;IAChF,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,gBAAgB,CACpC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,EACnE,WAAW,CAAC,OAAO,CACnB,CAAC;IAEF,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,IAAoB,EAAE,WAA+B;QACxE,IAAI,KAAK,EAAE,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YAC3C,4CAA4C;YAC5C,kEAAkE;YAClE,MAAM,OAAO,GAAQ,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YAE7C,+CAA+C;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACnB,CAAC;YAED,uEAAuE;YACvE,qEAAqE;YACrE,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;gBAClD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,OAAO,CAAC;QACf,CAAC;IACF,CAAC;IAED,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEzD,OAAO;QACN,MAAM,EAAE,CAAC,iBAAiB,CAAC;QAC3B,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;QACf,IAAI,EAAE,cAAc,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG;KAClD,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"materialized-view.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/materialized-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAkCxE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAqE/G;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAkCjH;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAmEpH;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBhG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA2C3G"}
1
+ {"version":3,"file":"materialized-view.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/materialized-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAmCxE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA4E/G;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA0CjH;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAmEpH;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBhG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAkD3G"}
@@ -4,6 +4,7 @@ import { astToString } from '../../emit/ast-stringify.js';
4
4
  import { requireVtabModule } from '../../schema/table.js';
5
5
  import { normalizeBackingModuleName } from '../../schema/view.js';
6
6
  import { assertDdlTransactionPolicy, isDdlPolicyStrict } from './ddl-transaction-policy.js';
7
+ import { withStatementScopedSchemaEvents } from './ddl-event-scope.js';
7
8
  import { assertNoAssertionDependsOn } from './assertion-drop-guard.js';
8
9
  import { assertNoExpressionDependsOn } from './expression-drop-guard.js';
9
10
  import { materializeView, deriveBackingShape, rebuildBacking, reshapeBacking, backingShapeMatches, revalidateBody, unlinkCoveredUniqueConstraints, } from './materialized-view-helpers.js';
@@ -43,43 +44,49 @@ export function emitCreateMaterializedView(plan, _ctx) {
43
44
  assertDdlTransactionPolicy(rctx.db, backingModule.module, backingModuleName, `CREATE MATERIALIZED VIEW ${plan.viewName}`);
44
45
  }
45
46
  await rctx.db._ensureTransaction();
46
- const db = rctx.db;
47
- const sm = db.schemaManager;
48
- const existing = sm.getMaintainedTable(plan.schemaName, plan.viewName);
49
- if (existing) {
50
- if (plan.ifNotExists)
51
- return null;
52
- throw new QuereusError(`Materialized view '${plan.schemaName}.${plan.viewName}' already exists`, StatusCode.ERROR);
53
- }
54
- // One namespace now: a plain table occupies the same name a maintained
55
- // table would. Keep the dedicated diagnostic for both directions.
56
- if (sm.getTable(plan.schemaName, plan.viewName) || sm.getView(plan.schemaName, plan.viewName)) {
57
- throw new QuereusError(`Cannot create materialized view '${plan.schemaName}.${plan.viewName}': a table or view with the same name already exists`, StatusCode.CONSTRAINT);
58
- }
59
- // The materialize core (derive backing shape → create + fill the
60
- // maintained table under the MV's own name in the declared host module →
61
- // attach derivation + register row-time maintenance, rolling back on any
62
- // throw) is shared with the catalog-import path — see materializeView.
63
- const mv = await materializeView(db, {
64
- schemaName: plan.schemaName,
65
- viewName: plan.viewName,
66
- // Any `with defaults (…)` rides inside plan.selectStmt (→ selectAst).
67
- selectAst: plan.selectStmt,
68
- bodySql: plan.bodySql,
69
- columns: plan.columns,
70
- tags: plan.tags,
71
- backingModuleName: plan.backingModuleName,
72
- backingModuleArgs: plan.backingModuleArgs,
73
- });
74
- sm.getChangeNotifier().notifyChange({
75
- type: 'materialized_view_added',
76
- // Stored names of the registered MV — see
77
- // SchemaManager.canonicalSchemaName for the emitter/stored-name invariant.
78
- schemaName: mv.schemaName,
79
- objectName: mv.name,
80
- newObject: mv,
47
+ // Statement-scoped schema-event scope (see ddl-event-scope.ts): `materializeView`
48
+ // creates the backing table — announced — and fills it afterwards, so a fill that
49
+ // fails drops the table again. Without the scope the statement announces a create
50
+ // and a drop for a table the application never got.
51
+ return withStatementScopedSchemaEvents(rctx, async () => {
52
+ const db = rctx.db;
53
+ const sm = db.schemaManager;
54
+ const existing = sm.getMaintainedTable(plan.schemaName, plan.viewName);
55
+ if (existing) {
56
+ if (plan.ifNotExists)
57
+ return null;
58
+ throw new QuereusError(`Materialized view '${plan.schemaName}.${plan.viewName}' already exists`, StatusCode.ERROR);
59
+ }
60
+ // One namespace now: a plain table occupies the same name a maintained
61
+ // table would. Keep the dedicated diagnostic for both directions.
62
+ if (sm.getTable(plan.schemaName, plan.viewName) || sm.getView(plan.schemaName, plan.viewName)) {
63
+ throw new QuereusError(`Cannot create materialized view '${plan.schemaName}.${plan.viewName}': a table or view with the same name already exists`, StatusCode.CONSTRAINT);
64
+ }
65
+ // The materialize core (derive backing shape → create + fill the
66
+ // maintained table under the MV's own name in the declared host module →
67
+ // attach derivation + register row-time maintenance, rolling back on any
68
+ // throw) is shared with the catalog-import path — see materializeView.
69
+ const mv = await materializeView(db, {
70
+ schemaName: plan.schemaName,
71
+ viewName: plan.viewName,
72
+ // Any `with defaults (…)` rides inside plan.selectStmt (→ selectAst).
73
+ selectAst: plan.selectStmt,
74
+ bodySql: plan.bodySql,
75
+ columns: plan.columns,
76
+ tags: plan.tags,
77
+ backingModuleName: plan.backingModuleName,
78
+ backingModuleArgs: plan.backingModuleArgs,
79
+ });
80
+ sm.getChangeNotifier().notifyChange({
81
+ type: 'materialized_view_added',
82
+ // Stored names of the registered MV — see
83
+ // SchemaManager.canonicalSchemaName for the emitter/stored-name invariant.
84
+ schemaName: mv.schemaName,
85
+ objectName: mv.name,
86
+ newObject: mv,
87
+ });
88
+ return null;
81
89
  });
82
- return null;
83
90
  }
84
91
  return { params: [], run, note: `createMaterializedView(${plan.schemaName}.${plan.viewName})` };
85
92
  }
@@ -94,17 +101,24 @@ export function emitRefreshMaterializedView(plan, _ctx) {
94
101
  // escapes the enclosing transaction exactly as the gated DDL statements do.
95
102
  assertMaintainedTableDdlPolicy(rctx.db, plan.schemaName, plan.viewName, `REFRESH MATERIALIZED VIEW ${plan.viewName}`);
96
103
  await rctx.db._ensureTransaction();
97
- const db = rctx.db;
98
- const sm = db.schemaManager;
99
- const mv = sm.getMaintainedTable(plan.schemaName, plan.viewName);
100
- if (!mv) {
101
- if (sm.getTable(plan.schemaName, plan.viewName)) {
102
- throw new QuereusError(`'${plan.viewName}' is a table, not a materialized view`, StatusCode.ERROR);
104
+ // Statement-scoped schema-event scope (see ddl-event-scope.ts). No demonstrated leak
105
+ // on either path today: the reshape arm does drive module `alterTable` ops before the
106
+ // recomputed rows can reject the refresh, but `reshapeOpToChange` never sets `ddl`, so
107
+ // an emitter-backed module stays silent for them. The scope is the invariant every DDL
108
+ // emitter holds, and the guard if a reshape ever announces.
109
+ return withStatementScopedSchemaEvents(rctx, async () => {
110
+ const db = rctx.db;
111
+ const sm = db.schemaManager;
112
+ const mv = sm.getMaintainedTable(plan.schemaName, plan.viewName);
113
+ if (!mv) {
114
+ if (sm.getTable(plan.schemaName, plan.viewName)) {
115
+ throw new QuereusError(`'${plan.viewName}' is a table, not a materialized view`, StatusCode.ERROR);
116
+ }
117
+ throw new QuereusError(`no such materialized view: ${plan.viewName}`, StatusCode.ERROR);
103
118
  }
104
- throw new QuereusError(`no such materialized view: ${plan.viewName}`, StatusCode.ERROR);
105
- }
106
- await refreshMaintainedTable(db, mv);
107
- return null;
119
+ await refreshMaintainedTable(db, mv);
120
+ return null;
121
+ });
108
122
  }
109
123
  return { params: [], run, note: `refreshMaterializedView(${plan.schemaName}.${plan.viewName})` };
110
124
  }
@@ -214,28 +228,34 @@ export function emitDropMaterializedView(plan, _ctx) {
214
228
  // DROP TABLE.
215
229
  assertMaintainedTableDdlPolicy(rctx.db, plan.schemaName, plan.viewName, `DROP MATERIALIZED VIEW ${plan.viewName}`);
216
230
  await rctx.db._ensureTransaction();
217
- const db = rctx.db;
218
- const sm = db.schemaManager;
219
- const mv = sm.getMaintainedTable(plan.schemaName, plan.viewName);
220
- if (!mv) {
221
- if (plan.ifExists)
222
- return null;
223
- if (sm.getTable(plan.schemaName, plan.viewName)) {
224
- throw new QuereusError(`'${plan.viewName}' is a table, not a materialized view — use DROP TABLE`, StatusCode.ERROR);
225
- }
226
- if (sm.getView(plan.schemaName, plan.viewName)) {
227
- throw new QuereusError(`'${plan.viewName}' is a view, not a materialized view — use DROP VIEW`, StatusCode.ERROR);
231
+ // Statement-scoped schema-event scope (see ddl-event-scope.ts): `dropMaintainedTable`
232
+ // drops the backing table — announced — and then does more work (the
233
+ // `materialized_view_removed` notify and its listeners), so a failure past the drop
234
+ // must not leave the drop announced.
235
+ return withStatementScopedSchemaEvents(rctx, async () => {
236
+ const db = rctx.db;
237
+ const sm = db.schemaManager;
238
+ const mv = sm.getMaintainedTable(plan.schemaName, plan.viewName);
239
+ if (!mv) {
240
+ if (plan.ifExists)
241
+ return null;
242
+ if (sm.getTable(plan.schemaName, plan.viewName)) {
243
+ throw new QuereusError(`'${plan.viewName}' is a table, not a materialized view — use DROP TABLE`, StatusCode.ERROR);
244
+ }
245
+ if (sm.getView(plan.schemaName, plan.viewName)) {
246
+ throw new QuereusError(`'${plan.viewName}' is a view, not a materialized view — use DROP VIEW`, StatusCode.ERROR);
247
+ }
248
+ throw new QuereusError(`no such materialized view: ${plan.viewName}`, StatusCode.ERROR);
228
249
  }
229
- throw new QuereusError(`no such materialized view: ${plan.viewName}`, StatusCode.ERROR);
230
- }
231
- // Same guard DROP TABLE applies — a maintained table is a table to an
232
- // assertion body. `dropMaintainedTable` itself stays unguarded: internal
233
- // rollback / catalog-cleanup paths call it and must not be vetoed.
234
- assertNoAssertionDependsOn(db, plan.schemaName, plan.viewName, 'materialized view');
235
- // …and a table to another table's CHECK / DEFAULT / generated subquery too.
236
- assertNoExpressionDependsOn(db, plan.schemaName, plan.viewName, 'materialized view');
237
- await dropMaintainedTable(db, mv);
238
- return null;
250
+ // Same guard DROP TABLE applies — a maintained table is a table to an
251
+ // assertion body. `dropMaintainedTable` itself stays unguarded: internal
252
+ // rollback / catalog-cleanup paths call it and must not be vetoed.
253
+ assertNoAssertionDependsOn(db, plan.schemaName, plan.viewName, 'materialized view');
254
+ // …and a table to another table's CHECK / DEFAULT / generated subquery too.
255
+ assertNoExpressionDependsOn(db, plan.schemaName, plan.viewName, 'materialized view');
256
+ await dropMaintainedTable(db, mv);
257
+ return null;
258
+ });
239
259
  }
240
260
  return { params: [], run, note: `dropMaterializedView(${plan.schemaName}.${plan.viewName})` };
241
261
  }
@@ -1 +1 @@
1
- {"version":3,"file":"materialized-view.js","sourceRoot":"","sources":["../../../../src/runtime/emit/materialized-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"materialized-view.js","sourceRoot":"","sources":["../../../../src/runtime/emit/materialized-view.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,14 @@ import type { PlanNode } from '../../planner/nodes/plan-node.js';
4
4
  export declare function emitDeclareSchema(plan: PlanNode, _ctx: EmissionContext): Instruction;
5
5
  export declare function emitDeclareLens(plan: PlanNode, _ctx: EmissionContext): Instruction;
6
6
  export declare function emitDiffSchema(plan: PlanNode, _ctx: EmissionContext): Instruction;
7
+ /**
8
+ * Deliberately NOT wrapped in `withStatementScopedSchemaEvents` (see ddl-event-scope.ts),
9
+ * which every other DDL emitter opens around its `run()` body. A failure on the Nth generated
10
+ * migration statement leaves statements 1..N-1 *applied* — there is no catalog rollback, and
11
+ * inside an explicit transaction the user may still commit — so those really happened and must
12
+ * stay announced. Each generated sub-statement runs its own emitter and so carries its own
13
+ * scope: the ones that landed keep their events, the one that failed retracts its own.
14
+ */
7
15
  export declare function emitApplySchema(plan: PlanNode, _ctx: EmissionContext): Instruction;
8
16
  export declare function emitExplainSchema(plan: PlanNode, _ctx: EmissionContext): Instruction;
9
17
  //# sourceMappingURL=schema-declarative.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-declarative.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/schema-declarative.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAU/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AA+EjE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA0CpF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAkClF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAoCjF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA6KlF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA6BpF"}
1
+ {"version":3,"file":"schema-declarative.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/schema-declarative.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAW/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAgFjE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA0CpF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAkClF;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAoCjF;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CAyOlF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,GAAG,WAAW,CA6BpF"}