@quereus/quereus 4.3.0 → 4.3.2

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 (730) hide show
  1. package/README.md +25 -7
  2. package/dist/src/common/types.d.ts +9 -59
  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-assertions.d.ts +2 -2
  6. package/dist/src/core/database-assertions.d.ts.map +1 -1
  7. package/dist/src/core/database-assertions.js +4 -3
  8. package/dist/src/core/database-assertions.js.map +1 -1
  9. package/dist/src/core/database-external-changes.d.ts +1 -1
  10. package/dist/src/core/database-external-changes.js +1 -1
  11. package/dist/src/core/database-internal.d.ts.map +1 -1
  12. package/dist/src/core/database-materialized-views-analysis.d.ts +199 -0
  13. package/dist/src/core/database-materialized-views-analysis.d.ts.map +1 -0
  14. package/dist/src/core/database-materialized-views-analysis.js +502 -0
  15. package/dist/src/core/database-materialized-views-analysis.js.map +1 -0
  16. package/dist/src/core/database-materialized-views-apply.d.ts +280 -0
  17. package/dist/src/core/database-materialized-views-apply.d.ts.map +1 -0
  18. package/dist/src/core/database-materialized-views-apply.js +624 -0
  19. package/dist/src/core/database-materialized-views-apply.js.map +1 -0
  20. package/dist/src/core/database-materialized-views-plan-builders.d.ts +203 -0
  21. package/dist/src/core/database-materialized-views-plan-builders.d.ts.map +1 -0
  22. package/dist/src/core/database-materialized-views-plan-builders.js +1084 -0
  23. package/dist/src/core/database-materialized-views-plan-builders.js.map +1 -0
  24. package/dist/src/core/database-materialized-views-plans.d.ts +417 -0
  25. package/dist/src/core/database-materialized-views-plans.d.ts.map +1 -0
  26. package/dist/src/core/database-materialized-views-plans.js +13 -0
  27. package/dist/src/core/database-materialized-views-plans.js.map +1 -0
  28. package/dist/src/core/database-materialized-views.d.ts +11 -819
  29. package/dist/src/core/database-materialized-views.d.ts.map +1 -1
  30. package/dist/src/core/database-materialized-views.js +60 -2069
  31. package/dist/src/core/database-materialized-views.js.map +1 -1
  32. package/dist/src/core/database-transaction.d.ts +10 -1
  33. package/dist/src/core/database-transaction.d.ts.map +1 -1
  34. package/dist/src/core/database-transaction.js +16 -4
  35. package/dist/src/core/database-transaction.js.map +1 -1
  36. package/dist/src/core/database-watchers.d.ts.map +1 -1
  37. package/dist/src/core/database-watchers.js +2 -1
  38. package/dist/src/core/database-watchers.js.map +1 -1
  39. package/dist/src/core/database.d.ts +99 -13
  40. package/dist/src/core/database.d.ts.map +1 -1
  41. package/dist/src/core/database.js +250 -33
  42. package/dist/src/core/database.js.map +1 -1
  43. package/dist/src/core/derived-row-validator.d.ts +1 -1
  44. package/dist/src/core/derived-row-validator.d.ts.map +1 -1
  45. package/dist/src/core/derived-row-validator.js +5 -3
  46. package/dist/src/core/derived-row-validator.js.map +1 -1
  47. package/dist/src/core/statement.d.ts +8 -0
  48. package/dist/src/core/statement.d.ts.map +1 -1
  49. package/dist/src/core/statement.js +98 -18
  50. package/dist/src/core/statement.js.map +1 -1
  51. package/dist/src/emit/ast-stringify.d.ts.map +1 -1
  52. package/dist/src/emit/ast-stringify.js +24 -13
  53. package/dist/src/emit/ast-stringify.js.map +1 -1
  54. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  55. package/dist/src/func/builtins/explain.js +2 -1
  56. package/dist/src/func/builtins/explain.js.map +1 -1
  57. package/dist/src/func/builtins/json.d.ts.map +1 -1
  58. package/dist/src/func/builtins/json.js +2 -1
  59. package/dist/src/func/builtins/json.js.map +1 -1
  60. package/dist/src/func/builtins/mutation.d.ts.map +1 -1
  61. package/dist/src/func/builtins/mutation.js +3 -2
  62. package/dist/src/func/builtins/mutation.js.map +1 -1
  63. package/dist/src/index.d.ts +16 -6
  64. package/dist/src/index.d.ts.map +1 -1
  65. package/dist/src/index.js +33 -7
  66. package/dist/src/index.js.map +1 -1
  67. package/dist/src/parser/ast.d.ts +2 -2
  68. package/dist/src/parser/lexer.d.ts +11 -1
  69. package/dist/src/parser/lexer.d.ts.map +1 -1
  70. package/dist/src/parser/lexer.js +40 -34
  71. package/dist/src/parser/lexer.js.map +1 -1
  72. package/dist/src/parser/parser.d.ts.map +1 -1
  73. package/dist/src/parser/parser.js +16 -9
  74. package/dist/src/parser/parser.js.map +1 -1
  75. package/dist/src/planner/analysis/authored-inverse.js +1 -1
  76. package/dist/src/planner/analysis/comparison-collation.d.ts +52 -0
  77. package/dist/src/planner/analysis/comparison-collation.d.ts.map +1 -1
  78. package/dist/src/planner/analysis/comparison-collation.js +84 -7
  79. package/dist/src/planner/analysis/comparison-collation.js.map +1 -1
  80. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  81. package/dist/src/planner/analysis/constraint-extractor.js +64 -17
  82. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  83. package/dist/src/planner/analysis/coverage-prover.d.ts +1 -1
  84. package/dist/src/planner/analysis/coverage-prover.js +1 -1
  85. package/dist/src/planner/analysis/sat-checker.d.ts +8 -1
  86. package/dist/src/planner/analysis/sat-checker.d.ts.map +1 -1
  87. package/dist/src/planner/analysis/sat-checker.js +117 -22
  88. package/dist/src/planner/analysis/sat-checker.js.map +1 -1
  89. package/dist/src/planner/analysis/scalar-invertibility.d.ts +13 -4
  90. package/dist/src/planner/analysis/scalar-invertibility.d.ts.map +1 -1
  91. package/dist/src/planner/analysis/scalar-invertibility.js +12 -3
  92. package/dist/src/planner/analysis/scalar-invertibility.js.map +1 -1
  93. package/dist/src/planner/analysis/update-lineage.d.ts +1 -1
  94. package/dist/src/planner/analysis/update-lineage.js +1 -1
  95. package/dist/src/planner/analysis/update-lineage.js.map +1 -1
  96. package/dist/src/planner/analysis/view-complement.d.ts +2 -2
  97. package/dist/src/planner/building/delete.d.ts.map +1 -1
  98. package/dist/src/planner/building/delete.js +13 -2
  99. package/dist/src/planner/building/delete.js.map +1 -1
  100. package/dist/src/planner/building/dml-target.d.ts +2 -2
  101. package/dist/src/planner/building/dml-target.js +2 -2
  102. package/dist/src/planner/building/insert.d.ts.map +1 -1
  103. package/dist/src/planner/building/insert.js +53 -2
  104. package/dist/src/planner/building/insert.js.map +1 -1
  105. package/dist/src/planner/building/schema-resolution.d.ts +3 -0
  106. package/dist/src/planner/building/schema-resolution.d.ts.map +1 -1
  107. package/dist/src/planner/building/schema-resolution.js +4 -5
  108. package/dist/src/planner/building/schema-resolution.js.map +1 -1
  109. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  110. package/dist/src/planner/building/select-aggregates.js +72 -4
  111. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  112. package/dist/src/planner/building/select.js +3 -3
  113. package/dist/src/planner/building/select.js.map +1 -1
  114. package/dist/src/planner/building/update.d.ts.map +1 -1
  115. package/dist/src/planner/building/update.js +16 -2
  116. package/dist/src/planner/building/update.js.map +1 -1
  117. package/dist/src/planner/building/view-mutation-builder.js +7 -7
  118. package/dist/src/planner/building/view-mutation-builder.js.map +1 -1
  119. package/dist/src/planner/cache/materialization-advisory.d.ts +1 -2
  120. package/dist/src/planner/cache/materialization-advisory.d.ts.map +1 -1
  121. package/dist/src/planner/cache/materialization-advisory.js +21 -14
  122. package/dist/src/planner/cache/materialization-advisory.js.map +1 -1
  123. package/dist/src/planner/cache/reference-graph.d.ts +14 -1
  124. package/dist/src/planner/cache/reference-graph.d.ts.map +1 -1
  125. package/dist/src/planner/cache/reference-graph.js +26 -26
  126. package/dist/src/planner/cache/reference-graph.js.map +1 -1
  127. package/dist/src/planner/cost/index.d.ts +7 -3
  128. package/dist/src/planner/cost/index.d.ts.map +1 -1
  129. package/dist/src/planner/cost/index.js.map +1 -1
  130. package/dist/src/planner/debug.d.ts +3 -2
  131. package/dist/src/planner/debug.d.ts.map +1 -1
  132. package/dist/src/planner/debug.js +9 -3
  133. package/dist/src/planner/debug.js.map +1 -1
  134. package/dist/src/planner/framework/characteristics.d.ts +46 -19
  135. package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
  136. package/dist/src/planner/framework/characteristics.js +50 -134
  137. package/dist/src/planner/framework/characteristics.js.map +1 -1
  138. package/dist/src/planner/framework/context.d.ts +8 -44
  139. package/dist/src/planner/framework/context.d.ts.map +1 -1
  140. package/dist/src/planner/framework/context.js +0 -91
  141. package/dist/src/planner/framework/context.js.map +1 -1
  142. package/dist/src/planner/framework/pass.d.ts +7 -0
  143. package/dist/src/planner/framework/pass.d.ts.map +1 -1
  144. package/dist/src/planner/framework/pass.js +84 -0
  145. package/dist/src/planner/framework/pass.js.map +1 -1
  146. package/dist/src/planner/framework/registry.d.ts +13 -42
  147. package/dist/src/planner/framework/registry.d.ts.map +1 -1
  148. package/dist/src/planner/framework/registry.js +14 -182
  149. package/dist/src/planner/framework/registry.js.map +1 -1
  150. package/dist/src/planner/mutation/backward-body.d.ts +2 -2
  151. package/dist/src/planner/mutation/cte-flatten.js +1 -1
  152. package/dist/src/planner/mutation/decomposition.d.ts +2 -2
  153. package/dist/src/planner/mutation/decomposition.js +1 -1
  154. package/dist/src/planner/mutation/lens-enforcement.d.ts.map +1 -1
  155. package/dist/src/planner/mutation/lens-enforcement.js +2 -1
  156. package/dist/src/planner/mutation/lens-enforcement.js.map +1 -1
  157. package/dist/src/planner/mutation/multi-source.d.ts +8 -8
  158. package/dist/src/planner/mutation/multi-source.js +11 -11
  159. package/dist/src/planner/mutation/multi-source.js.map +1 -1
  160. package/dist/src/planner/mutation/propagate.d.ts +1 -1
  161. package/dist/src/planner/mutation/propagate.js +1 -1
  162. package/dist/src/planner/mutation/scope-transform.d.ts +2 -2
  163. package/dist/src/planner/mutation/scope-transform.js +3 -3
  164. package/dist/src/planner/mutation/scope-transform.js.map +1 -1
  165. package/dist/src/planner/mutation/set-op.d.ts +1 -1
  166. package/dist/src/planner/mutation/set-op.d.ts.map +1 -1
  167. package/dist/src/planner/mutation/set-op.js +3 -2
  168. package/dist/src/planner/mutation/set-op.js.map +1 -1
  169. package/dist/src/planner/mutation/single-source.d.ts +3 -3
  170. package/dist/src/planner/mutation/single-source.js +9 -9
  171. package/dist/src/planner/mutation/single-source.js.map +1 -1
  172. package/dist/src/planner/nodes/aggregate-function.d.ts +3 -1
  173. package/dist/src/planner/nodes/aggregate-function.d.ts.map +1 -1
  174. package/dist/src/planner/nodes/aggregate-function.js +1 -0
  175. package/dist/src/planner/nodes/aggregate-function.js.map +1 -1
  176. package/dist/src/planner/nodes/aggregate-node.d.ts +1 -0
  177. package/dist/src/planner/nodes/aggregate-node.d.ts.map +1 -1
  178. package/dist/src/planner/nodes/aggregate-node.js +8 -1
  179. package/dist/src/planner/nodes/aggregate-node.js.map +1 -1
  180. package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
  181. package/dist/src/planner/nodes/alias-node.js +3 -1
  182. package/dist/src/planner/nodes/alias-node.js.map +1 -1
  183. package/dist/src/planner/nodes/asof-scan-node.d.ts.map +1 -1
  184. package/dist/src/planner/nodes/asof-scan-node.js +3 -2
  185. package/dist/src/planner/nodes/asof-scan-node.js.map +1 -1
  186. package/dist/src/planner/nodes/asserted-keys-node.d.ts +1 -1
  187. package/dist/src/planner/nodes/asserted-keys-node.d.ts.map +1 -1
  188. package/dist/src/planner/nodes/asserted-keys-node.js +5 -2
  189. package/dist/src/planner/nodes/asserted-keys-node.js.map +1 -1
  190. package/dist/src/planner/nodes/async-gather-node.d.ts.map +1 -1
  191. package/dist/src/planner/nodes/async-gather-node.js +3 -1
  192. package/dist/src/planner/nodes/async-gather-node.js.map +1 -1
  193. package/dist/src/planner/nodes/block.js +3 -3
  194. package/dist/src/planner/nodes/block.js.map +1 -1
  195. package/dist/src/planner/nodes/bloom-join-node.d.ts +2 -0
  196. package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -1
  197. package/dist/src/planner/nodes/bloom-join-node.js +5 -1
  198. package/dist/src/planner/nodes/bloom-join-node.js.map +1 -1
  199. package/dist/src/planner/nodes/cache-node.d.ts +1 -0
  200. package/dist/src/planner/nodes/cache-node.d.ts.map +1 -1
  201. package/dist/src/planner/nodes/cache-node.js +1 -0
  202. package/dist/src/planner/nodes/cache-node.js.map +1 -1
  203. package/dist/src/planner/nodes/cte-node.d.ts +1 -0
  204. package/dist/src/planner/nodes/cte-node.d.ts.map +1 -1
  205. package/dist/src/planner/nodes/cte-node.js +4 -1
  206. package/dist/src/planner/nodes/cte-node.js.map +1 -1
  207. package/dist/src/planner/nodes/distinct-node.js +3 -3
  208. package/dist/src/planner/nodes/distinct-node.js.map +1 -1
  209. package/dist/src/planner/nodes/dml-executor-node.d.ts +21 -0
  210. package/dist/src/planner/nodes/dml-executor-node.d.ts.map +1 -1
  211. package/dist/src/planner/nodes/dml-executor-node.js.map +1 -1
  212. package/dist/src/planner/nodes/envelope-scan-node.d.ts +1 -1
  213. package/dist/src/planner/nodes/envelope-scan-node.js +1 -1
  214. package/dist/src/planner/nodes/fanout-lookup-join-node.d.ts.map +1 -1
  215. package/dist/src/planner/nodes/fanout-lookup-join-node.js +4 -2
  216. package/dist/src/planner/nodes/fanout-lookup-join-node.js.map +1 -1
  217. package/dist/src/planner/nodes/filter.d.ts +10 -2
  218. package/dist/src/planner/nodes/filter.d.ts.map +1 -1
  219. package/dist/src/planner/nodes/filter.js +81 -14
  220. package/dist/src/planner/nodes/filter.js.map +1 -1
  221. package/dist/src/planner/nodes/hash-aggregate.d.ts +12 -1
  222. package/dist/src/planner/nodes/hash-aggregate.d.ts.map +1 -1
  223. package/dist/src/planner/nodes/hash-aggregate.js +28 -1
  224. package/dist/src/planner/nodes/hash-aggregate.js.map +1 -1
  225. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.d.ts +3 -1
  226. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.d.ts.map +1 -1
  227. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js +1 -0
  228. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js.map +1 -1
  229. package/dist/src/planner/nodes/join-node.d.ts +3 -1
  230. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  231. package/dist/src/planner/nodes/join-node.js +5 -5
  232. package/dist/src/planner/nodes/join-node.js.map +1 -1
  233. package/dist/src/planner/nodes/lens-auxiliary-access-node.d.ts.map +1 -1
  234. package/dist/src/planner/nodes/lens-auxiliary-access-node.js +4 -1
  235. package/dist/src/planner/nodes/lens-auxiliary-access-node.js.map +1 -1
  236. package/dist/src/planner/nodes/limit-offset.d.ts +1 -0
  237. package/dist/src/planner/nodes/limit-offset.d.ts.map +1 -1
  238. package/dist/src/planner/nodes/limit-offset.js +4 -3
  239. package/dist/src/planner/nodes/limit-offset.js.map +1 -1
  240. package/dist/src/planner/nodes/merge-join-node.d.ts +2 -0
  241. package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -1
  242. package/dist/src/planner/nodes/merge-join-node.js +6 -1
  243. package/dist/src/planner/nodes/merge-join-node.js.map +1 -1
  244. package/dist/src/planner/nodes/ordinal-slice-node.d.ts.map +1 -1
  245. package/dist/src/planner/nodes/ordinal-slice-node.js +3 -1
  246. package/dist/src/planner/nodes/ordinal-slice-node.js.map +1 -1
  247. package/dist/src/planner/nodes/plan-node.d.ts +68 -5
  248. package/dist/src/planner/nodes/plan-node.d.ts.map +1 -1
  249. package/dist/src/planner/nodes/plan-node.js +137 -24
  250. package/dist/src/planner/nodes/plan-node.js.map +1 -1
  251. package/dist/src/planner/nodes/project-node.d.ts +3 -2
  252. package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
  253. package/dist/src/planner/nodes/project-node.js +1 -0
  254. package/dist/src/planner/nodes/project-node.js.map +1 -1
  255. package/dist/src/planner/nodes/recursive-cte-node.d.ts.map +1 -1
  256. package/dist/src/planner/nodes/recursive-cte-node.js +8 -2
  257. package/dist/src/planner/nodes/recursive-cte-node.js.map +1 -1
  258. package/dist/src/planner/nodes/reference.d.ts +5 -1
  259. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  260. package/dist/src/planner/nodes/reference.js +3 -0
  261. package/dist/src/planner/nodes/reference.js.map +1 -1
  262. package/dist/src/planner/nodes/remote-query-node.d.ts.map +1 -1
  263. package/dist/src/planner/nodes/remote-query-node.js +3 -1
  264. package/dist/src/planner/nodes/remote-query-node.js.map +1 -1
  265. package/dist/src/planner/nodes/retrieve-node.d.ts.map +1 -1
  266. package/dist/src/planner/nodes/retrieve-node.js +3 -1
  267. package/dist/src/planner/nodes/retrieve-node.js.map +1 -1
  268. package/dist/src/planner/nodes/set-operation-node.d.ts.map +1 -1
  269. package/dist/src/planner/nodes/set-operation-node.js +3 -1
  270. package/dist/src/planner/nodes/set-operation-node.js.map +1 -1
  271. package/dist/src/planner/nodes/sink-node.d.ts.map +1 -1
  272. package/dist/src/planner/nodes/sink-node.js +3 -1
  273. package/dist/src/planner/nodes/sink-node.js.map +1 -1
  274. package/dist/src/planner/nodes/sort.d.ts +2 -1
  275. package/dist/src/planner/nodes/sort.d.ts.map +1 -1
  276. package/dist/src/planner/nodes/sort.js +9 -5
  277. package/dist/src/planner/nodes/sort.js.map +1 -1
  278. package/dist/src/planner/nodes/stream-aggregate.d.ts +12 -1
  279. package/dist/src/planner/nodes/stream-aggregate.d.ts.map +1 -1
  280. package/dist/src/planner/nodes/stream-aggregate.js +32 -3
  281. package/dist/src/planner/nodes/stream-aggregate.js.map +1 -1
  282. package/dist/src/planner/nodes/table-access-nodes.d.ts +2 -1
  283. package/dist/src/planner/nodes/table-access-nodes.d.ts.map +1 -1
  284. package/dist/src/planner/nodes/table-access-nodes.js +2 -0
  285. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  286. package/dist/src/planner/nodes/view-mutation-node.d.ts +2 -2
  287. package/dist/src/planner/nodes/view-mutation-node.d.ts.map +1 -1
  288. package/dist/src/planner/nodes/view-mutation-node.js +5 -1
  289. package/dist/src/planner/nodes/view-mutation-node.js.map +1 -1
  290. package/dist/src/planner/nodes/window-function.d.ts +3 -1
  291. package/dist/src/planner/nodes/window-function.d.ts.map +1 -1
  292. package/dist/src/planner/nodes/window-function.js +1 -0
  293. package/dist/src/planner/nodes/window-function.js.map +1 -1
  294. package/dist/src/planner/optimizer.d.ts +52 -8
  295. package/dist/src/planner/optimizer.d.ts.map +1 -1
  296. package/dist/src/planner/optimizer.js +885 -894
  297. package/dist/src/planner/optimizer.js.map +1 -1
  298. package/dist/src/planner/rules/access/rule-select-access-path.d.ts.map +1 -1
  299. package/dist/src/planner/rules/access/rule-select-access-path.js +235 -202
  300. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  301. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.d.ts +2 -2
  302. package/dist/src/planner/rules/cache/rule-materialized-view-rewrite.js +2 -2
  303. package/dist/src/planner/rules/cache/rule-scalar-cse.d.ts +1 -1
  304. package/dist/src/planner/rules/cache/rule-scalar-cse.js +1 -1
  305. package/dist/src/planner/rules/join/rule-fanout-batched-outer.d.ts +1 -1
  306. package/dist/src/planner/rules/join/rule-fanout-batched-outer.js +1 -1
  307. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.d.ts +1 -1
  308. package/dist/src/planner/rules/join/rule-inner-join-existence-recovery.js +1 -1
  309. package/dist/src/planner/rules/join/rule-join-elimination.d.ts +1 -1
  310. package/dist/src/planner/rules/join/rule-join-elimination.js +1 -1
  311. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js +5 -6
  312. package/dist/src/planner/rules/parallel/rule-async-gather-zip-by-key.js.map +1 -1
  313. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.d.ts +1 -1
  314. package/dist/src/planner/rules/predicate/rule-empty-relation-folding.js +1 -1
  315. package/dist/src/planner/rules/predicate/rule-filter-contradiction.d.ts +2 -2
  316. package/dist/src/planner/rules/predicate/rule-filter-contradiction.d.ts.map +1 -1
  317. package/dist/src/planner/rules/predicate/rule-filter-contradiction.js +4 -3
  318. package/dist/src/planner/rules/predicate/rule-filter-contradiction.js.map +1 -1
  319. package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts +19 -0
  320. package/dist/src/planner/rules/predicate/rule-filter-selectivity.d.ts.map +1 -0
  321. package/dist/src/planner/rules/predicate/rule-filter-selectivity.js +48 -0
  322. package/dist/src/planner/rules/predicate/rule-filter-selectivity.js.map +1 -0
  323. package/dist/src/planner/rules/predicate/rule-sargable-range-rewrite.js +12 -1
  324. package/dist/src/planner/rules/predicate/rule-sargable-range-rewrite.js.map +1 -1
  325. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
  326. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +90 -26
  327. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  328. package/dist/src/planner/rules/shared/index-style-context.d.ts +39 -0
  329. package/dist/src/planner/rules/shared/index-style-context.d.ts.map +1 -0
  330. package/dist/src/planner/rules/shared/index-style-context.js +26 -0
  331. package/dist/src/planner/rules/shared/index-style-context.js.map +1 -0
  332. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.d.ts +1 -1
  333. package/dist/src/planner/rules/sort/rule-orderby-fd-pruning.js +1 -1
  334. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.d.ts +1 -1
  335. package/dist/src/planner/rules/subquery/rule-anti-join-fk-empty.js +1 -1
  336. package/dist/src/planner/scopes/registered.d.ts +21 -0
  337. package/dist/src/planner/scopes/registered.d.ts.map +1 -1
  338. package/dist/src/planner/scopes/registered.js +31 -1
  339. package/dist/src/planner/scopes/registered.js.map +1 -1
  340. package/dist/src/planner/stats/analyze.d.ts.map +1 -1
  341. package/dist/src/planner/stats/analyze.js +2 -20
  342. package/dist/src/planner/stats/analyze.js.map +1 -1
  343. package/dist/src/planner/stats/histogram.d.ts.map +1 -1
  344. package/dist/src/planner/stats/histogram.js +4 -0
  345. package/dist/src/planner/stats/histogram.js.map +1 -1
  346. package/dist/src/planner/util/fd-utils.d.ts +2 -3
  347. package/dist/src/planner/util/fd-utils.d.ts.map +1 -1
  348. package/dist/src/planner/util/fd-utils.js +2 -3
  349. package/dist/src/planner/util/fd-utils.js.map +1 -1
  350. package/dist/src/planner/validation/plan-validator.d.ts +16 -0
  351. package/dist/src/planner/validation/plan-validator.d.ts.map +1 -1
  352. package/dist/src/planner/validation/plan-validator.js +36 -0
  353. package/dist/src/planner/validation/plan-validator.js.map +1 -1
  354. package/dist/src/runtime/async-util.d.ts +26 -0
  355. package/dist/src/runtime/async-util.d.ts.map +1 -1
  356. package/dist/src/runtime/async-util.js +139 -55
  357. package/dist/src/runtime/async-util.js.map +1 -1
  358. package/dist/src/runtime/context-helpers.d.ts +32 -4
  359. package/dist/src/runtime/context-helpers.d.ts.map +1 -1
  360. package/dist/src/runtime/context-helpers.js +26 -9
  361. package/dist/src/runtime/context-helpers.js.map +1 -1
  362. package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
  363. package/dist/src/runtime/deferred-constraint-queue.js +2 -1
  364. package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
  365. package/dist/src/runtime/emission-context.d.ts +27 -3
  366. package/dist/src/runtime/emission-context.d.ts.map +1 -1
  367. package/dist/src/runtime/emission-context.js +38 -7
  368. package/dist/src/runtime/emission-context.js.map +1 -1
  369. package/dist/src/runtime/emit/add-constraint.d.ts.map +1 -1
  370. package/dist/src/runtime/emit/add-constraint.js +7 -1
  371. package/dist/src/runtime/emit/add-constraint.js.map +1 -1
  372. package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
  373. package/dist/src/runtime/emit/aggregate.js +17 -13
  374. package/dist/src/runtime/emit/aggregate.js.map +1 -1
  375. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  376. package/dist/src/runtime/emit/alter-table.js +98 -9
  377. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  378. package/dist/src/runtime/emit/analyze.d.ts.map +1 -1
  379. package/dist/src/runtime/emit/analyze.js +2 -1
  380. package/dist/src/runtime/emit/analyze.js.map +1 -1
  381. package/dist/src/runtime/emit/asof-scan.d.ts.map +1 -1
  382. package/dist/src/runtime/emit/asof-scan.js +13 -10
  383. package/dist/src/runtime/emit/asof-scan.js.map +1 -1
  384. package/dist/src/runtime/emit/async-gather.d.ts.map +1 -1
  385. package/dist/src/runtime/emit/async-gather.js +4 -3
  386. package/dist/src/runtime/emit/async-gather.js.map +1 -1
  387. package/dist/src/runtime/emit/between.d.ts.map +1 -1
  388. package/dist/src/runtime/emit/between.js +2 -1
  389. package/dist/src/runtime/emit/between.js.map +1 -1
  390. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  391. package/dist/src/runtime/emit/binary.js +122 -14
  392. package/dist/src/runtime/emit/binary.js.map +1 -1
  393. package/dist/src/runtime/emit/block.d.ts.map +1 -1
  394. package/dist/src/runtime/emit/block.js +2 -1
  395. package/dist/src/runtime/emit/block.js.map +1 -1
  396. package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -1
  397. package/dist/src/runtime/emit/bloom-join.js +20 -8
  398. package/dist/src/runtime/emit/bloom-join.js.map +1 -1
  399. package/dist/src/runtime/emit/cache.d.ts.map +1 -1
  400. package/dist/src/runtime/emit/cache.js +2 -1
  401. package/dist/src/runtime/emit/cache.js.map +1 -1
  402. package/dist/src/runtime/emit/case.d.ts.map +1 -1
  403. package/dist/src/runtime/emit/case.js +66 -45
  404. package/dist/src/runtime/emit/case.js.map +1 -1
  405. package/dist/src/runtime/emit/cast.d.ts.map +1 -1
  406. package/dist/src/runtime/emit/cast.js +2 -1
  407. package/dist/src/runtime/emit/cast.js.map +1 -1
  408. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  409. package/dist/src/runtime/emit/constraint-check.js +13 -7
  410. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  411. package/dist/src/runtime/emit/create-assertion.d.ts.map +1 -1
  412. package/dist/src/runtime/emit/create-assertion.js +2 -1
  413. package/dist/src/runtime/emit/create-assertion.js.map +1 -1
  414. package/dist/src/runtime/emit/create-index.d.ts.map +1 -1
  415. package/dist/src/runtime/emit/create-index.js +12 -1
  416. package/dist/src/runtime/emit/create-index.js.map +1 -1
  417. package/dist/src/runtime/emit/create-table.d.ts.map +1 -1
  418. package/dist/src/runtime/emit/create-table.js +12 -1
  419. package/dist/src/runtime/emit/create-table.js.map +1 -1
  420. package/dist/src/runtime/emit/cte-reference.d.ts.map +1 -1
  421. package/dist/src/runtime/emit/cte-reference.js +2 -1
  422. package/dist/src/runtime/emit/cte-reference.js.map +1 -1
  423. package/dist/src/runtime/emit/cte.d.ts.map +1 -1
  424. package/dist/src/runtime/emit/cte.js +2 -1
  425. package/dist/src/runtime/emit/cte.js.map +1 -1
  426. package/dist/src/runtime/emit/ddl-transaction-policy.d.ts +50 -0
  427. package/dist/src/runtime/emit/ddl-transaction-policy.d.ts.map +1 -0
  428. package/dist/src/runtime/emit/ddl-transaction-policy.js +69 -0
  429. package/dist/src/runtime/emit/ddl-transaction-policy.js.map +1 -0
  430. package/dist/src/runtime/emit/delete.d.ts.map +1 -1
  431. package/dist/src/runtime/emit/delete.js +2 -1
  432. package/dist/src/runtime/emit/delete.js.map +1 -1
  433. package/dist/src/runtime/emit/distinct.d.ts.map +1 -1
  434. package/dist/src/runtime/emit/distinct.js +2 -1
  435. package/dist/src/runtime/emit/distinct.js.map +1 -1
  436. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  437. package/dist/src/runtime/emit/dml-executor.js +147 -34
  438. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  439. package/dist/src/runtime/emit/drop-assertion.d.ts.map +1 -1
  440. package/dist/src/runtime/emit/drop-assertion.js +2 -1
  441. package/dist/src/runtime/emit/drop-assertion.js.map +1 -1
  442. package/dist/src/runtime/emit/drop-index.d.ts.map +1 -1
  443. package/dist/src/runtime/emit/drop-index.js +17 -1
  444. package/dist/src/runtime/emit/drop-index.js.map +1 -1
  445. package/dist/src/runtime/emit/drop-table.d.ts.map +1 -1
  446. package/dist/src/runtime/emit/drop-table.js +11 -1
  447. package/dist/src/runtime/emit/drop-table.js.map +1 -1
  448. package/dist/src/runtime/emit/eager-prefetch.d.ts.map +1 -1
  449. package/dist/src/runtime/emit/eager-prefetch.js +2 -1
  450. package/dist/src/runtime/emit/eager-prefetch.js.map +1 -1
  451. package/dist/src/runtime/emit/envelope-scan.d.ts.map +1 -1
  452. package/dist/src/runtime/emit/envelope-scan.js +2 -1
  453. package/dist/src/runtime/emit/envelope-scan.js.map +1 -1
  454. package/dist/src/runtime/emit/fanout-lookup-join.d.ts.map +1 -1
  455. package/dist/src/runtime/emit/fanout-lookup-join.js +3 -2
  456. package/dist/src/runtime/emit/fanout-lookup-join.js.map +1 -1
  457. package/dist/src/runtime/emit/filter.d.ts.map +1 -1
  458. package/dist/src/runtime/emit/filter.js +8 -3
  459. package/dist/src/runtime/emit/filter.js.map +1 -1
  460. package/dist/src/runtime/emit/hash-aggregate.d.ts.map +1 -1
  461. package/dist/src/runtime/emit/hash-aggregate.js +16 -11
  462. package/dist/src/runtime/emit/hash-aggregate.js.map +1 -1
  463. package/dist/src/runtime/emit/insert.d.ts.map +1 -1
  464. package/dist/src/runtime/emit/insert.js +2 -1
  465. package/dist/src/runtime/emit/insert.js.map +1 -1
  466. package/dist/src/runtime/emit/join.d.ts.map +1 -1
  467. package/dist/src/runtime/emit/join.js +20 -6
  468. package/dist/src/runtime/emit/join.js.map +1 -1
  469. package/dist/src/runtime/emit/limit-offset.d.ts.map +1 -1
  470. package/dist/src/runtime/emit/limit-offset.js +2 -1
  471. package/dist/src/runtime/emit/limit-offset.js.map +1 -1
  472. package/dist/src/runtime/emit/literal.d.ts.map +1 -1
  473. package/dist/src/runtime/emit/literal.js +2 -1
  474. package/dist/src/runtime/emit/literal.js.map +1 -1
  475. package/dist/src/runtime/emit/materialized-view-helpers.d.ts +22 -0
  476. package/dist/src/runtime/emit/materialized-view-helpers.d.ts.map +1 -1
  477. package/dist/src/runtime/emit/materialized-view-helpers.js +123 -12
  478. package/dist/src/runtime/emit/materialized-view-helpers.js.map +1 -1
  479. package/dist/src/runtime/emit/materialized-view.d.ts.map +1 -1
  480. package/dist/src/runtime/emit/materialized-view.js +6 -0
  481. package/dist/src/runtime/emit/materialized-view.js.map +1 -1
  482. package/dist/src/runtime/emit/merge-join.d.ts.map +1 -1
  483. package/dist/src/runtime/emit/merge-join.js +14 -4
  484. package/dist/src/runtime/emit/merge-join.js.map +1 -1
  485. package/dist/src/runtime/emit/ordinal-slice.d.ts.map +1 -1
  486. package/dist/src/runtime/emit/ordinal-slice.js +2 -1
  487. package/dist/src/runtime/emit/ordinal-slice.js.map +1 -1
  488. package/dist/src/runtime/emit/pragma.d.ts.map +1 -1
  489. package/dist/src/runtime/emit/pragma.js +2 -1
  490. package/dist/src/runtime/emit/pragma.js.map +1 -1
  491. package/dist/src/runtime/emit/project.d.ts.map +1 -1
  492. package/dist/src/runtime/emit/project.js +7 -2
  493. package/dist/src/runtime/emit/project.js.map +1 -1
  494. package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
  495. package/dist/src/runtime/emit/recursive-cte.js +2 -1
  496. package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
  497. package/dist/src/runtime/emit/returning.d.ts.map +1 -1
  498. package/dist/src/runtime/emit/returning.js +7 -2
  499. package/dist/src/runtime/emit/returning.js.map +1 -1
  500. package/dist/src/runtime/emit/scalar-function.d.ts.map +1 -1
  501. package/dist/src/runtime/emit/scalar-function.js +2 -1
  502. package/dist/src/runtime/emit/scalar-function.js.map +1 -1
  503. package/dist/src/runtime/emit/scan.d.ts.map +1 -1
  504. package/dist/src/runtime/emit/scan.js +55 -17
  505. package/dist/src/runtime/emit/scan.js.map +1 -1
  506. package/dist/src/runtime/emit/schema-declarative.d.ts.map +1 -1
  507. package/dist/src/runtime/emit/schema-declarative.js +6 -5
  508. package/dist/src/runtime/emit/schema-declarative.js.map +1 -1
  509. package/dist/src/runtime/emit/sequencing.d.ts.map +1 -1
  510. package/dist/src/runtime/emit/sequencing.js +2 -1
  511. package/dist/src/runtime/emit/sequencing.js.map +1 -1
  512. package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
  513. package/dist/src/runtime/emit/set-operation.js +6 -5
  514. package/dist/src/runtime/emit/set-operation.js.map +1 -1
  515. package/dist/src/runtime/emit/sink.d.ts.map +1 -1
  516. package/dist/src/runtime/emit/sink.js +2 -1
  517. package/dist/src/runtime/emit/sink.js.map +1 -1
  518. package/dist/src/runtime/emit/sort.d.ts.map +1 -1
  519. package/dist/src/runtime/emit/sort.js +2 -1
  520. package/dist/src/runtime/emit/sort.js.map +1 -1
  521. package/dist/src/runtime/emit/subquery.d.ts.map +1 -1
  522. package/dist/src/runtime/emit/subquery.js +42 -23
  523. package/dist/src/runtime/emit/subquery.js.map +1 -1
  524. package/dist/src/runtime/emit/table-valued-function.d.ts.map +1 -1
  525. package/dist/src/runtime/emit/table-valued-function.js +2 -1
  526. package/dist/src/runtime/emit/table-valued-function.js.map +1 -1
  527. package/dist/src/runtime/emit/temporal-arithmetic.d.ts.map +1 -1
  528. package/dist/src/runtime/emit/temporal-arithmetic.js +2 -1
  529. package/dist/src/runtime/emit/temporal-arithmetic.js.map +1 -1
  530. package/dist/src/runtime/emit/transaction.d.ts.map +1 -1
  531. package/dist/src/runtime/emit/transaction.js +2 -1
  532. package/dist/src/runtime/emit/transaction.js.map +1 -1
  533. package/dist/src/runtime/emit/unary.d.ts.map +1 -1
  534. package/dist/src/runtime/emit/unary.js +2 -1
  535. package/dist/src/runtime/emit/unary.js.map +1 -1
  536. package/dist/src/runtime/emit/update.d.ts.map +1 -1
  537. package/dist/src/runtime/emit/update.js +2 -1
  538. package/dist/src/runtime/emit/update.js.map +1 -1
  539. package/dist/src/runtime/emit/values.d.ts.map +1 -1
  540. package/dist/src/runtime/emit/values.js +2 -1
  541. package/dist/src/runtime/emit/values.js.map +1 -1
  542. package/dist/src/runtime/emit/view-mutation.d.ts +1 -1
  543. package/dist/src/runtime/emit/view-mutation.d.ts.map +1 -1
  544. package/dist/src/runtime/emit/view-mutation.js +6 -3
  545. package/dist/src/runtime/emit/view-mutation.js.map +1 -1
  546. package/dist/src/runtime/emit/window.d.ts.map +1 -1
  547. package/dist/src/runtime/emit/window.js +26 -9
  548. package/dist/src/runtime/emit/window.js.map +1 -1
  549. package/dist/src/runtime/emitters.d.ts +11 -3
  550. package/dist/src/runtime/emitters.d.ts.map +1 -1
  551. package/dist/src/runtime/emitters.js +13 -22
  552. package/dist/src/runtime/emitters.js.map +1 -1
  553. package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -1
  554. package/dist/src/runtime/foreign-key-actions.js +39 -13
  555. package/dist/src/runtime/foreign-key-actions.js.map +1 -1
  556. package/dist/src/runtime/parallel-driver.d.ts +18 -4
  557. package/dist/src/runtime/parallel-driver.d.ts.map +1 -1
  558. package/dist/src/runtime/parallel-driver.js +72 -18
  559. package/dist/src/runtime/parallel-driver.js.map +1 -1
  560. package/dist/src/runtime/scheduler.d.ts +56 -7
  561. package/dist/src/runtime/scheduler.d.ts.map +1 -1
  562. package/dist/src/runtime/scheduler.js +223 -200
  563. package/dist/src/runtime/scheduler.js.map +1 -1
  564. package/dist/src/runtime/strict-flags.d.ts +22 -0
  565. package/dist/src/runtime/strict-flags.d.ts.map +1 -0
  566. package/dist/src/runtime/strict-flags.js +26 -0
  567. package/dist/src/runtime/strict-flags.js.map +1 -0
  568. package/dist/src/runtime/strict-fork.d.ts +4 -4
  569. package/dist/src/runtime/strict-fork.d.ts.map +1 -1
  570. package/dist/src/runtime/strict-fork.js +175 -31
  571. package/dist/src/runtime/strict-fork.js.map +1 -1
  572. package/dist/src/runtime/types.d.ts +66 -4
  573. package/dist/src/runtime/types.d.ts.map +1 -1
  574. package/dist/src/runtime/types.js +37 -0
  575. package/dist/src/runtime/types.js.map +1 -1
  576. package/dist/src/runtime/utils.d.ts.map +1 -1
  577. package/dist/src/runtime/utils.js +8 -17
  578. package/dist/src/runtime/utils.js.map +1 -1
  579. package/dist/src/schema/column.d.ts +8 -0
  580. package/dist/src/schema/column.d.ts.map +1 -1
  581. package/dist/src/schema/column.js.map +1 -1
  582. package/dist/src/schema/ddl-generator.js +5 -0
  583. package/dist/src/schema/ddl-generator.js.map +1 -1
  584. package/dist/src/schema/lens-compiler.js +2 -2
  585. package/dist/src/schema/lens-compiler.js.map +1 -1
  586. package/dist/src/schema/lens-prover.d.ts.map +1 -1
  587. package/dist/src/schema/lens-prover.js +2 -3
  588. package/dist/src/schema/lens-prover.js.map +1 -1
  589. package/dist/src/schema/lens.d.ts +1 -1
  590. package/dist/src/schema/manager.d.ts.map +1 -1
  591. package/dist/src/schema/manager.js +7 -2
  592. package/dist/src/schema/manager.js.map +1 -1
  593. package/dist/src/schema/rename-rewriter.d.ts +61 -0
  594. package/dist/src/schema/rename-rewriter.d.ts.map +1 -1
  595. package/dist/src/schema/rename-rewriter.js +77 -0
  596. package/dist/src/schema/rename-rewriter.js.map +1 -1
  597. package/dist/src/schema/table.d.ts +36 -8
  598. package/dist/src/schema/table.d.ts.map +1 -1
  599. package/dist/src/schema/table.js +61 -11
  600. package/dist/src/schema/table.js.map +1 -1
  601. package/dist/src/schema/unique-enforcement.d.ts +28 -5
  602. package/dist/src/schema/unique-enforcement.d.ts.map +1 -1
  603. package/dist/src/schema/unique-enforcement.js +37 -5
  604. package/dist/src/schema/unique-enforcement.js.map +1 -1
  605. package/dist/src/schema/view.d.ts +1 -1
  606. package/dist/src/schema/view.js +1 -1
  607. package/dist/src/types/json-type.d.ts.map +1 -1
  608. package/dist/src/types/json-type.js +18 -8
  609. package/dist/src/types/json-type.js.map +1 -1
  610. package/dist/src/types/logical-type.d.ts +26 -0
  611. package/dist/src/types/logical-type.d.ts.map +1 -1
  612. package/dist/src/types/logical-type.js.map +1 -1
  613. package/dist/src/util/comparison.d.ts +83 -59
  614. package/dist/src/util/comparison.d.ts.map +1 -1
  615. package/dist/src/util/comparison.js +191 -131
  616. package/dist/src/util/comparison.js.map +1 -1
  617. package/dist/src/util/json-canonical.d.ts +34 -0
  618. package/dist/src/util/json-canonical.d.ts.map +1 -0
  619. package/dist/src/util/json-canonical.js +32 -0
  620. package/dist/src/util/json-canonical.js.map +1 -0
  621. package/dist/src/util/key-serializer.d.ts +10 -3
  622. package/dist/src/util/key-serializer.d.ts.map +1 -1
  623. package/dist/src/util/key-serializer.js +43 -17
  624. package/dist/src/util/key-serializer.js.map +1 -1
  625. package/dist/src/util/key-tuple-codec.d.ts +37 -0
  626. package/dist/src/util/key-tuple-codec.d.ts.map +1 -0
  627. package/dist/src/util/key-tuple-codec.js +65 -0
  628. package/dist/src/util/key-tuple-codec.js.map +1 -0
  629. package/dist/src/util/latches.d.ts +29 -3
  630. package/dist/src/util/latches.d.ts.map +1 -1
  631. package/dist/src/util/latches.js +60 -6
  632. package/dist/src/util/latches.js.map +1 -1
  633. package/dist/src/util/patterns.d.ts +22 -8
  634. package/dist/src/util/patterns.d.ts.map +1 -1
  635. package/dist/src/util/patterns.js +87 -16
  636. package/dist/src/util/patterns.js.map +1 -1
  637. package/dist/src/util/qualified-name.d.ts +10 -0
  638. package/dist/src/util/qualified-name.d.ts.map +1 -0
  639. package/dist/src/util/qualified-name.js +15 -0
  640. package/dist/src/util/qualified-name.js.map +1 -0
  641. package/dist/src/vtab/backing-host.d.ts +8 -1
  642. package/dist/src/vtab/backing-host.d.ts.map +1 -1
  643. package/dist/src/vtab/backing-host.js +7 -0
  644. package/dist/src/vtab/backing-host.js.map +1 -1
  645. package/dist/src/vtab/best-access-plan.d.ts +18 -0
  646. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  647. package/dist/src/vtab/best-access-plan.js +15 -0
  648. package/dist/src/vtab/best-access-plan.js.map +1 -1
  649. package/dist/src/vtab/capabilities.d.ts +44 -0
  650. package/dist/src/vtab/capabilities.d.ts.map +1 -1
  651. package/dist/src/vtab/filter-info.d.ts +42 -0
  652. package/dist/src/vtab/filter-info.d.ts.map +1 -1
  653. package/dist/src/vtab/filter-info.js +137 -1
  654. package/dist/src/vtab/filter-info.js.map +1 -1
  655. package/dist/src/vtab/idx-str.d.ts +62 -0
  656. package/dist/src/vtab/idx-str.d.ts.map +1 -0
  657. package/dist/src/vtab/idx-str.js +130 -0
  658. package/dist/src/vtab/idx-str.js.map +1 -0
  659. package/dist/src/vtab/index-descriptor.d.ts +122 -0
  660. package/dist/src/vtab/index-descriptor.d.ts.map +1 -0
  661. package/dist/src/vtab/index-descriptor.js +104 -0
  662. package/dist/src/vtab/index-descriptor.js.map +1 -0
  663. package/dist/src/vtab/mapping-advertisement.d.ts +1 -1
  664. package/dist/src/vtab/memory/index.d.ts +12 -4
  665. package/dist/src/vtab/memory/index.d.ts.map +1 -1
  666. package/dist/src/vtab/memory/index.js +17 -9
  667. package/dist/src/vtab/memory/index.js.map +1 -1
  668. package/dist/src/vtab/memory/layer/base.d.ts +85 -31
  669. package/dist/src/vtab/memory/layer/base.d.ts.map +1 -1
  670. package/dist/src/vtab/memory/layer/base.js +127 -86
  671. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  672. package/dist/src/vtab/memory/layer/connection.d.ts +27 -0
  673. package/dist/src/vtab/memory/layer/connection.d.ts.map +1 -1
  674. package/dist/src/vtab/memory/layer/connection.js +36 -1
  675. package/dist/src/vtab/memory/layer/connection.js.map +1 -1
  676. package/dist/src/vtab/memory/layer/interface.d.ts +24 -4
  677. package/dist/src/vtab/memory/layer/interface.d.ts.map +1 -1
  678. package/dist/src/vtab/memory/layer/manager.d.ts +212 -16
  679. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  680. package/dist/src/vtab/memory/layer/manager.js +754 -170
  681. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  682. package/dist/src/vtab/memory/layer/plan-filter.d.ts +26 -1
  683. package/dist/src/vtab/memory/layer/plan-filter.d.ts.map +1 -1
  684. package/dist/src/vtab/memory/layer/plan-filter.js +29 -11
  685. package/dist/src/vtab/memory/layer/plan-filter.js.map +1 -1
  686. package/dist/src/vtab/memory/layer/safe-iterate.d.ts +2 -2
  687. package/dist/src/vtab/memory/layer/safe-iterate.d.ts.map +1 -1
  688. package/dist/src/vtab/memory/layer/safe-iterate.js +2 -2
  689. package/dist/src/vtab/memory/layer/safe-iterate.js.map +1 -1
  690. package/dist/src/vtab/memory/layer/scan-layer.d.ts +5 -1
  691. package/dist/src/vtab/memory/layer/scan-layer.d.ts.map +1 -1
  692. package/dist/src/vtab/memory/layer/scan-layer.js +38 -22
  693. package/dist/src/vtab/memory/layer/scan-layer.js.map +1 -1
  694. package/dist/src/vtab/memory/layer/scan-plan.d.ts.map +1 -1
  695. package/dist/src/vtab/memory/layer/scan-plan.js +13 -21
  696. package/dist/src/vtab/memory/layer/scan-plan.js.map +1 -1
  697. package/dist/src/vtab/memory/layer/transaction.d.ts +169 -7
  698. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  699. package/dist/src/vtab/memory/layer/transaction.js +334 -9
  700. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  701. package/dist/src/vtab/memory/module.d.ts +21 -4
  702. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  703. package/dist/src/vtab/memory/module.js +45 -16
  704. package/dist/src/vtab/memory/module.js.map +1 -1
  705. package/dist/src/vtab/memory/table.d.ts +30 -4
  706. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  707. package/dist/src/vtab/memory/table.js +63 -15
  708. package/dist/src/vtab/memory/table.js.map +1 -1
  709. package/dist/src/vtab/memory/utils/predicate.d.ts +9 -1
  710. package/dist/src/vtab/memory/utils/predicate.d.ts.map +1 -1
  711. package/dist/src/vtab/memory/utils/predicate.js +35 -14
  712. package/dist/src/vtab/memory/utils/predicate.js.map +1 -1
  713. package/dist/src/vtab/memory/utils/primary-key-encode.d.ts.map +1 -1
  714. package/dist/src/vtab/memory/utils/primary-key-encode.js +12 -6
  715. package/dist/src/vtab/memory/utils/primary-key-encode.js.map +1 -1
  716. package/dist/src/vtab/memory/utils/primary-key.d.ts +6 -1
  717. package/dist/src/vtab/memory/utils/primary-key.d.ts.map +1 -1
  718. package/dist/src/vtab/memory/utils/primary-key.js +12 -8
  719. package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
  720. package/dist/src/vtab/module.d.ts +64 -14
  721. package/dist/src/vtab/module.d.ts.map +1 -1
  722. package/dist/src/vtab/table.d.ts +41 -2
  723. package/dist/src/vtab/table.d.ts.map +1 -1
  724. package/dist/src/vtab/table.js +19 -0
  725. package/dist/src/vtab/table.js.map +1 -1
  726. package/package.json +5 -4
  727. package/dist/src/planner/rules/cache/rule-materialization-advisory.d.ts +0 -18
  728. package/dist/src/planner/rules/cache/rule-materialization-advisory.d.ts.map +0 -1
  729. package/dist/src/planner/rules/cache/rule-materialization-advisory.js +0 -65
  730. package/dist/src/planner/rules/cache/rule-materialization-advisory.js.map +0 -1
