@quereus/quereus 4.4.0 → 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 (316) 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-materialized-views-plan-builders.d.ts +2 -1
  10. package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -1
  11. package/dist/src/core/database-materialized-views-plan-builders.js +26 -5
  12. package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -1
  13. package/dist/src/core/database-materialized-views-plans.d.ts +6 -3
  14. package/dist/src/core/database-materialized-views-plans.d.ts.map +1 -1
  15. package/dist/src/core/database-materialized-views.d.ts +3 -2
  16. package/dist/src/core/database-materialized-views.d.ts.map +1 -1
  17. package/dist/src/core/database-materialized-views.js +26 -5
  18. package/dist/src/core/database-materialized-views.js.map +1 -1
  19. package/dist/src/core/database.d.ts +5 -0
  20. package/dist/src/core/database.d.ts.map +1 -1
  21. package/dist/src/core/database.js +21 -1
  22. package/dist/src/core/database.js.map +1 -1
  23. package/dist/src/core/internal-statement-cache.d.ts +18 -0
  24. package/dist/src/core/internal-statement-cache.d.ts.map +1 -0
  25. package/dist/src/core/internal-statement-cache.js +211 -0
  26. package/dist/src/core/internal-statement-cache.js.map +1 -0
  27. package/dist/src/func/builtins/aggregate.d.ts +13 -12
  28. package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
  29. package/dist/src/func/builtins/aggregate.js +45 -67
  30. package/dist/src/func/builtins/aggregate.js.map +1 -1
  31. package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
  32. package/dist/src/func/builtins/builtin-window-functions.js +63 -48
  33. package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
  34. package/dist/src/func/registration.d.ts +14 -1
  35. package/dist/src/func/registration.d.ts.map +1 -1
  36. package/dist/src/func/registration.js +25 -0
  37. package/dist/src/func/registration.js.map +1 -1
  38. package/dist/src/index.d.ts +8 -8
  39. package/dist/src/index.d.ts.map +1 -1
  40. package/dist/src/index.js +12 -11
  41. package/dist/src/index.js.map +1 -1
  42. package/dist/src/parser/parser.d.ts +6 -0
  43. package/dist/src/parser/parser.d.ts.map +1 -1
  44. package/dist/src/parser/parser.js +45 -34
  45. package/dist/src/parser/parser.js.map +1 -1
  46. package/dist/src/planner/analysis/comparison-collation.d.ts +2 -0
  47. package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
  48. package/dist/src/planner/analysis/comparison-collation.js +1 -1
  49. package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
  50. package/dist/src/planner/analysis/expression-fingerprint.d.ts.map +1 -1
  51. package/dist/src/planner/analysis/expression-fingerprint.js +29 -0
  52. package/dist/src/planner/analysis/expression-fingerprint.js.map +1 -1
  53. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts +6 -0
  54. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -1
  55. package/dist/src/planner/analysis/query-rewrite-matcher.js +11 -2
  56. package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -1
  57. package/dist/src/planner/analysis/sat-checker.d.ts.map +1 -1
  58. package/dist/src/planner/analysis/sat-checker.js +43 -4
  59. package/dist/src/planner/analysis/sat-checker.js.map +1 -1
  60. package/dist/src/planner/building/delete.d.ts.map +1 -1
  61. package/dist/src/planner/building/delete.js +10 -3
  62. package/dist/src/planner/building/delete.js.map +1 -1
  63. package/dist/src/planner/building/expression.d.ts.map +1 -1
  64. package/dist/src/planner/building/expression.js +87 -6
  65. package/dist/src/planner/building/expression.js.map +1 -1
  66. package/dist/src/planner/building/foreign-key-builder.d.ts +44 -1
  67. package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
  68. package/dist/src/planner/building/foreign-key-builder.js +54 -0
  69. package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
  70. package/dist/src/planner/building/insert.d.ts.map +1 -1
  71. package/dist/src/planner/building/insert.js +9 -12
  72. package/dist/src/planner/building/insert.js.map +1 -1
  73. package/dist/src/planner/building/update.d.ts.map +1 -1
  74. package/dist/src/planner/building/update.js +13 -4
  75. package/dist/src/planner/building/update.js.map +1 -1
  76. package/dist/src/planner/framework/pass.js +3 -3
  77. package/dist/src/planner/nodes/dml-executor-node.d.ts +0 -9
  78. package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
  79. package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
  80. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  81. package/dist/src/planner/nodes/scalar.js +26 -3
  82. package/dist/src/planner/nodes/scalar.js.map +1 -1
  83. package/dist/src/planner/optimizer.d.ts.map +1 -1
  84. package/dist/src/planner/optimizer.js +5 -12
  85. package/dist/src/planner/optimizer.js.map +1 -1
  86. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  87. package/dist/src/planner/rules/access/rule-select-access-path.js +43 -18
  88. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  89. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts.map +1 -1
  90. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +23 -4
  91. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js.map +1 -1
  92. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts +10 -8
  93. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.d.ts.map +1 -1
  94. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js +10 -8
  95. package/dist/src/planner/rules/cache/rule-scalar-subquery-cache.js.map +1 -1
  96. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js +8 -1
  97. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js.map +1 -1
  98. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.js +4 -0
  99. package/dist/src/planner/rules/subquery/rule-scalar-agg-decorrelation.js.map +1 -1
  100. package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
  101. package/dist/src/runtime/deferred-constraint-queue.js +10 -0
  102. package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
  103. package/dist/src/runtime/emit/aggregate-setup.d.ts +49 -0
  104. package/dist/src/runtime/emit/aggregate-setup.d.ts.map +1 -0
  105. package/dist/src/runtime/emit/aggregate-setup.js +99 -0
  106. package/dist/src/runtime/emit/aggregate-setup.js.map +1 -0
  107. package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
  108. package/dist/src/runtime/emit/aggregate.js +4 -69
  109. package/dist/src/runtime/emit/aggregate.js.map +1 -1
  110. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  111. package/dist/src/runtime/emit/alter-table.js +348 -165
  112. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  113. package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
  114. package/dist/src/runtime/emit/asof-scan.js +6 -0
  115. package/dist/src/runtime/emit/asof-scan.js.map +1 -1
  116. package/dist/src/runtime/emit/between.d.ts.map +1 -1
  117. package/dist/src/runtime/emit/between.js +32 -3
  118. package/dist/src/runtime/emit/between.js.map +1 -1
  119. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  120. package/dist/src/runtime/emit/binary.js +22 -2
  121. package/dist/src/runtime/emit/binary.js.map +1 -1
  122. package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
  123. package/dist/src/runtime/emit/bloom-join.js +24 -3
  124. package/dist/src/runtime/emit/bloom-join.js.map +1 -1
  125. package/dist/src/runtime/emit/cast.d.ts.map +1 -1
  126. package/dist/src/runtime/emit/cast.js +10 -23
  127. package/dist/src/runtime/emit/cast.js.map +1 -1
  128. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  129. package/dist/src/runtime/emit/constraint-check.js +41 -44
  130. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  131. package/dist/src/runtime/emit/create-view.d.ts.map +1 -1
  132. package/dist/src/runtime/emit/create-view.js +6 -0
  133. package/dist/src/runtime/emit/create-view.js.map +1 -1
  134. package/dist/src/runtime/emit/distinct.d.ts.map +1 -1
  135. package/dist/src/runtime/emit/distinct.js +6 -3
  136. package/dist/src/runtime/emit/distinct.js.map +1 -1
  137. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  138. package/dist/src/runtime/emit/dml-executor.js +182 -81
  139. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  140. package/dist/src/runtime/emit/hash-aggregate.d.ts.map +1 -1
  141. package/dist/src/runtime/emit/hash-aggregate.js +16 -65
  142. package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
  143. package/dist/src/runtime/emit/insert.d.ts.map +1 -1
  144. package/dist/src/runtime/emit/insert.js +18 -7
  145. package/dist/src/runtime/emit/insert.js.map +1 -1
  146. package/dist/src/runtime/emit/join.js +5 -0
  147. package/dist/src/runtime/emit/join.js.map +1 -1
  148. package/dist/src/runtime/emit/materialized-view-helpers.d.ts +14 -1
  149. package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
  150. package/dist/src/runtime/emit/materialized-view-helpers.js +33 -3
  151. package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
  152. package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
  153. package/dist/src/runtime/emit/materialized-view.js +47 -6
  154. package/dist/src/runtime/emit/materialized-view.js.map +1 -1
  155. package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
  156. package/dist/src/runtime/emit/merge-join.js +18 -8
  157. package/dist/src/runtime/emit/merge-join.js.map +1 -1
  158. package/dist/src/runtime/emit/set-object-tags.d.ts +8 -0
  159. package/dist/src/runtime/emit/set-object-tags.d.ts.map +1 -1
  160. package/dist/src/runtime/emit/set-object-tags.js +8 -0
  161. package/dist/src/runtime/emit/set-object-tags.js.map +1 -1
  162. package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
  163. package/dist/src/runtime/emit/set-operation.js +7 -4
  164. package/dist/src/runtime/emit/set-operation.js.map +1 -1
  165. package/dist/src/runtime/emit/sort.d.ts.map +1 -1
  166. package/dist/src/runtime/emit/sort.js +5 -2
  167. package/dist/src/runtime/emit/sort.js.map +1 -1
  168. package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
  169. package/dist/src/runtime/emit/subquery.js +113 -13
  170. package/dist/src/runtime/emit/subquery.js.map +1 -1
  171. package/dist/src/runtime/emit/temporal-arithmetic.d.ts +7 -0
  172. package/dist/src/runtime/emit/temporal-arithmetic.d.ts.map +1 -1
  173. package/dist/src/runtime/emit/temporal-arithmetic.js +15 -7
  174. package/dist/src/runtime/emit/temporal-arithmetic.js.map +1 -1
  175. package/dist/src/runtime/emit/update.d.ts.map +1 -1
  176. package/dist/src/runtime/emit/update.js +44 -3
  177. package/dist/src/runtime/emit/update.js.map +1 -1
  178. package/dist/src/runtime/emit/window.d.ts.map +1 -1
  179. package/dist/src/runtime/emit/window.js +72 -55
  180. package/dist/src/runtime/emit/window.js.map +1 -1
  181. package/dist/src/runtime/foreign-key-actions.d.ts +36 -1
  182. package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
  183. package/dist/src/runtime/foreign-key-actions.js +238 -116
  184. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  185. package/dist/src/runtime/parallel-driver.d.ts +6 -1
  186. package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
  187. package/dist/src/runtime/parallel-driver.js +7 -1
  188. package/dist/src/runtime/parallel-driver.js.map +1 -1
  189. package/dist/src/runtime/types.d.ts +18 -0
  190. package/dist/src/runtime/types.d.ts.map +1 -1
  191. package/dist/src/runtime/types.js.map +1 -1
  192. package/dist/src/schema/catalog-persistability.d.ts +58 -0
  193. package/dist/src/schema/catalog-persistability.d.ts.map +1 -0
  194. package/dist/src/schema/catalog-persistability.js +87 -0
  195. package/dist/src/schema/catalog-persistability.js.map +1 -0
  196. package/dist/src/schema/catalog.d.ts +17 -1
  197. package/dist/src/schema/catalog.d.ts.map +1 -1
  198. package/dist/src/schema/catalog.js +25 -3
  199. package/dist/src/schema/catalog.js.map +1 -1
  200. package/dist/src/schema/constraint-builder.d.ts +20 -22
  201. package/dist/src/schema/constraint-builder.d.ts.map +1 -1
  202. package/dist/src/schema/constraint-builder.js +43 -36
  203. package/dist/src/schema/constraint-builder.js.map +1 -1
  204. package/dist/src/schema/ddl-generator.d.ts +23 -0
  205. package/dist/src/schema/ddl-generator.d.ts.map +1 -1
  206. package/dist/src/schema/ddl-generator.js +27 -0
  207. package/dist/src/schema/ddl-generator.js.map +1 -1
  208. package/dist/src/schema/function.d.ts +30 -1
  209. package/dist/src/schema/function.d.ts.map +1 -1
  210. package/dist/src/schema/function.js.map +1 -1
  211. package/dist/src/schema/manager.d.ts +28 -0
  212. package/dist/src/schema/manager.d.ts.map +1 -1
  213. package/dist/src/schema/manager.js +82 -14
  214. package/dist/src/schema/manager.js.map +1 -1
  215. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  216. package/dist/src/schema/schema-differ.js +51 -12
  217. package/dist/src/schema/schema-differ.js.map +1 -1
  218. package/dist/src/schema/unique-enforcement.d.ts +31 -0
  219. package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
  220. package/dist/src/schema/unique-enforcement.js +37 -1
  221. package/dist/src/schema/unique-enforcement.js.map +1 -1
  222. package/dist/src/schema/window-function.d.ts +30 -10
  223. package/dist/src/schema/window-function.d.ts.map +1 -1
  224. package/dist/src/schema/window-function.js +20 -16
  225. package/dist/src/schema/window-function.js.map +1 -1
  226. package/dist/src/types/cast-semantics.d.ts +43 -0
  227. package/dist/src/types/cast-semantics.d.ts.map +1 -0
  228. package/dist/src/types/cast-semantics.js +59 -0
  229. package/dist/src/types/cast-semantics.js.map +1 -0
  230. package/dist/src/types/index.d.ts +1 -1
  231. package/dist/src/types/index.d.ts.map +1 -1
  232. package/dist/src/types/index.js +1 -1
  233. package/dist/src/types/index.js.map +1 -1
  234. package/dist/src/types/json-type.d.ts.map +1 -1
  235. package/dist/src/types/json-type.js +31 -10
  236. package/dist/src/types/json-type.js.map +1 -1
  237. package/dist/src/types/logical-type.d.ts +22 -0
  238. package/dist/src/types/logical-type.d.ts.map +1 -1
  239. package/dist/src/types/logical-type.js.map +1 -1
  240. package/dist/src/types/temporal-types.d.ts.map +1 -1
  241. package/dist/src/types/temporal-types.js +33 -11
  242. package/dist/src/types/temporal-types.js.map +1 -1
  243. package/dist/src/types/validation.d.ts +39 -1
  244. package/dist/src/types/validation.d.ts.map +1 -1
  245. package/dist/src/types/validation.js +60 -0
  246. package/dist/src/types/validation.js.map +1 -1
  247. package/dist/src/util/ast-spine-clone.d.ts +23 -0
  248. package/dist/src/util/ast-spine-clone.d.ts.map +1 -0
  249. package/dist/src/util/ast-spine-clone.js +41 -0
  250. package/dist/src/util/ast-spine-clone.js.map +1 -0
  251. package/dist/src/util/coercion.d.ts +13 -0
  252. package/dist/src/util/coercion.d.ts.map +1 -1
  253. package/dist/src/util/coercion.js +10 -1
  254. package/dist/src/util/coercion.js.map +1 -1
  255. package/dist/src/util/comparison.d.ts +89 -0
  256. package/dist/src/util/comparison.d.ts.map +1 -1
  257. package/dist/src/util/comparison.js +156 -27
  258. package/dist/src/util/comparison.js.map +1 -1
  259. package/dist/src/vtab/manifest.d.ts +7 -0
  260. package/dist/src/vtab/manifest.d.ts.map +1 -1
  261. package/dist/src/vtab/memory/connection.d.ts +14 -1
  262. package/dist/src/vtab/memory/connection.d.ts.map +1 -1
  263. package/dist/src/vtab/memory/connection.js +20 -2
  264. package/dist/src/vtab/memory/connection.js.map +1 -1
  265. package/dist/src/vtab/memory/layer/base.d.ts +6 -1
  266. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  267. package/dist/src/vtab/memory/layer/base.js +14 -5
  268. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  269. package/dist/src/vtab/memory/layer/connection.d.ts +17 -0
  270. package/dist/src/vtab/memory/layer/connection.d.ts.map +1 -1
  271. package/dist/src/vtab/memory/layer/connection.js +26 -0
  272. package/dist/src/vtab/memory/layer/connection.js.map +1 -1
  273. package/dist/src/vtab/memory/layer/manager.d.ts +96 -13
  274. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  275. package/dist/src/vtab/memory/layer/manager.js +595 -119
  276. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  277. package/dist/src/vtab/memory/layer/plan-filter.d.ts +41 -20
  278. package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -1
  279. package/dist/src/vtab/memory/layer/plan-filter.js +57 -27
  280. package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -1
  281. package/dist/src/vtab/memory/layer/row-convert.d.ts +21 -0
  282. package/dist/src/vtab/memory/layer/row-convert.d.ts.map +1 -0
  283. package/dist/src/vtab/memory/layer/row-convert.js +30 -0
  284. package/dist/src/vtab/memory/layer/row-convert.js.map +1 -0
  285. package/dist/src/vtab/memory/layer/scan-layer.d.ts +6 -3
  286. package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
  287. package/dist/src/vtab/memory/layer/scan-layer.js +48 -34
  288. package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
  289. package/dist/src/vtab/memory/layer/transaction.d.ts +127 -13
  290. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  291. package/dist/src/vtab/memory/layer/transaction.js +214 -65
  292. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  293. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  294. package/dist/src/vtab/memory/module.js +9 -2
  295. package/dist/src/vtab/memory/module.js.map +1 -1
  296. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  297. package/dist/src/vtab/memory/table.js +3 -2
  298. package/dist/src/vtab/memory/table.js.map +1 -1
  299. package/dist/src/vtab/memory/types.d.ts +27 -1
  300. package/dist/src/vtab/memory/types.d.ts.map +1 -1
  301. package/dist/src/vtab/memory/types.js +16 -1
  302. package/dist/src/vtab/memory/types.js.map +1 -1
  303. package/dist/src/vtab/memory/utils/primary-key.d.ts +9 -0
  304. package/dist/src/vtab/memory/utils/primary-key.d.ts.map +1 -1
  305. package/dist/src/vtab/memory/utils/primary-key.js +11 -0
  306. package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
  307. package/dist/src/vtab/module.d.ts +63 -0
  308. package/dist/src/vtab/module.d.ts.map +1 -1
  309. package/dist/src/vtab/table.d.ts +24 -6
  310. package/dist/src/vtab/table.d.ts.map +1 -1
  311. package/dist/src/vtab/table.js.map +1 -1
  312. package/package.json +3 -3
  313. package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts +0 -26
  314. package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts.map +0 -1
  315. package/dist/src/planner/rules/cache/rule-in-subquery-cache.js +0 -66
  316. package/dist/src/planner/rules/cache/rule-in-subquery-cache.js.map +0 -1
