@quereus/quereus 3.2.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (935) hide show
  1. package/README.md +7 -0
  2. package/dist/src/common/datatype.d.ts +12 -0
  3. package/dist/src/common/datatype.d.ts.map +1 -1
  4. package/dist/src/common/datatype.js.map +1 -1
  5. package/dist/src/common/types.d.ts +24 -0
  6. package/dist/src/common/types.d.ts.map +1 -1
  7. package/dist/src/common/types.js.map +1 -1
  8. package/dist/src/core/database-assertions.d.ts +37 -9
  9. package/dist/src/core/database-assertions.d.ts.map +1 -1
  10. package/dist/src/core/database-assertions.js +62 -106
  11. package/dist/src/core/database-assertions.js.map +1 -1
  12. package/dist/src/core/database-events.d.ts +163 -0
  13. package/dist/src/core/database-events.d.ts.map +1 -1
  14. package/dist/src/core/database-events.js +235 -21
  15. package/dist/src/core/database-events.js.map +1 -1
  16. package/dist/src/core/database-external-changes.d.ts +28 -0
  17. package/dist/src/core/database-external-changes.d.ts.map +1 -0
  18. package/dist/src/core/database-external-changes.js +242 -0
  19. package/dist/src/core/database-external-changes.js.map +1 -0
  20. package/dist/src/core/database-internal.d.ts +50 -1
  21. package/dist/src/core/database-internal.d.ts.map +1 -1
  22. package/dist/src/core/database-materialized-views.d.ts +1253 -0
  23. package/dist/src/core/database-materialized-views.d.ts.map +1 -0
  24. package/dist/src/core/database-materialized-views.js +3064 -0
  25. package/dist/src/core/database-materialized-views.js.map +1 -0
  26. package/dist/src/core/database-options.d.ts +4 -0
  27. package/dist/src/core/database-options.d.ts.map +1 -1
  28. package/dist/src/core/database-options.js +10 -0
  29. package/dist/src/core/database-options.js.map +1 -1
  30. package/dist/src/core/database-transaction.d.ts +19 -3
  31. package/dist/src/core/database-transaction.d.ts.map +1 -1
  32. package/dist/src/core/database-transaction.js +30 -3
  33. package/dist/src/core/database-transaction.js.map +1 -1
  34. package/dist/src/core/database-watchers.d.ts +19 -0
  35. package/dist/src/core/database-watchers.d.ts.map +1 -1
  36. package/dist/src/core/database-watchers.js +63 -3
  37. package/dist/src/core/database-watchers.js.map +1 -1
  38. package/dist/src/core/database.d.ts +203 -11
  39. package/dist/src/core/database.d.ts.map +1 -1
  40. package/dist/src/core/database.js +493 -29
  41. package/dist/src/core/database.js.map +1 -1
  42. package/dist/src/core/derived-row-validator.d.ts +137 -0
  43. package/dist/src/core/derived-row-validator.d.ts.map +1 -0
  44. package/dist/src/core/derived-row-validator.js +314 -0
  45. package/dist/src/core/derived-row-validator.js.map +1 -0
  46. package/dist/src/core/statement.d.ts.map +1 -1
  47. package/dist/src/core/statement.js +30 -9
  48. package/dist/src/core/statement.js.map +1 -1
  49. package/dist/src/emit/ast-stringify.d.ts +135 -1
  50. package/dist/src/emit/ast-stringify.d.ts.map +1 -1
  51. package/dist/src/emit/ast-stringify.js +795 -120
  52. package/dist/src/emit/ast-stringify.js.map +1 -1
  53. package/dist/src/func/builtins/aggregate.d.ts.map +1 -1
  54. package/dist/src/func/builtins/aggregate.js +11 -10
  55. package/dist/src/func/builtins/aggregate.js.map +1 -1
  56. package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
  57. package/dist/src/func/builtins/builtin-window-functions.js +32 -0
  58. package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
  59. package/dist/src/func/builtins/explain.d.ts +3 -0
  60. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  61. package/dist/src/func/builtins/explain.js +229 -0
  62. package/dist/src/func/builtins/explain.js.map +1 -1
  63. package/dist/src/func/builtins/index.d.ts.map +1 -1
  64. package/dist/src/func/builtins/index.js +10 -2
  65. package/dist/src/func/builtins/index.js.map +1 -1
  66. package/dist/src/func/builtins/json.d.ts.map +1 -1
  67. package/dist/src/func/builtins/json.js +3 -2
  68. package/dist/src/func/builtins/json.js.map +1 -1
  69. package/dist/src/func/builtins/mutation.d.ts +2 -0
  70. package/dist/src/func/builtins/mutation.d.ts.map +1 -0
  71. package/dist/src/func/builtins/mutation.js +53 -0
  72. package/dist/src/func/builtins/mutation.js.map +1 -0
  73. package/dist/src/func/builtins/schema.d.ts +2 -0
  74. package/dist/src/func/builtins/schema.d.ts.map +1 -1
  75. package/dist/src/func/builtins/schema.js +713 -26
  76. package/dist/src/func/builtins/schema.js.map +1 -1
  77. package/dist/src/func/builtins/string.js +1 -1
  78. package/dist/src/func/builtins/string.js.map +1 -1
  79. package/dist/src/func/registration.d.ts +9 -0
  80. package/dist/src/func/registration.d.ts.map +1 -1
  81. package/dist/src/func/registration.js +4 -0
  82. package/dist/src/func/registration.js.map +1 -1
  83. package/dist/src/index.d.ts +25 -6
  84. package/dist/src/index.d.ts.map +1 -1
  85. package/dist/src/index.js +27 -3
  86. package/dist/src/index.js.map +1 -1
  87. package/dist/src/parser/ast.d.ts +353 -21
  88. package/dist/src/parser/ast.d.ts.map +1 -1
  89. package/dist/src/parser/index.d.ts +14 -1
  90. package/dist/src/parser/index.d.ts.map +1 -1
  91. package/dist/src/parser/index.js +19 -0
  92. package/dist/src/parser/index.js.map +1 -1
  93. package/dist/src/parser/lexer.d.ts +9 -0
  94. package/dist/src/parser/lexer.d.ts.map +1 -1
  95. package/dist/src/parser/lexer.js +9 -0
  96. package/dist/src/parser/lexer.js.map +1 -1
  97. package/dist/src/parser/parser.d.ts +277 -8
  98. package/dist/src/parser/parser.d.ts.map +1 -1
  99. package/dist/src/parser/parser.js +1393 -471
  100. package/dist/src/parser/parser.js.map +1 -1
  101. package/dist/src/parser/visitor.d.ts.map +1 -1
  102. package/dist/src/parser/visitor.js +12 -8
  103. package/dist/src/parser/visitor.js.map +1 -1
  104. package/dist/src/planner/analysis/assertion-classifier.d.ts.map +1 -1
  105. package/dist/src/planner/analysis/assertion-classifier.js +4 -0
  106. package/dist/src/planner/analysis/assertion-classifier.js.map +1 -1
  107. package/dist/src/planner/analysis/assertion-hoist-cache.d.ts.map +1 -1
  108. package/dist/src/planner/analysis/assertion-hoist-cache.js +8 -4
  109. package/dist/src/planner/analysis/assertion-hoist-cache.js.map +1 -1
  110. package/dist/src/planner/analysis/authored-inverse.d.ts +22 -0
  111. package/dist/src/planner/analysis/authored-inverse.d.ts.map +1 -0
  112. package/dist/src/planner/analysis/authored-inverse.js +267 -0
  113. package/dist/src/planner/analysis/authored-inverse.js.map +1 -0
  114. package/dist/src/planner/analysis/binding-extractor.d.ts.map +1 -1
  115. package/dist/src/planner/analysis/binding-extractor.js +9 -6
  116. package/dist/src/planner/analysis/binding-extractor.js.map +1 -1
  117. package/dist/src/planner/analysis/change-scope.d.ts +34 -4
  118. package/dist/src/planner/analysis/change-scope.d.ts.map +1 -1
  119. package/dist/src/planner/analysis/change-scope.js +115 -7
  120. package/dist/src/planner/analysis/change-scope.js.map +1 -1
  121. package/dist/src/planner/analysis/check-extraction.d.ts +36 -2
  122. package/dist/src/planner/analysis/check-extraction.d.ts.map +1 -1
  123. package/dist/src/planner/analysis/check-extraction.js +174 -46
  124. package/dist/src/planner/analysis/check-extraction.js.map +1 -1
  125. package/dist/src/planner/analysis/coarsened-key.d.ts +109 -0
  126. package/dist/src/planner/analysis/coarsened-key.d.ts.map +1 -0
  127. package/dist/src/planner/analysis/coarsened-key.js +228 -0
  128. package/dist/src/planner/analysis/coarsened-key.js.map +1 -0
  129. package/dist/src/planner/analysis/comparison-collation.d.ts +216 -0
  130. package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -0
  131. package/dist/src/planner/analysis/comparison-collation.js +341 -0
  132. package/dist/src/planner/analysis/comparison-collation.js.map +1 -0
  133. package/dist/src/planner/analysis/constraint-extractor.d.ts +13 -1
  134. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  135. package/dist/src/planner/analysis/constraint-extractor.js +220 -21
  136. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  137. package/dist/src/planner/analysis/coverage-prover.d.ts +321 -0
  138. package/dist/src/planner/analysis/coverage-prover.d.ts.map +1 -0
  139. package/dist/src/planner/analysis/coverage-prover.js +1038 -0
  140. package/dist/src/planner/analysis/coverage-prover.js.map +1 -0
  141. package/dist/src/planner/analysis/key-filter.d.ts +22 -0
  142. package/dist/src/planner/analysis/key-filter.d.ts.map +1 -0
  143. package/dist/src/planner/analysis/key-filter.js +105 -0
  144. package/dist/src/planner/analysis/key-filter.js.map +1 -0
  145. package/dist/src/planner/analysis/partial-unique-extraction.d.ts +36 -1
  146. package/dist/src/planner/analysis/partial-unique-extraction.d.ts.map +1 -1
  147. package/dist/src/planner/analysis/partial-unique-extraction.js +148 -22
  148. package/dist/src/planner/analysis/partial-unique-extraction.js.map +1 -1
  149. package/dist/src/planner/analysis/predicate-normalizer.d.ts.map +1 -1
  150. package/dist/src/planner/analysis/predicate-normalizer.js +30 -1
  151. package/dist/src/planner/analysis/predicate-normalizer.js.map +1 -1
  152. package/dist/src/planner/analysis/predicate-shape.d.ts +36 -1
  153. package/dist/src/planner/analysis/predicate-shape.d.ts.map +1 -1
  154. package/dist/src/planner/analysis/predicate-shape.js +51 -13
  155. package/dist/src/planner/analysis/predicate-shape.js.map +1 -1
  156. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts +314 -0
  157. package/dist/src/planner/analysis/query-rewrite-matcher.d.ts.map +1 -0
  158. package/dist/src/planner/analysis/query-rewrite-matcher.js +1081 -0
  159. package/dist/src/planner/analysis/query-rewrite-matcher.js.map +1 -0
  160. package/dist/src/planner/analysis/scalar-invertibility.d.ts +92 -0
  161. package/dist/src/planner/analysis/scalar-invertibility.d.ts.map +1 -0
  162. package/dist/src/planner/analysis/scalar-invertibility.js +129 -0
  163. package/dist/src/planner/analysis/scalar-invertibility.js.map +1 -0
  164. package/dist/src/planner/analysis/update-lineage.d.ts +196 -0
  165. package/dist/src/planner/analysis/update-lineage.d.ts.map +1 -0
  166. package/dist/src/planner/analysis/update-lineage.js +322 -0
  167. package/dist/src/planner/analysis/update-lineage.js.map +1 -0
  168. package/dist/src/planner/analysis/view-complement.d.ts +42 -0
  169. package/dist/src/planner/analysis/view-complement.d.ts.map +1 -0
  170. package/dist/src/planner/analysis/view-complement.js +54 -0
  171. package/dist/src/planner/analysis/view-complement.js.map +1 -0
  172. package/dist/src/planner/building/alter-table.d.ts +1 -1
  173. package/dist/src/planner/building/alter-table.d.ts.map +1 -1
  174. package/dist/src/planner/building/alter-table.js +211 -2
  175. package/dist/src/planner/building/alter-table.js.map +1 -1
  176. package/dist/src/planner/building/block.d.ts.map +1 -1
  177. package/dist/src/planner/building/block.js +18 -1
  178. package/dist/src/planner/building/block.js.map +1 -1
  179. package/dist/src/planner/building/constraint-builder.d.ts +33 -5
  180. package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
  181. package/dist/src/planner/building/constraint-builder.js +63 -28
  182. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  183. package/dist/src/planner/building/create-view.d.ts +9 -0
  184. package/dist/src/planner/building/create-view.d.ts.map +1 -1
  185. package/dist/src/planner/building/create-view.js +41 -12
  186. package/dist/src/planner/building/create-view.js.map +1 -1
  187. package/dist/src/planner/building/ddl.d.ts.map +1 -1
  188. package/dist/src/planner/building/ddl.js +94 -0
  189. package/dist/src/planner/building/ddl.js.map +1 -1
  190. package/dist/src/planner/building/declare-schema.d.ts +1 -0
  191. package/dist/src/planner/building/declare-schema.d.ts.map +1 -1
  192. package/dist/src/planner/building/declare-schema.js +4 -1
  193. package/dist/src/planner/building/declare-schema.js.map +1 -1
  194. package/dist/src/planner/building/default-scope.d.ts +26 -0
  195. package/dist/src/planner/building/default-scope.d.ts.map +1 -0
  196. package/dist/src/planner/building/default-scope.js +41 -0
  197. package/dist/src/planner/building/default-scope.js.map +1 -0
  198. package/dist/src/planner/building/delete.d.ts +19 -1
  199. package/dist/src/planner/building/delete.d.ts.map +1 -1
  200. package/dist/src/planner/building/delete.js +116 -34
  201. package/dist/src/planner/building/delete.js.map +1 -1
  202. package/dist/src/planner/building/dml-target.d.ts +118 -0
  203. package/dist/src/planner/building/dml-target.d.ts.map +1 -0
  204. package/dist/src/planner/building/dml-target.js +282 -0
  205. package/dist/src/planner/building/dml-target.js.map +1 -0
  206. package/dist/src/planner/building/drop-index.d.ts.map +1 -1
  207. package/dist/src/planner/building/drop-index.js +4 -1
  208. package/dist/src/planner/building/drop-index.js.map +1 -1
  209. package/dist/src/planner/building/drop-view.d.ts.map +1 -1
  210. package/dist/src/planner/building/drop-view.js +4 -2
  211. package/dist/src/planner/building/drop-view.js.map +1 -1
  212. package/dist/src/planner/building/expression.d.ts.map +1 -1
  213. package/dist/src/planner/building/expression.js +60 -21
  214. package/dist/src/planner/building/expression.js.map +1 -1
  215. package/dist/src/planner/building/foreign-key-builder.d.ts +30 -0
  216. package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
  217. package/dist/src/planner/building/foreign-key-builder.js +160 -129
  218. package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
  219. package/dist/src/planner/building/insert.d.ts +45 -2
  220. package/dist/src/planner/building/insert.d.ts.map +1 -1
  221. package/dist/src/planner/building/insert.js +257 -88
  222. package/dist/src/planner/building/insert.js.map +1 -1
  223. package/dist/src/planner/building/lens-auxiliary-access.d.ts +22 -0
  224. package/dist/src/planner/building/lens-auxiliary-access.d.ts.map +1 -0
  225. package/dist/src/planner/building/lens-auxiliary-access.js +132 -0
  226. package/dist/src/planner/building/lens-auxiliary-access.js.map +1 -0
  227. package/dist/src/planner/building/materialized-view.d.ts +16 -0
  228. package/dist/src/planner/building/materialized-view.d.ts.map +1 -0
  229. package/dist/src/planner/building/materialized-view.js +57 -0
  230. package/dist/src/planner/building/materialized-view.js.map +1 -0
  231. package/dist/src/planner/building/returning-star.d.ts +32 -0
  232. package/dist/src/planner/building/returning-star.d.ts.map +1 -0
  233. package/dist/src/planner/building/returning-star.js +45 -0
  234. package/dist/src/planner/building/returning-star.js.map +1 -0
  235. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  236. package/dist/src/planner/building/select-aggregates.js +51 -13
  237. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  238. package/dist/src/planner/building/select-compound.d.ts.map +1 -1
  239. package/dist/src/planner/building/select-compound.js +84 -11
  240. package/dist/src/planner/building/select-compound.js.map +1 -1
  241. package/dist/src/planner/building/select-context.d.ts +10 -2
  242. package/dist/src/planner/building/select-context.d.ts.map +1 -1
  243. package/dist/src/planner/building/select-context.js +7 -1
  244. package/dist/src/planner/building/select-context.js.map +1 -1
  245. package/dist/src/planner/building/select-modifiers.js +6 -0
  246. package/dist/src/planner/building/select-modifiers.js.map +1 -1
  247. package/dist/src/planner/building/select-ordinal.d.ts +18 -0
  248. package/dist/src/planner/building/select-ordinal.d.ts.map +1 -1
  249. package/dist/src/planner/building/select-ordinal.js +30 -0
  250. package/dist/src/planner/building/select-ordinal.js.map +1 -1
  251. package/dist/src/planner/building/select-projections.d.ts +8 -2
  252. package/dist/src/planner/building/select-projections.d.ts.map +1 -1
  253. package/dist/src/planner/building/select-projections.js +26 -4
  254. package/dist/src/planner/building/select-projections.js.map +1 -1
  255. package/dist/src/planner/building/select-window.d.ts.map +1 -1
  256. package/dist/src/planner/building/select-window.js +8 -5
  257. package/dist/src/planner/building/select-window.js.map +1 -1
  258. package/dist/src/planner/building/select.d.ts.map +1 -1
  259. package/dist/src/planner/building/select.js +164 -59
  260. package/dist/src/planner/building/select.js.map +1 -1
  261. package/dist/src/planner/building/set-object-tags.d.ts +7 -0
  262. package/dist/src/planner/building/set-object-tags.d.ts.map +1 -0
  263. package/dist/src/planner/building/set-object-tags.js +38 -0
  264. package/dist/src/planner/building/set-object-tags.js.map +1 -0
  265. package/dist/src/planner/building/tag-diagnostics.d.ts +27 -0
  266. package/dist/src/planner/building/tag-diagnostics.d.ts.map +1 -0
  267. package/dist/src/planner/building/tag-diagnostics.js +37 -0
  268. package/dist/src/planner/building/tag-diagnostics.js.map +1 -0
  269. package/dist/src/planner/building/update.d.ts +18 -1
  270. package/dist/src/planner/building/update.d.ts.map +1 -1
  271. package/dist/src/planner/building/update.js +134 -58
  272. package/dist/src/planner/building/update.js.map +1 -1
  273. package/dist/src/planner/building/view-mutation-builder.d.ts +15 -0
  274. package/dist/src/planner/building/view-mutation-builder.d.ts.map +1 -0
  275. package/dist/src/planner/building/view-mutation-builder.js +1158 -0
  276. package/dist/src/planner/building/view-mutation-builder.js.map +1 -0
  277. package/dist/src/planner/building/with.d.ts +11 -0
  278. package/dist/src/planner/building/with.d.ts.map +1 -1
  279. package/dist/src/planner/building/with.js +48 -10
  280. package/dist/src/planner/building/with.js.map +1 -1
  281. package/dist/src/planner/cost/index.d.ts +83 -0
  282. package/dist/src/planner/cost/index.d.ts.map +1 -1
  283. package/dist/src/planner/cost/index.js +114 -0
  284. package/dist/src/planner/cost/index.js.map +1 -1
  285. package/dist/src/planner/framework/characteristics.d.ts +38 -4
  286. package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
  287. package/dist/src/planner/framework/characteristics.js +50 -6
  288. package/dist/src/planner/framework/characteristics.js.map +1 -1
  289. package/dist/src/planner/framework/pass.d.ts.map +1 -1
  290. package/dist/src/planner/framework/pass.js +2 -1
  291. package/dist/src/planner/framework/pass.js.map +1 -1
  292. package/dist/src/planner/framework/physical-utils.d.ts.map +1 -1
  293. package/dist/src/planner/framework/physical-utils.js +7 -1
  294. package/dist/src/planner/framework/physical-utils.js.map +1 -1
  295. package/dist/src/planner/framework/registry.d.ts +39 -1
  296. package/dist/src/planner/framework/registry.d.ts.map +1 -1
  297. package/dist/src/planner/framework/registry.js +18 -2
  298. package/dist/src/planner/framework/registry.js.map +1 -1
  299. package/dist/src/planner/mutation/backward-body.d.ts +131 -0
  300. package/dist/src/planner/mutation/backward-body.d.ts.map +1 -0
  301. package/dist/src/planner/mutation/backward-body.js +135 -0
  302. package/dist/src/planner/mutation/backward-body.js.map +1 -0
  303. package/dist/src/planner/mutation/cte-flatten.d.ts +17 -0
  304. package/dist/src/planner/mutation/cte-flatten.d.ts.map +1 -0
  305. package/dist/src/planner/mutation/cte-flatten.js +364 -0
  306. package/dist/src/planner/mutation/cte-flatten.js.map +1 -0
  307. package/dist/src/planner/mutation/decomposition.d.ts +273 -0
  308. package/dist/src/planner/mutation/decomposition.d.ts.map +1 -0
  309. package/dist/src/planner/mutation/decomposition.js +1719 -0
  310. package/dist/src/planner/mutation/decomposition.js.map +1 -0
  311. package/dist/src/planner/mutation/lens-enforcement.d.ts +165 -0
  312. package/dist/src/planner/mutation/lens-enforcement.d.ts.map +1 -0
  313. package/dist/src/planner/mutation/lens-enforcement.js +745 -0
  314. package/dist/src/planner/mutation/lens-enforcement.js.map +1 -0
  315. package/dist/src/planner/mutation/multi-source.d.ts +568 -0
  316. package/dist/src/planner/mutation/multi-source.d.ts.map +1 -0
  317. package/dist/src/planner/mutation/multi-source.js +2915 -0
  318. package/dist/src/planner/mutation/multi-source.js.map +1 -0
  319. package/dist/src/planner/mutation/mutation-diagnostic.d.ts +37 -0
  320. package/dist/src/planner/mutation/mutation-diagnostic.d.ts.map +1 -0
  321. package/dist/src/planner/mutation/mutation-diagnostic.js +24 -0
  322. package/dist/src/planner/mutation/mutation-diagnostic.js.map +1 -0
  323. package/dist/src/planner/mutation/mutation-tags.d.ts +33 -0
  324. package/dist/src/planner/mutation/mutation-tags.d.ts.map +1 -0
  325. package/dist/src/planner/mutation/mutation-tags.js +31 -0
  326. package/dist/src/planner/mutation/mutation-tags.js.map +1 -0
  327. package/dist/src/planner/mutation/propagate.d.ts +97 -0
  328. package/dist/src/planner/mutation/propagate.d.ts.map +1 -0
  329. package/dist/src/planner/mutation/propagate.js +220 -0
  330. package/dist/src/planner/mutation/propagate.js.map +1 -0
  331. package/dist/src/planner/mutation/scope-transform.d.ts +181 -0
  332. package/dist/src/planner/mutation/scope-transform.d.ts.map +1 -0
  333. package/dist/src/planner/mutation/scope-transform.js +574 -0
  334. package/dist/src/planner/mutation/scope-transform.js.map +1 -0
  335. package/dist/src/planner/mutation/set-op.d.ts +242 -0
  336. package/dist/src/planner/mutation/set-op.d.ts.map +1 -0
  337. package/dist/src/planner/mutation/set-op.js +1687 -0
  338. package/dist/src/planner/mutation/set-op.js.map +1 -0
  339. package/dist/src/planner/mutation/single-source.d.ts +261 -0
  340. package/dist/src/planner/mutation/single-source.d.ts.map +1 -0
  341. package/dist/src/planner/mutation/single-source.js +1096 -0
  342. package/dist/src/planner/mutation/single-source.js.map +1 -0
  343. package/dist/src/planner/nodes/aggregate-node.d.ts +6 -4
  344. package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
  345. package/dist/src/planner/nodes/aggregate-node.js +11 -9
  346. package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
  347. package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
  348. package/dist/src/planner/nodes/alias-node.js +5 -1
  349. package/dist/src/planner/nodes/alias-node.js.map +1 -1
  350. package/dist/src/planner/nodes/alter-table-node.d.ts +124 -1
  351. package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
  352. package/dist/src/planner/nodes/alter-table-node.js +27 -0
  353. package/dist/src/planner/nodes/alter-table-node.js.map +1 -1
  354. package/dist/src/planner/nodes/analyze-node.d.ts +2 -1
  355. package/dist/src/planner/nodes/analyze-node.d.ts.map +1 -1
  356. package/dist/src/planner/nodes/analyze-node.js +21 -1
  357. package/dist/src/planner/nodes/analyze-node.js.map +1 -1
  358. package/dist/src/planner/nodes/asserted-keys-node.d.ts +43 -0
  359. package/dist/src/planner/nodes/asserted-keys-node.d.ts.map +1 -0
  360. package/dist/src/planner/nodes/asserted-keys-node.js +99 -0
  361. package/dist/src/planner/nodes/asserted-keys-node.js.map +1 -0
  362. package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -1
  363. package/dist/src/planner/nodes/async-gather-node.js +33 -8
  364. package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
  365. package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
  366. package/dist/src/planner/nodes/bloom-join-node.js +2 -1
  367. package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
  368. package/dist/src/planner/nodes/create-view-node.d.ts +7 -2
  369. package/dist/src/planner/nodes/create-view-node.d.ts.map +1 -1
  370. package/dist/src/planner/nodes/create-view-node.js +4 -1
  371. package/dist/src/planner/nodes/create-view-node.js.map +1 -1
  372. package/dist/src/planner/nodes/declarative-schema.d.ts +13 -1
  373. package/dist/src/planner/nodes/declarative-schema.d.ts.map +1 -1
  374. package/dist/src/planner/nodes/declarative-schema.js +32 -0
  375. package/dist/src/planner/nodes/declarative-schema.js.map +1 -1
  376. package/dist/src/planner/nodes/distinct-node.d.ts.map +1 -1
  377. package/dist/src/planner/nodes/distinct-node.js +2 -0
  378. package/dist/src/planner/nodes/distinct-node.js.map +1 -1
  379. package/dist/src/planner/nodes/dml-executor-node.d.ts +29 -1
  380. package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
  381. package/dist/src/planner/nodes/dml-executor-node.js +27 -3
  382. package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
  383. package/dist/src/planner/nodes/eager-prefetch-node.d.ts.map +1 -1
  384. package/dist/src/planner/nodes/eager-prefetch-node.js +2 -0
  385. package/dist/src/planner/nodes/eager-prefetch-node.js.map +1 -1
  386. package/dist/src/planner/nodes/envelope-scan-node.d.ts +42 -0
  387. package/dist/src/planner/nodes/envelope-scan-node.d.ts.map +1 -0
  388. package/dist/src/planner/nodes/envelope-scan-node.js +62 -0
  389. package/dist/src/planner/nodes/envelope-scan-node.js.map +1 -0
  390. package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts.map +1 -1
  391. package/dist/src/planner/nodes/fanout-lookup-join-node.js +11 -1
  392. package/dist/src/planner/nodes/fanout-lookup-join-node.js.map +1 -1
  393. package/dist/src/planner/nodes/filter.d.ts.map +1 -1
  394. package/dist/src/planner/nodes/filter.js +63 -13
  395. package/dist/src/planner/nodes/filter.js.map +1 -1
  396. package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
  397. package/dist/src/planner/nodes/hash-aggregate.js +6 -16
  398. package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
  399. package/dist/src/planner/nodes/join-node.d.ts +41 -1
  400. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  401. package/dist/src/planner/nodes/join-node.js +78 -8
  402. package/dist/src/planner/nodes/join-node.js.map +1 -1
  403. package/dist/src/planner/nodes/join-utils.d.ts +33 -6
  404. package/dist/src/planner/nodes/join-utils.d.ts.map +1 -1
  405. package/dist/src/planner/nodes/join-utils.js +131 -10
  406. package/dist/src/planner/nodes/join-utils.js.map +1 -1
  407. package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts +104 -0
  408. package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts.map +1 -0
  409. package/dist/src/planner/nodes/lens-auxiliary-access-node.js +91 -0
  410. package/dist/src/planner/nodes/lens-auxiliary-access-node.js.map +1 -0
  411. package/dist/src/planner/nodes/limit-offset.d.ts +12 -0
  412. package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
  413. package/dist/src/planner/nodes/limit-offset.js +52 -3
  414. package/dist/src/planner/nodes/limit-offset.js.map +1 -1
  415. package/dist/src/planner/nodes/materialized-view-nodes.d.ts +69 -0
  416. package/dist/src/planner/nodes/materialized-view-nodes.d.ts.map +1 -0
  417. package/dist/src/planner/nodes/materialized-view-nodes.js +111 -0
  418. package/dist/src/planner/nodes/materialized-view-nodes.js.map +1 -0
  419. package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
  420. package/dist/src/planner/nodes/merge-join-node.js +2 -1
  421. package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
  422. package/dist/src/planner/nodes/ordinal-slice-node.d.ts.map +1 -1
  423. package/dist/src/planner/nodes/ordinal-slice-node.js +2 -0
  424. package/dist/src/planner/nodes/ordinal-slice-node.js.map +1 -1
  425. package/dist/src/planner/nodes/plan-node-type.d.ts +9 -0
  426. package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
  427. package/dist/src/planner/nodes/plan-node-type.js +9 -0
  428. package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
  429. package/dist/src/planner/nodes/plan-node.d.ts +265 -5
  430. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  431. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  432. package/dist/src/planner/nodes/pragma.d.ts +2 -1
  433. package/dist/src/planner/nodes/pragma.d.ts.map +1 -1
  434. package/dist/src/planner/nodes/pragma.js +12 -0
  435. package/dist/src/planner/nodes/pragma.js.map +1 -1
  436. package/dist/src/planner/nodes/project-node.d.ts +14 -1
  437. package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
  438. package/dist/src/planner/nodes/project-node.js +103 -16
  439. package/dist/src/planner/nodes/project-node.js.map +1 -1
  440. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  441. package/dist/src/planner/nodes/reference.js +63 -30
  442. package/dist/src/planner/nodes/reference.js.map +1 -1
  443. package/dist/src/planner/nodes/retrieve-node.d.ts.map +1 -1
  444. package/dist/src/planner/nodes/retrieve-node.js +7 -0
  445. package/dist/src/planner/nodes/retrieve-node.js.map +1 -1
  446. package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
  447. package/dist/src/planner/nodes/returning-node.js +10 -3
  448. package/dist/src/planner/nodes/returning-node.js.map +1 -1
  449. package/dist/src/planner/nodes/scalar.d.ts +20 -0
  450. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  451. package/dist/src/planner/nodes/scalar.js +71 -14
  452. package/dist/src/planner/nodes/scalar.js.map +1 -1
  453. package/dist/src/planner/nodes/set-object-tags-node.d.ts +39 -0
  454. package/dist/src/planner/nodes/set-object-tags-node.d.ts.map +1 -0
  455. package/dist/src/planner/nodes/set-object-tags-node.js +41 -0
  456. package/dist/src/planner/nodes/set-object-tags-node.js.map +1 -0
  457. package/dist/src/planner/nodes/set-operation-node.d.ts +123 -1
  458. package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
  459. package/dist/src/planner/nodes/set-operation-node.js +302 -18
  460. package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
  461. package/dist/src/planner/nodes/single-row.d.ts.map +1 -1
  462. package/dist/src/planner/nodes/single-row.js +3 -0
  463. package/dist/src/planner/nodes/single-row.js.map +1 -1
  464. package/dist/src/planner/nodes/sort.d.ts.map +1 -1
  465. package/dist/src/planner/nodes/sort.js +8 -7
  466. package/dist/src/planner/nodes/sort.js.map +1 -1
  467. package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
  468. package/dist/src/planner/nodes/stream-aggregate.js +8 -23
  469. package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
  470. package/dist/src/planner/nodes/subquery.d.ts +2 -0
  471. package/dist/src/planner/nodes/subquery.d.ts.map +1 -1
  472. package/dist/src/planner/nodes/subquery.js +18 -2
  473. package/dist/src/planner/nodes/subquery.js.map +1 -1
  474. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
  475. package/dist/src/planner/nodes/table-access-nodes.js +23 -3
  476. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  477. package/dist/src/planner/nodes/table-function-call.js +6 -0
  478. package/dist/src/planner/nodes/table-function-call.js.map +1 -1
  479. package/dist/src/planner/nodes/values-node.d.ts +3 -1
  480. package/dist/src/planner/nodes/values-node.d.ts.map +1 -1
  481. package/dist/src/planner/nodes/values-node.js +26 -0
  482. package/dist/src/planner/nodes/values-node.js.map +1 -1
  483. package/dist/src/planner/nodes/view-mutation-node.d.ts +259 -0
  484. package/dist/src/planner/nodes/view-mutation-node.d.ts.map +1 -0
  485. package/dist/src/planner/nodes/view-mutation-node.js +273 -0
  486. package/dist/src/planner/nodes/view-mutation-node.js.map +1 -0
  487. package/dist/src/planner/nodes/window-function.d.ts +17 -1
  488. package/dist/src/planner/nodes/window-function.d.ts.map +1 -1
  489. package/dist/src/planner/nodes/window-function.js +15 -1
  490. package/dist/src/planner/nodes/window-function.js.map +1 -1
  491. package/dist/src/planner/nodes/window-node.js +3 -3
  492. package/dist/src/planner/nodes/window-node.js.map +1 -1
  493. package/dist/src/planner/optimizer.d.ts.map +1 -1
  494. package/dist/src/planner/optimizer.js +372 -39
  495. package/dist/src/planner/optimizer.js.map +1 -1
  496. package/dist/src/planner/planning-context.d.ts +1 -1
  497. package/dist/src/planner/planning-context.d.ts.map +1 -1
  498. package/dist/src/planner/rules/access/lens-access-form-matcher.d.ts +70 -0
  499. package/dist/src/planner/rules/access/lens-access-form-matcher.d.ts.map +1 -0
  500. package/dist/src/planner/rules/access/lens-access-form-matcher.js +156 -0
  501. package/dist/src/planner/rules/access/lens-access-form-matcher.js.map +1 -0
  502. package/dist/src/planner/rules/access/rule-lens-auxiliary-access.d.ts +31 -0
  503. package/dist/src/planner/rules/access/rule-lens-auxiliary-access.d.ts.map +1 -0
  504. package/dist/src/planner/rules/access/rule-lens-auxiliary-access.js +176 -0
  505. package/dist/src/planner/rules/access/rule-lens-auxiliary-access.js.map +1 -0
  506. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  507. package/dist/src/planner/rules/access/rule-select-access-path.js +435 -37
  508. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  509. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.d.ts.map +1 -1
  510. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js +8 -27
  511. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js.map +1 -1
  512. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts +9 -3
  513. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.d.ts.map +1 -1
  514. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js +56 -5
  515. package/dist/src/planner/rules/aggregate/rule-groupby-fd-simplification.js.map +1 -1
  516. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts +39 -0
  517. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts.map +1 -0
  518. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +616 -0
  519. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js.map +1 -0
  520. package/dist/src/planner/rules/cache/rule-scalar-cse.d.ts.map +1 -1
  521. package/dist/src/planner/rules/cache/rule-scalar-cse.js +8 -1
  522. package/dist/src/planner/rules/cache/rule-scalar-cse.js.map +1 -1
  523. package/dist/src/planner/rules/distinct/rule-distinct-elimination.d.ts +8 -7
  524. package/dist/src/planner/rules/distinct/rule-distinct-elimination.d.ts.map +1 -1
  525. package/dist/src/planner/rules/distinct/rule-distinct-elimination.js +14 -21
  526. package/dist/src/planner/rules/distinct/rule-distinct-elimination.js.map +1 -1
  527. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts +36 -0
  528. package/dist/src/planner/rules/join/equi-pair-extractor.d.ts.map +1 -1
  529. package/dist/src/planner/rules/join/equi-pair-extractor.js +42 -5
  530. package/dist/src/planner/rules/join/equi-pair-extractor.js.map +1 -1
  531. package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts.map +1 -1
  532. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +10 -0
  533. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js.map +1 -1
  534. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js +25 -9
  535. package/dist/src/planner/rules/join/rule-fanout-lookup-join.js.map +1 -1
  536. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.d.ts +130 -0
  537. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.d.ts.map +1 -0
  538. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.js +206 -0
  539. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.js.map +1 -0
  540. package/dist/src/planner/rules/join/rule-join-elimination.d.ts +67 -14
  541. package/dist/src/planner/rules/join/rule-join-elimination.d.ts.map +1 -1
  542. package/dist/src/planner/rules/join/rule-join-elimination.js +81 -25
  543. package/dist/src/planner/rules/join/rule-join-elimination.js.map +1 -1
  544. package/dist/src/planner/rules/join/rule-join-existence-pruning.d.ts +84 -0
  545. package/dist/src/planner/rules/join/rule-join-existence-pruning.d.ts.map +1 -0
  546. package/dist/src/planner/rules/join/rule-join-existence-pruning.js +138 -0
  547. package/dist/src/planner/rules/join/rule-join-existence-pruning.js.map +1 -0
  548. package/dist/src/planner/rules/join/rule-join-greedy-commute.d.ts.map +1 -1
  549. package/dist/src/planner/rules/join/rule-join-greedy-commute.js +19 -1
  550. package/dist/src/planner/rules/join/rule-join-greedy-commute.js.map +1 -1
  551. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
  552. package/dist/src/planner/rules/join/rule-join-physical-selection.js +14 -2
  553. package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
  554. package/dist/src/planner/rules/join/rule-lateral-top1-asof.d.ts.map +1 -1
  555. package/dist/src/planner/rules/join/rule-lateral-top1-asof.js +5 -2
  556. package/dist/src/planner/rules/join/rule-lateral-top1-asof.js.map +1 -1
  557. package/dist/src/planner/rules/join/rule-monotonic-merge-join.d.ts.map +1 -1
  558. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js +4 -0
  559. package/dist/src/planner/rules/join/rule-monotonic-merge-join.js.map +1 -1
  560. package/dist/src/planner/rules/join/rule-quickpick-enumeration.d.ts.map +1 -1
  561. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js +10 -0
  562. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +1 -1
  563. package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.d.ts +286 -0
  564. package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.d.ts.map +1 -0
  565. package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.js +548 -0
  566. package/dist/src/planner/rules/join/rule-semijoin-existence-recovery.js.map +1 -0
  567. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.d.ts.map +1 -1
  568. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.js +9 -1
  569. package/dist/src/planner/rules/parallel/rule-async-gather-union-all.js.map +1 -1
  570. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.d.ts.map +1 -1
  571. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js +7 -0
  572. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js.map +1 -1
  573. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.d.ts.map +1 -1
  574. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.js +10 -1
  575. package/dist/src/planner/rules/parallel/rule-eager-prefetch-probe.js.map +1 -1
  576. package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.d.ts.map +1 -1
  577. package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js +10 -1
  578. package/dist/src/planner/rules/predicate/rule-aggregate-predicate-pushdown.js.map +1 -1
  579. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.d.ts.map +1 -1
  580. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js +18 -0
  581. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js.map +1 -1
  582. package/dist/src/planner/rules/predicate/rule-filter-contradiction.d.ts.map +1 -1
  583. package/dist/src/planner/rules/predicate/rule-filter-contradiction.js +7 -0
  584. package/dist/src/planner/rules/predicate/rule-filter-contradiction.js.map +1 -1
  585. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.d.ts.map +1 -1
  586. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js +9 -0
  587. package/dist/src/planner/rules/predicate/rule-predicate-inference-equivalence.js.map +1 -1
  588. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js +13 -3
  589. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +1 -1
  590. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +2 -2
  591. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  592. package/dist/src/planner/rules/retrieve/rule-projection-pruning.d.ts.map +1 -1
  593. package/dist/src/planner/rules/retrieve/rule-projection-pruning.js +14 -0
  594. package/dist/src/planner/rules/retrieve/rule-projection-pruning.js.map +1 -1
  595. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.d.ts +16 -0
  596. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.d.ts.map +1 -1
  597. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js +47 -4
  598. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js.map +1 -1
  599. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.d.ts.map +1 -1
  600. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js +8 -0
  601. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js.map +1 -1
  602. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.d.ts.map +1 -1
  603. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js +7 -0
  604. package/dist/src/planner/rules/subquery/rule-semi-join-fk-trivial.js.map +1 -1
  605. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -1
  606. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +12 -0
  607. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -1
  608. package/dist/src/planner/rules/window/rule-monotonic-window.js +1 -1
  609. package/dist/src/planner/rules/window/rule-monotonic-window.js.map +1 -1
  610. package/dist/src/planner/type-utils.d.ts +14 -0
  611. package/dist/src/planner/type-utils.d.ts.map +1 -1
  612. package/dist/src/planner/type-utils.js +66 -21
  613. package/dist/src/planner/type-utils.js.map +1 -1
  614. package/dist/src/planner/util/fd-utils.d.ts +228 -36
  615. package/dist/src/planner/util/fd-utils.d.ts.map +1 -1
  616. package/dist/src/planner/util/fd-utils.js +501 -84
  617. package/dist/src/planner/util/fd-utils.js.map +1 -1
  618. package/dist/src/planner/util/ind-utils.d.ts +27 -1
  619. package/dist/src/planner/util/ind-utils.d.ts.map +1 -1
  620. package/dist/src/planner/util/ind-utils.js +80 -6
  621. package/dist/src/planner/util/ind-utils.js.map +1 -1
  622. package/dist/src/planner/util/key-utils.d.ts +26 -3
  623. package/dist/src/planner/util/key-utils.d.ts.map +1 -1
  624. package/dist/src/planner/util/key-utils.js +182 -33
  625. package/dist/src/planner/util/key-utils.js.map +1 -1
  626. package/dist/src/planner/util/set-op-wrapper.d.ts +37 -0
  627. package/dist/src/planner/util/set-op-wrapper.d.ts.map +1 -0
  628. package/dist/src/planner/util/set-op-wrapper.js +82 -0
  629. package/dist/src/planner/util/set-op-wrapper.js.map +1 -0
  630. package/dist/src/planner/validation/plan-validator.d.ts.map +1 -1
  631. package/dist/src/planner/validation/plan-validator.js +1 -0
  632. package/dist/src/planner/validation/plan-validator.js.map +1 -1
  633. package/dist/src/runtime/context-helpers.d.ts +13 -1
  634. package/dist/src/runtime/context-helpers.d.ts.map +1 -1
  635. package/dist/src/runtime/context-helpers.js +7 -1
  636. package/dist/src/runtime/context-helpers.js.map +1 -1
  637. package/dist/src/runtime/delta-executor.d.ts +30 -1
  638. package/dist/src/runtime/delta-executor.d.ts.map +1 -1
  639. package/dist/src/runtime/delta-executor.js +38 -4
  640. package/dist/src/runtime/delta-executor.js.map +1 -1
  641. package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
  642. package/dist/src/runtime/emit/add-constraint.js +38 -5
  643. package/dist/src/runtime/emit/add-constraint.js.map +1 -1
  644. package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
  645. package/dist/src/runtime/emit/aggregate.js +10 -8
  646. package/dist/src/runtime/emit/aggregate.js.map +1 -1
  647. package/dist/src/runtime/emit/alter-table.d.ts +1 -1
  648. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  649. package/dist/src/runtime/emit/alter-table.js +664 -108
  650. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  651. package/dist/src/runtime/emit/analyze.d.ts.map +1 -1
  652. package/dist/src/runtime/emit/analyze.js +2 -1
  653. package/dist/src/runtime/emit/analyze.js.map +1 -1
  654. package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
  655. package/dist/src/runtime/emit/asof-scan.js +24 -9
  656. package/dist/src/runtime/emit/asof-scan.js.map +1 -1
  657. package/dist/src/runtime/emit/asserted-keys.d.ts +13 -0
  658. package/dist/src/runtime/emit/asserted-keys.d.ts.map +1 -0
  659. package/dist/src/runtime/emit/asserted-keys.js +13 -0
  660. package/dist/src/runtime/emit/asserted-keys.js.map +1 -0
  661. package/dist/src/runtime/emit/between.d.ts.map +1 -1
  662. package/dist/src/runtime/emit/between.js +24 -19
  663. package/dist/src/runtime/emit/between.js.map +1 -1
  664. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  665. package/dist/src/runtime/emit/binary.js +24 -36
  666. package/dist/src/runtime/emit/binary.js.map +1 -1
  667. package/dist/src/runtime/emit/block.d.ts.map +1 -1
  668. package/dist/src/runtime/emit/block.js +11 -2
  669. package/dist/src/runtime/emit/block.js.map +1 -1
  670. package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
  671. package/dist/src/runtime/emit/bloom-join.js +12 -4
  672. package/dist/src/runtime/emit/bloom-join.js.map +1 -1
  673. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  674. package/dist/src/runtime/emit/constraint-check.js +50 -1
  675. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  676. package/dist/src/runtime/emit/create-table.d.ts.map +1 -1
  677. package/dist/src/runtime/emit/create-table.js +8 -0
  678. package/dist/src/runtime/emit/create-table.js.map +1 -1
  679. package/dist/src/runtime/emit/create-view.d.ts.map +1 -1
  680. package/dist/src/runtime/emit/create-view.js +16 -1
  681. package/dist/src/runtime/emit/create-view.js.map +1 -1
  682. package/dist/src/runtime/emit/delete.d.ts.map +1 -1
  683. package/dist/src/runtime/emit/delete.js +15 -5
  684. package/dist/src/runtime/emit/delete.js.map +1 -1
  685. package/dist/src/runtime/emit/dml-executor.d.ts +27 -0
  686. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  687. package/dist/src/runtime/emit/dml-executor.js +413 -193
  688. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  689. package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
  690. package/dist/src/runtime/emit/drop-table.js +10 -0
  691. package/dist/src/runtime/emit/drop-table.js.map +1 -1
  692. package/dist/src/runtime/emit/drop-view.d.ts.map +1 -1
  693. package/dist/src/runtime/emit/drop-view.js +17 -0
  694. package/dist/src/runtime/emit/drop-view.js.map +1 -1
  695. package/dist/src/runtime/emit/envelope-scan.d.ts +13 -0
  696. package/dist/src/runtime/emit/envelope-scan.d.ts.map +1 -0
  697. package/dist/src/runtime/emit/envelope-scan.js +22 -0
  698. package/dist/src/runtime/emit/envelope-scan.js.map +1 -0
  699. package/dist/src/runtime/emit/join.d.ts +10 -2
  700. package/dist/src/runtime/emit/join.d.ts.map +1 -1
  701. package/dist/src/runtime/emit/join.js +128 -38
  702. package/dist/src/runtime/emit/join.js.map +1 -1
  703. package/dist/src/runtime/emit/lens-auxiliary-access.d.ts +16 -0
  704. package/dist/src/runtime/emit/lens-auxiliary-access.d.ts.map +1 -0
  705. package/dist/src/runtime/emit/lens-auxiliary-access.js +16 -0
  706. package/dist/src/runtime/emit/lens-auxiliary-access.js.map +1 -0
  707. package/dist/src/runtime/emit/materialized-view-helpers.d.ts +640 -0
  708. package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -0
  709. package/dist/src/runtime/emit/materialized-view-helpers.js +2576 -0
  710. package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -0
  711. package/dist/src/runtime/emit/materialized-view.d.ts +31 -0
  712. package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -0
  713. package/dist/src/runtime/emit/materialized-view.js +187 -0
  714. package/dist/src/runtime/emit/materialized-view.js.map +1 -0
  715. package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
  716. package/dist/src/runtime/emit/merge-join.js +19 -5
  717. package/dist/src/runtime/emit/merge-join.js.map +1 -1
  718. package/dist/src/runtime/emit/project.d.ts.map +1 -1
  719. package/dist/src/runtime/emit/project.js +10 -5
  720. package/dist/src/runtime/emit/project.js.map +1 -1
  721. package/dist/src/runtime/emit/schema-declarative.d.ts +1 -0
  722. package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
  723. package/dist/src/runtime/emit/schema-declarative.js +101 -5
  724. package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
  725. package/dist/src/runtime/emit/set-object-tags.d.ts +16 -0
  726. package/dist/src/runtime/emit/set-object-tags.d.ts.map +1 -0
  727. package/dist/src/runtime/emit/set-object-tags.js +57 -0
  728. package/dist/src/runtime/emit/set-object-tags.js.map +1 -0
  729. package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
  730. package/dist/src/runtime/emit/set-operation.js +140 -24
  731. package/dist/src/runtime/emit/set-operation.js.map +1 -1
  732. package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
  733. package/dist/src/runtime/emit/subquery.js +110 -5
  734. package/dist/src/runtime/emit/subquery.js.map +1 -1
  735. package/dist/src/runtime/emit/unary.d.ts.map +1 -1
  736. package/dist/src/runtime/emit/unary.js +34 -6
  737. package/dist/src/runtime/emit/unary.js.map +1 -1
  738. package/dist/src/runtime/emit/view-mutation.d.ts +70 -0
  739. package/dist/src/runtime/emit/view-mutation.d.ts.map +1 -0
  740. package/dist/src/runtime/emit/view-mutation.js +299 -0
  741. package/dist/src/runtime/emit/view-mutation.js.map +1 -0
  742. package/dist/src/runtime/emit/window.js +29 -5
  743. package/dist/src/runtime/emit/window.js.map +1 -1
  744. package/dist/src/runtime/foreign-key-actions.d.ts +66 -3
  745. package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
  746. package/dist/src/runtime/foreign-key-actions.js +580 -172
  747. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  748. package/dist/src/runtime/parallel-driver.d.ts +4 -1
  749. package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
  750. package/dist/src/runtime/parallel-driver.js +5 -1
  751. package/dist/src/runtime/parallel-driver.js.map +1 -1
  752. package/dist/src/runtime/register.d.ts.map +1 -1
  753. package/dist/src/runtime/register.js +17 -1
  754. package/dist/src/runtime/register.js.map +1 -1
  755. package/dist/src/runtime/types.d.ts +10 -0
  756. package/dist/src/runtime/types.d.ts.map +1 -1
  757. package/dist/src/runtime/types.js.map +1 -1
  758. package/dist/src/schema/basis-backfill.d.ts +63 -0
  759. package/dist/src/schema/basis-backfill.d.ts.map +1 -0
  760. package/dist/src/schema/basis-backfill.js +161 -0
  761. package/dist/src/schema/basis-backfill.js.map +1 -0
  762. package/dist/src/schema/catalog.d.ts +115 -1
  763. package/dist/src/schema/catalog.d.ts.map +1 -1
  764. package/dist/src/schema/catalog.js +249 -22
  765. package/dist/src/schema/catalog.js.map +1 -1
  766. package/dist/src/schema/change-events.d.ts +42 -1
  767. package/dist/src/schema/change-events.d.ts.map +1 -1
  768. package/dist/src/schema/change-events.js.map +1 -1
  769. package/dist/src/schema/column.d.ts +16 -0
  770. package/dist/src/schema/column.d.ts.map +1 -1
  771. package/dist/src/schema/column.js.map +1 -1
  772. package/dist/src/schema/constraint-builder.d.ts +182 -0
  773. package/dist/src/schema/constraint-builder.d.ts.map +1 -0
  774. package/dist/src/schema/constraint-builder.js +424 -0
  775. package/dist/src/schema/constraint-builder.js.map +1 -0
  776. package/dist/src/schema/ddl-generator.d.ts +86 -1
  777. package/dist/src/schema/ddl-generator.d.ts.map +1 -1
  778. package/dist/src/schema/ddl-generator.js +316 -20
  779. package/dist/src/schema/ddl-generator.js.map +1 -1
  780. package/dist/src/schema/declared-schema-manager.d.ts +51 -0
  781. package/dist/src/schema/declared-schema-manager.d.ts.map +1 -1
  782. package/dist/src/schema/declared-schema-manager.js +61 -0
  783. package/dist/src/schema/declared-schema-manager.js.map +1 -1
  784. package/dist/src/schema/derivation.d.ts +106 -0
  785. package/dist/src/schema/derivation.d.ts.map +1 -0
  786. package/dist/src/schema/derivation.js +25 -0
  787. package/dist/src/schema/derivation.js.map +1 -0
  788. package/dist/src/schema/function.d.ts +13 -0
  789. package/dist/src/schema/function.d.ts.map +1 -1
  790. package/dist/src/schema/function.js.map +1 -1
  791. package/dist/src/schema/lens-ack.d.ts +90 -0
  792. package/dist/src/schema/lens-ack.d.ts.map +1 -0
  793. package/dist/src/schema/lens-ack.js +361 -0
  794. package/dist/src/schema/lens-ack.js.map +1 -0
  795. package/dist/src/schema/lens-compiler.d.ts +62 -0
  796. package/dist/src/schema/lens-compiler.d.ts.map +1 -0
  797. package/dist/src/schema/lens-compiler.js +1594 -0
  798. package/dist/src/schema/lens-compiler.js.map +1 -0
  799. package/dist/src/schema/lens-fk-discovery.d.ts +175 -0
  800. package/dist/src/schema/lens-fk-discovery.d.ts.map +1 -0
  801. package/dist/src/schema/lens-fk-discovery.js +336 -0
  802. package/dist/src/schema/lens-fk-discovery.js.map +1 -0
  803. package/dist/src/schema/lens-prover.d.ts +336 -0
  804. package/dist/src/schema/lens-prover.d.ts.map +1 -0
  805. package/dist/src/schema/lens-prover.js +1988 -0
  806. package/dist/src/schema/lens-prover.js.map +1 -0
  807. package/dist/src/schema/lens.d.ts +254 -0
  808. package/dist/src/schema/lens.d.ts.map +1 -0
  809. package/dist/src/schema/lens.js +21 -0
  810. package/dist/src/schema/lens.js.map +1 -0
  811. package/dist/src/schema/manager.d.ts +676 -18
  812. package/dist/src/schema/manager.d.ts.map +1 -1
  813. package/dist/src/schema/manager.js +1573 -238
  814. package/dist/src/schema/manager.js.map +1 -1
  815. package/dist/src/schema/mapping-advertisement-tags.d.ts +39 -0
  816. package/dist/src/schema/mapping-advertisement-tags.d.ts.map +1 -0
  817. package/dist/src/schema/mapping-advertisement-tags.js +216 -0
  818. package/dist/src/schema/mapping-advertisement-tags.js.map +1 -0
  819. package/dist/src/schema/rename-rewriter.d.ts +45 -4
  820. package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
  821. package/dist/src/schema/rename-rewriter.js +412 -19
  822. package/dist/src/schema/rename-rewriter.js.map +1 -1
  823. package/dist/src/schema/reserved-tags-policy.d.ts +32 -0
  824. package/dist/src/schema/reserved-tags-policy.d.ts.map +1 -0
  825. package/dist/src/schema/reserved-tags-policy.js +34 -0
  826. package/dist/src/schema/reserved-tags-policy.js.map +1 -0
  827. package/dist/src/schema/reserved-tags.d.ts +170 -0
  828. package/dist/src/schema/reserved-tags.d.ts.map +1 -0
  829. package/dist/src/schema/reserved-tags.js +507 -0
  830. package/dist/src/schema/reserved-tags.js.map +1 -0
  831. package/dist/src/schema/schema-differ.d.ts +158 -2
  832. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  833. package/dist/src/schema/schema-differ.js +1460 -78
  834. package/dist/src/schema/schema-differ.js.map +1 -1
  835. package/dist/src/schema/schema-hasher.d.ts +8 -3
  836. package/dist/src/schema/schema-hasher.d.ts.map +1 -1
  837. package/dist/src/schema/schema-hasher.js +22 -2
  838. package/dist/src/schema/schema-hasher.js.map +1 -1
  839. package/dist/src/schema/schema.d.ts +25 -1
  840. package/dist/src/schema/schema.d.ts.map +1 -1
  841. package/dist/src/schema/schema.js +36 -2
  842. package/dist/src/schema/schema.js.map +1 -1
  843. package/dist/src/schema/table.d.ts +259 -10
  844. package/dist/src/schema/table.d.ts.map +1 -1
  845. package/dist/src/schema/table.js +309 -26
  846. package/dist/src/schema/table.js.map +1 -1
  847. package/dist/src/schema/unique-enforcement.d.ts +78 -0
  848. package/dist/src/schema/unique-enforcement.d.ts.map +1 -0
  849. package/dist/src/schema/unique-enforcement.js +93 -0
  850. package/dist/src/schema/unique-enforcement.js.map +1 -0
  851. package/dist/src/schema/view.d.ts +83 -2
  852. package/dist/src/schema/view.d.ts.map +1 -1
  853. package/dist/src/schema/view.js +67 -1
  854. package/dist/src/schema/view.js.map +1 -1
  855. package/dist/src/schema/window-function.d.ts +9 -1
  856. package/dist/src/schema/window-function.d.ts.map +1 -1
  857. package/dist/src/schema/window-function.js.map +1 -1
  858. package/dist/src/types/temporal-types.d.ts.map +1 -1
  859. package/dist/src/types/temporal-types.js +71 -36
  860. package/dist/src/types/temporal-types.js.map +1 -1
  861. package/dist/src/util/comparison.d.ts +24 -0
  862. package/dist/src/util/comparison.d.ts.map +1 -1
  863. package/dist/src/util/comparison.js +34 -0
  864. package/dist/src/util/comparison.js.map +1 -1
  865. package/dist/src/util/mutation-statement.d.ts.map +1 -1
  866. package/dist/src/util/mutation-statement.js +4 -1
  867. package/dist/src/util/mutation-statement.js.map +1 -1
  868. package/dist/src/util/serialization.d.ts +9 -0
  869. package/dist/src/util/serialization.d.ts.map +1 -1
  870. package/dist/src/util/serialization.js +26 -0
  871. package/dist/src/util/serialization.js.map +1 -1
  872. package/dist/src/vtab/backing-host.d.ts +286 -0
  873. package/dist/src/vtab/backing-host.d.ts.map +1 -0
  874. package/dist/src/vtab/backing-host.js +118 -0
  875. package/dist/src/vtab/backing-host.js.map +1 -0
  876. package/dist/src/vtab/best-access-plan.d.ts +21 -0
  877. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  878. package/dist/src/vtab/best-access-plan.js.map +1 -1
  879. package/dist/src/vtab/capabilities.d.ts +5 -5
  880. package/dist/src/vtab/capabilities.d.ts.map +1 -1
  881. package/dist/src/vtab/mapping-advertisement.d.ts +163 -0
  882. package/dist/src/vtab/mapping-advertisement.d.ts.map +1 -0
  883. package/dist/src/vtab/mapping-advertisement.js +2 -0
  884. package/dist/src/vtab/mapping-advertisement.js.map +1 -0
  885. package/dist/src/vtab/memory/index.d.ts +64 -4
  886. package/dist/src/vtab/memory/index.d.ts.map +1 -1
  887. package/dist/src/vtab/memory/index.js +119 -12
  888. package/dist/src/vtab/memory/index.js.map +1 -1
  889. package/dist/src/vtab/memory/layer/base.d.ts +38 -1
  890. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  891. package/dist/src/vtab/memory/layer/base.js +112 -24
  892. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  893. package/dist/src/vtab/memory/layer/manager.d.ts +291 -4
  894. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  895. package/dist/src/vtab/memory/layer/manager.js +1050 -91
  896. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  897. package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -1
  898. package/dist/src/vtab/memory/layer/plan-filter.js +35 -6
  899. package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -1
  900. package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
  901. package/dist/src/vtab/memory/layer/scan-layer.js +66 -14
  902. package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
  903. package/dist/src/vtab/memory/layer/scan-plan.d.ts +14 -0
  904. package/dist/src/vtab/memory/layer/scan-plan.d.ts.map +1 -1
  905. package/dist/src/vtab/memory/layer/scan-plan.js +27 -4
  906. package/dist/src/vtab/memory/layer/scan-plan.js.map +1 -1
  907. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  908. package/dist/src/vtab/memory/layer/transaction.js +5 -1
  909. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  910. package/dist/src/vtab/memory/module.d.ts +17 -0
  911. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  912. package/dist/src/vtab/memory/module.js +82 -3
  913. package/dist/src/vtab/memory/module.js.map +1 -1
  914. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  915. package/dist/src/vtab/memory/table.js +15 -5
  916. package/dist/src/vtab/memory/table.js.map +1 -1
  917. package/dist/src/vtab/memory/types.d.ts +20 -2
  918. package/dist/src/vtab/memory/types.d.ts.map +1 -1
  919. package/dist/src/vtab/memory/utils/predicate.d.ts.map +1 -1
  920. package/dist/src/vtab/memory/utils/predicate.js +46 -24
  921. package/dist/src/vtab/memory/utils/predicate.js.map +1 -1
  922. package/dist/src/vtab/memory/utils/primary-key-encode.d.ts +31 -0
  923. package/dist/src/vtab/memory/utils/primary-key-encode.d.ts.map +1 -0
  924. package/dist/src/vtab/memory/utils/primary-key-encode.js +101 -0
  925. package/dist/src/vtab/memory/utils/primary-key-encode.js.map +1 -0
  926. package/dist/src/vtab/memory/utils/primary-key.d.ts +8 -0
  927. package/dist/src/vtab/memory/utils/primary-key.d.ts.map +1 -1
  928. package/dist/src/vtab/memory/utils/primary-key.js +12 -5
  929. package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
  930. package/dist/src/vtab/module.d.ts +203 -4
  931. package/dist/src/vtab/module.d.ts.map +1 -1
  932. package/dist/src/vtab/table.d.ts +9 -0
  933. package/dist/src/vtab/table.d.ts.map +1 -1
  934. package/dist/src/vtab/table.js.map +1 -1
  935. package/package.json +6 -5
