@quereus/quereus 0.17.0 → 0.18.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 (512) hide show
  1. package/README.md +372 -361
  2. package/dist/src/common/errors.d.ts +2 -18
  3. package/dist/src/common/errors.d.ts.map +1 -1
  4. package/dist/src/common/errors.js +6 -29
  5. package/dist/src/common/errors.js.map +1 -1
  6. package/dist/src/common/types.d.ts +8 -0
  7. package/dist/src/common/types.d.ts.map +1 -1
  8. package/dist/src/common/types.js +20 -0
  9. package/dist/src/common/types.js.map +1 -1
  10. package/dist/src/core/database-assertions.d.ts +19 -2
  11. package/dist/src/core/database-assertions.d.ts.map +1 -1
  12. package/dist/src/core/database-assertions.js +113 -32
  13. package/dist/src/core/database-assertions.js.map +1 -1
  14. package/dist/src/core/database-events.d.ts +17 -0
  15. package/dist/src/core/database-events.d.ts.map +1 -1
  16. package/dist/src/core/database-events.js +36 -0
  17. package/dist/src/core/database-events.js.map +1 -1
  18. package/dist/src/core/database.d.ts +11 -0
  19. package/dist/src/core/database.d.ts.map +1 -1
  20. package/dist/src/core/database.js +178 -85
  21. package/dist/src/core/database.js.map +1 -1
  22. package/dist/src/core/statement.d.ts +6 -0
  23. package/dist/src/core/statement.d.ts.map +1 -1
  24. package/dist/src/core/statement.js +42 -56
  25. package/dist/src/core/statement.js.map +1 -1
  26. package/dist/src/emit/ast-stringify.d.ts +1 -0
  27. package/dist/src/emit/ast-stringify.d.ts.map +1 -1
  28. package/dist/src/emit/ast-stringify.js +12 -2
  29. package/dist/src/emit/ast-stringify.js.map +1 -1
  30. package/dist/src/func/builtins/builtin-window-functions.d.ts.map +1 -1
  31. package/dist/src/func/builtins/builtin-window-functions.js +75 -0
  32. package/dist/src/func/builtins/builtin-window-functions.js.map +1 -1
  33. package/dist/src/func/builtins/conversion.js +9 -12
  34. package/dist/src/func/builtins/conversion.js.map +1 -1
  35. package/dist/src/func/builtins/datetime.js +1 -1
  36. package/dist/src/func/builtins/datetime.js.map +1 -1
  37. package/dist/src/func/builtins/explain.d.ts.map +1 -1
  38. package/dist/src/func/builtins/explain.js +15 -3
  39. package/dist/src/func/builtins/explain.js.map +1 -1
  40. package/dist/src/func/builtins/index.d.ts.map +1 -1
  41. package/dist/src/func/builtins/index.js +1 -11
  42. package/dist/src/func/builtins/index.js.map +1 -1
  43. package/dist/src/func/builtins/json-helpers.js +1 -1
  44. package/dist/src/func/builtins/json-helpers.js.map +1 -1
  45. package/dist/src/func/builtins/json.d.ts.map +1 -1
  46. package/dist/src/func/builtins/json.js +2 -5
  47. package/dist/src/func/builtins/json.js.map +1 -1
  48. package/dist/src/func/builtins/schema.d.ts.map +1 -1
  49. package/dist/src/func/builtins/schema.js +30 -32
  50. package/dist/src/func/builtins/schema.js.map +1 -1
  51. package/dist/src/func/builtins/string.d.ts.map +1 -1
  52. package/dist/src/func/builtins/string.js +40 -64
  53. package/dist/src/func/builtins/string.js.map +1 -1
  54. package/dist/src/func/builtins/timespan.d.ts.map +1 -1
  55. package/dist/src/func/builtins/timespan.js.map +1 -1
  56. package/dist/src/index.d.ts +2 -2
  57. package/dist/src/index.d.ts.map +1 -1
  58. package/dist/src/index.js +2 -2
  59. package/dist/src/index.js.map +1 -1
  60. package/dist/src/parser/ast.d.ts +9 -2
  61. package/dist/src/parser/ast.d.ts.map +1 -1
  62. package/dist/src/parser/lexer.d.ts +1 -0
  63. package/dist/src/parser/lexer.d.ts.map +1 -1
  64. package/dist/src/parser/lexer.js +3 -0
  65. package/dist/src/parser/lexer.js.map +1 -1
  66. package/dist/src/parser/parser.d.ts +11 -1
  67. package/dist/src/parser/parser.d.ts.map +1 -1
  68. package/dist/src/parser/parser.js +75 -135
  69. package/dist/src/parser/parser.js.map +1 -1
  70. package/dist/src/planner/analysis/const-evaluator.d.ts.map +1 -1
  71. package/dist/src/planner/analysis/const-evaluator.js +6 -3
  72. package/dist/src/planner/analysis/const-evaluator.js.map +1 -1
  73. package/dist/src/planner/analysis/constraint-extractor.d.ts +2 -1
  74. package/dist/src/planner/analysis/constraint-extractor.d.ts.map +1 -1
  75. package/dist/src/planner/analysis/constraint-extractor.js +154 -22
  76. package/dist/src/planner/analysis/constraint-extractor.js.map +1 -1
  77. package/dist/src/planner/building/alter-table.d.ts.map +1 -1
  78. package/dist/src/planner/building/alter-table.js +18 -1
  79. package/dist/src/planner/building/alter-table.js.map +1 -1
  80. package/dist/src/planner/building/analyze.d.ts +5 -0
  81. package/dist/src/planner/building/analyze.d.ts.map +1 -0
  82. package/dist/src/planner/building/analyze.js +5 -0
  83. package/dist/src/planner/building/analyze.js.map +1 -0
  84. package/dist/src/planner/building/block.d.ts.map +1 -1
  85. package/dist/src/planner/building/block.js +3 -0
  86. package/dist/src/planner/building/block.js.map +1 -1
  87. package/dist/src/planner/building/constraint-builder.d.ts.map +1 -1
  88. package/dist/src/planner/building/constraint-builder.js +25 -3
  89. package/dist/src/planner/building/constraint-builder.js.map +1 -1
  90. package/dist/src/planner/building/delete.d.ts.map +1 -1
  91. package/dist/src/planner/building/delete.js +11 -0
  92. package/dist/src/planner/building/delete.js.map +1 -1
  93. package/dist/src/planner/building/drop-assertion.d.ts.map +1 -1
  94. package/dist/src/planner/building/drop-assertion.js +2 -1
  95. package/dist/src/planner/building/drop-assertion.js.map +1 -1
  96. package/dist/src/planner/building/expression.d.ts.map +1 -1
  97. package/dist/src/planner/building/expression.js +55 -7
  98. package/dist/src/planner/building/expression.js.map +1 -1
  99. package/dist/src/planner/building/foreign-key-builder.d.ts +16 -0
  100. package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -0
  101. package/dist/src/planner/building/foreign-key-builder.js +269 -0
  102. package/dist/src/planner/building/foreign-key-builder.js.map +1 -0
  103. package/dist/src/planner/building/function-call.d.ts.map +1 -1
  104. package/dist/src/planner/building/function-call.js +3 -2
  105. package/dist/src/planner/building/function-call.js.map +1 -1
  106. package/dist/src/planner/building/insert.d.ts.map +1 -1
  107. package/dist/src/planner/building/insert.js +91 -10
  108. package/dist/src/planner/building/insert.js.map +1 -1
  109. package/dist/src/planner/building/schema-resolution.d.ts +4 -0
  110. package/dist/src/planner/building/schema-resolution.d.ts.map +1 -1
  111. package/dist/src/planner/building/schema-resolution.js +14 -3
  112. package/dist/src/planner/building/schema-resolution.js.map +1 -1
  113. package/dist/src/planner/building/select-aggregates.d.ts +1 -0
  114. package/dist/src/planner/building/select-aggregates.d.ts.map +1 -1
  115. package/dist/src/planner/building/select-aggregates.js +118 -3
  116. package/dist/src/planner/building/select-aggregates.js.map +1 -1
  117. package/dist/src/planner/building/select-modifiers.js +3 -3
  118. package/dist/src/planner/building/select-modifiers.js.map +1 -1
  119. package/dist/src/planner/building/select-window.js +9 -8
  120. package/dist/src/planner/building/select-window.js.map +1 -1
  121. package/dist/src/planner/building/select.d.ts.map +1 -1
  122. package/dist/src/planner/building/select.js +21 -10
  123. package/dist/src/planner/building/select.js.map +1 -1
  124. package/dist/src/planner/building/table.d.ts.map +1 -1
  125. package/dist/src/planner/building/table.js +5 -3
  126. package/dist/src/planner/building/table.js.map +1 -1
  127. package/dist/src/planner/building/update.d.ts.map +1 -1
  128. package/dist/src/planner/building/update.js +30 -1
  129. package/dist/src/planner/building/update.js.map +1 -1
  130. package/dist/src/planner/building/with.js +1 -1
  131. package/dist/src/planner/building/with.js.map +1 -1
  132. package/dist/src/planner/cache/reference-graph.d.ts +1 -1
  133. package/dist/src/planner/cache/reference-graph.js +1 -1
  134. package/dist/src/planner/cost/index.d.ts +10 -3
  135. package/dist/src/planner/cost/index.d.ts.map +1 -1
  136. package/dist/src/planner/cost/index.js +17 -3
  137. package/dist/src/planner/cost/index.js.map +1 -1
  138. package/dist/src/planner/debug.js +1 -1
  139. package/dist/src/planner/debug.js.map +1 -1
  140. package/dist/src/planner/framework/characteristics.d.ts +1 -1
  141. package/dist/src/planner/framework/characteristics.d.ts.map +1 -1
  142. package/dist/src/planner/framework/pass.d.ts +3 -1
  143. package/dist/src/planner/framework/pass.d.ts.map +1 -1
  144. package/dist/src/planner/framework/pass.js +62 -18
  145. package/dist/src/planner/framework/pass.js.map +1 -1
  146. package/dist/src/planner/framework/physical-utils.d.ts +5 -0
  147. package/dist/src/planner/framework/physical-utils.d.ts.map +1 -1
  148. package/dist/src/planner/framework/physical-utils.js +19 -0
  149. package/dist/src/planner/framework/physical-utils.js.map +1 -1
  150. package/dist/src/planner/framework/trace.d.ts.map +1 -1
  151. package/dist/src/planner/framework/trace.js +3 -2
  152. package/dist/src/planner/framework/trace.js.map +1 -1
  153. package/dist/src/planner/nodes/alias-node.d.ts +2 -1
  154. package/dist/src/planner/nodes/alias-node.d.ts.map +1 -1
  155. package/dist/src/planner/nodes/alias-node.js +8 -0
  156. package/dist/src/planner/nodes/alias-node.js.map +1 -1
  157. package/dist/src/planner/nodes/alter-table-node.d.ts +42 -0
  158. package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -0
  159. package/dist/src/planner/nodes/alter-table-node.js +55 -0
  160. package/dist/src/planner/nodes/alter-table-node.js.map +1 -0
  161. package/dist/src/planner/nodes/analyze-node.d.ts +25 -0
  162. package/dist/src/planner/nodes/analyze-node.d.ts.map +1 -0
  163. package/dist/src/planner/nodes/analyze-node.js +83 -0
  164. package/dist/src/planner/nodes/analyze-node.js.map +1 -0
  165. package/dist/src/planner/nodes/bloom-join-node.d.ts +66 -0
  166. package/dist/src/planner/nodes/bloom-join-node.d.ts.map +1 -0
  167. package/dist/src/planner/nodes/bloom-join-node.js +200 -0
  168. package/dist/src/planner/nodes/bloom-join-node.js.map +1 -0
  169. package/dist/src/planner/nodes/constraint-check-node.d.ts +1 -1
  170. package/dist/src/planner/nodes/constraint-check-node.d.ts.map +1 -1
  171. package/dist/src/planner/nodes/cte-reference-node.js +7 -7
  172. package/dist/src/planner/nodes/cte-reference-node.js.map +1 -1
  173. package/dist/src/planner/nodes/join-node.d.ts +9 -1
  174. package/dist/src/planner/nodes/join-node.d.ts.map +1 -1
  175. package/dist/src/planner/nodes/join-node.js +69 -79
  176. package/dist/src/planner/nodes/join-node.js.map +1 -1
  177. package/dist/src/planner/nodes/merge-join-node.d.ts +60 -0
  178. package/dist/src/planner/nodes/merge-join-node.d.ts.map +1 -0
  179. package/dist/src/planner/nodes/merge-join-node.js +207 -0
  180. package/dist/src/planner/nodes/merge-join-node.js.map +1 -0
  181. package/dist/src/planner/nodes/plan-node-type.d.ts +1 -0
  182. package/dist/src/planner/nodes/plan-node-type.d.ts.map +1 -1
  183. package/dist/src/planner/nodes/plan-node-type.js +1 -0
  184. package/dist/src/planner/nodes/plan-node-type.js.map +1 -1
  185. package/dist/src/planner/nodes/project-node.d.ts.map +1 -1
  186. package/dist/src/planner/nodes/project-node.js +3 -2
  187. package/dist/src/planner/nodes/project-node.js.map +1 -1
  188. package/dist/src/planner/nodes/reference.d.ts +2 -1
  189. package/dist/src/planner/nodes/reference.d.ts.map +1 -1
  190. package/dist/src/planner/nodes/reference.js +6 -2
  191. package/dist/src/planner/nodes/reference.js.map +1 -1
  192. package/dist/src/planner/nodes/returning-node.d.ts.map +1 -1
  193. package/dist/src/planner/nodes/returning-node.js +3 -2
  194. package/dist/src/planner/nodes/returning-node.js.map +1 -1
  195. package/dist/src/planner/nodes/scalar.d.ts.map +1 -1
  196. package/dist/src/planner/nodes/subquery.js.map +1 -1
  197. package/dist/src/planner/nodes/table-access-nodes.js +1 -1
  198. package/dist/src/planner/nodes/table-access-nodes.js.map +1 -1
  199. package/dist/src/planner/nodes/update-node.d.ts +2 -0
  200. package/dist/src/planner/nodes/update-node.d.ts.map +1 -1
  201. package/dist/src/planner/nodes/update-node.js +2 -1
  202. package/dist/src/planner/nodes/update-node.js.map +1 -1
  203. package/dist/src/planner/nodes/window-function.d.ts.map +1 -1
  204. package/dist/src/planner/nodes/window-function.js +7 -7
  205. package/dist/src/planner/nodes/window-function.js.map +1 -1
  206. package/dist/src/planner/nodes/window-node.d.ts +2 -2
  207. package/dist/src/planner/nodes/window-node.d.ts.map +1 -1
  208. package/dist/src/planner/nodes/window-node.js +9 -14
  209. package/dist/src/planner/nodes/window-node.js.map +1 -1
  210. package/dist/src/planner/optimizer.d.ts.map +1 -1
  211. package/dist/src/planner/optimizer.js +40 -2
  212. package/dist/src/planner/optimizer.js.map +1 -1
  213. package/dist/src/planner/planning-context.d.ts.map +1 -1
  214. package/dist/src/planner/planning-context.js +1 -6
  215. package/dist/src/planner/planning-context.js.map +1 -1
  216. package/dist/src/planner/resolve.d.ts.map +1 -1
  217. package/dist/src/planner/resolve.js.map +1 -1
  218. package/dist/src/planner/rules/access/rule-select-access-path.js +157 -28
  219. package/dist/src/planner/rules/access/rule-select-access-path.js.map +1 -1
  220. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.d.ts.map +1 -1
  221. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js +27 -6
  222. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js.map +1 -1
  223. package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts +19 -0
  224. package/dist/src/planner/rules/cache/rule-in-subquery-cache.d.ts.map +1 -0
  225. package/dist/src/planner/rules/cache/rule-in-subquery-cache.js +53 -0
  226. package/dist/src/planner/rules/cache/rule-in-subquery-cache.js.map +1 -0
  227. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.d.ts.map +1 -1
  228. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js +5 -0
  229. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js.map +1 -1
  230. package/dist/src/planner/rules/distinct/rule-distinct-elimination.d.ts +18 -0
  231. package/dist/src/planner/rules/distinct/rule-distinct-elimination.d.ts.map +1 -0
  232. package/dist/src/planner/rules/distinct/rule-distinct-elimination.js +37 -0
  233. package/dist/src/planner/rules/distinct/rule-distinct-elimination.js.map +1 -0
  234. package/dist/src/planner/rules/join/rule-join-key-inference.d.ts +8 -3
  235. package/dist/src/planner/rules/join/rule-join-key-inference.d.ts.map +1 -1
  236. package/dist/src/planner/rules/join/rule-join-key-inference.js +28 -17
  237. package/dist/src/planner/rules/join/rule-join-key-inference.js.map +1 -1
  238. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts +16 -0
  239. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -0
  240. package/dist/src/planner/rules/join/rule-join-physical-selection.js +216 -0
  241. package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -0
  242. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.d.ts.map +1 -1
  243. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js +34 -4
  244. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +1 -1
  245. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts +23 -0
  246. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.d.ts.map +1 -0
  247. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js +293 -0
  248. package/dist/src/planner/rules/subquery/rule-subquery-decorrelation.js.map +1 -0
  249. package/dist/src/planner/scopes/multi.d.ts +3 -2
  250. package/dist/src/planner/scopes/multi.d.ts.map +1 -1
  251. package/dist/src/planner/scopes/multi.js +32 -7
  252. package/dist/src/planner/scopes/multi.js.map +1 -1
  253. package/dist/src/planner/scopes/shadow.d.ts +20 -0
  254. package/dist/src/planner/scopes/shadow.d.ts.map +1 -0
  255. package/dist/src/planner/scopes/shadow.js +31 -0
  256. package/dist/src/planner/scopes/shadow.js.map +1 -0
  257. package/dist/src/planner/stats/analyze.d.ts +17 -0
  258. package/dist/src/planner/stats/analyze.d.ts.map +1 -0
  259. package/dist/src/planner/stats/analyze.js +114 -0
  260. package/dist/src/planner/stats/analyze.js.map +1 -0
  261. package/dist/src/planner/stats/catalog-stats.d.ts +80 -0
  262. package/dist/src/planner/stats/catalog-stats.d.ts.map +1 -0
  263. package/dist/src/planner/stats/catalog-stats.js +248 -0
  264. package/dist/src/planner/stats/catalog-stats.js.map +1 -0
  265. package/dist/src/planner/stats/histogram.d.ts +24 -0
  266. package/dist/src/planner/stats/histogram.d.ts.map +1 -0
  267. package/dist/src/planner/stats/histogram.js +142 -0
  268. package/dist/src/planner/stats/histogram.js.map +1 -0
  269. package/dist/src/planner/type-utils.d.ts.map +1 -1
  270. package/dist/src/planner/type-utils.js +8 -2
  271. package/dist/src/planner/type-utils.js.map +1 -1
  272. package/dist/src/planner/util/key-utils.d.ts +48 -2
  273. package/dist/src/planner/util/key-utils.d.ts.map +1 -1
  274. package/dist/src/planner/util/key-utils.js +123 -0
  275. package/dist/src/planner/util/key-utils.js.map +1 -1
  276. package/dist/src/planner/validation/determinism-validator.d.ts +9 -0
  277. package/dist/src/planner/validation/determinism-validator.d.ts.map +1 -1
  278. package/dist/src/planner/validation/determinism-validator.js +11 -0
  279. package/dist/src/planner/validation/determinism-validator.js.map +1 -1
  280. package/dist/src/planner/validation/plan-validator.d.ts.map +1 -1
  281. package/dist/src/planner/validation/plan-validator.js +1 -0
  282. package/dist/src/planner/validation/plan-validator.js.map +1 -1
  283. package/dist/src/runtime/context-helpers.d.ts +34 -10
  284. package/dist/src/runtime/context-helpers.d.ts.map +1 -1
  285. package/dist/src/runtime/context-helpers.js +115 -39
  286. package/dist/src/runtime/context-helpers.js.map +1 -1
  287. package/dist/src/runtime/deferred-constraint-queue.d.ts +0 -1
  288. package/dist/src/runtime/deferred-constraint-queue.d.ts.map +1 -1
  289. package/dist/src/runtime/deferred-constraint-queue.js +10 -23
  290. package/dist/src/runtime/deferred-constraint-queue.js.map +1 -1
  291. package/dist/src/runtime/descriptor-helpers.d.ts +7 -0
  292. package/dist/src/runtime/descriptor-helpers.d.ts.map +1 -0
  293. package/dist/src/runtime/descriptor-helpers.js +24 -0
  294. package/dist/src/runtime/descriptor-helpers.js.map +1 -0
  295. package/dist/src/runtime/emission-context.d.ts +7 -1
  296. package/dist/src/runtime/emission-context.d.ts.map +1 -1
  297. package/dist/src/runtime/emission-context.js +16 -0
  298. package/dist/src/runtime/emission-context.js.map +1 -1
  299. package/dist/src/runtime/emit/aggregate.d.ts.map +1 -1
  300. package/dist/src/runtime/emit/aggregate.js +97 -93
  301. package/dist/src/runtime/emit/aggregate.js.map +1 -1
  302. package/dist/src/runtime/emit/alter-table.d.ts +5 -0
  303. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -0
  304. package/dist/src/runtime/emit/alter-table.js +209 -0
  305. package/dist/src/runtime/emit/alter-table.js.map +1 -0
  306. package/dist/src/runtime/emit/analyze.d.ts +9 -0
  307. package/dist/src/runtime/emit/analyze.d.ts.map +1 -0
  308. package/dist/src/runtime/emit/analyze.js +72 -0
  309. package/dist/src/runtime/emit/analyze.js.map +1 -0
  310. package/dist/src/runtime/emit/array-index.d.ts.map +1 -1
  311. package/dist/src/runtime/emit/array-index.js +4 -2
  312. package/dist/src/runtime/emit/array-index.js.map +1 -1
  313. package/dist/src/runtime/emit/between.d.ts.map +1 -1
  314. package/dist/src/runtime/emit/between.js +8 -20
  315. package/dist/src/runtime/emit/between.js.map +1 -1
  316. package/dist/src/runtime/emit/binary.d.ts.map +1 -1
  317. package/dist/src/runtime/emit/binary.js +155 -126
  318. package/dist/src/runtime/emit/binary.js.map +1 -1
  319. package/dist/src/runtime/emit/bloom-join.d.ts +12 -0
  320. package/dist/src/runtime/emit/bloom-join.d.ts.map +1 -0
  321. package/dist/src/runtime/emit/bloom-join.js +114 -0
  322. package/dist/src/runtime/emit/bloom-join.js.map +1 -0
  323. package/dist/src/runtime/emit/cache.js +2 -2
  324. package/dist/src/runtime/emit/cache.js.map +1 -1
  325. package/dist/src/runtime/emit/cast.d.ts.map +1 -1
  326. package/dist/src/runtime/emit/cast.js +31 -117
  327. package/dist/src/runtime/emit/cast.js.map +1 -1
  328. package/dist/src/runtime/emit/constraint-check.d.ts.map +1 -1
  329. package/dist/src/runtime/emit/constraint-check.js +2 -24
  330. package/dist/src/runtime/emit/constraint-check.js.map +1 -1
  331. package/dist/src/runtime/emit/cte-reference.d.ts.map +1 -1
  332. package/dist/src/runtime/emit/cte-reference.js +11 -5
  333. package/dist/src/runtime/emit/cte-reference.js.map +1 -1
  334. package/dist/src/runtime/emit/distinct.d.ts.map +1 -1
  335. package/dist/src/runtime/emit/distinct.js +21 -12
  336. package/dist/src/runtime/emit/distinct.js.map +1 -1
  337. package/dist/src/runtime/emit/dml-executor.d.ts.map +1 -1
  338. package/dist/src/runtime/emit/dml-executor.js +5 -1
  339. package/dist/src/runtime/emit/dml-executor.js.map +1 -1
  340. package/dist/src/runtime/emit/drop-assertion.d.ts.map +1 -1
  341. package/dist/src/runtime/emit/drop-assertion.js +2 -0
  342. package/dist/src/runtime/emit/drop-assertion.js.map +1 -1
  343. package/dist/src/runtime/emit/filter.d.ts.map +1 -1
  344. package/dist/src/runtime/emit/filter.js +26 -7
  345. package/dist/src/runtime/emit/filter.js.map +1 -1
  346. package/dist/src/runtime/emit/internal-recursive-cte-ref.d.ts.map +1 -1
  347. package/dist/src/runtime/emit/internal-recursive-cte-ref.js +11 -5
  348. package/dist/src/runtime/emit/internal-recursive-cte-ref.js.map +1 -1
  349. package/dist/src/runtime/emit/join.d.ts +1 -1
  350. package/dist/src/runtime/emit/join.d.ts.map +1 -1
  351. package/dist/src/runtime/emit/join.js +44 -33
  352. package/dist/src/runtime/emit/join.js.map +1 -1
  353. package/dist/src/runtime/emit/merge-join.d.ts +14 -0
  354. package/dist/src/runtime/emit/merge-join.d.ts.map +1 -0
  355. package/dist/src/runtime/emit/merge-join.js +152 -0
  356. package/dist/src/runtime/emit/merge-join.js.map +1 -0
  357. package/dist/src/runtime/emit/parameter.d.ts.map +1 -1
  358. package/dist/src/runtime/emit/parameter.js +10 -32
  359. package/dist/src/runtime/emit/parameter.js.map +1 -1
  360. package/dist/src/runtime/emit/project.d.ts.map +1 -1
  361. package/dist/src/runtime/emit/project.js +22 -12
  362. package/dist/src/runtime/emit/project.js.map +1 -1
  363. package/dist/src/runtime/emit/recursive-cte.d.ts.map +1 -1
  364. package/dist/src/runtime/emit/recursive-cte.js +5 -9
  365. package/dist/src/runtime/emit/recursive-cte.js.map +1 -1
  366. package/dist/src/runtime/emit/returning.d.ts.map +1 -1
  367. package/dist/src/runtime/emit/returning.js +14 -8
  368. package/dist/src/runtime/emit/returning.js.map +1 -1
  369. package/dist/src/runtime/emit/scan.d.ts.map +1 -1
  370. package/dist/src/runtime/emit/scan.js +4 -1
  371. package/dist/src/runtime/emit/scan.js.map +1 -1
  372. package/dist/src/runtime/emit/set-operation.d.ts.map +1 -1
  373. package/dist/src/runtime/emit/set-operation.js +8 -5
  374. package/dist/src/runtime/emit/set-operation.js.map +1 -1
  375. package/dist/src/runtime/emit/sort.js +2 -2
  376. package/dist/src/runtime/emit/sort.js.map +1 -1
  377. package/dist/src/runtime/emit/subquery.js +2 -2
  378. package/dist/src/runtime/emit/subquery.js.map +1 -1
  379. package/dist/src/runtime/emit/table-valued-function.d.ts.map +1 -1
  380. package/dist/src/runtime/emit/table-valued-function.js +21 -7
  381. package/dist/src/runtime/emit/table-valued-function.js.map +1 -1
  382. package/dist/src/runtime/emit/unary.js +2 -2
  383. package/dist/src/runtime/emit/unary.js.map +1 -1
  384. package/dist/src/runtime/emit/update.d.ts.map +1 -1
  385. package/dist/src/runtime/emit/update.js +43 -21
  386. package/dist/src/runtime/emit/update.js.map +1 -1
  387. package/dist/src/runtime/emit/window.d.ts.map +1 -1
  388. package/dist/src/runtime/emit/window.js +368 -126
  389. package/dist/src/runtime/emit/window.js.map +1 -1
  390. package/dist/src/runtime/foreign-key-actions.d.ts +15 -0
  391. package/dist/src/runtime/foreign-key-actions.d.ts.map +1 -0
  392. package/dist/src/runtime/foreign-key-actions.js +109 -0
  393. package/dist/src/runtime/foreign-key-actions.js.map +1 -0
  394. package/dist/src/runtime/register.d.ts.map +1 -1
  395. package/dist/src/runtime/register.js +8 -0
  396. package/dist/src/runtime/register.js.map +1 -1
  397. package/dist/src/runtime/scheduler.d.ts.map +1 -1
  398. package/dist/src/runtime/scheduler.js +4 -1
  399. package/dist/src/runtime/scheduler.js.map +1 -1
  400. package/dist/src/runtime/types.d.ts +6 -5
  401. package/dist/src/runtime/types.d.ts.map +1 -1
  402. package/dist/src/runtime/types.js.map +1 -1
  403. package/dist/src/schema/change-events.d.ts +36 -8
  404. package/dist/src/schema/change-events.d.ts.map +1 -1
  405. package/dist/src/schema/change-events.js.map +1 -1
  406. package/dist/src/schema/column.d.ts +5 -1
  407. package/dist/src/schema/column.d.ts.map +1 -1
  408. package/dist/src/schema/column.js +1 -2
  409. package/dist/src/schema/column.js.map +1 -1
  410. package/dist/src/schema/manager.d.ts +54 -4
  411. package/dist/src/schema/manager.d.ts.map +1 -1
  412. package/dist/src/schema/manager.js +353 -313
  413. package/dist/src/schema/manager.js.map +1 -1
  414. package/dist/src/schema/schema-differ.js +3 -3
  415. package/dist/src/schema/schema-differ.js.map +1 -1
  416. package/dist/src/schema/schema.d.ts +1 -1
  417. package/dist/src/schema/schema.js +2 -2
  418. package/dist/src/schema/schema.js.map +1 -1
  419. package/dist/src/schema/table.d.ts +49 -0
  420. package/dist/src/schema/table.d.ts.map +1 -1
  421. package/dist/src/schema/table.js +30 -11
  422. package/dist/src/schema/table.js.map +1 -1
  423. package/dist/src/types/builtin-types.d.ts.map +1 -1
  424. package/dist/src/types/builtin-types.js +26 -95
  425. package/dist/src/types/builtin-types.js.map +1 -1
  426. package/dist/src/types/index.d.ts +1 -1
  427. package/dist/src/types/index.d.ts.map +1 -1
  428. package/dist/src/types/index.js +1 -1
  429. package/dist/src/types/index.js.map +1 -1
  430. package/dist/src/types/json-type.d.ts.map +1 -1
  431. package/dist/src/types/json-type.js +28 -40
  432. package/dist/src/types/json-type.js.map +1 -1
  433. package/dist/src/types/logical-type.d.ts +6 -0
  434. package/dist/src/types/logical-type.d.ts.map +1 -1
  435. package/dist/src/types/logical-type.js +12 -0
  436. package/dist/src/types/logical-type.js.map +1 -1
  437. package/dist/src/types/temporal-types.d.ts.map +1 -1
  438. package/dist/src/types/temporal-types.js +8 -37
  439. package/dist/src/types/temporal-types.js.map +1 -1
  440. package/dist/src/util/coercion.d.ts +4 -5
  441. package/dist/src/util/coercion.d.ts.map +1 -1
  442. package/dist/src/util/coercion.js +10 -14
  443. package/dist/src/util/coercion.js.map +1 -1
  444. package/dist/src/util/comparison.d.ts +34 -21
  445. package/dist/src/util/comparison.d.ts.map +1 -1
  446. package/dist/src/util/comparison.js +77 -43
  447. package/dist/src/util/comparison.js.map +1 -1
  448. package/dist/src/util/environment.d.ts +0 -8
  449. package/dist/src/util/environment.d.ts.map +1 -1
  450. package/dist/src/util/environment.js +0 -12
  451. package/dist/src/util/environment.js.map +1 -1
  452. package/dist/src/util/key-serializer.d.ts +33 -0
  453. package/dist/src/util/key-serializer.d.ts.map +1 -0
  454. package/dist/src/util/key-serializer.js +95 -0
  455. package/dist/src/util/key-serializer.js.map +1 -0
  456. package/dist/src/util/plugin-helper.d.ts.map +1 -1
  457. package/dist/src/util/plugin-helper.js +21 -45
  458. package/dist/src/util/plugin-helper.js.map +1 -1
  459. package/dist/src/util/serialization.d.ts +1 -0
  460. package/dist/src/util/serialization.d.ts.map +1 -1
  461. package/dist/src/util/serialization.js +8 -1
  462. package/dist/src/util/serialization.js.map +1 -1
  463. package/dist/src/util/working-table-iterable.d.ts +6 -5
  464. package/dist/src/util/working-table-iterable.d.ts.map +1 -1
  465. package/dist/src/util/working-table-iterable.js +8 -15
  466. package/dist/src/util/working-table-iterable.js.map +1 -1
  467. package/dist/src/vtab/best-access-plan.d.ts +12 -0
  468. package/dist/src/vtab/best-access-plan.d.ts.map +1 -1
  469. package/dist/src/vtab/best-access-plan.js +22 -0
  470. package/dist/src/vtab/best-access-plan.js.map +1 -1
  471. package/dist/src/vtab/manifest.d.ts +3 -1
  472. package/dist/src/vtab/manifest.d.ts.map +1 -1
  473. package/dist/src/vtab/memory/index.d.ts +2 -2
  474. package/dist/src/vtab/memory/index.d.ts.map +1 -1
  475. package/dist/src/vtab/memory/index.js +4 -7
  476. package/dist/src/vtab/memory/index.js.map +1 -1
  477. package/dist/src/vtab/memory/layer/base-cursor.d.ts.map +1 -1
  478. package/dist/src/vtab/memory/layer/base-cursor.js +37 -9
  479. package/dist/src/vtab/memory/layer/base-cursor.js.map +1 -1
  480. package/dist/src/vtab/memory/layer/base.js +1 -1
  481. package/dist/src/vtab/memory/layer/base.js.map +1 -1
  482. package/dist/src/vtab/memory/layer/manager.d.ts +15 -3
  483. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  484. package/dist/src/vtab/memory/layer/manager.js +85 -37
  485. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  486. package/dist/src/vtab/memory/layer/scan-plan.d.ts +2 -0
  487. package/dist/src/vtab/memory/layer/scan-plan.d.ts.map +1 -1
  488. package/dist/src/vtab/memory/layer/scan-plan.js +153 -78
  489. package/dist/src/vtab/memory/layer/scan-plan.js.map +1 -1
  490. package/dist/src/vtab/memory/layer/transaction-cursor.d.ts.map +1 -1
  491. package/dist/src/vtab/memory/layer/transaction-cursor.js +39 -9
  492. package/dist/src/vtab/memory/layer/transaction-cursor.js.map +1 -1
  493. package/dist/src/vtab/memory/layer/transaction.d.ts.map +1 -1
  494. package/dist/src/vtab/memory/layer/transaction.js +1 -5
  495. package/dist/src/vtab/memory/layer/transaction.js.map +1 -1
  496. package/dist/src/vtab/memory/module.d.ts +14 -24
  497. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  498. package/dist/src/vtab/memory/module.js +88 -283
  499. package/dist/src/vtab/memory/module.js.map +1 -1
  500. package/dist/src/vtab/memory/table.d.ts +9 -0
  501. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  502. package/dist/src/vtab/memory/table.js +121 -18
  503. package/dist/src/vtab/memory/table.js.map +1 -1
  504. package/dist/src/vtab/memory/types.d.ts +1 -0
  505. package/dist/src/vtab/memory/types.d.ts.map +1 -1
  506. package/dist/src/vtab/memory/utils/primary-key.js.map +1 -1
  507. package/dist/src/vtab/module.d.ts +13 -0
  508. package/dist/src/vtab/module.d.ts.map +1 -1
  509. package/dist/src/vtab/table.d.ts +9 -0
  510. package/dist/src/vtab/table.d.ts.map +1 -1
  511. package/dist/src/vtab/table.js.map +1 -1
  512. package/package.json +2 -2