@@ -4,6 +4,7 @@ import { QuereusError } from '../../common/errors.js';
4
4
  import { StatusCode } from '../../common/types.js';
5
5
  import { buildRowDescriptor, composeOldNewRow } from '../../util/row-descriptor.js';
6
6
  import { createRowSlot, withRowContext } from '../context-helpers.js';
7
+ import { buildRowCoercion } from '../../types/validation.js';
7
8
  export function emitUpdate(plan, ctx) {
8
9
  const tableSchema = plan.table.tableSchema;
9
10
  // Create row descriptor for the source rows (needed for assignment expression evaluation)
@@ -30,6 +31,38 @@ export function emitUpdate(plan, ctx) {
30
31
  });
31
32
  // Emit assignment value expressions as callbacks
32
33
  const assignmentEvaluators = plan.assignments.map(assign => emitCallFromPlan(assign.value, ctx));
34
+ // Convert the NEW row to declared column types HERE, driven by static types,
35
+ // so constraint checking and the storage layer (told `preCoerced`) see the
36
+ // declared form exactly once. An assigned column's source type is its
37
+ // assignment expression's type; an unassigned column keeps whatever the
38
+ // source relation reports at that position — for the ordinary target-table
39
+ // scan that is the declared column type itself (identity match ⇒ leave
40
+ // alone: the scanned value is already converted, and e.g. JSON conversion
41
+ // is not repeatable — see buildRowCoercion). Never assume "unassigned ⇒
42
+ // converted": a non-scan source (view decomposition, member insert) reports
43
+ // its own types and converts by the same rule.
44
+ //
45
+ // Split across the two assignment phases so a generated column derives from
46
+ // the value that will actually be STORED, not the raw assignment: phase 1
47
+ // converts the regular assignments (and any unassigned cell whose source
48
+ // type differs), phase 2 the generated cells. A generated column left in
49
+ // place by phase 1 still holds its scanned value, which is already in
50
+ // declared form.
51
+ const sourceAttrs = plan.source.getAttributes();
52
+ const regularCellTypes = tableSchema.columns.map((_, i) => sourceAttrs[i]?.type.logicalType);
53
+ for (const i of regularIndices) {
54
+ regularCellTypes[assignmentTargetIndices[i]] = plan.assignments[i].value.getType().logicalType;
55
+ }
56
+ const coerceRegular = buildRowCoercion(regularCellTypes, tableSchema.columns);
57
+ // After phase 1 every non-generated cell is in declared form (identity ⇒
58
+ // skip), so only the generated cells can still need converting.
59
+ const generatedCellTypes = tableSchema.columns.map(column => column.logicalType);
60
+ for (const i of generatedIndices) {
61
+ generatedCellTypes[assignmentTargetIndices[i]] = plan.assignments[i].value.getType().logicalType;
62
+ }
63
+ const coerceGenerated = generatedIndices.length > 0
64
+ ? buildRowCoercion(generatedCellTypes, tableSchema.columns)
65
+ : undefined;
33
66
  async function* run(rctx, sourceRowsIterable, ...assignmentEvaluators) {
34
67
  const slot = createRowSlot(rctx, sourceRowDescriptor);
35
68
  try {
@@ -38,12 +71,16 @@ export function emitUpdate(plan, ctx) {
38
71
  // Phase 1: Evaluate regular (non-generated) assignment expressions.
39
72
  // Await to support async evaluators (e.g. scalar subqueries) — non-async
40
73
  // callbacks return values directly and `await` is a no-op for them.
41
- const updatedRow = [...sourceRow]; // Copy the original row
74
+ let updatedRow = [...sourceRow]; // Copy the original row
42
75
  for (const i of regularIndices) {
43
76
  const value = await assignmentEvaluators[i](rctx);
44
77
  updatedRow[assignmentTargetIndices[i]] = value;
45
78
  }
46
- // Phase 2: Evaluate generated column expressions against the updated row.
79
+ if (coerceRegular)
80
+ updatedRow = coerceRegular(updatedRow);
81
+ // Phase 2: Evaluate generated column expressions against the updated row,
82
+ // now holding the CONVERTED values of the regular assignments (a generated
83
+ // column must derive from what is stored, not from the raw assignment).
47
84
  // Generated expressions are validated as deterministic (see
48
85
  // validateDeterministicGenerated in update.ts builder), so they cannot
49
86
  // contain scalar subqueries and always return synchronously.
@@ -54,8 +91,12 @@ export function emitUpdate(plan, ctx) {
54
91
  updatedRow[assignmentTargetIndices[i]] = value;
55
92
  }
56
93
  });
94
+ if (coerceGenerated)
95
+ updatedRow = coerceGenerated(updatedRow);
57
96
  }