@@ -0,0 +1,507 @@
1
+ /**
2
+ * Typed registry for the reserved `quereus.*` tag namespace.
3
+ *
4
+ * Free-form user tags (`display_name = '...'`, `audit = true`) are untouched —
5
+ * only keys under the `quereus.` prefix are governed here. The namespace is a
6
+ * precise mini-language designed across the docs:
7
+ *
8
+ * - `quereus.lens.ack.<code>[:<target>]`, `quereus.lens.access.<col>`
9
+ * — lens advisory acknowledgments / access-pattern hints (`docs/lens.md`
10
+ * § Acknowledging advisories).
11
+ * - `quereus.id` / `quereus.previous_name`
12
+ * — declarative-differ rename hints (docs/schema.md § Rename Detection).
13
+ * - `quereus.sync.replicate`
14
+ * — per-table opt-in that records a maintained table / materialized view's
15
+ * maintenance writes in the sync change log (`docs/migration.md` § Synced vs.
16
+ * local derived tables). Engine-global spec, behaviorally store-only.
17
+ *
18
+ * No reserved tag carries *behavior* — view-mutation semantics moved to
19
+ * first-class constructs (write routing to per-row presence/membership columns;
20
+ * omitted-insert defaults to the body select's `with defaults (col = expr, …)`
21
+ * clause, which retired the last `quereus.update.*` key, `default_for.<column>`).
22
+ *
23
+ * This module is the single shape/site validation entry point those keys flow
24
+ * through. It is **additive and behavior-neutral**: it reads no reserved tag's
25
+ * *semantics* (ack fingerprinting, escalation policy stay in their owning
26
+ * tickets); it only proves that a `quereus.*` key is spelled correctly (matches
27
+ * a {@link ReservedTagSpec}), sits where it is legal ({@link TagSite}), and
28
+ * carries a well-shaped value ({@link TagValueSchema}) — surfacing a sited
29
+ * {@link TagDiagnostic} otherwise.
30
+ *
31
+ * Downstream consumers (e.g. the lens prover's reserved-tag parser) read
32
+ * through {@link getReservedTag} / {@link getReservedTagByTemplate} rather than
33
+ * re-parsing the namespace at scattered sites.
34
+ */
35
+ /** The reserved namespace prefix. Keys not starting with this are user tags. */
36
+ export const RESERVED_TAG_NAMESPACE = 'quereus.';
37
+ /** Closed value set for `quereus.lens.decomp.role.<id>` (docs/lens.md § The Default Mapper). */
38
+ export const DECOMP_ROLE_VALUES = ['primary-storage', 'auxiliary-access'];
39
+ /** Closed value set for `quereus.lens.decomp.presence.<id>`. */
40
+ export const DECOMP_PRESENCE_VALUES = ['mandatory', 'optional'];
41
+ /** Closed value set for `quereus.lens.decomp.keykind.<id>`. */
42
+ export const DECOMP_KEYKIND_VALUES = ['surrogate', 'logical-tuple'];
43
+ /**
44
+ * The per-logical-column writable-intent signal (docs/lens.md § Computed and
45
+ * Generated Columns). Exported so the lens prover keys off this single constant
46
+ * rather than re-spelling the literal. `= true` declares the column must have a
47
+ * faithful write path, turning an opaque / non-invertible body into a deploy
48
+ * error (`lens.non-invertible`); `= false` / absent preserves the conservative
49
+ * admit-as-read-only behaviour.
50
+ */
51
+ export const LENS_WRITABLE_INTENT_TAG = 'quereus.lens.writable';
52
+ /**
53
+ * The per-table sync-replication opt-in (docs/migration.md § Synced vs. local
54
+ * derived tables). `= true` records this maintained table / materialized view's
55
+ * maintenance writes in the sync change log — the store backing host queues a
56
+ * module `DataChangeEvent` per realized `BackingRowChange`, so the sync layer
57
+ * records column versions / HLC stamps / tombstones exactly as for an ordinary
58
+ * table write. Default off (a privileged maintenance write emits no module data
59
+ * events otherwise). Exported so the store host keys off this single constant
60
+ * rather than re-spelling the literal; the host reads `=== true`.
61
+ */
62
+ export const SYNC_REPLICATE_TAG = 'quereus.sync.replicate';
63
+ /**
64
+ * The per-table basis-eviction override (docs/migration.md § 4 Contract). On a
65
+ * basis table whose physical storage lingers after detach, this tag overrides the
66
+ * global `SyncConfig.basisEviction` mode for that one table: `'never'` opts it out
67
+ * of auto-reclamation, `'immediate'` reclaims on the first sweep after detach, and
68
+ * a non-negative number is a custom retention horizon in milliseconds. The sync
69
+ * layer captures the value into its lifecycle record at lens-deploy time (the tag
70
+ * is gone once the table detaches). Sited like {@link SYNC_REPLICATE_TAG} (the two
71
+ * authoring forms of a basis/migration table). Exported so the sync recorder keys
72
+ * off this single constant rather than re-spelling the literal.
73
+ */
74
+ export const SYNC_EVICT_TAG = 'quereus.sync.evict';
75
+ /**
76
+ * The reserved-tag spec table — deeply frozen (the array, each spec entry, and
77
+ * each entry's `sites` list are immutable, so this shared module singleton can
78
+ * never be mutated by a consumer), transcribed directly from the doc tables.
79
+ * Each entry cites its doc source. The two downstream tickets
80
+ * (`3-lens-prover-and-constraint-attachment` Phase C, `view-mutation-plan-node-substrate`
81
+ * Phase 2) consume this rather than re-declaring the namespace.
82
+ */
83
+ const RESERVED_TAG_SPECS = [
84
+ // --- rename hints : stable-identity / previous-name for the declarative differ ---
85
+ // Read by `schema-differ.ts` (`readQuereusHint`) to pair a declared object with
86
+ // an existing actual across a rename. They are first-class specs (not a
87
+ // differ-local allow-list) so the differ can validate every declared object's
88
+ // tags through this registry with hard-error-on-unknown. valueSchema is
89
+ // `'string'` (NOT csv-of-identifiers): the differ never value-validated these,
90
+ // and a real id may carry a hyphen (`'tbl-thing'`) or name a quoted identifier
91
+ // — tightening would falsely reject existing schemas. See docs/schema.md
92
+ // § Rename Detection. A future ticket may add a dedicated `csv-of-names` schema.
93
+ {
94
+ key: 'quereus.id',
95
+ sites: siteSet('physical-table', 'physical-column', 'view-ddl', 'physical-index', 'physical-constraint'),
96
+ valueSchema: 'string',
97
+ description: 'Stable identity of a declared object; the differ pairs it across a rename (preferred over previous_name).',
98
+ },
99
+ {
100
+ key: 'quereus.previous_name',
101
+ sites: siteSet('physical-table', 'physical-column', 'view-ddl', 'physical-index', 'physical-constraint'),
102
+ valueSchema: 'string',
103
+ description: 'Comma-separated former name(s) of a declared object; the differ pairs it across a rename when no id matches.',
104
+ },
105
+ // --- quereus.expose_implicit_index : catalog-visibility opt-in on a UNIQUE constraint ---
106
+ // A declared/inline UNIQUE constraint's enforcement BTree (its implicit covering
107
+ // structure) is hidden from the catalog / export_schema by default; this boolean tag
108
+ // surfaces it under the constraint name. Read by `catalog.ts`
109
+ // (`implicitCoveringIndexExposure`) and treated as real (compared) schema state by the
110
+ // differ (`schema-differ.ts` § RENAME_HINT_KEYS). It is a constraint-only physical tag,
111
+ // so it is legal solely at the physical-constraint site — the position shared by the
112
+ // direct CREATE TABLE named constraint, the `ALTER TABLE … ALTER CONSTRAINT … SET TAGS`
113
+ // target, and the declarative differ's declared constraint. (First-class spec rather
114
+ // than a catalog-local string so a typo — `expose_implicit_indx` — fails loudly on every
115
+ // one of those paths, the same posture the rest of the namespace has.)
116
+ {
117
+ key: 'quereus.expose_implicit_index',
118
+ sites: siteSet('physical-constraint'),
119
+ valueSchema: 'boolean',
120
+ description: 'Surface a UNIQUE constraint\'s implicit covering structure in the catalog / export_schema (boolean; default hidden).',
121
+ },
122
+ // --- quereus.sync.replicate : per-table maintenance-write change-log opt-in ---
123
+ // docs/migration.md § Synced vs. local derived tables. `= true` records a
124
+ // maintained table / materialized view's maintenance writes in the sync change
125
+ // log (the store backing host queues a DataChangeEvent per realized
126
+ // BackingRowChange — column versions / HLC stamps / tombstones, like an ordinary
127
+ // table write — on the row-time maintenance path AND the create-fill / refresh
128
+ // path, the latter as the minimal keyed diff so a value-identical re-fill
129
+ // suppresses). Boolean (the host reads `=== true`), default off. Sited at
130
+ // view-ddl (the `create materialized view … with tags (…)` authoring form) and
131
+ // physical-table (the canonical `create table … using store() maintained as …`
132
+ // form) — the two authoring forms of a migration target. NOT a logical-* site:
133
+ // the tag governs a physical backing, not a lens column. Engine-global spec,
134
+ // behaviorally store-only (the memory host stays event-free — see
135
+ // quereus-store/src/common/backing-host.ts).
136
+ {
137
+ key: SYNC_REPLICATE_TAG,
138
+ sites: siteSet('view-ddl', 'physical-table'),
139
+ valueSchema: 'boolean',
140
+ description: 'Opt this maintained table / materialized view\'s maintenance writes into the sync change log '
141
+ + '(the backing host records column versions / tombstones for each derivation write). Default off.',
142
+ },
143
+ // --- quereus.sync.evict : per-table basis-eviction override ---
144
+ // docs/migration.md § 4 Contract. Overrides the global SyncConfig.basisEviction
145
+ // mode for one basis table: 'never' (keep storage forever), 'immediate' (reclaim
146
+ // on the first sweep after detach), or a non-negative number of milliseconds (a
147
+ // custom retention horizon). The sync layer captures it into its lifecycle record
148
+ // at lens-deploy time. Sited like quereus.sync.replicate — the two authoring forms
149
+ // of a basis table (the `create materialized view … with tags` form and the
150
+ // canonical `create table … using store()` form). Engine-global spec, consumed by
151
+ // the sync layer (the engine attaches no eviction behavior).
152
+ {
153
+ key: SYNC_EVICT_TAG,
154
+ sites: siteSet('view-ddl', 'physical-table'),
155
+ valueSchema: 'eviction-policy',
156
+ description: 'Per-table basis-eviction override: \'never\', \'immediate\', or a non-negative retention horizon in milliseconds.',
157
+ },
158
+ // --- quereus.lens.* : lens advisory acknowledgments / access hints ---
159
+ // (The former quereus.update.* family is gone: routing became per-row
160
+ // presence/membership columns; default_for.<column> became the first-class
161
+ // `with defaults (col = expr, …)` body-select clause.)
162
+ {
163
+ // docs/lens.md:176, 190 — code is <code>[:<target>]; remainder captured whole.
164
+ key: { template: 'quereus.lens.ack.<code>' },
165
+ sites: siteSet('logical-table', 'logical-constraint'),
166
+ valueSchema: 'required-nonempty-rationale',
167
+ description: 'Acknowledge a lens advisory; the value is a required rationale.',
168
+ },
169
+ {
170
+ // docs/lens.md:166, 176
171
+ key: { template: 'quereus.lens.access.<col>' },
172
+ sites: siteSet('logical-table'),
173
+ valueSchema: 'string',
174
+ description: 'Declare an expected lookup/ordering access pattern on a column.',
175
+ },
176
+ // --- quereus.lens.writable : per-logical-column writable-intent signal ---
177
+ // docs/lens.md § Computed and Generated Columns. `= true` asserts the column
178
+ // must be faithfully writable (an opaque / non-invertible body carrying it is a
179
+ // deploy error via the round-trip prover); `= false` / absent is the
180
+ // conservative read-only-derived admit. Boolean (the prover reads `=== true`),
181
+ // logical-column site only.
182
+ {
183
+ key: LENS_WRITABLE_INTENT_TAG,
184
+ sites: siteSet('logical-column'),
185
+ valueSchema: 'boolean',
186
+ description: 'Assert a logical column must have a faithful write path; an opaque/non-invertible body carrying it is a deploy error.',
187
+ },
188
+ // --- quereus.lens.policy.* : per-(logical-table) advisory escalation policy ---
189
+ // A comma-separated list of advisory codes (e.g. `lens.no-backing-index`) the
190
+ // project promotes beyond advisory. Codes carry dots and hyphens, so the value
191
+ // is `string` (free CSV) rather than `csv-of-identifiers`. Read by the ack
192
+ // governance (`lens-ack.ts`) after the prover runs; default-empty when absent.
193
+ // See `docs/lens.md` § Acknowledging advisories (Escalation policy).
194
+ {
195
+ key: 'quereus.lens.policy.error-on',
196
+ sites: siteSet('logical-table'),
197
+ valueSchema: 'string',
198
+ description: 'CSV of advisory codes that are always a hard error; an ack cannot suppress them.',
199
+ },
200
+ {
201
+ key: 'quereus.lens.policy.require-ack',
202
+ sites: siteSet('logical-table'),
203
+ valueSchema: 'string',
204
+ description: 'CSV of advisory codes whose un-acknowledged instances are a hard error (a valid ack clears).',
205
+ },
206
+ // --- quereus.lens.decomp.* : module mapping-advertisement facts on basis tables ---
207
+ // A generic module (memory/store) assembles a MappingAdvertisement from these
208
+ // reserved tags on its basis tables via `buildAdvertisementsFromTags`
209
+ // (docs/lens.md § The Default Mapper). Each decomposition `<id>`'s facts are
210
+ // distributed across its member basis tables. The facet leads the key so each
211
+ // is a single-placeholder template the registry validates (shape/site only —
212
+ // the builder does the id/facet sub-parsing and the resolver does structural
213
+ // validation). All sit at the `physical-table` site.
214
+ {
215
+ key: { template: 'quereus.lens.decomp.logical.<id>' },
216
+ sites: siteSet('physical-table'),
217
+ valueSchema: 'string',
218
+ description: 'Logical table the decomposition <id> backs (declared on each member; resolver checks consistency).',
219
+ },
220
+ {
221
+ key: { template: 'quereus.lens.decomp.role.<id>' },
222
+ sites: siteSet('physical-table'),
223
+ valueSchema: { enum: DECOMP_ROLE_VALUES },
224
+ description: 'Role of decomposition <id>: primary-storage (drives put) or auxiliary-access (read-path only).',
225
+ },
226
+ {
227
+ key: { template: 'quereus.lens.decomp.anchor.<id>' },
228
+ sites: siteSet('physical-table'),
229
+ valueSchema: 'string',
230
+ description: 'Existence-anchor relationId of decomposition <id> (must equal the advertisement id and be a member).',
231
+ },
232
+ {
233
+ key: { template: 'quereus.lens.decomp.member.<id>' },
234
+ sites: siteSet('physical-table'),
235
+ valueSchema: 'string',
236
+ description: 'This table\'s member relationId within decomposition <id> (defaults to the table name when absent).',
237
+ },
238
+ {
239
+ key: { template: 'quereus.lens.decomp.presence.<id>' },
240
+ sites: siteSet('physical-table'),
241
+ valueSchema: { enum: DECOMP_PRESENCE_VALUES },
242
+ description: 'This member\'s presence in decomposition <id>: mandatory (inner-join) or optional (outer-join).',
243
+ },
244
+ {
245
+ key: { template: 'quereus.lens.decomp.keykind.<id>' },
246
+ sites: siteSet('physical-table'),
247
+ valueSchema: { enum: DECOMP_KEYKIND_VALUES },
248
+ description: 'Shared-key kind of decomposition <id>: surrogate (its value comes from the anchor key column\'s declared DEFAULT) or logical-tuple (the supplied logical PK).',
249
+ },
250
+ {
251
+ key: { template: 'quereus.lens.decomp.key.<id>' },
252
+ sites: siteSet('physical-table'),
253
+ valueSchema: 'csv-of-identifiers',
254
+ description: 'This member\'s shared-key column(s) within decomposition <id> (the equi-join columns).',
255
+ },
256
+ {
257
+ // Remainder captured whole as `<id>.<logicalColumn>`; the builder sub-parses it.
258
+ key: { template: 'quereus.lens.decomp.col.<id_dot_column>' },
259
+ sites: siteSet('physical-table'),
260
+ valueSchema: 'string',
261
+ description: 'Basis column on THIS member backing logical column <logicalColumn> of decomposition <id>.',
262
+ },
263
+ {
264
+ // Remainder captured whole as `<id>.<entity|attribute|value>`.
265
+ key: { template: 'quereus.lens.decomp.pivot.<id_dot_facet>' },
266
+ sites: siteSet('physical-table'),
267
+ valueSchema: 'string',
268
+ description: 'EAV pivot column (entity/attribute/value) on THIS member for decomposition <id>.',
269
+ },
270
+ ];
271
+ export const RESERVED_TAGS = Object.freeze(RESERVED_TAG_SPECS.map(spec => Object.freeze(spec)));
272
+ /**
273
+ * Validates every `quereus.*` key in `tags` against the registry for the given
274
+ * {@link TagSite}, returning a (possibly empty) list of {@link TagDiagnostic}.
275
+ *
276
+ * Per key: not in the namespace → skipped (free-form user tag); in the namespace
277
+ * with no matching spec → `unknown-reserved-tag` (error); spec matches but the
278
+ * site is illegal → `tag-not-allowed-here` (error); site OK but the value fails
279
+ * its schema → `invalid-tag-value` (severity per {@link TagValueSchema} — an
280
+ * empty ack rationale is a warning, all other value failures are errors).
281
+ *
282
+ * This function is policy-free: it never throws and never decides whether a
283
+ * warning blocks. The caller (lens compile, the future escalation-policy parser)
284
+ * owns that decision.
285
+ */
286
+ export function validateReservedTags(tags, site) {
287
+ if (!tags)
288
+ return [];
289
+ const diagnostics = [];
290
+ for (const [key, value] of Object.entries(tags)) {
291
+ if (!key.startsWith(RESERVED_TAG_NAMESPACE))
292
+ continue;
293
+ const matched = matchSpec(key);
294
+ if (!matched) {
295
+ diagnostics.push(unknownReservedTag(key, site));
296
+ continue;
297
+ }
298
+ if (!matched.spec.sites.includes(site)) {
299
+ diagnostics.push(tagNotAllowedHere(key, site, matched.spec));
300
+ continue;
301
+ }
302
+ const valueDiag = validateTagValue(key, value, site, matched.spec.valueSchema);
303
+ if (valueDiag)
304
+ diagnostics.push(valueDiag);
305
+ }
306
+ return diagnostics;
307
+ }
308
+ /**
309
+ * Typed read of one reserved tag by its **exact** key. Does no validation —
310
+ * callers run {@link validateReservedTags} first. Returns undefined when the key
311
+ * is absent or null. For templated key families use
312
+ * {@link getReservedTagByTemplate}.
313
+ */
314
+ export function getReservedTag(tags, key) {
315
+ const value = tags?.[key];
316
+ return value == null ? undefined : value;
317
+ }
318
+ /**
319
+ * Enumerates every instance of a templated reserved key family. For
320
+ * `'quereus.lens.ack.<code>'`, a `tags` carrying
321
+ * `quereus.lens.ack.no-backing-index:vin` yields one instance with
322
+ * `segment === 'no-backing-index:vin'`. Like {@link getReservedTag}, this does
323
+ * no validation; non-TEXT values are coerced to string so a mis-typed tag does
324
+ * not crash enumeration (validate first to reject it).
325
+ */
326
+ export function getReservedTagByTemplate(tags, template) {
327
+ if (!tags)
328
+ return [];
329
+ const prefix = templatePrefix(template);
330
+ const result = [];
331
+ for (const [key, value] of Object.entries(tags)) {
332
+ if (!key.startsWith(prefix))
333
+ continue;
334
+ const segment = key.slice(prefix.length);
335
+ if (segment.length === 0)
336
+ continue; // empty remainder is not an instance
337
+ result.push({ segment, value: value == null ? '' : String(value) });
338
+ }
339
+ return result;
340
+ }
341
+ /**
342
+ * Finds the spec a reserved key matches. Exact specs are tried first, then
343
+ * single-placeholder templates (remainder captured whole, including any
344
+ * `:target` refinement — sub-parsing is the consumer's job). A template whose
345
+ * remainder would be empty does not match (so `quereus.lens.ack.` with no code
346
+ * is an unknown key).
347
+ */
348
+ function matchSpec(key) {
349
+ for (const spec of RESERVED_TAGS) {
350
+ if (typeof spec.key === 'string' && spec.key === key)
351
+ return { spec };
352
+ }
353
+ for (const spec of RESERVED_TAGS) {
354
+ if (typeof spec.key === 'string')
355
+ continue;
356
+ const prefix = templatePrefix(spec.key.template);
357
+ if (key.startsWith(prefix) && key.length > prefix.length) {
358
+ return { spec, segment: key.slice(prefix.length) };
359
+ }
360
+ }
361
+ return undefined;
362
+ }
363
+ /** The literal prefix of a template, up to its `<placeholder>`. */
364
+ function templatePrefix(template) {
365
+ const idx = template.indexOf('<');
366
+ return idx < 0 ? template : template.slice(0, idx);
367
+ }
368
+ /** A frozen, genuinely-immutable list of legal sites for one spec. */
369
+ function siteSet(...sites) {
370
+ return Object.freeze(sites);
371
+ }
372
+ // === internal: value-schema validation ===
373
+ const IDENTIFIER_RE = /^[A-Za-z_][A-Za-z0-9_$.]*$/;
374
+ /** TEXT predicate — reserved tag values that must be strings. */
375
+ function isText(value) {
376
+ return typeof value === 'string';
377
+ }
378
+ /**
379
+ * Validates one value against its {@link TagValueSchema}. Returns a diagnostic
380
+ * on failure, or undefined when the value is well-shaped. Severity follows the
381
+ * doc rule: an empty `required-nonempty-rationale` is a warning; all other value
382
+ * failures are errors.
383
+ */
384
+ function validateTagValue(key, value, site, schema) {
385
+ if (typeof schema === 'object') {
386
+ return validateEnum(key, value, site, schema.enum);
387
+ }
388
+ switch (schema) {
389
+ case 'string':
390
+ return isText(value)
391
+ ? undefined
392
+ : invalidValue(key, site, `must be a text value`, 'error');
393
+ case 'boolean':
394
+ return typeof value === 'boolean'
395
+ ? undefined
396
+ : invalidValue(key, site, `must be a boolean value`, 'error');
397
+ case 'csv-of-identifiers':
398
+ return validateCsvOfIdentifiers(key, value, site);
399
+ case 'required-nonempty-rationale':
400
+ return validateRationale(key, value, site);
401
+ case 'eviction-policy':
402
+ return validateEvictionPolicy(key, value, site);
403
+ }
404
+ }
405
+ /**
406
+ * A `quereus.sync.evict` value: the keyword `'never'` / `'immediate'`
407
+ * (case-insensitive), or a non-negative number of milliseconds (a numeric value
408
+ * or a numeric string). Anything else is an error. Structural only — the sync
409
+ * layer re-parses the accepted shapes into its {@link EvictPolicy}.
410
+ */
411
+ function validateEvictionPolicy(key, value, site) {
412
+ if (typeof value === 'string') {
413
+ const v = value.trim().toLowerCase();
414
+ if (v === 'never' || v === 'immediate')
415
+ return undefined;
416
+ const n = Number(v);
417
+ if (v.length > 0 && Number.isFinite(n) && n >= 0)
418
+ return undefined;
419
+ }
420
+ else if (typeof value === 'number') {
421
+ if (Number.isFinite(value) && value >= 0)
422
+ return undefined;
423
+ }
424
+ else if (typeof value === 'bigint') {
425
+ if (value >= 0n)
426
+ return undefined;
427
+ }
428
+ return invalidValue(key, site, `must be 'never', 'immediate', or a non-negative number of milliseconds`, 'error');
429
+ }
430
+ function validateEnum(key, value, site, allowed) {
431
+ if (isText(value) && allowed.includes(value))
432
+ return undefined;
433
+ return invalidValue(key, site, `has invalid value ${formatValue(value)}; expected one of: ${allowed.join(', ')}`, 'error');
434
+ }
435
+ function validateCsvOfIdentifiers(key, value, site) {
436
+ if (!isText(value) || value.trim().length === 0) {
437
+ return invalidValue(key, site, `must be a non-empty comma-separated list of identifiers`, 'error');
438
+ }
439
+ const segments = value.split(',');
440
+ for (const seg of segments) {
441
+ const token = seg.trim();
442
+ if (token.length === 0 || !IDENTIFIER_RE.test(token)) {
443
+ return invalidValue(key, site, `must be a comma-separated list of identifiers (offending segment: ${formatValue(token)})`, 'error');
444
+ }
445
+ }
446
+ return undefined;
447
+ }
448
+ /**
449
+ * A `quereus.lens.ack.*` rationale. An empty / missing / whitespace / non-TEXT
450
+ * value is a **warning** (docs/lens.md:176 — "an empty or missing rationale is
451
+ * itself a warning"); the ack never hard-blocks a deploy.
452
+ */
453
+ function validateRationale(key, value, site) {
454
+ if (isText(value) && value.trim().length > 0)
455
+ return undefined;
456
+ return invalidValue(key, site, `has an empty or missing acknowledgment rationale; provide a non-empty justification`, 'warning', `set ${JSON.stringify(key)} = '<why this advisory is accepted>'`);
457
+ }
458
+ // === internal: diagnostic constructors ===
459
+ function unknownReservedTag(key, site) {
460
+ return {
461
+ reason: 'unknown-reserved-tag',
462
+ severity: 'error',
463
+ key,
464
+ site,
465
+ message: `Unknown reserved tag ${formatValue(key)} on ${siteLabel(site)}: no such key in the reserved 'quereus.*' namespace`,
466
+ suggestion: `Recognized keys: quereus.{id, previous_name}, quereus.expose_implicit_index, quereus.sync.replicate, quereus.sync.evict, quereus.lens.ack.<code>, quereus.lens.access.<col>, quereus.lens.writable, quereus.lens.policy.{error-on, require-ack}, quereus.lens.decomp.{logical,role,anchor,member,presence,keykind,key}.<id>, quereus.lens.decomp.{col,pivot}.<id>.<...>`,
467
+ };
468
+ }
469
+ function tagNotAllowedHere(key, site, spec) {
470
+ const allowed = spec.sites.map(siteLabel).join(', ');
471
+ return {
472
+ reason: 'tag-not-allowed-here',
473
+ severity: 'error',
474
+ key,
475
+ site,
476
+ message: `Reserved tag ${formatValue(key)} is not allowed on ${siteLabel(site)}; it is valid only on: ${allowed}`,
477
+ };
478
+ }
479
+ function invalidValue(key, site, detail, severity, suggestion) {
480
+ return {
481
+ reason: 'invalid-tag-value',
482
+ severity,
483
+ key,
484
+ site,
485
+ message: `Reserved tag ${formatValue(key)} on ${siteLabel(site)} ${detail}`,
486
+ suggestion,
487
+ };
488
+ }
489
+ /** Human label for a {@link TagSite}, for sited messages. */
490
+ function siteLabel(site) {
491
+ switch (site) {
492
+ case 'view-ddl': return 'a view declaration';
493
+ case 'dml-stmt': return 'a DML statement';
494
+ case 'logical-table': return 'a logical table';
495
+ case 'logical-constraint': return 'a logical constraint';
496
+ case 'logical-column': return 'a logical column';
497
+ case 'physical-table': return 'a basis table';
498
+ case 'physical-column': return 'a physical column';
499
+ case 'physical-index': return 'a physical index';
500
+ case 'physical-constraint': return 'a physical constraint';
501
+ }
502
+ }
503
+ /** Render a tag key/value for a message: quote strings, stringify the rest. */
504
+ function formatValue(value) {
505
+ return typeof value === 'string' ? `'${value}'` : String(value);
506
+ }
507
+ //# sourceMappingURL=reserved-tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reserved-tags.js","sourceRoot":"","sources":["../../../src/schema/reserved-tags.ts"],"names":[],"mappings":"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"}