@@ -3,7 +3,7 @@ import { StatusCode } from '../../common/types.js';
3
3
  import { expressionToString } from '../../emit/ast-stringify.js';
4
4
  /**
5
5
  * Build-time validation of the `with inverse (col = expr, …)` result-column
6
- * clause (docs/view-updateability.md § Authored inverses). Position-independent:
6
+ * clause (docs/vu-inverses.md § Authored inverses). Position-independent:
7
7
  * it runs wherever a select carrying the clause is planned — top-level query,
8
8
  * view body, CTE, subquery-in-FROM — so a typo fails loud even when the relation
9
9
  * is never a write target. Four rules:
@@ -158,6 +158,58 @@ export declare function isComparisonOperator(op: string): boolean;
158
158
  * operand resolves under, not its rank.
159
159
  */
160
160
  export declare function operandCollation(node: ScalarPlanNode): string;
161
+ /**
162
+ * True when a value of this logical type could be a text string at runtime. Absent
163
+ * type ⇒ unknown ⇒ yes.
164
+ *
165
+ * The gate for "does this key need a key normalizer": key serialization applies a
166
+ * normalizer only to a string value, so a key that can never hold text never consults
167
+ * the collation. Callers outside the planner (the isolation overlay's modified-PK set)
168
+ * hold a `ColumnSchema` rather than a `ScalarType`, hence the split from
169
+ * {@link hashKeyCollationName}.
170
+ */
171
+ export declare function logicalTypeCanHoldText(logicalType: LogicalType | undefined): boolean;
172
+ /**
173
+ * The collation a PK-EQUALITY key normalizer must resolve under for one primary-key
174
+ * column, or `undefined` when the column can never hold text (a key normalizer only
175
+ * ever touches string values, so collation is moot there).
176
+ *
177
+ * A text-capable-but-not-`isTextual` column — `any`, `json`, the temporal types — gets
178
+ * hard-coded `'BINARY'` regardless of its declared collation: PK equality compares
179
+ * through `logicalType.compare` (`createTypedComparator`), which ignores the collation
180
+ * it is handed for every one of those types (ANY and the temporals compare under
181
+ * BINARY_COLLATION; JSON structurally). Keying such a column under its declared
182
+ * collation — say `k any collate nocase` — would bucket `'A'` and `'a'` together even
183
+ * though the comparator that actually orders/equates primary keys treats them as
184
+ * distinct, silently merging two rows into one.
185
+ *
186
+ * Only `isTextual` columns (`text`) apply their own declared collation, since
187
+ * `TEXT_TYPE.compare` is the one comparator that honors it.
188
+ *
189
+ * Mirrors {@link resolvePkKeyCollations} in `quereus-store`, which makes the identical
190
+ * decision for the store's on-disk PK key encoding; the isolation overlay's modified-PK
191
+ * set (`quereus-isolation`) is the other caller, keying overlay rows the same way.
192
+ */
193
+ export declare function pkKeyCollationName(column: {
194
+ logicalType: LogicalType;
195
+ collation?: string;
196
+ } | undefined): string | undefined;
197
+ /**
198
+ * The collation that actually governs a hash key built from `operandTypes`, or
199
+ * `undefined` when none does — the input for `EmissionContext.resolveKeyNormalizer`.
200
+ *
201
+ * Key serialization applies a normalizer only to a *string* value (`util/key-serializer.ts`
202
+ * tags numerics, blobs, and JSON objects without consulting it), so a key no operand of
203
+ * which can ever hold text never reaches the collation. Demanding a normalizer for such a
204
+ * key would reject a valid query: `group by n` over `n integer collate nocase` buckets by
205
+ * number under any collation, including a comparator-only one. Any operand that *could*
206
+ * hold text keeps the name — dropping it there would silently group by bytes, which is the
207
+ * bug `bug-key-normalizer-ignores-database-collations` fixed.
208
+ *
209
+ * Every operand is checked, not just one, because a join's build and probe sides share a
210
+ * single normalizer array: text on either side must normalize.
211
+ */
212
+ export declare function hashKeyCollationName(collationName: string | undefined, operandTypes: readonly ScalarType[]): string | undefined;
161
213
  /**
162
214
  * True iff an equality `left = right` is **value-discriminating**: rows it
163
215
  * passes are genuinely value-equal on the compared operands, so the conjunct
@@ -1 +1 @@
1
- {"version":3,"file":"comparison-collation.d.ts","sourceRoot":"","sources":["../../../../src/planner/analysis/comparison-collation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comparison-collation.d.ts","sourceRoot":"","sources":["../../../../src/planner/analysis/comparison-collation.ts"],"names":[],"mappings":"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"}
@@ -230,15 +230,14 @@ export function operandCollation(node) {
230
230
  return normalizeCollationName(node.getType().collationName ?? 'BINARY');
231
231
  }
232
232
  /**
233
- * True when a logical type can never produce a text value at runtime. `ANY`
234
- * validates every value (it can hold text), so it is treated as potentially
235
- * textual despite carrying no `isTextual` marker. An absent type is unknown —
236
- * potentially textual.
233
+ * True when a logical type can never produce a text value at runtime. Exactly
234
+ * the negation of {@link logicalTypeCanHoldText}'s physical-representation
235
+ * allow-list, so `JSON` (physical `OBJECT`), `ANY` and `NULL` (both physical
236
+ * `NULL`) are all potentially textual rather than exempt. An absent type is
237
+ * unknown — potentially textual.
237
238
  */