@@ -13,8 +13,7 @@ export function tryCoerceToNumber(value) {
13
13
  const trimmed = value.trim();
14
14
  const asNumber = Number(trimmed);
15
15
  if (!isNaN(asNumber) && isFinite(asNumber)) {
16
- // Check if it's an integer or float
17
- return Number.isInteger(asNumber) ? Math.trunc(asNumber) : asNumber;
16
+ return asNumber;
18
17
  }
19
18
  }
20
19
  return value;
@@ -43,6 +42,10 @@ export function coerceToNumberForArithmetic(value) {
43
42
  * Performs SQL type coercion for comparison operations.
44
43
  * If one operand is numeric and the other is text that can be converted to a number,
45
44
  * converts the text to a number before comparison.
45
+ *
46
+ * @deprecated Cross-category coercion is now inserted at plan time via explicit
47
+ * CastNodes in the planner. This function is no longer called from comparison or
48
+ * BETWEEN emission and will be removed in a future release.
46
49
  */
47
50
  export function coerceForComparison(v1, v2) {
48
51
  // If either value is null, no coercion needed
@@ -71,17 +74,14 @@ export function coerceForComparison(v1, v2) {
71
74
  * Most aggregate functions should accept numeric strings as numbers.
72
75
  * For COUNT, no coercion needed. For SUM/AVG, numeric strings should be converted.
73
76
  */
77
+ const NON_NUMERIC_AGGREGATES = new Set(['COUNT', 'GROUP_CONCAT']);
74
78
  export function coerceForAggregate(value, functionName) {
75
- // COUNT and similar functions don't need numeric coercion
76
- if (functionName.toUpperCase() === 'COUNT' ||
77
- functionName.toUpperCase() === 'GROUP_CONCAT' ||
78
- functionName.toUpperCase().startsWith('JSON_')) {
79
+ const upperName = functionName.toUpperCase();
80
+ if (NON_NUMERIC_AGGREGATES.has(upperName) || upperName.startsWith('JSON_')) {
79
81
  return value;
80
82
  }
81
- // Numeric aggregates (SUM, AVG, MIN, MAX) should coerce numeric strings
82
83
  if (typeof value === 'string' && value.trim() !== '') {
83
- const coerced = tryCoerceToNumber(value);
84
- return coerced;
84
+ return tryCoerceToNumber(value);
85
85
  }
86
86
  return value;
87
87
  }
@@ -95,11 +95,7 @@ export function isNumericValue(value) {
95
95
  return true;
96
96
  }
97
97
  if (typeof value === 'string') {
98
- const trimmed = value.trim();
99
- if (trimmed === '')
100
- return false;
101
- const asNumber = Number(trimmed);
102
- return !isNaN(asNumber) && isFinite(asNumber);
98
+ return tryCoerceToNumber(value) !== value;
103
99
  }
104
100
  return false;
105
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"coercion.js","sourceRoot":"","sources":["../../../src/util/coercion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coercion.js","sourceRoot":"","sources":["../../../src/util/coercion.ts"],"names":[],"mappings":"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"}
@@ -17,36 +17,28 @@ export declare const NOCASE_COLLATION: CollationFunction;
17
17
  */
18
18
  export declare const RTRIM_COLLATION: CollationFunction;
19
19
  /**
20
- * Registers a collation function with the given name.
20
+ * Registers a collation function in the global registry.
21
+ * @deprecated Use `db.registerCollation(name, func)` for per-database collation registration.
22
+ * This global registry is retained for standalone utility use and built-in collation fallback.
21
23
  * @param name The name of the collation (case-insensitive)
22
24
  * @param func The collation function to register
23
25
  */
24
26
  export declare function registerCollation(name: string, func: CollationFunction): void;
25
27
  /**
26
- * Gets a registered collation function by name.
28
+ * Gets a collation function from the global registry.
29
+ * @deprecated Use `db._getCollation(name)` or `EmissionContext.getCollation()` for per-database lookup.
27
30
  * @param name The collation name (case-insensitive)
28
31
  * @returns The collation function, or undefined if not found
29
32
  */
30
33
  export declare function getCollation(name: string): CollationFunction | undefined;
31
34
  /**
32
- * Resolves a collation name to its function. Optimized for hot path usage.
35
+ * Resolves a collation name to its function from the global registry.
36
+ * @deprecated Use `EmissionContext.resolveCollation()` for per-database resolution during emission.
37
+ * This global version is retained for standalone comparison utilities and vtab internals.
33
38
  * @param collationName The collation name
34
39
  * @returns The collation function (defaults to BINARY if not found)
35
40
  */
36
41
  export declare function resolveCollation(collationName: string): CollationFunction;
37
- /**
38
- * Evaluates a JavaScript value according to simplified, JS-idiomatic truthiness rules.
39
- * - null/undefined are false
40
- * - boolean is its own value
41
- * - number: 0 is false, non-zero is true
42
- * - bigint: 0n is false, non-zero is true
43
- * - string: empty string is false, non-empty is true
44
- * - Uint8Array (BLOB): always false
45
- *
46
- * @param value The value to evaluate
47
- * @returns True or false
48
- */
49
- export declare function evaluateIsTrue(value: SqlValue): boolean;
50
42
  /**
51
43
  * Returns the SQLite fundamental datatype name of a value.
52
44
  * @param v The value
@@ -134,12 +126,13 @@ export declare function createOrderByComparator(direction?: 'asc' | 'desc', null
134
126
  export declare function createOrderByComparatorFast(direction?: 'asc' | 'desc', nullsOrdering?: 'first' | 'last', collationFunc?: CollationFunction): (a: SqlValue, b: SqlValue) => number;
135
127
  /**
136
128
  * Determines if a SqlValue is truthy for filter purposes.
137
- * In SQL semantics:
129
+ * In SQL semantics (numeric truthiness):
138
130
  * - NULL is falsy
139
- * - 0 (number) is falsy
140
- * - Empty string is falsy
141
- * - false (boolean) is falsy
142
- * - Everything else is truthy
131
+ * - booleans: false/true
132
+ * - numbers: 0 is falsy, non-zero is truthy
133
+ * - bigint: 0n is falsy, non-zero is truthy
134
+ * - strings: trimmed numeric conversion is used; non-numeric converts to 0 (falsy)
135
+ * - blobs: convert to 0 (falsy)
143
136
  */
144
137
  export declare function isTruthy(value: SqlValue): boolean;
145
138
  /**
@@ -174,4 +167,24 @@ export declare function compareTypedValues(a: SqlValue, b: SqlValue, typeA: Logi
174
167
  * @returns A comparator function
175
168
  */
176
169
  export declare function createTypedComparator(type: LogicalType, collation?: CollationFunction): (a: SqlValue, b: SqlValue) => number;
170
+ /**
171
+ * Create a type-aware row comparator that pre-resolves per-column comparators.
172
+ * Use only when runtime types are guaranteed to match declared types
173
+ * (e.g., GROUP BY keys from typed expressions, index keys).
174
+ *
175
+ * @param types Logical types for each column position
176
+ * @param collations Optional collation functions per column
177
+ * @returns A row comparator function
178
+ */
179
+ export declare function createTypedRowComparator(types: readonly LogicalType[], collations?: readonly (CollationFunction | undefined)[]): (a: Row, b: Row) => number;
180
+ /**
181
+ * Create a row comparator with pre-resolved per-column collation functions.
182
+ * Safe for mixed-type rows (DISTINCT, SET OPERATIONS) where runtime types may
183
+ * differ from declared types. Uses compareSqlValuesFast (which handles cross-type
184
+ * comparison via storage class ordering) but avoids the collation lookup overhead.
185
+ *
186
+ * @param collations Pre-resolved collation functions per column
187
+ * @returns A row comparator function
188
+ */
189
+ export declare function createCollationRowComparator(collations: readonly CollationFunction[]): (a: Row, b: Row) => number;
177
190
  //# sourceMappingURL=comparison.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"comparison.d.ts","sourceRoot":"","sources":["../../../src/util/comparison.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comparison.d.ts","sourceRoot":"","sources":["../../../src/util/comparison.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,9 @@ collations.set('BINARY', BINARY_COLLATION);
45
45
  collations.set('NOCASE', NOCASE_COLLATION);
46
46
  collations.set('RTRIM', RTRIM_COLLATION);
47
47
  /**
48
- * Registers a collation function with the given name.
48
+ * Registers a collation function in the global registry.
49
+ * @deprecated Use `db.registerCollation(name, func)` for per-database collation registration.
50
+ * This global registry is retained for standalone utility use and built-in collation fallback.
49
51
  * @param name The name of the collation (case-insensitive)
50
52
  * @param func The collation function to register
51
53
  */
@@ -57,7 +59,8 @@ export function registerCollation(name, func) {
57
59
  collations.set(upperName, func);
58
60
  }
59
61
  /**
60
- * Gets a registered collation function by name.
62
+ * Gets a collation function from the global registry.
63
+ * @deprecated Use `db._getCollation(name)` or `EmissionContext.getCollation()` for per-database lookup.
61
64
  * @param name The collation name (case-insensitive)
62
65
  * @returns The collation function, or undefined if not found
63
66
  */
@@ -65,7 +68,9 @@ export function getCollation(name) {
65
68
  return collations.get(name.toUpperCase());
66
69
  }
67
70
  /**
68
- * Resolves a collation name to its function. Optimized for hot path usage.
71
+ * Resolves a collation name to its function from the global registry.
72
+ * @deprecated Use `EmissionContext.resolveCollation()` for per-database resolution during emission.
73
+ * This global version is retained for standalone comparison utilities and vtab internals.
69
74
  * @param collationName The collation name
70
75
  * @returns The collation function (defaults to BINARY if not found)
71
76
  */
@@ -79,40 +84,6 @@ export function resolveCollation(collationName) {
79
84
  }
80
85
  return func;
81
86
  }
82
- /**
83
- * Evaluates a JavaScript value according to simplified, JS-idiomatic truthiness rules.
84
- * - null/undefined are false
85
- * - boolean is its own value
86
- * - number: 0 is false, non-zero is true
87
- * - bigint: 0n is false, non-zero is true
88
- * - string: empty string is false, non-empty is true
89
- * - Uint8Array (BLOB): always false
90
- *
91
- * @param value The value to evaluate
92
- * @returns True or false
93
- */
94
- export function evaluateIsTrue(value) {
95
- if (value === null || value === undefined) {
96
- return false;
97
- }
98
- switch (typeof value) {
99
- case 'boolean':
100
- return value;
101
- case 'number':
102
- return value !== 0;
103
- case 'bigint':
104
- return value !== 0n;
105
- case 'string':
106
- return value.length > 0;
107
- case 'object':
108
- if (value instanceof Uint8Array) {
109
- return false;
110
- }
111
- return false;
112
- default:
113
- return false;
114
- }
115
- }
116
87
  /** Represents SQLite storage classes for comparison purposes */
117
88
  var StorageClass;
118
89
  (function (StorageClass) {
@@ -369,15 +340,37 @@ export function createOrderByComparatorFast(direction = 'asc', nullsOrdering, co
369
340
  }
370
341
  /**
371
342
  * Determines if a SqlValue is truthy for filter purposes.
372
- * In SQL semantics:
343
+ * In SQL semantics (numeric truthiness):
373
344
  * - NULL is falsy
374
- * - 0 (number) is falsy
375
- * - Empty string is falsy
376
- * - false (boolean) is falsy
377
- * - Everything else is truthy
345
+ * - booleans: false/true
346
+ * - numbers: 0 is falsy, non-zero is truthy
347
+ * - bigint: 0n is falsy, non-zero is truthy
348
+ * - strings: trimmed numeric conversion is used; non-numeric converts to 0 (falsy)
349
+ * - blobs: convert to 0 (falsy)
378
350
  */
379
351
  export function isTruthy(value) {
380
- return (typeof value === 'string') ? value.length > 0 : !!value;
352
+ if (value === null)
353
+ return false;
354
+ switch (typeof value) {
355
+ case 'boolean':
356
+ return value;
357
+ case 'number':
358
+ return value !== 0;
359
+ case 'bigint':
360
+ return value !== 0n;
361
+ case 'string': {
362
+ const trimmed = value.trim();
363
+ if (trimmed === '')
364
+ return false;
365
+ const n = Number(trimmed);
366
+ return !Number.isNaN(n) && n !== 0;
367
+ }
368
+ default:
369
+ break;
370
+ }
371
+ if (value instanceof Uint8Array)
372
+ return false;
373
+ return false;
381
374
  }
382
375
  /**
383
376
  * Compares two rows for SQL DISTINCT semantics.
@@ -472,4 +465,45 @@ export function createTypedComparator(type, collation) {
472
465
  const collationFunc = collation ?? BINARY_COLLATION;
473
466
  return (a, b) => compareSqlValuesFast(a, b, collationFunc);
474
467
  }
468
+ /**
469
+ * Create a type-aware row comparator that pre-resolves per-column comparators.
470
+ * Use only when runtime types are guaranteed to match declared types
471
+ * (e.g., GROUP BY keys from typed expressions, index keys).
472
+ *
473
+ * @param types Logical types for each column position
474
+ * @param collations Optional collation functions per column
475
+ * @returns A row comparator function
476
+ */
477
+ export function createTypedRowComparator(types, collations) {
478
+ const comparators = types.map((type, i) => createTypedComparator(type, collations?.[i]));
479
+ const len = comparators.length;
480
+ return (a, b) => {
481
+ for (let i = 0; i < len; i++) {
482
+ const cmp = comparators[i](a[i], b[i]);
483
+ if (cmp !== 0)
484
+ return cmp;
485
+ }
486
+ return 0;
487
+ };
488
+ }
489
+ /**
490
+ * Create a row comparator with pre-resolved per-column collation functions.
491
+ * Safe for mixed-type rows (DISTINCT, SET OPERATIONS) where runtime types may
492
+ * differ from declared types. Uses compareSqlValuesFast (which handles cross-type
493
+ * comparison via storage class ordering) but avoids the collation lookup overhead.
494
+ *
495
+ * @param collations Pre-resolved collation functions per column
496
+ * @returns A row comparator function
497
+ */
498
+ export function createCollationRowComparator(collations) {
499
+ const len = collations.length;
500
+ return (a, b) => {
501
+ for (let i = 0; i < len; i++) {
502
+ const cmp = compareSqlValuesFast(a[i], b[i], collations[i]);
503
+ if (cmp !== 0)
504
+ return cmp;
505
+ }
506
+ return 0;
507
+ };
508
+ }
475
509
  //# sourceMappingURL=comparison.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"comparison.js","sourceRoot":"","sources":["../../../src/util/comparison.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,GAAG,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAKnC,qCAAqC;AACrC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;AAExD;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IAC3D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/B,OAAO,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IAC1D,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;IACpB,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;IAEpB,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG;QAAE,IAAI,EAAE,CAAC;IAC/C,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG;QAAE,IAAI,EAAE,CAAC;IAE/C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,OAAO,IAAI,GAAG,IAAI,CAAC;AACpB,CAAC,CAAC;AAEF,+BAA+B;AAC/B,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AAC3C,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AAC3C,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,IAAuB;IACnE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,oCAAoC,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IACD,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACxC,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,aAAqB;IACrD,IAAI,aAAa,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAC,CAAC,iCAAiC;IAC1F,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,CAAC,0DAA0D,EAAE,aAAa,CAAC,CAAC;QACnF,OAAO,gBAAgB,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAAC,KAAe;IAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACd,CAAC;IACD,QAAQ,OAAO,KAAK,EAAE,CAAC;QACtB,KAAK,SAAS;YACb,OAAO,KAAK,CAAC;QACd,KAAK,QAAQ;YACZ,OAAO,KAAK,KAAK,CAAC,CAAC;QACpB,KAAK,QAAQ;YACZ,OAAO,KAAK,KAAK,EAAE,CAAC;QACrB,KAAK,QAAQ;YACZ,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,KAAK,QAAQ;YACZ,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YACd,CAAC;YACD,OAAO,KAAK,CAAC;QACd;YACC,OAAO,KAAK,CAAC;IACf,CAAC;AACF,CAAC;AAED,gEAAgE;AAChE,IAAK,YAMJ;AAND,WAAK,YAAY;IAChB,+CAAQ,CAAA;IACR,qDAAW,CAAA;IACX,+CAAQ,CAAA;IACR,+CAAQ,CAAA;IACR,sDAAY,CAAA;AACb,CAAC,EANI,YAAY,KAAZ,YAAY,QAMhB;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,CAAW;IACnC,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,yBAAyB;IAEnE,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC;IACtB,oDAAoD;IACpD,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,OAAO,CAAC;IACnD,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC;IAChD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,OAAO,CAAC;IACzE,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,YAAY,UAAU;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC;IAE3E,OAAO,YAAY,CAAC,OAAO,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAW;IAC7C,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC;IACtB,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IACjD,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IACrC,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,YAAY,UAAU;QAAE,OAAO,MAAM,CAAC;IAChE,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,CAAkB,EAAE,CAAkB;IAC7D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,CAAW,EAAE,CAAW,EAAE,YAA0B,EAAE,aAAgC;IAC9G,QAAQ,YAAY,EAAE,CAAC;QACtB,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3B,oDAAoD;YACpD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAoB,CAAC;YACzE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAoB,CAAC;YACzE,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YACxB,OAAO,aAAa,CAAC,CAAW,EAAE,CAAW,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YACxB,MAAM,KAAK,GAAG,CAAe,CAAC;YAC9B,MAAM,KAAK,GAAG,CAAe,CAAC;YAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9B,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3B,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC;YACF,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACT,OAAO,CAAC,CAAC;QACV,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAW,EAAE,CAAW,EAAE,gBAAwB,QAAQ;IAC1F,MAAM,aAAa,GAAG,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACtG,OAAO,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,CAAW,EAAE,CAAW,EAAE,aAAgC;IAC9F,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAElC,8BAA8B;IAC9B,IAAI,MAAM,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;QAClC,OAAO,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,MAAM,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;QAClC,OAAO,CAAC,CAAC;IACV,CAAC;IAED,kCAAkC;IAClC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACrD,CAAC;IAED,qDAAqD;IACrD,OAAO,MAAM,GAAG,MAAM,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,CAAN,IAAkB,aAGjB;AAHD,WAAkB,aAAa;IAC9B,+CAAO,CAAA;IACP,iDAAQ,CAAA;AACT,CAAC,EAHiB,aAAa,KAAb,aAAa,QAG9B;AAED;;GAEG;AACH,MAAM,CAAN,IAAkB,aAIjB;AAJD,WAAkB,aAAa;IAC9B,uDAAW,CAAA;IACX,mDAAS,CAAA;IACT,iDAAQ,CAAA;AACT,CAAC,EAJiB,aAAa,KAAb,aAAa,QAI9B;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CACrC,CAAW,EACX,CAAW,EACX,SAAwB,EACxB,aAA4B,EAC5B,aAAgC;IAEhC,IAAI,UAAkB,CAAC;IAEvB,yDAAyD;IACzD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,UAAU,GAAG,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;IACxD,CAAC;SAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,UAAU,GAAG,CAAC,CAAC;IAChB,CAAC;SAAM,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACvB,0EAA0E;QAC1E,IAAI,aAAa,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;YAC1C,UAAU,GAAG,CAAC,CAAC,CAAC,aAAa;QAC9B,CAAC;aAAM,IAAI,aAAa,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;YAClD,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc;QAChC,CAAC;aAAM,CAAC;YACP,6DAA6D;YAC7D,UAAU,GAAG,SAAS,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;SAAM,CAAC,CAAC,aAAa;QACrB,IAAI,aAAa,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;YAC1C,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,2CAA2C;QAC7D,CAAC;aAAM,IAAI,aAAa,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;YAClD,UAAU,GAAG,CAAC,CAAC,CAAC,4CAA4C;QAC7D,CAAC;aAAM,CAAC;YACP,6DAA6D;YAC7D,UAAU,GAAG,SAAS,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;IAED,0DAA0D;IAC1D,OAAO,SAAS,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;AACpE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CACjC,CAAW,EACX,CAAW,EACX,YAA4B,KAAK,EACjC,aAAgC,EAChC,gBAAwB,QAAQ;IAEhC,+CAA+C;IAC/C,MAAM,aAAa,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC;IACpF,MAAM,SAAS,GAAG,aAAa,KAAK,OAAO;QAC1C,CAAC,CAAC,aAAa,CAAC,KAAK;QACrB,CAAC,CAAC,aAAa,KAAK,MAAM;YACzB,CAAC,CAAC,aAAa,CAAC,IAAI;YACpB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC;IAC1B,MAAM,aAAa,GAAG,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAEtG,OAAO,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACtC,YAA4B,KAAK,EACjC,aAAgC,EAChC,gBAAwB,QAAQ;IAEhC,MAAM,aAAa,GAAG,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACtG,OAAO,2BAA2B,CAAC,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CAC1C,YAA4B,KAAK,EACjC,aAAgC,EAChC,gBAAmC,gBAAgB;IAEnD,MAAM,aAAa,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC;IACpF,MAAM,SAAS,GAAG,aAAa,KAAK,OAAO;QAC1C,CAAC,CAAC,aAAa,CAAC,KAAK;QACrB,CAAC,CAAC,aAAa,KAAK,MAAM;YACzB,CAAC,CAAC,aAAa,CAAC,IAAI;YACpB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC;IAE1B,yDAAyD;IACzD,OAAO,CAAC,CAAW,EAAE,CAAW,EAAU,EAAE;QAC3C,OAAO,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC9E,CAAC,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAe;IACvC,OAAO,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACjE,CAAC;AACD;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,CAAM,EAAE,CAAM;IACzC,4BAA4B;IAC5B,+BAA+B;IAC/B,+BAA+B;IAC/B,IAAI;IACJ,yCAAyC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,UAAU,CAAC;QACnB,CAAC;IACF,CAAC;IACD,OAAO,CAAC,CAAC;AACV,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,CAAW,EAAE,CAAW;IACtD,IAAI,CAAC,YAAY,UAAU,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC;QACxD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CACjC,CAAW,EACX,CAAW,EACX,KAAkB,EAClB,KAAkB,EAClB,SAA6B;IAE7B,gBAAgB;IAChB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAEzB,sCAAsC;IACtC,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,IAAI,YAAY,CACrB,gCAAgC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,EAAE,EAC7D,UAAU,CAAC,QAAQ,CACnB,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,wDAAwD;IACxD,iFAAiF;IACjF,OAAO,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,IAAI,gBAAgB,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACpC,IAAiB,EACjB,SAA6B;IAE7B,sCAAsC;IACtC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;IAEjC,IAAI,WAAW,EAAE,CAAC;QACjB,6BAA6B;QAC7B,OAAO,CAAC,CAAW,EAAE,CAAW,EAAE,EAAE;YACnC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAC;YACzB,OAAO,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QACrC,CAAC,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,MAAM,aAAa,GAAG,SAAS,IAAI,gBAAgB,CAAC;IACpD,OAAO,CAAC,CAAW,EAAE,CAAW,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"comparison.js","sourceRoot":"","sources":["../../../src/util/comparison.ts"],"names":[],"mappings":"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"}
@@ -10,14 +10,6 @@
10
10
  * @returns The environment variable value or undefined if not found
11
11
  */
12
12
  export declare function getEnvVar(key: string): string | undefined;
13
- /**
14
- * Check if debug logging is enabled for a specific namespace
15
- * Uses the debug library's own enabled property via createLogger
16
- *
17
- * @param namespace The debug namespace to check (without the 'quereus:' prefix)
18
- * @returns true if debug logging is enabled for the namespace
19
- */
20
- export declare function isDebugEnabled(namespace: string): boolean;
21
13
  /**
22
14
  * Check if a feature flag is enabled
23
15
  *
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/util/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAezD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/util/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAezD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D"}
@@ -2,7 +2,6 @@
2
2
  * Cross-platform environment variable utilities
3
3
  * Works in Node.js, browsers, and React Native
4
4
  */
5
- import { createLogger } from '../common/logger.js';
6
5
  /**
7
6
  * Cross-platform environment variable accessor
8
7
  * Works in Node.js, browsers, and React Native
@@ -24,17 +23,6 @@ export function getEnvVar(key) {
24
23
  // For now, return undefined for unsupported environments
25
24
  return undefined;
26
25
  }
27
- /**
28
- * Check if debug logging is enabled for a specific namespace
29
- * Uses the debug library's own enabled property via createLogger
30
- *
31
- * @param namespace The debug namespace to check (without the 'quereus:' prefix)
32
- * @returns true if debug logging is enabled for the namespace
33
- */
34
- export function isDebugEnabled(namespace) {
35
- const logger = createLogger(namespace);
36
- return logger.enabled;
37
- }
38
26
  /**
39
27
  * Check if a feature flag is enabled
40
28
  *
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/util/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACpC,sBAAsB;IACtB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,6DAA6D;IAC7D,iFAAiF;IACjF,IAAI,OAAO,UAAU,KAAK,WAAW,IAAK,UAAsC,CAAC,GAAG,CAAC,EAAE,CAAC;QACvF,OAAQ,UAAsC,CAAC,GAAG,CAAW,CAAC;IAC/D,CAAC;IAED,iFAAiF;IACjF,yDAAyD;IACzD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,OAAO,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAChD,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/util/environment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACpC,sBAAsB;IACtB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,6DAA6D;IAC7D,iFAAiF;IACjF,IAAI,OAAO,UAAU,KAAK,WAAW,IAAK,UAAsC,CAAC,GAAG,CAAC,EAAE,CAAC;QACvF,OAAQ,UAAsC,CAAC,GAAG,CAAW,CAAC;IAC/D,CAAC;IAED,iFAAiF;IACjF,yDAAyD;IACzD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAChD,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC;AACvC,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Shared key serialization for hash-based operations (bloom join, window partitioning, etc.).
3
+ *
4
+ * Produces type-tagged, collation-aware string keys suitable for Map/Set lookups.
5
+ * The serialization is designed so that two SQL values compare as equal (under their
6
+ * declared collation) if and only if their serialized keys are identical strings.
7
+ */
8
+ import type { Row, SqlValue } from '../common/types.js';
9
+ /** Map a collation name to a string normalizer for key serialization. */
10
+ export declare function resolveKeyNormalizer(collationName: string | undefined): (s: string) => string;
11
+ /**
12
+ * Serialize a composite key from an array of pre-evaluated SQL values.
13
+ * Returns null if any value is NULL (SQL NULL ≠ NULL semantics).
14
+ *
15
+ * For window PARTITION BY where NULLs should group together, the caller
16
+ * should use {@link serializeKeyNullGrouping} instead.
17
+ */
18
+ export declare function serializeKey(values: readonly SqlValue[], normalizers: readonly ((s: string) => string)[]): string | null;
19
+ /**
20
+ * Serialize a composite key where NULLs are treated as a grouping value
21
+ * rather than causing the entire key to be null.
22
+ *
23
+ * Used by window PARTITION BY (SQL standard: NULLs group together).
24
+ */
25
+ export declare function serializeKeyNullGrouping(values: readonly SqlValue[], normalizers: readonly ((s: string) => string)[]): string;
26
+ /**
27
+ * Row-indexed variant: extracts values from a Row by column indices, then serializes.
28
+ * Returns null if any extracted value is NULL.
29
+ *
30
+ * Used by bloom join where keys come from specific row positions.
31
+ */
32
+ export declare function serializeRowKey(row: Row, indices: readonly number[], normalizers: readonly ((s: string) => string)[]): string | null;
33
+ //# sourceMappingURL=key-serializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-serializer.d.ts","sourceRoot":"","sources":["../../../src/util/key-serializer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAKxD,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAO7F;AAqBD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC3B,MAAM,EAAE,SAAS,QAAQ,EAAE,EAC3B,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,EAAE,GAC7C,MAAM,GAAG,IAAI,CASf;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACvC,MAAM,EAAE,SAAS,QAAQ,EAAE,EAC3B,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,EAAE,GAC7C,MAAM,CAYR;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC9B,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,EAAE,GAC7C,MAAM,GAAG,IAAI,CAUf"}
@@ -0,0 +1,95 @@
1
+ /** Identity normalizer for BINARY collation (no-op). */
2
+ const IDENTITY_NORMALIZER = (s) => s;
3
+ /** Map a collation name to a string normalizer for key serialization. */
4
+ export function resolveKeyNormalizer(collationName) {
5
+ if (!collationName || collationName === 'BINARY')
6
+ return IDENTITY_NORMALIZER;
7
+ switch (collationName.toUpperCase()) {
8
+ case 'NOCASE': return (s) => s.toLowerCase();
9
+ case 'RTRIM': return (s) => s.trimEnd();
10
+ default: return IDENTITY_NORMALIZER;
11
+ }
12
+ }
13
+ /**
14
+ * Core serialization of a single SQL value with type tag and optional collation normalizer.
15
+ * Appends to the key accumulator. Returns false if the value is NULL (caller decides semantics).
16
+ */
17
+ function appendValue(val, normalizer) {
18
+ if (val === null || val === undefined)
19
+ return null;
20
+ if (typeof val === 'string') {
21
+ return 's:' + normalizer(val);
22
+ }
23
+ else if (typeof val === 'number') {
24
+ return 'n:' + val;
25
+ }
26
+ else if (typeof val === 'bigint') {
27
+ return 'b:' + val;
28
+ }
29
+ else if (val instanceof Uint8Array) {
30
+ return 'x:' + Array.from(val).join(',');
31
+ }
32
+ else {
33
+ return 'o:' + String(val);
34
+ }
35
+ }
36
+ /**
37
+ * Serialize a composite key from an array of pre-evaluated SQL values.
38
+ * Returns null if any value is NULL (SQL NULL ≠ NULL semantics).
39
+ *
40
+ * For window PARTITION BY where NULLs should group together, the caller
41
+ * should use {@link serializeKeyNullGrouping} instead.
42
+ */
43
+ export function serializeKey(values, normalizers) {
44
+ let key = '';
45
+ for (let i = 0; i < values.length; i++) {
46
+ const part = appendValue(values[i], normalizers[i]);
47
+ if (part === null)
48
+ return null;
49
+ if (i > 0)
50
+ key += '\0';
51
+ key += part;
52
+ }
53
+ return key;
54
+ }
55
+ /**
56
+ * Serialize a composite key where NULLs are treated as a grouping value
57
+ * rather than causing the entire key to be null.
58
+ *
59
+ * Used by window PARTITION BY (SQL standard: NULLs group together).
60
+ */
61
+ export function serializeKeyNullGrouping(values, normalizers) {
62
+ let key = '';
63
+ for (let i = 0; i < values.length; i++) {
64
+ if (i > 0)
65
+ key += '\0';
66
+ const part = appendValue(values[i], normalizers[i]);
67
+ if (part === null) {
68
+ key += 'N:';
69
+ }
70
+ else {
71
+ key += part;
72
+ }
73
+ }
74
+ return key;
75
+ }
76
+ /**
77
+ * Row-indexed variant: extracts values from a Row by column indices, then serializes.
78
+ * Returns null if any extracted value is NULL.
79
+ *
80
+ * Used by bloom join where keys come from specific row positions.
81
+ */
82
+ export function serializeRowKey(row, indices, normalizers) {
83
+ let key = '';
84
+ for (let i = 0; i < indices.length; i++) {
85
+ const val = row[indices[i]];
86
+ const part = appendValue(val, normalizers[i]);
87
+ if (part === null)
88
+ return null;
89
+ if (i > 0)
90
+ key += '\0';
91
+ key += part;
92
+ }
93
+ return key;
94
+ }
95
+ //# sourceMappingURL=key-serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-serializer.js","sourceRoot":"","sources":["../../../src/util/key-serializer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-helper.d.ts","sourceRoot":"","sources":["../../../src/util/plugin-helper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAC5B,EAAE,EAAE,QAAQ,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,KAC7B,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,cAAc,CACnC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,cAAc,EACtB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAM,GACnC,OAAO,CAAC,IAAI,CAAC,CAuDf"}
1
+ {"version":3,"file":"plugin-helper.d.ts","sourceRoot":"","sources":["../../../src/util/plugin-helper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAQnD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAC5B,EAAE,EAAE,QAAQ,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,KAC7B,OAAO,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,CAAC;AAsBxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,cAAc,CACnC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,cAAc,EACtB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAM,GACnC,OAAO,CAAC,IAAI,CAAC,CA0Bf"}