58
- // Create flat row with OLD (source) and NEW (updated) values for constraint checking
97
+ // Create flat row with OLD (source) and NEW (updated) values for constraint
98
+ // checking. The NEW half is now fully in declared column types; OLD is the
99
+ // scanned row, already in stored form.
59
100
  const flatRow = composeOldNewRow(sourceRow, updatedRow, tableSchema.columns.length);
60
101
  // Yield the flat row for constraint checking
61
102
  // NOTE: UpdateNode only transforms rows - it does NOT execute the actual update
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/runtime/emit/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/runtime/emit/update.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/window.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAG/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAkB9D,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CA0I9E"}
1
+ {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../../src/runtime/emit/window.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAG/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAkB9D,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,GAAG,WAAW,CAkK9E"}
@@ -1,9 +1,10 @@
1
1
  import { asRun } from '../types.js';
2
2
  import { emitPlanNode, emitCallFromPlan } from '../emitters.js';
3
- import { resolveWindowFunction } from '../../schema/window-function.js';
3
+ import { bindWindowSchema, resolveWindowFunction } from '../../schema/window-function.js';
4
+ import { argComparisonContext } from './aggregate-setup.js';
4
5
  import { QuereusError } from '../../common/errors.js';
5
6
  import { StatusCode } from '../../common/types.js';
6
- import { createTypedComparator, createOrderByComparatorFast } from '../../util/comparison.js';
7
+ import { createTypedComparator, createTypedOrderByComparator, semanticKeyTransform } from '../../util/comparison.js';
7
8
  import { hashKeyCollationName } from '../../planner/analysis/comparison-collation.js';
8
9
  import { serializeKeyNullGrouping } from '../../util/key-serializer.js';
9
10
  import { createLogger } from '../../common/logger.js';
@@ -12,13 +13,21 @@ import { createRowSlot } from '../context-helpers.js';
12
13
  import { tryExtractNumericLiteral } from '../../util/ast-literal.js';
13
14
  const log = createLogger('runtime:emit:window');
14
15
  export function emitWindow(plan, ctx) {
15
- // Get schemas for all window functions in this node
16
- const functionSchemas = plan.functions.map(func => {
16
+ // Resolve + bind each window function's schema ONCE here: the call site's
17
+ // argument types and collations specialize comparison-sensitive windows
18
+ // (min/max via bindArgs) so their step ranks by the argument's semantic order,
19
+ // exactly as the min/max aggregate does. Every execution shape below —
20
+ // the buffered frame walk (computeAggregateFunction), the streaming running
21
+ // aggregate (stepRunningAgg) and the sliding-frame scans — folds through THIS
22
+ // schema, so the physical shapes cannot drift apart. Nothing per-row resolves
23
+ // a type or a collation.
24
+ const functionSchemas = plan.functions.map((func, fi) => {
17
25
  const schema = resolveWindowFunction(func.functionName);
18
26
  if (!schema) {
19
27
  throw new QuereusError(`Window function ${func.functionName} not found`, StatusCode.INTERNAL);
20
28
  }
21
- return schema;
29
+ const argBindings = (plan.functionArguments[fi] ?? []).map(argPlan => argComparisonContext(argPlan, ctx));
30
+ return bindWindowSchema(schema, argBindings);
22
31
  });
23
32
  // Emit callbacks for partition expressions
24
33
  const partitionCallbacks = plan.partitionExpressions.map(exprPlan => emitCallFromPlan(exprPlan, ctx));
@@ -30,13 +39,15 @@ export function emitWindow(plan, ctx) {
30
39
  const functionArgCounts = plan.functionArguments.map(args => args.length);
31
40
  // Create row descriptors
32
41
  const sourceRowDescriptor = buildRowDescriptor(plan.source.getAttributes());
33
- // Pre-resolve ORDER BY comparators using actual expression types (not hardcoded BINARY)
42
+ // Pre-resolve ORDER BY comparators using actual expression types (not hardcoded BINARY).
43
+ // Semantic-ordering types (TIMESPAN, JSON) rank by the type's compare — matching the
44
+ // typed peer-equality comparators below, so ordering and peer detection agree.
34
45
  const orderByComparators = plan.orderByExpressions.map((exprPlan, i) => {
35
46
  const exprType = exprPlan.getType();
36
47
  const collationName = exprType.collationName || 'BINARY';
37
48
  const collationFunc = ctx.resolveCollation(collationName);
38
49
  const orderClause = plan.windowSpec.orderBy[i];
39
- return createOrderByComparatorFast(orderClause.direction, orderClause.nulls, collationFunc);
50
+ return createTypedOrderByComparator(exprType.logicalType, orderClause.direction, orderClause.nulls, collationFunc);
40
51
  });
41
52
  // Pre-resolve typed equality comparators for ORDER BY (used in ranking functions)
42
53
  const orderByEqualityComparators = plan.orderByExpressions.map(exprPlan => {
@@ -49,6 +60,18 @@ export function emitWindow(plan, ctx) {
49
60
  const exprType = exprPlan.getType();
50
61
  return ctx.resolveKeyNormalizer(hashKeyCollationName(exprType.collationName, [exprType]));
51
62
  });
63
+ // Partition-key canonicalizers for semantic-ordering key types: values the type's
64
+ // compare treats as equal (TIMESPAN 'PT1H' ≡ 'PT60M') must land in one partition,
65
+ // so they serialize via the type's groupKey representative (mirrors GROUP BY in
66
+ // hash-aggregate.ts).
67
+ const partitionKeyCanonicalizers = plan.partitionExpressions.map(exprPlan => semanticKeyTransform(exprPlan.getType().logicalType));
68
+ const hasPartitionCanonicalizer = partitionKeyCanonicalizers.some(c => c !== undefined);
69
+ const serializePartitionKey = (values) => {
70
+ const keyValues = hasPartitionCanonicalizer
71
+ ? values.map((v, i) => partitionKeyCanonicalizers[i] ? partitionKeyCanonicalizers[i](v) : v)
72
+ : values;
73
+ return serializeKeyNullGrouping(keyValues, partitionKeyNormalizers);
74
+ };
52
75
  async function* run(rctx, source, ...callbacks) {
53
76
  log('Starting window function execution');
54
77
  // Extract callbacks in order: partitions, orderBy, function args
@@ -70,7 +93,7 @@ export function emitWindow(plan, ctx) {
70
93
  // Streaming fast path: source already arrives in
71
94
  // [PARTITION BY..., ORDER BY] order, so we walk it once and emit
72
95
  // in source order without materializing.
73
- yield* runStreaming(plan, functionSchemas, rctx, source, sourceRowDescriptor, partitionCallbackList, orderByCallbackList, funcArgCallbackGroups, partitionKeyNormalizers, orderByEqualityComparators);
96
+ yield* runStreaming(plan, functionSchemas, rctx, source, sourceRowDescriptor, partitionCallbackList, orderByCallbackList, funcArgCallbackGroups, serializePartitionKey, orderByEqualityComparators);
74
97
  return;
75
98
  }
76
99
  // Buffered path: materialize then partition/sort.
@@ -84,7 +107,7 @@ export function emitWindow(plan, ctx) {
84
107
  }
85
108
  else {
86
109
  // With partitioning - group by partition keys
87
- const partitions = await groupByPartitions(allRows, partitionCallbackList, rctx, sourceSlot, partitionKeyNormalizers);
110
+ const partitions = await groupByPartitions(allRows, partitionCallbackList, rctx, sourceSlot, serializePartitionKey);
88
111
  for (const partitionRows of partitions.values()) {
89
112
  yield* processPartition(partitionRows, plan, functionSchemas, rctx, sourceRowDescriptor, partitionCallbackList, orderByCallbackList, funcArgCallbackGroups, sourceSlot, orderByComparators, orderByEqualityComparators);
90
113
  }
@@ -107,7 +130,7 @@ export function emitWindow(plan, ctx) {
107
130
  note: `window(${plan.functions.map(f => f.functionName).join(', ')})`
108
131
  };
109
132
  }
110
- async function groupByPartitions(rows, partitionCallbacks, rctx, sourceSlot, keyNormalizers) {
133
+ async function groupByPartitions(rows, partitionCallbacks, rctx, sourceSlot, serializePartitionKey) {
111
134
  const partitions = new Map();
112
135
  for (const row of rows) {
113
136
  sourceSlot.set(row);
@@ -120,7 +143,7 @@ async function groupByPartitions(rows, partitionCallbacks, rctx, sourceSlot, key
120
143
  const raw = callback(rctx);
121
144
  partitionValues.push((raw instanceof Promise ? await raw : raw));
122
145
  }
123
- const partitionKey = serializeKeyNullGrouping(partitionValues, keyNormalizers);
146
+ const partitionKey = serializePartitionKey(partitionValues);
124
147
  if (!partitions.has(partitionKey)) {
125
148
  partitions.set(partitionKey, []);
126
149
  }
@@ -569,7 +592,7 @@ function arePeers(a, b, cmps) {
569
592
  * Streaming runner. Processes one row at a time, yielding output rows once
570
593
  * their slot values are all finalised.
571
594
  */
572
- async function* runStreaming(plan, functionSchemas, rctx, source, sourceRowDescriptor, partitionCallbacks, orderByCallbacks, funcArgCallbackGroups, partitionKeyNormalizers, orderByEqualityComparators) {
595
+ async function* runStreaming(plan, functionSchemas, rctx, source, sourceRowDescriptor, partitionCallbacks, orderByCallbacks, funcArgCallbackGroups, serializePartitionKey, orderByEqualityComparators) {
573
596
  const streaming = plan.streaming;
574
597
  const funcContexts = plan.functions.map((_func, fi) => ({
575
598
  fi,
@@ -650,7 +673,7 @@ async function* runStreaming(plan, functionSchemas, rctx, source, sourceRowDescr
650
673
  const rawP = cb(rctx);
651
674
  partitionValues.push((rawP instanceof Promise ? await rawP : rawP));
652
675
  }
653
- const partitionKey = serializeKeyNullGrouping(partitionValues, partitionKeyNormalizers);
676
+ const partitionKey = serializePartitionKey(partitionValues);
654
677
  // Resolve ORDER BY values (same shared-subtree concern as above).
655
678
  const orderByValues = [];
656
679
  for (const cb of orderByCallbacks) {
@@ -746,7 +769,7 @@ async function* runStreaming(plan, functionSchemas, rctx, source, sourceRowDescr
746
769
  stepRunningAgg(entry, fi, fs, fc, argVal, isRangeMode);
747
770
  break;
748
771
  case 'slidingAgg':
749
- handleSlidingArrival(entry, fi, fs, argVal, orderByVal0Num);
772
+ handleSlidingArrival(entry, fc, fs, argVal, orderByVal0Num);
750
773
  break;
751
774
  }
752
775
  }
@@ -897,7 +920,7 @@ async function* finalizePartition(state, funcContexts, isRangeMode, rctx, promot
897
920
  const fs = state.funcStates[fi];
898
921
  if (fs.mode.kind !== 'slidingAgg')
899
922
  continue;
900
- finalizeSlidingTrailing(fi, fs);
923
+ finalizeSlidingTrailing(funcContexts[fi], fs);
901
924
  }
902
925
  // Yield queued entries in order. Promote our slot to each entry's row so
903
926
  // downstream attribute resolution sees the correct row.
@@ -956,27 +979,24 @@ function slidingFinalAcc(name, acc) {
956
979
  default: return null;
957
980
  }
958
981
  }
959
- function slidingScanMin(buf, lo, hi) {
960
- let best = null;
961
- for (let k = lo; k <= hi; k++) {
962
- const v = buf[k].argVal;
963
- if (v === null)
964
- continue;
965
- if (best === null || v < best)
966
- best = v;
967
- }
968
- return best;
969
- }
970
- function slidingScanMax(buf, lo, hi) {
971
- let best = null;
982
+ /**
983
+ * MIN/MAX over a sliding-frame buffer slice, folded through the BOUND schema's own
984
+ * step/final rather than a local `<`. Reusing the schema is what keeps the sliding
985
+ * fast path ranking identically to the buffered frame walk — both consume the
986
+ * comparator `bindWindowSchema` installed at emit (semantic ordering for
987
+ * TIMESPAN/JSON arguments, the declared collation for text, storage-class order
988
+ * otherwise). `lo > hi` (empty slice) folds to the empty accumulator ⇒ NULL.
989
+ */
990
+ function slidingScanExtremum(schema, buf, lo, hi) {
991
+ if (!schema.step)
992
+ return null;
993
+ let acc = null;
994
+ let rowCount = 0;
972
995
  for (let k = lo; k <= hi; k++) {
973
- const v = buf[k].argVal;
974
- if (v === null)
975
- continue;
976
- if (best === null || v > best)
977
- best = v;
996
+ acc = schema.step(acc, buf[k].argVal);
997
+ rowCount++;
978
998
  }
979
- return best;
999
+ return schema.final ? schema.final(acc, rowCount) : acc;
980
1000
  }
981
1001
  function slidingScanCountNonNull(buf, lo, hi) {
982
1002
  let n = 0;
@@ -997,28 +1017,29 @@ function slidingScanSum(buf, lo, hi) {
997
1017
  }
998
1018
  return { sum, count };
999
1019
  }
1000
- /** Per-row dispatch for slidingAgg functions. */
1001
- function handleSlidingArrival(entry, fi, fs, argVal, orderByVal0Num) {
1020
+ /** Per-row dispatch for slidingAgg functions. `fc` carries the emit-time-bound
1021
+ * registry schema, consulted by the MIN/MAX scans. */
1022
+ function handleSlidingArrival(entry, fc, fs, argVal, orderByVal0Num) {
1002
1023
  const m = fs.mode;
1003
1024
  fs.slidingBuffer.push({ argVal, orderByVal0: orderByVal0Num });
1004
1025
  if (m.frameMode === 'rows') {
1005
- handleSlidingRowsArrival(entry, fi, fs, m, argVal);
1026
+ handleSlidingRowsArrival(entry, fc, fs, m, argVal);
1006
1027
  }
1007
1028
  else {
1008
- handleSlidingRangeArrival(entry, fi, fs, m, orderByVal0Num);
1029
+ handleSlidingRangeArrival(entry, fc, fs, m, orderByVal0Num);
1009
1030
  }
1010
1031
  }
1011
1032
  // ----- ROWS sliding -----
1012
- function handleSlidingRowsArrival(entry, fi, fs, m, argVal) {
1033
+ function handleSlidingRowsArrival(entry, fc, fs, m, argVal) {
1013
1034
  if (m.name === 'sum' || m.name === 'count' || m.name === 'avg') {
1014
1035
  slidingStepNum(fs.slidingAcc, argVal);
1015
1036
  }
1016
1037
  fs.slidingPending.push(entry);
1017
1038
  while (fs.slidingPending.length > m.following) {
1018
- finalizeSlidingRowsEntry(fi, fs, m);
1039
+ finalizeSlidingRowsEntry(fc, fs, m);
1019
1040
  }
1020
1041
  }
1021
- function finalizeSlidingRowsEntry(fi, fs, m) {
1042
+ function finalizeSlidingRowsEntry(fc, fs, m) {
1022
1043
  const j = fs.slidingNextFinalizeIdx;
1023
1044
  const targetLeft = Math.max(0, j - m.preceding);
1024
1045
  // Trim left: rows that have aged out of the next-pending entry's frame.
@@ -1040,10 +1061,8 @@ function finalizeSlidingRowsEntry(fi, fs, m) {
1040
1061
  value = slidingFinalAcc(m.name, fs.slidingAcc);
1041
1062
  break;
1042
1063
  case 'min':
1043
- value = slidingScanMin(buf, lo, hi);
1044
- break;
1045
1064
  case 'max':
1046
- value = slidingScanMax(buf, lo, hi);
1065
+ value = slidingScanExtremum(fc.schema, buf, lo, hi);
1047
1066
  break;
1048
1067
  case 'first_value':
1049
1068
  value = lo > hi ? null : buf[lo].argVal;
@@ -1055,11 +1074,11 @@ function finalizeSlidingRowsEntry(fi, fs, m) {
1055
1074
  value = null;
1056
1075
  }
1057
1076
  const targetEntry = fs.slidingPending.shift();
1058
- fillSlot(targetEntry, fi, value);
1077
+ fillSlot(targetEntry, fc.fi, value);
1059
1078
  fs.slidingNextFinalizeIdx++;
1060
1079
  }
1061
1080
  // ----- RANGE sliding -----
1062
- function handleSlidingRangeArrival(entry, fi, fs, m, orderByVal0Num) {
1081
+ function handleSlidingRangeArrival(entry, fc, fs, m, orderByVal0Num) {
1063
1082
  const isFinite = Number.isFinite(orderByVal0Num);
1064
1083
  const pending = fs.slidingRangePending;
1065
1084
  pending.push({ entry, v_j: orderByVal0Num, isFinite, rightClosed: false });
@@ -1086,7 +1105,7 @@ function handleSlidingRangeArrival(entry, fi, fs, m, orderByVal0Num) {
1086
1105
  }
1087
1106
  }
1088
1107
  while (pending.length > 0 && pending[0].rightClosed) {
1089
- finalizeSlidingRangeEntry(fi, fs, m);
1108
+ finalizeSlidingRangeEntry(fc, fs, m);
1090
1109
  }
1091
1110
  }
1092
1111
  /**
@@ -1131,7 +1150,7 @@ function findNonFinitePeerSpan(buf) {
1131
1150
  }
1132
1151
  return { lo, hi };
1133
1152
  }
1134
- function finalizeSlidingRangeEntry(fi, fs, m) {
1153
+ function finalizeSlidingRangeEntry(fc, fs, m) {
1135
1154
  const pending = fs.slidingRangePending;
1136
1155
  const head = pending[0];
1137
1156
  const buf = fs.slidingBuffer;
@@ -1163,10 +1182,8 @@ function finalizeSlidingRangeEntry(fi, fs, m) {
1163
1182
  break;
1164
1183
  }
1165
1184
  case 'min':
1166
- value = slidingScanMin(buf, lo, hi);
1167
- break;
1168
1185
  case 'max':
1169
- value = slidingScanMax(buf, lo, hi);
1186
+ value = slidingScanExtremum(fc.schema, buf, lo, hi);
1170
1187
  break;
1171
1188
  case 'first_value':
1172
1189
  value = buf[lo].argVal;
@@ -1178,7 +1195,7 @@ function finalizeSlidingRangeEntry(fi, fs, m) {
1178
1195
  value = null;
1179
1196
  }
1180
1197
  }
1181
- fillSlot(head.entry, fi, value);
1198
+ fillSlot(head.entry, fc.fi, value);
1182
1199
  pending.shift();
1183
1200
  // Trim buffer rows that no remaining pending entry needs.
1184
1201
  trimSlidingRangeBuffer(fs, m);
@@ -1230,16 +1247,16 @@ function trimSlidingRangeBuffer(fs, m) {
1230
1247
  break;
1231
1248
  }
1232
1249
  }
1233
- function finalizeSlidingTrailing(fi, fs) {
1250
+ function finalizeSlidingTrailing(fc, fs) {
1234
1251
  const m = fs.mode;
1235
1252
  if (m.frameMode === 'rows') {
1236
1253
  while (fs.slidingPending.length > 0) {
1237
- finalizeSlidingRowsEntry(fi, fs, m);
1254
+ finalizeSlidingRowsEntry(fc, fs, m);
1238
1255
  }
1239
1256
  }
1240
1257
  else {
1241
1258
  while (fs.slidingRangePending.length > 0) {
1242
- finalizeSlidingRangeEntry(fi, fs, m);
1259
+ finalizeSlidingRangeEntry(fc, fs, m);
1243
1260
  }
1244
1261
  }
1245
1262
  }
@@ -1 +1 @@
1
- {"version":3,"file":"window.js","sourceRoot":"","sources":["../../../../src/runtime/emit/window.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"window.js","sourceRoot":"","sources":["../../../../src/runtime/emit/window.ts"],"names":[],"mappings":"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"}