238
239
  function isNonTextualLogicalType(lt) {
239
- if (lt === undefined)
240
- return false;
241
- return lt.isTextual !== true && lt.physicalType !== PhysicalType.TEXT && lt.name !== 'ANY';
240
+ return !logicalTypeCanHoldText(lt);
242
241
  }
243
242
  /**
244
243
  * True when the operand's static type can never produce a text value at
@@ -247,6 +246,84 @@ function isNonTextualLogicalType(lt) {
247
246
  function isStaticallyNonTextual(node) {
248
247
  return isNonTextualLogicalType(node.getType().logicalType);
249
248
  }
249
+ /**
250
+ * Physical representations that provably never hold a JS string. `OBJECT` is absent on
251
+ * purpose: `JSON_TYPE.parse` passes a JSON scalar string straight through, so a `JSON`
252
+ * value can be the ordinary string `Bob`. So is `NULL` (`ANY`'s representation).
253
+ */
254
+ const NEVER_TEXT_PHYSICAL_TYPES = new Set([
255
+ PhysicalType.INTEGER,
256
+ PhysicalType.REAL,
257
+ PhysicalType.BLOB,
258
+ PhysicalType.BOOLEAN,
259
+ ]);
260
+ /**
261
+ * True when a value of this logical type could be a text string at runtime. Absent
262
+ * type ⇒ unknown ⇒ yes.
263
+ *
264
+ * The gate for "does this key need a key normalizer": key serialization applies a
265
+ * normalizer only to a string value, so a key that can never hold text never consults
266
+ * the collation. Callers outside the planner (the isolation overlay's modified-PK set)
267
+ * hold a `ColumnSchema` rather than a `ScalarType`, hence the split from
268
+ * {@link hashKeyCollationName}.
269
+ */
270
+ export function logicalTypeCanHoldText(logicalType) {
271
+ if (!logicalType)
272
+ return true;
273
+ if (logicalType.isTextual === true)
274
+ return true;
275
+ return !NEVER_TEXT_PHYSICAL_TYPES.has(logicalType.physicalType);
276
+ }
277
+ /**
278
+ * The collation a PK-EQUALITY key normalizer must resolve under for one primary-key
279
+ * column, or `undefined` when the column can never hold text (a key normalizer only
280
+ * ever touches string values, so collation is moot there).
281
+ *
282
+ * A text-capable-but-not-`isTextual` column — `any`, `json`, the temporal types — gets
283
+ * hard-coded `'BINARY'` regardless of its declared collation: PK equality compares
284
+ * through `logicalType.compare` (`createTypedComparator`), which ignores the collation
285
+ * it is handed for every one of those types (ANY and the temporals compare under
286
+ * BINARY_COLLATION; JSON structurally). Keying such a column under its declared
287
+ * collation — say `k any collate nocase` — would bucket `'A'` and `'a'` together even
288
+ * though the comparator that actually orders/equates primary keys treats them as
289
+ * distinct, silently merging two rows into one.
290
+ *
291
+ * Only `isTextual` columns (`text`) apply their own declared collation, since
292
+ * `TEXT_TYPE.compare` is the one comparator that honors it.
293
+ *
294
+ * Mirrors {@link resolvePkKeyCollations} in `quereus-store`, which makes the identical
295
+ * decision for the store's on-disk PK key encoding; the isolation overlay's modified-PK
296
+ * set (`quereus-isolation`) is the other caller, keying overlay rows the same way.
297
+ */
298
+ export function pkKeyCollationName(column) {
299
+ if (!column || !logicalTypeCanHoldText(column.logicalType))
300
+ return undefined;
301
+ return column.logicalType.isTextual ? column.collation : 'BINARY';
302
+ }
303
+ /** True when a value of this type could be a text string at runtime. Absent type ⇒ unknown ⇒ yes. */
304
+ function typeCanHoldText(t) {
305
+ return logicalTypeCanHoldText(t.logicalType);
306
+ }
307
+ /**
308
+ * The collation that actually governs a hash key built from `operandTypes`, or
309
+ * `undefined` when none does — the input for `EmissionContext.resolveKeyNormalizer`.
310
+ *
311
+ * Key serialization applies a normalizer only to a *string* value (`util/key-serializer.ts`
312
+ * tags numerics, blobs, and JSON objects without consulting it), so a key no operand of
313
+ * which can ever hold text never reaches the collation. Demanding a normalizer for such a
314
+ * key would reject a valid query: `group by n` over `n integer collate nocase` buckets by
315
+ * number under any collation, including a comparator-only one. Any operand that *could*
316
+ * hold text keeps the name — dropping it there would silently group by bytes, which is the
317
+ * bug `bug-key-normalizer-ignores-database-collations` fixed.
318
+ *
319
+ * Every operand is checked, not just one, because a join's build and probe sides share a
320
+ * single normalizer array: text on either side must normalize.
321
+ */
322
+ export function hashKeyCollationName(collationName, operandTypes) {
323
+ if (!collationName || operandTypes.length === 0)
324
+ return collationName;
325
+ return operandTypes.some(typeCanHoldText) ? collationName : undefined;
326
+ }
250
327
  /**
251
328
  * True iff an equality `left = right` is **value-discriminating**: rows it
252
329
  * passes are genuinely value-equal on the compared operands, so the conjunct
@@ -1 +1 @@
1
- {"version":3,"file":"comparison-collation.js","sourceRoot":"","sources":["../../../../src/planner/analysis/comparison-collation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comparison-collation.js","sourceRoot":"","sources":["../../../../src/planner/analysis/comparison-collation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"constraint-extractor.d.ts","sourceRoot":"","sources":["../../../../src/planner/analysis/constraint-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constraint-extractor.d.ts","sourceRoot":"","sources":["../../../../src/planner/analysis/constraint-extractor.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * Converts scalar expressions into constraints that can be pushed down to virtual tables
4
4
  */
5
5
  import { PlanNodeType } from '../nodes/plan-node-type.js';
6
- import { BinaryOpNode, BetweenNode } from '../nodes/scalar.js';
6
+ import { BinaryOpNode, BetweenNode, CastNode } from '../nodes/scalar.js';
7
7
  import { InNode } from '../nodes/subquery.js';
8
8
  import { createLogger } from '../../common/logger.js';
9
9
  import { getSyncLiteral } from '../../parser/utils.js';
@@ -11,6 +11,7 @@ import { TableReferenceNode } from '../nodes/reference.js';
11
11
  import { CapabilityDetectors } from '../framework/characteristics.js';
12
12
  import { computeClosure, expandEcsToFds, keysOf } from '../util/fd-utils.js';
13
13
  import { effectiveBetweenBoundCollation, effectiveComparisonCollation, effectiveInCollation, operandCollation } from './comparison-collation.js';
14
+ import { isNoOpCast } from './scalar-invertibility.js';
14
15
  const log = createLogger('planner:analysis:constraint-extractor');
15
16
  /**
16
17
  * Extract constraints from a scalar predicate expression
@@ -293,7 +294,9 @@ function extractBinaryConstraint(expr, attributeToTableMap) {
293
294
  const valueSide = (columnIsLeft ? rhs : lhs);
294
295
  if (!isLiteralConstant(valueSide)) {
295
296
  result.valueExpr = valueSide;
296
- const innerValue = unwrapCast(valueSide);
297
+ // Classification only — `valueExpr` above retains the cast, so a converting
298
+ // cast may be looked through here (see `unwrapCastForBindingKind`).
299
+ const innerValue = unwrapCastForBindingKind(valueSide);
297
300
  if (innerValue.nodeType === PlanNodeType.ParameterReference) {
298
301
  result.bindingKind = 'parameter';
299
302
  }
@@ -742,47 +745,91 @@ function isOrExpression(expr) {
742
745
  expr.expression.operator === 'OR';
743
746
  }
744
747
  /**
745
- * Unwrap a CastNode inserted by the planner for cross-category coercion.
746
- * Returns the inner operand if node is a Cast, otherwise returns the node itself.
748
+ * Strip only *value-preserving* wrappers, exposing the underlying literal /
749
+ * column reference for shape matching. Every caller of this helper discards the
750
+ * wrapper, so anything it strips must leave the compared value unchanged.
747
751
  *
748
- * Deliberately does NOT unwrap `CollateNode`: a collate-wrapped literal or
749
- * column changes the comparison's effective collation, so recognizing
752
+ * Only a no-op `CAST` (target logical type equal to the operand's — see
753
+ * {@link isNoOpCast}) qualifies, and chains of them are stripped. A **converting**
754
+ * `CAST` changes the compared value: `cast(x as integer) = 1` over a `text`
755
+ * column would be recognized as `x = 1` and pushed down as a seek key on the
756
+ * *stored* text, which under storage-class ordering matches nothing — and since
757
+ * the conjunct is reported as fully consumed, no residual `FILTER` survives to
758
+ * catch it. This is not exotic SQL: `insertCrossTypeCoercion`
759
+ * (`building/expression.ts`) synthesizes exactly that cast for a bare
760
+ * `where x = 1` against a `text` column. Symmetrically on the value side,
761
+ * `getLiteralValue` returns the *pre-cast* literal, so stripping
762
+ * `cast(1 as text)` would seek on the integer `1`.
763
+ *
764
+ * A `CollateNode` is never stripped either: a collate-wrapped literal or column
765
+ * changes the comparison's effective collation, so recognizing
750
766
  * `b = 'x' collate nocase` as an ordinary `col = lit` constraint would mint a
751
767
  * seek / covered-key witness under the column's declared collation while the
752
768
  * runtime compares NOCASE — wrong rows from a seek, false ≤1-row claims from
753
- * the covered-key path. Because this stays Cast-only, every recognized
769
+ * the covered-key path. Because only no-op casts are stripped, every recognized
754
770
  * `col = lit` comparison's effective collation equals the column's declared
755
771
  * collation (the key's enforcement collation), which is what keeps
756
- * `FilterNode`'s covered-key detection sound. Pinned by seek-correctness tests
757
- * (ticket `collation-blind-equality-fact-extraction`); do not add collate
758
- * stripping here without gating consumers on the wrapper's collation.
772
+ * `FilterNode`'s covered-key detection sound.
773
+ *
774
+ * Pinned by seek-correctness tests (tickets
775
+ * `collation-blind-equality-fact-extraction` and
776
+ * `bug-cast-stripped-from-seek-constraints`); do not loosen without gating
777
+ * consumers on the wrapper. `sat-checker.ts`'s `unwrap()` and
778
+ * `coarsened-key.ts` carry the same rule.
779
+ *
780
+ * Classification-only callers that *retain* the wrapper use
781
+ * {@link unwrapCastForBindingKind} instead.
759
782
  */
760
783
  function unwrapCast(node) {
761
- return node.nodeType === PlanNodeType.Cast ? node.operand : node;
784
+ let cur = node;
785
+ while (cur instanceof CastNode && isNoOpCast(cur))
786
+ cur = cur.operand;
787
+ return cur;
788
+ }
789
+ /**
790
+ * Strip *any* `CastNode` chain — including converting casts — to classify the
791
+ * shape of a value-side expression.
792
+ *
793
+ * Sound only where the cast is retained in the emitted constraint: the two
794
+ * callers (`extractBinaryConstraint`'s `bindingKind` selection and
795
+ * {@link isDynamicValue}) keep the whole cast node in `valueExpr`, which is
796
+ * evaluated at runtime. That preserves parameter / correlated seek pushdown for
797
+ * `x = cast(:p as integer)`. Never use this where the wrapper is discarded —
798
+ * see {@link unwrapCast}.
799
+ */
800
+ function unwrapCastForBindingKind(node) {
801
+ let cur = node;
802
+ while (cur instanceof CastNode)
803
+ cur = cur.operand;
804
+ return cur;
762
805
  }
763
806
  function isColumnReference(node) {
764
807
  return CapabilityDetectors.isColumnReference(unwrapCast(node));
765
808
  }
766
809
  /**
767
- * Extract the underlying ColumnReferenceNode, unwrapping a planner-inserted
768
- * CastNode if present.
810
+ * Extract the underlying ColumnReferenceNode, unwrapping a value-preserving
811
+ * (no-op) CastNode if present.
769
812
  */
770
813
  function getColumnReference(node) {
771
814
  return unwrapCast(node);
772
815
  }
773
816
  /**
774
- * Check if node is a literal constant (sees through planner-inserted CastNodes).
817
+ * Check if node is a literal constant (sees through value-preserving CastNodes).
775
818
  */
776
819
  function isLiteralConstant(node) {
777
820
  return unwrapCast(node).nodeType === PlanNodeType.Literal;
778
821
  }
822
+ /**
823
+ * True when the value side is a parameter or a column reference from any table
824
+ * (correlation handled later). Classification only — the caller keeps the cast
825
+ * in `valueExpr` and evaluates it at runtime, so a converting cast is fine here.
826
+ */
779
827
  function isDynamicValue(node) {
780
- const inner = unwrapCast(node);
781
- // Parameter or column reference from any table (correlation handled later)
828
+ const inner = unwrapCastForBindingKind(node);
782
829
  return inner.nodeType === PlanNodeType.ParameterReference || inner.nodeType === PlanNodeType.ColumnReference;
783
830
  }
784
831
  /**
785
- * Get literal value from literal node (sees through planner-inserted CastNodes).
832
+ * Get literal value from literal node (sees through value-preserving CastNodes).
786
833
  */
787
834
  function getLiteralValue(node) {
788
835
  const literalNode = unwrapCast(node);
@@ -1 +1 @@
1
- {"version":3,"file":"constraint-extractor.js","sourceRoot":"","sources":["../../../../src/planner/analysis/constraint-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constraint-extractor.js","sourceRoot":"","sources":["../../../../src/planner/analysis/constraint-extractor.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * uniqueness question. Pure analysis: it records a constraint↔structure link
6
6
  * (see `runtime/emit/materialized-view.ts`); **nothing enforces through the MV's
7
7
  * backing table in this ticket** (that needs row-time write-through maintenance
8
- * — see `docs/materialized-views.md` § Covering structures, the soundness note).
8
+ * — see `docs/mv-constraints.md` § Covering structures, the soundness note).
9
9
  *
10
10
  * Shape — the body, after optimization, walks down to a single constrained base
11
11
  * table `T` through a chain of:
@@ -5,7 +5,7 @@
5
5
  * uniqueness question. Pure analysis: it records a constraint↔structure link
6
6
  * (see `runtime/emit/materialized-view.ts`); **nothing enforces through the MV's
7
7
  * backing table in this ticket** (that needs row-time write-through maintenance
8
- * — see `docs/materialized-views.md` § Covering structures, the soundness note).
8
+ * — see `docs/mv-constraints.md` § Covering structures, the soundness note).
9
9
  *
10
10
  * Shape — the body, after optimization, walks down to a single constrained base
11
11
  * table `T` through a chain of:
@@ -23,6 +23,7 @@
23
23
  * that const-folding can then collapse to `EmptyRelationNode`.
24
24
  */
25
25
  import type { ScalarPlanNode, DomainConstraint, ConstantBinding } from '../nodes/plan-node.js';
26
+ import type { CollationResolver } from '../../types/logical-type.js';
26
27
  export type SatResult = 'sat' | 'unsat' | 'unknown';
27
28
  /**
28
29
  * Returns `'unsat'` iff the conjunction is provably contradictory within the
@@ -38,6 +39,12 @@ export type SatResult = 'sat' | 'unsat' | 'unknown';
38
39
  * `getCollation(col)` is optional; when supplied, equality / range comparisons
39
40
  * for that column use the named collation (TEXT only — numeric comparisons are
40
41
  * collation-independent). Defaults to BINARY.
42
+ *
43
+ * `collationResolver` maps a collation name to its function against the owning
44
+ * `Database`, so a collation registered with `db.registerCollation(...)` is honored.
45
+ * Without one, only the built-in names resolve and any other name forces
46
+ * `'unknown'` — assuming BINARY for a collation we cannot see would let a
47
+ * satisfiable predicate be proved `'unsat'`, and the caller would delete rows.
41
48
  */
42
- export declare function checkSatisfiability(conjuncts: ReadonlyArray<ScalarPlanNode>, domains: ReadonlyArray<DomainConstraint>, bindings: ReadonlyArray<ConstantBinding>, attrIndex: (attrId: number) => number | undefined, getCollation?: (col: number) => string | undefined): SatResult;
49
+ export declare function checkSatisfiability(conjuncts: ReadonlyArray<ScalarPlanNode>, domains: ReadonlyArray<DomainConstraint>, bindings: ReadonlyArray<ConstantBinding>, attrIndex: (attrId: number) => number | undefined, getCollation?: (col: number) => string | undefined, collationResolver?: CollationResolver): SatResult;
43
50
  //# sourceMappingURL=sat-checker.d.ts.map