@quereus/quereus 0.7.3 → 0.7.5

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 (568) hide show
  1. package/dist/src/schema/manager.d.ts.map +1 -1
  2. package/dist/src/schema/manager.js +19 -18
  3. package/package.json +3 -3
  4. package/dist/src/common/constants.js.map +0 -1
  5. package/dist/src/common/datatype.js.map +0 -1
  6. package/dist/src/common/errors.js.map +0 -1
  7. package/dist/src/common/json-types.js.map +0 -1
  8. package/dist/src/common/logger.js.map +0 -1
  9. package/dist/src/common/type-inference.js.map +0 -1
  10. package/dist/src/common/types.js.map +0 -1
  11. package/dist/src/core/database-options.js.map +0 -1
  12. package/dist/src/core/database.js.map +0 -1
  13. package/dist/src/core/param.js.map +0 -1
  14. package/dist/src/core/statement.js.map +0 -1
  15. package/dist/src/func/builtins/aggregate.js.map +0 -1
  16. package/dist/src/func/builtins/builtin-window-functions.js.map +0 -1
  17. package/dist/src/func/builtins/conversion.js.map +0 -1
  18. package/dist/src/func/builtins/datetime.js.map +0 -1
  19. package/dist/src/func/builtins/explain.js.map +0 -1
  20. package/dist/src/func/builtins/generation.js.map +0 -1
  21. package/dist/src/func/builtins/index.js.map +0 -1
  22. package/dist/src/func/builtins/json-helpers.js.map +0 -1
  23. package/dist/src/func/builtins/json-tvf.js.map +0 -1
  24. package/dist/src/func/builtins/json.js.map +0 -1
  25. package/dist/src/func/builtins/scalar.js.map +0 -1
  26. package/dist/src/func/builtins/schema.js.map +0 -1
  27. package/dist/src/func/builtins/string.js.map +0 -1
  28. package/dist/src/func/builtins/timespan.js.map +0 -1
  29. package/dist/src/func/context.js.map +0 -1
  30. package/dist/src/func/registration.js.map +0 -1
  31. package/dist/src/index.js.map +0 -1
  32. package/dist/src/parser/ast.js.map +0 -1
  33. package/dist/src/parser/index.js.map +0 -1
  34. package/dist/src/parser/lexer.js.map +0 -1
  35. package/dist/src/parser/parser.js.map +0 -1
  36. package/dist/src/parser/utils.js.map +0 -1
  37. package/dist/src/parser/visitor.js.map +0 -1
  38. package/dist/src/planner/analysis/binding-collector.js.map +0 -1
  39. package/dist/src/planner/analysis/const-evaluator.js.map +0 -1
  40. package/dist/src/planner/analysis/const-pass.js.map +0 -1
  41. package/dist/src/planner/analysis/constraint-extractor.js.map +0 -1
  42. package/dist/src/planner/analysis/predicate-normalizer.js.map +0 -1
  43. package/dist/src/planner/building/alter-table.js.map +0 -1
  44. package/dist/src/planner/building/block.js.map +0 -1
  45. package/dist/src/planner/building/constraint-builder.js.map +0 -1
  46. package/dist/src/planner/building/create-assertion.js.map +0 -1
  47. package/dist/src/planner/building/create-view.js.map +0 -1
  48. package/dist/src/planner/building/ddl.js.map +0 -1
  49. package/dist/src/planner/building/declare-schema.js.map +0 -1
  50. package/dist/src/planner/building/delete.js.map +0 -1
  51. package/dist/src/planner/building/drop-assertion.js.map +0 -1
  52. package/dist/src/planner/building/drop-table.js.map +0 -1
  53. package/dist/src/planner/building/drop-view.js.map +0 -1
  54. package/dist/src/planner/building/expression.js.map +0 -1
  55. package/dist/src/planner/building/function-call.js.map +0 -1
  56. package/dist/src/planner/building/insert.js.map +0 -1
  57. package/dist/src/planner/building/pragma.js.map +0 -1
  58. package/dist/src/planner/building/schema-resolution.js.map +0 -1
  59. package/dist/src/planner/building/select-aggregates.js.map +0 -1
  60. package/dist/src/planner/building/select-compound.js.map +0 -1
  61. package/dist/src/planner/building/select-context.js.map +0 -1
  62. package/dist/src/planner/building/select-modifiers.js.map +0 -1
  63. package/dist/src/planner/building/select-projections.js.map +0 -1
  64. package/dist/src/planner/building/select-window.js.map +0 -1
  65. package/dist/src/planner/building/select.js.map +0 -1
  66. package/dist/src/planner/building/table-function.js.map +0 -1
  67. package/dist/src/planner/building/table.js.map +0 -1
  68. package/dist/src/planner/building/transaction.js.map +0 -1
  69. package/dist/src/planner/building/update.js.map +0 -1
  70. package/dist/src/planner/building/with.js.map +0 -1
  71. package/dist/src/planner/cache/correlation-detector.js.map +0 -1
  72. package/dist/src/planner/cache/materialization-advisory.js.map +0 -1
  73. package/dist/src/planner/cache/reference-graph.js.map +0 -1
  74. package/dist/src/planner/cost/index.js.map +0 -1
  75. package/dist/src/planner/debug/logger-utils.js.map +0 -1
  76. package/dist/src/planner/debug.js.map +0 -1
  77. package/dist/src/planner/framework/characteristics.js.map +0 -1
  78. package/dist/src/planner/framework/context.js.map +0 -1
  79. package/dist/src/planner/framework/pass.js.map +0 -1
  80. package/dist/src/planner/framework/physical-utils.js.map +0 -1
  81. package/dist/src/planner/framework/registry.js.map +0 -1
  82. package/dist/src/planner/framework/trace.js.map +0 -1
  83. package/dist/src/planner/nodes/add-constraint-node.js.map +0 -1
  84. package/dist/src/planner/nodes/aggregate-function.js.map +0 -1
  85. package/dist/src/planner/nodes/aggregate-node.js.map +0 -1
  86. package/dist/src/planner/nodes/array-index-node.js.map +0 -1
  87. package/dist/src/planner/nodes/block.js.map +0 -1
  88. package/dist/src/planner/nodes/cache-node.js.map +0 -1
  89. package/dist/src/planner/nodes/constraint-check-node.js.map +0 -1
  90. package/dist/src/planner/nodes/create-assertion-node.js.map +0 -1
  91. package/dist/src/planner/nodes/create-index-node.js.map +0 -1
  92. package/dist/src/planner/nodes/create-table-node.js.map +0 -1
  93. package/dist/src/planner/nodes/create-view-node.js.map +0 -1
  94. package/dist/src/planner/nodes/cte-node.js.map +0 -1
  95. package/dist/src/planner/nodes/cte-reference-node.js.map +0 -1
  96. package/dist/src/planner/nodes/declarative-schema.js.map +0 -1
  97. package/dist/src/planner/nodes/delete-node.js.map +0 -1
  98. package/dist/src/planner/nodes/distinct-node.js.map +0 -1
  99. package/dist/src/planner/nodes/dml-executor-node.js.map +0 -1
  100. package/dist/src/planner/nodes/drop-assertion-node.js.map +0 -1
  101. package/dist/src/planner/nodes/drop-table-node.js.map +0 -1
  102. package/dist/src/planner/nodes/drop-view-node.js.map +0 -1
  103. package/dist/src/planner/nodes/filter.js.map +0 -1
  104. package/dist/src/planner/nodes/function.js.map +0 -1
  105. package/dist/src/planner/nodes/insert-node.js.map +0 -1
  106. package/dist/src/planner/nodes/internal-recursive-cte-ref-node.js.map +0 -1
  107. package/dist/src/planner/nodes/join-node.js.map +0 -1
  108. package/dist/src/planner/nodes/limit-offset.js.map +0 -1
  109. package/dist/src/planner/nodes/plan-node-type.js.map +0 -1
  110. package/dist/src/planner/nodes/plan-node.js.map +0 -1
  111. package/dist/src/planner/nodes/pragma.js.map +0 -1
  112. package/dist/src/planner/nodes/project-node.js.map +0 -1
  113. package/dist/src/planner/nodes/recursive-cte-node.js.map +0 -1
  114. package/dist/src/planner/nodes/reference.js.map +0 -1
  115. package/dist/src/planner/nodes/remote-query-node.js.map +0 -1
  116. package/dist/src/planner/nodes/retrieve-node.js.map +0 -1
  117. package/dist/src/planner/nodes/returning-node.js.map +0 -1
  118. package/dist/src/planner/nodes/scalar.js.map +0 -1
  119. package/dist/src/planner/nodes/sequencing-node.js.map +0 -1
  120. package/dist/src/planner/nodes/set-operation-node.js.map +0 -1
  121. package/dist/src/planner/nodes/single-row.js.map +0 -1
  122. package/dist/src/planner/nodes/sink-node.js.map +0 -1
  123. package/dist/src/planner/nodes/sort.js.map +0 -1
  124. package/dist/src/planner/nodes/stream-aggregate.js.map +0 -1
  125. package/dist/src/planner/nodes/subquery.js.map +0 -1
  126. package/dist/src/planner/nodes/table-access-nodes.js.map +0 -1
  127. package/dist/src/planner/nodes/table-function-call.js.map +0 -1
  128. package/dist/src/planner/nodes/transaction-node.js.map +0 -1
  129. package/dist/src/planner/nodes/update-node.js.map +0 -1
  130. package/dist/src/planner/nodes/values-node.js.map +0 -1
  131. package/dist/src/planner/nodes/view-reference-node.js.map +0 -1
  132. package/dist/src/planner/nodes/window-function.js.map +0 -1
  133. package/dist/src/planner/nodes/window-node.js.map +0 -1
  134. package/dist/src/planner/optimizer-tuning.js.map +0 -1
  135. package/dist/src/planner/optimizer.js.map +0 -1
  136. package/dist/src/planner/planning-context.js.map +0 -1
  137. package/dist/src/planner/resolve.js.map +0 -1
  138. package/dist/src/planner/rules/access/rule-select-access-path.js.map +0 -1
  139. package/dist/src/planner/rules/aggregate/rule-aggregate-streaming.js.map +0 -1
  140. package/dist/src/planner/rules/cache/rule-cte-optimization.js.map +0 -1
  141. package/dist/src/planner/rules/cache/rule-materialization-advisory.js.map +0 -1
  142. package/dist/src/planner/rules/cache/rule-mutating-subquery-cache.js.map +0 -1
  143. package/dist/src/planner/rules/join/rule-join-greedy-commute.js.map +0 -1
  144. package/dist/src/planner/rules/join/rule-join-key-inference.js.map +0 -1
  145. package/dist/src/planner/rules/join/rule-quickpick-enumeration.js.map +0 -1
  146. package/dist/src/planner/rules/predicate/rule-predicate-pushdown.js.map +0 -1
  147. package/dist/src/planner/rules/retrieve/rule-grow-retrieve.js.map +0 -1
  148. package/dist/src/planner/scopes/aliased.js.map +0 -1
  149. package/dist/src/planner/scopes/base.js.map +0 -1
  150. package/dist/src/planner/scopes/empty.js.map +0 -1
  151. package/dist/src/planner/scopes/global.js.map +0 -1
  152. package/dist/src/planner/scopes/multi.js.map +0 -1
  153. package/dist/src/planner/scopes/param.js.map +0 -1
  154. package/dist/src/planner/scopes/registered.js.map +0 -1
  155. package/dist/src/planner/scopes/scope.js.map +0 -1
  156. package/dist/src/planner/stats/basic-estimates.js.map +0 -1
  157. package/dist/src/planner/stats/index.js.map +0 -1
  158. package/dist/src/planner/type-utils.js.map +0 -1
  159. package/dist/src/planner/util/key-utils.js.map +0 -1
  160. package/dist/src/planner/validation/determinism-validator.js.map +0 -1
  161. package/dist/src/planner/validation/plan-validator.js.map +0 -1
  162. package/dist/src/runtime/async-util.js.map +0 -1
  163. package/dist/src/runtime/cache/shared-cache.js.map +0 -1
  164. package/dist/src/runtime/context-helpers.js.map +0 -1
  165. package/dist/src/runtime/deferred-constraint-queue.js.map +0 -1
  166. package/dist/src/runtime/emission-context.js.map +0 -1
  167. package/dist/src/runtime/emit/add-constraint.js.map +0 -1
  168. package/dist/src/runtime/emit/aggregate.js.map +0 -1
  169. package/dist/src/runtime/emit/array-index.js.map +0 -1
  170. package/dist/src/runtime/emit/between.js.map +0 -1
  171. package/dist/src/runtime/emit/binary.js.map +0 -1
  172. package/dist/src/runtime/emit/block.js.map +0 -1
  173. package/dist/src/runtime/emit/cache.js.map +0 -1
  174. package/dist/src/runtime/emit/case.js.map +0 -1
  175. package/dist/src/runtime/emit/cast.js.map +0 -1
  176. package/dist/src/runtime/emit/collate.js.map +0 -1
  177. package/dist/src/runtime/emit/column-reference.js.map +0 -1
  178. package/dist/src/runtime/emit/constraint-check.js.map +0 -1
  179. package/dist/src/runtime/emit/create-assertion.js.map +0 -1
  180. package/dist/src/runtime/emit/create-index.js.map +0 -1
  181. package/dist/src/runtime/emit/create-table.js.map +0 -1
  182. package/dist/src/runtime/emit/create-view.js.map +0 -1
  183. package/dist/src/runtime/emit/cte-reference.js.map +0 -1
  184. package/dist/src/runtime/emit/cte.js.map +0 -1
  185. package/dist/src/runtime/emit/delete.js.map +0 -1
  186. package/dist/src/runtime/emit/distinct.js.map +0 -1
  187. package/dist/src/runtime/emit/dml-executor.js.map +0 -1
  188. package/dist/src/runtime/emit/drop-assertion.js.map +0 -1
  189. package/dist/src/runtime/emit/drop-table.js.map +0 -1
  190. package/dist/src/runtime/emit/drop-view.js.map +0 -1
  191. package/dist/src/runtime/emit/filter.js.map +0 -1
  192. package/dist/src/runtime/emit/insert.js.map +0 -1
  193. package/dist/src/runtime/emit/internal-recursive-cte-ref.js.map +0 -1
  194. package/dist/src/runtime/emit/join.js.map +0 -1
  195. package/dist/src/runtime/emit/limit-offset.js.map +0 -1
  196. package/dist/src/runtime/emit/literal.js.map +0 -1
  197. package/dist/src/runtime/emit/parameter.js.map +0 -1
  198. package/dist/src/runtime/emit/pragma.js.map +0 -1
  199. package/dist/src/runtime/emit/project.js.map +0 -1
  200. package/dist/src/runtime/emit/recursive-cte.js.map +0 -1
  201. package/dist/src/runtime/emit/remote-query.js.map +0 -1
  202. package/dist/src/runtime/emit/retrieve.js.map +0 -1
  203. package/dist/src/runtime/emit/returning.js.map +0 -1
  204. package/dist/src/runtime/emit/scalar-function.js.map +0 -1
  205. package/dist/src/runtime/emit/scan.js.map +0 -1
  206. package/dist/src/runtime/emit/schema-declarative.js.map +0 -1
  207. package/dist/src/runtime/emit/sequencing.js.map +0 -1
  208. package/dist/src/runtime/emit/set-operation.js.map +0 -1
  209. package/dist/src/runtime/emit/sink.js.map +0 -1
  210. package/dist/src/runtime/emit/sort.js.map +0 -1
  211. package/dist/src/runtime/emit/subquery.js.map +0 -1
  212. package/dist/src/runtime/emit/table-valued-function.js.map +0 -1
  213. package/dist/src/runtime/emit/temporal-arithmetic.js.map +0 -1
  214. package/dist/src/runtime/emit/transaction.js.map +0 -1
  215. package/dist/src/runtime/emit/unary.js.map +0 -1
  216. package/dist/src/runtime/emit/update.js.map +0 -1
  217. package/dist/src/runtime/emit/values.js.map +0 -1
  218. package/dist/src/runtime/emit/window-function.js.map +0 -1
  219. package/dist/src/runtime/emit/window.js.map +0 -1
  220. package/dist/src/runtime/emitters.js.map +0 -1
  221. package/dist/src/runtime/register.js.map +0 -1
  222. package/dist/src/runtime/scheduler.js.map +0 -1
  223. package/dist/src/runtime/types.js.map +0 -1
  224. package/dist/src/runtime/utils.js.map +0 -1
  225. package/dist/src/schema/assertion.js.map +0 -1
  226. package/dist/src/schema/catalog.js.map +0 -1
  227. package/dist/src/schema/change-events.js.map +0 -1
  228. package/dist/src/schema/column.js.map +0 -1
  229. package/dist/src/schema/declared-schema-manager.js.map +0 -1
  230. package/dist/src/schema/function.js.map +0 -1
  231. package/dist/src/schema/manager.js.map +0 -1
  232. package/dist/src/schema/schema-differ.js.map +0 -1
  233. package/dist/src/schema/schema-hasher.js.map +0 -1
  234. package/dist/src/schema/schema.js.map +0 -1
  235. package/dist/src/schema/table.js.map +0 -1
  236. package/dist/src/schema/view.js.map +0 -1
  237. package/dist/src/schema/window-function.js.map +0 -1
  238. package/dist/src/types/builtin-types.js.map +0 -1
  239. package/dist/src/types/index.js.map +0 -1
  240. package/dist/src/types/json-type.js.map +0 -1
  241. package/dist/src/types/logical-type.js.map +0 -1
  242. package/dist/src/types/plugin-interface.js.map +0 -1
  243. package/dist/src/types/registry.js.map +0 -1
  244. package/dist/src/types/temporal-types.js.map +0 -1
  245. package/dist/src/types/validation.js.map +0 -1
  246. package/dist/src/util/affinity.js.map +0 -1
  247. package/dist/src/util/ast-stringify.js.map +0 -1
  248. package/dist/src/util/cached.js.map +0 -1
  249. package/dist/src/util/coercion.js.map +0 -1
  250. package/dist/src/util/comparison.js.map +0 -1
  251. package/dist/src/util/environment.js.map +0 -1
  252. package/dist/src/util/hash.js.map +0 -1
  253. package/dist/src/util/latches.js.map +0 -1
  254. package/dist/src/util/mutation-statement.js.map +0 -1
  255. package/dist/src/util/patterns.js.map +0 -1
  256. package/dist/src/util/plan-formatter.js.map +0 -1
  257. package/dist/src/util/plugin-helper.js.map +0 -1
  258. package/dist/src/util/row-descriptor.js.map +0 -1
  259. package/dist/src/util/serialization.js.map +0 -1
  260. package/dist/src/util/sql-literal.js.map +0 -1
  261. package/dist/src/util/working-table-iterable.js.map +0 -1
  262. package/dist/src/vtab/best-access-plan.js.map +0 -1
  263. package/dist/src/vtab/connection.js.map +0 -1
  264. package/dist/src/vtab/filter-info.js.map +0 -1
  265. package/dist/src/vtab/index-info.js.map +0 -1
  266. package/dist/src/vtab/manifest.js.map +0 -1
  267. package/dist/src/vtab/memory/connection.js.map +0 -1
  268. package/dist/src/vtab/memory/index.js.map +0 -1
  269. package/dist/src/vtab/memory/layer/base-cursor.js.map +0 -1
  270. package/dist/src/vtab/memory/layer/base.js.map +0 -1
  271. package/dist/src/vtab/memory/layer/connection.js.map +0 -1
  272. package/dist/src/vtab/memory/layer/interface.js.map +0 -1
  273. package/dist/src/vtab/memory/layer/manager.js.map +0 -1
  274. package/dist/src/vtab/memory/layer/safe-iterate.js.map +0 -1
  275. package/dist/src/vtab/memory/layer/scan-plan.js.map +0 -1
  276. package/dist/src/vtab/memory/layer/transaction-cursor.js.map +0 -1
  277. package/dist/src/vtab/memory/layer/transaction.js.map +0 -1
  278. package/dist/src/vtab/memory/module.js.map +0 -1
  279. package/dist/src/vtab/memory/table.js.map +0 -1
  280. package/dist/src/vtab/memory/types.js.map +0 -1
  281. package/dist/src/vtab/memory/utils/logging.js.map +0 -1
  282. package/dist/src/vtab/memory/utils/primary-key.js.map +0 -1
  283. package/dist/src/vtab/module.js.map +0 -1
  284. package/dist/src/vtab/table.js.map +0 -1
  285. package/src/common/constants.ts +0 -60
  286. package/src/common/datatype.ts +0 -85
  287. package/src/common/errors.ts +0 -189
  288. package/src/common/json-types.ts +0 -16
  289. package/src/common/logger.ts +0 -97
  290. package/src/common/type-inference.ts +0 -39
  291. package/src/common/types.ts +0 -151
  292. package/src/core/database-options.ts +0 -258
  293. package/src/core/database.ts +0 -1461
  294. package/src/core/param.ts +0 -56
  295. package/src/core/statement.ts +0 -528
  296. package/src/func/builtins/aggregate.ts +0 -269
  297. package/src/func/builtins/builtin-window-functions.ts +0 -166
  298. package/src/func/builtins/conversion.ts +0 -226
  299. package/src/func/builtins/datetime.ts +0 -500
  300. package/src/func/builtins/explain.ts +0 -779
  301. package/src/func/builtins/generation.ts +0 -43
  302. package/src/func/builtins/index.ts +0 -167
  303. package/src/func/builtins/json-helpers.ts +0 -237
  304. package/src/func/builtins/json-tvf.ts +0 -224
  305. package/src/func/builtins/json.ts +0 -588
  306. package/src/func/builtins/scalar.ts +0 -423
  307. package/src/func/builtins/schema.ts +0 -213
  308. package/src/func/builtins/string.ts +0 -306
  309. package/src/func/builtins/timespan.ts +0 -179
  310. package/src/func/context.ts +0 -258
  311. package/src/func/registration.ts +0 -201
  312. package/src/index.ts +0 -172
  313. package/src/parser/ast.ts +0 -581
  314. package/src/parser/index.ts +0 -65
  315. package/src/parser/lexer.ts +0 -806
  316. package/src/parser/parser.ts +0 -3352
  317. package/src/parser/utils.ts +0 -10
  318. package/src/parser/visitor.ts +0 -188
  319. package/src/planner/analysis/README.md +0 -93
  320. package/src/planner/analysis/binding-collector.ts +0 -83
  321. package/src/planner/analysis/const-evaluator.ts +0 -63
  322. package/src/planner/analysis/const-pass.ts +0 -282
  323. package/src/planner/analysis/constraint-extractor.ts +0 -764
  324. package/src/planner/analysis/predicate-normalizer.ts +0 -237
  325. package/src/planner/building/alter-table.ts +0 -49
  326. package/src/planner/building/block.ts +0 -93
  327. package/src/planner/building/constraint-builder.ts +0 -178
  328. package/src/planner/building/create-assertion.ts +0 -7
  329. package/src/planner/building/create-view.ts +0 -29
  330. package/src/planner/building/ddl.ts +0 -24
  331. package/src/planner/building/declare-schema.ts +0 -22
  332. package/src/planner/building/delete.ts +0 -218
  333. package/src/planner/building/drop-assertion.ts +0 -11
  334. package/src/planner/building/drop-table.ts +0 -13
  335. package/src/planner/building/drop-view.ts +0 -19
  336. package/src/planner/building/expression.ts +0 -205
  337. package/src/planner/building/function-call.ts +0 -129
  338. package/src/planner/building/insert.ts +0 -435
  339. package/src/planner/building/pragma.ts +0 -34
  340. package/src/planner/building/schema-resolution.ts +0 -176
  341. package/src/planner/building/select-aggregates.ts +0 -318
  342. package/src/planner/building/select-compound.ts +0 -119
  343. package/src/planner/building/select-context.ts +0 -85
  344. package/src/planner/building/select-modifiers.ts +0 -236
  345. package/src/planner/building/select-projections.ts +0 -177
  346. package/src/planner/building/select-window.ts +0 -259
  347. package/src/planner/building/select.ts +0 -567
  348. package/src/planner/building/table-function.ts +0 -49
  349. package/src/planner/building/table.ts +0 -40
  350. package/src/planner/building/transaction.ts +0 -23
  351. package/src/planner/building/update.ts +0 -331
  352. package/src/planner/building/with.ts +0 -180
  353. package/src/planner/cache/correlation-detector.ts +0 -83
  354. package/src/planner/cache/materialization-advisory.ts +0 -265
  355. package/src/planner/cache/reference-graph.ts +0 -196
  356. package/src/planner/cost/index.ts +0 -169
  357. package/src/planner/debug/logger-utils.ts +0 -68
  358. package/src/planner/debug.ts +0 -480
  359. package/src/planner/framework/README.md +0 -132
  360. package/src/planner/framework/characteristics.ts +0 -503
  361. package/src/planner/framework/context.ts +0 -239
  362. package/src/planner/framework/pass.ts +0 -354
  363. package/src/planner/framework/physical-utils.ts +0 -210
  364. package/src/planner/framework/registry.ts +0 -261
  365. package/src/planner/framework/trace.ts +0 -259
  366. package/src/planner/nodes/add-constraint-node.ts +0 -62
  367. package/src/planner/nodes/aggregate-function.ts +0 -155
  368. package/src/planner/nodes/aggregate-node.ts +0 -267
  369. package/src/planner/nodes/array-index-node.ts +0 -50
  370. package/src/planner/nodes/block.ts +0 -80
  371. package/src/planner/nodes/cache-node.ts +0 -103
  372. package/src/planner/nodes/constraint-check-node.ts +0 -138
  373. package/src/planner/nodes/create-assertion-node.ts +0 -51
  374. package/src/planner/nodes/create-index-node.ts +0 -41
  375. package/src/planner/nodes/create-table-node.ts +0 -35
  376. package/src/planner/nodes/create-view-node.ts +0 -44
  377. package/src/planner/nodes/cte-node.ts +0 -168
  378. package/src/planner/nodes/cte-reference-node.ts +0 -125
  379. package/src/planner/nodes/declarative-schema.ts +0 -221
  380. package/src/planner/nodes/delete-node.ts +0 -102
  381. package/src/planner/nodes/distinct-node.ts +0 -107
  382. package/src/planner/nodes/dml-executor-node.ts +0 -104
  383. package/src/planner/nodes/drop-assertion-node.ts +0 -50
  384. package/src/planner/nodes/drop-table-node.ts +0 -36
  385. package/src/planner/nodes/drop-view-node.ts +0 -37
  386. package/src/planner/nodes/filter.ts +0 -144
  387. package/src/planner/nodes/function.ts +0 -98
  388. package/src/planner/nodes/insert-node.ts +0 -126
  389. package/src/planner/nodes/internal-recursive-cte-ref-node.ts +0 -61
  390. package/src/planner/nodes/join-node.ts +0 -336
  391. package/src/planner/nodes/limit-offset.ts +0 -144
  392. package/src/planner/nodes/plan-node-type.ts +0 -95
  393. package/src/planner/nodes/plan-node.ts +0 -503
  394. package/src/planner/nodes/pragma.ts +0 -98
  395. package/src/planner/nodes/project-node.ts +0 -337
  396. package/src/planner/nodes/recursive-cte-node.ts +0 -158
  397. package/src/planner/nodes/reference.ts +0 -334
  398. package/src/planner/nodes/remote-query-node.ts +0 -73
  399. package/src/planner/nodes/retrieve-node.ts +0 -86
  400. package/src/planner/nodes/returning-node.ts +0 -269
  401. package/src/planner/nodes/scalar.ts +0 -772
  402. package/src/planner/nodes/sequencing-node.ts +0 -113
  403. package/src/planner/nodes/set-operation-node.ts +0 -87
  404. package/src/planner/nodes/single-row.ts +0 -85
  405. package/src/planner/nodes/sink-node.ts +0 -61
  406. package/src/planner/nodes/sort.ts +0 -166
  407. package/src/planner/nodes/stream-aggregate.ts +0 -293
  408. package/src/planner/nodes/subquery.ts +0 -268
  409. package/src/planner/nodes/table-access-nodes.ts +0 -323
  410. package/src/planner/nodes/table-function-call.ts +0 -134
  411. package/src/planner/nodes/transaction-node.ts +0 -55
  412. package/src/planner/nodes/update-node.ts +0 -138
  413. package/src/planner/nodes/values-node.ts +0 -244
  414. package/src/planner/nodes/view-reference-node.ts +0 -97
  415. package/src/planner/nodes/window-function.ts +0 -73
  416. package/src/planner/nodes/window-node.ts +0 -199
  417. package/src/planner/optimizer-tuning.ts +0 -105
  418. package/src/planner/optimizer.ts +0 -332
  419. package/src/planner/planning-context.ts +0 -190
  420. package/src/planner/resolve.ts +0 -101
  421. package/src/planner/rules/README.md +0 -96
  422. package/src/planner/rules/access/rule-select-access-path.ts +0 -399
  423. package/src/planner/rules/aggregate/rule-aggregate-streaming.ts +0 -162
  424. package/src/planner/rules/cache/rule-cte-optimization.ts +0 -79
  425. package/src/planner/rules/cache/rule-materialization-advisory.ts +0 -77
  426. package/src/planner/rules/cache/rule-mutating-subquery-cache.ts +0 -104
  427. package/src/planner/rules/join/rule-join-greedy-commute.ts +0 -48
  428. package/src/planner/rules/join/rule-join-key-inference.ts +0 -35
  429. package/src/planner/rules/join/rule-quickpick-enumeration.ts +0 -267
  430. package/src/planner/rules/predicate/rule-predicate-pushdown.ts +0 -144
  431. package/src/planner/rules/retrieve/rule-grow-retrieve.ts +0 -337
  432. package/src/planner/scopes/aliased.ts +0 -50
  433. package/src/planner/scopes/base.ts +0 -10
  434. package/src/planner/scopes/empty.ts +0 -12
  435. package/src/planner/scopes/global.ts +0 -73
  436. package/src/planner/scopes/multi.ts +0 -40
  437. package/src/planner/scopes/param.ts +0 -95
  438. package/src/planner/scopes/registered.ts +0 -67
  439. package/src/planner/scopes/scope.ts +0 -16
  440. package/src/planner/stats/basic-estimates.ts +0 -107
  441. package/src/planner/stats/index.ts +0 -158
  442. package/src/planner/type-utils.ts +0 -87
  443. package/src/planner/util/key-utils.ts +0 -46
  444. package/src/planner/validation/determinism-validator.ts +0 -104
  445. package/src/planner/validation/plan-validator.ts +0 -335
  446. package/src/runtime/async-util.ts +0 -283
  447. package/src/runtime/cache/shared-cache.ts +0 -169
  448. package/src/runtime/context-helpers.ts +0 -191
  449. package/src/runtime/deferred-constraint-queue.ts +0 -196
  450. package/src/runtime/emission-context.ts +0 -319
  451. package/src/runtime/emit/add-constraint.ts +0 -78
  452. package/src/runtime/emit/aggregate.ts +0 -581
  453. package/src/runtime/emit/array-index.ts +0 -25
  454. package/src/runtime/emit/between.ts +0 -51
  455. package/src/runtime/emit/binary.ts +0 -357
  456. package/src/runtime/emit/block.ts +0 -23
  457. package/src/runtime/emit/cache.ts +0 -64
  458. package/src/runtime/emit/case.ts +0 -87
  459. package/src/runtime/emit/cast.ts +0 -151
  460. package/src/runtime/emit/collate.ts +0 -9
  461. package/src/runtime/emit/column-reference.ts +0 -17
  462. package/src/runtime/emit/constraint-check.ts +0 -290
  463. package/src/runtime/emit/create-assertion.ts +0 -82
  464. package/src/runtime/emit/create-index.ts +0 -15
  465. package/src/runtime/emit/create-table.ts +0 -15
  466. package/src/runtime/emit/create-view.ts +0 -52
  467. package/src/runtime/emit/cte-reference.ts +0 -38
  468. package/src/runtime/emit/cte.ts +0 -39
  469. package/src/runtime/emit/delete.ts +0 -24
  470. package/src/runtime/emit/distinct.ts +0 -40
  471. package/src/runtime/emit/dml-executor.ts +0 -198
  472. package/src/runtime/emit/drop-assertion.ts +0 -45
  473. package/src/runtime/emit/drop-table.ts +0 -27
  474. package/src/runtime/emit/drop-view.ts +0 -49
  475. package/src/runtime/emit/filter.ts +0 -30
  476. package/src/runtime/emit/insert.ts +0 -42
  477. package/src/runtime/emit/internal-recursive-cte-ref.ts +0 -37
  478. package/src/runtime/emit/join.ts +0 -148
  479. package/src/runtime/emit/limit-offset.ts +0 -73
  480. package/src/runtime/emit/literal.ts +0 -17
  481. package/src/runtime/emit/parameter.ts +0 -59
  482. package/src/runtime/emit/pragma.ts +0 -56
  483. package/src/runtime/emit/project.ts +0 -46
  484. package/src/runtime/emit/recursive-cte.ts +0 -111
  485. package/src/runtime/emit/remote-query.ts +0 -47
  486. package/src/runtime/emit/retrieve.ts +0 -15
  487. package/src/runtime/emit/returning.ts +0 -41
  488. package/src/runtime/emit/scalar-function.ts +0 -69
  489. package/src/runtime/emit/scan.ts +0 -106
  490. package/src/runtime/emit/schema-declarative.ts +0 -215
  491. package/src/runtime/emit/sequencing.ts +0 -24
  492. package/src/runtime/emit/set-operation.ts +0 -141
  493. package/src/runtime/emit/sink.ts +0 -27
  494. package/src/runtime/emit/sort.ts +0 -75
  495. package/src/runtime/emit/subquery.ts +0 -203
  496. package/src/runtime/emit/table-valued-function.ts +0 -106
  497. package/src/runtime/emit/temporal-arithmetic.ts +0 -302
  498. package/src/runtime/emit/transaction.ts +0 -205
  499. package/src/runtime/emit/unary.ts +0 -101
  500. package/src/runtime/emit/update.ts +0 -66
  501. package/src/runtime/emit/values.ts +0 -66
  502. package/src/runtime/emit/window-function.ts +0 -42
  503. package/src/runtime/emit/window.ts +0 -458
  504. package/src/runtime/emitters.ts +0 -183
  505. package/src/runtime/register.ts +0 -150
  506. package/src/runtime/scheduler.ts +0 -488
  507. package/src/runtime/types.ts +0 -242
  508. package/src/runtime/utils.ts +0 -177
  509. package/src/schema/assertion.ts +0 -21
  510. package/src/schema/catalog.ts +0 -269
  511. package/src/schema/change-events.ts +0 -80
  512. package/src/schema/column.ts +0 -51
  513. package/src/schema/declared-schema-manager.ts +0 -82
  514. package/src/schema/function.ts +0 -188
  515. package/src/schema/manager.ts +0 -1034
  516. package/src/schema/schema-differ.ts +0 -214
  517. package/src/schema/schema-hasher.ts +0 -26
  518. package/src/schema/schema.ts +0 -222
  519. package/src/schema/table.ts +0 -409
  520. package/src/schema/view.ts +0 -19
  521. package/src/schema/window-function.ts +0 -56
  522. package/src/types/builtin-types.ts +0 -350
  523. package/src/types/index.ts +0 -17
  524. package/src/types/json-type.ts +0 -152
  525. package/src/types/logical-type.ts +0 -91
  526. package/src/types/plugin-interface.ts +0 -10
  527. package/src/types/registry.ts +0 -204
  528. package/src/types/temporal-types.ts +0 -290
  529. package/src/types/validation.ts +0 -120
  530. package/src/util/affinity.ts +0 -151
  531. package/src/util/ast-stringify.ts +0 -887
  532. package/src/util/cached.ts +0 -25
  533. package/src/util/coercion.ts +0 -113
  534. package/src/util/comparison.ts +0 -510
  535. package/src/util/environment.ts +0 -52
  536. package/src/util/hash.ts +0 -90
  537. package/src/util/latches.ts +0 -47
  538. package/src/util/mutation-statement.ts +0 -135
  539. package/src/util/patterns.ts +0 -56
  540. package/src/util/plan-formatter.ts +0 -48
  541. package/src/util/plugin-helper.ts +0 -110
  542. package/src/util/row-descriptor.ts +0 -105
  543. package/src/util/serialization.ts +0 -47
  544. package/src/util/sql-literal.ts +0 -22
  545. package/src/util/working-table-iterable.ts +0 -38
  546. package/src/vtab/best-access-plan.ts +0 -244
  547. package/src/vtab/connection.ts +0 -36
  548. package/src/vtab/filter-info.ts +0 -23
  549. package/src/vtab/index-info.ts +0 -84
  550. package/src/vtab/manifest.ts +0 -86
  551. package/src/vtab/memory/connection.ts +0 -73
  552. package/src/vtab/memory/index.ts +0 -191
  553. package/src/vtab/memory/layer/base-cursor.ts +0 -124
  554. package/src/vtab/memory/layer/base.ts +0 -275
  555. package/src/vtab/memory/layer/connection.ts +0 -203
  556. package/src/vtab/memory/layer/interface.ts +0 -47
  557. package/src/vtab/memory/layer/manager.ts +0 -909
  558. package/src/vtab/memory/layer/safe-iterate.ts +0 -49
  559. package/src/vtab/memory/layer/scan-plan.ts +0 -84
  560. package/src/vtab/memory/layer/transaction-cursor.ts +0 -162
  561. package/src/vtab/memory/layer/transaction.ts +0 -229
  562. package/src/vtab/memory/module.ts +0 -667
  563. package/src/vtab/memory/table.ts +0 -251
  564. package/src/vtab/memory/types.ts +0 -23
  565. package/src/vtab/memory/utils/logging.ts +0 -36
  566. package/src/vtab/memory/utils/primary-key.ts +0 -163
  567. package/src/vtab/module.ts +0 -162
  568. package/src/vtab/table.ts +0 -177
@@ -1,38 +0,0 @@
1
- import type { Row } from '../common/types.js';
2
- import type { RuntimeContext } from '../runtime/types.js';
3
- import type { RowDescriptor } from '../planner/nodes/plan-node.js';
4
- import { withRowContextGenerator } from '../runtime/context-helpers.js';
5
-
6
- /**
7
- * A reusable async iterable for working table data that can be iterated multiple times.
8
- * Similar to CachedIterable but for runtime-generated working table data.
9
- * Used primarily in recursive CTE execution where the working table needs to be
10
- * accessed multiple times during recursive iterations.
11
- */
12
- export class WorkingTableIterable implements AsyncIterable<Row> {
13
- constructor(
14
- private rows: Row[],
15
- private rctx: RuntimeContext,
16
- private rowDescriptor: RowDescriptor
17
- ) {}
18
-
19
- async *[Symbol.asyncIterator](): AsyncIterator<Row> {
20
- // Convert rows array to async iterable
21
- async function* rowsIterable(rows: Row[]): AsyncIterable<Row> {
22
- for (const row of rows) {
23
- yield row;
24
- }
25
- }
26
-
27
- // Use the helper to manage context
28
- yield* withRowContextGenerator(
29
- this.rctx,
30
- this.rowDescriptor,
31
- rowsIterable(this.rows),
32
- async function* (row) {
33
- yield row;
34
- }
35
- );
36
- }
37
- }
38
-
@@ -1,244 +0,0 @@
1
- /**
2
- * Modern, type-safe replacement for xBestIndex API
3
- * Provides better type safety, clearer intent, and extensibility for future optimizations
4
- */
5
-
6
- /* eslint-disable @typescript-eslint/no-explicit-any */
7
- import { quereusError } from '../common/errors.js';
8
- import { StatusCode, type SqlValue } from '../common/types.js';
9
- import type { LogicalType } from '../types/logical-type.js';
10
-
11
- /**
12
- * Constraint operators that can be pushed down to virtual tables
13
- */
14
- export type ConstraintOp = '=' | '>' | '>=' | '<' | '<=' | 'MATCH' | 'LIKE' | 'GLOB' | 'IS NULL' | 'IS NOT NULL' | 'IN' | 'NOT IN';
15
-
16
- /**
17
- * Column metadata provided to virtual tables for planning
18
- */
19
- export interface ColumnMeta {
20
- /** Column index in the table */
21
- index: number;
22
- /** Column name */
23
- name: string;
24
- /** Logical type information */
25
- type: LogicalType;
26
- /** Whether this column is part of the primary key */
27
- isPrimaryKey: boolean;
28
- /** Whether this column has a unique constraint */
29
- isUnique: boolean;
30
- }
31
-
32
- /**
33
- * A predicate constraint extracted from WHERE clause
34
- */
35
- export interface PredicateConstraint {
36
- /** Column index this constraint applies to */
37
- columnIndex: number;
38
- /** Constraint operator */
39
- op: ConstraintOp;
40
- /** Constant value if this is a column-constant comparison */
41
- value?: SqlValue;
42
- /** Whether this constraint can be used by the virtual table */
43
- usable: boolean;
44
- }
45
-
46
- /**
47
- * Ordering specification for ORDER BY clauses
48
- */
49
- export interface OrderingSpec {
50
- /** Column index to order by */
51
- columnIndex: number;
52
- /** True for descending order, false for ascending */
53
- desc: boolean;
54
- /** Whether NULL values should come first or last */
55
- nullsFirst?: boolean;
56
- }
57
-
58
- /**
59
- * Request object passed to getBestAccessPlan containing query planning information
60
- */
61
- export interface BestAccessPlanRequest {
62
- /** Column metadata for the table */
63
- columns: readonly ColumnMeta[];
64
- /** Extracted predicate constraints from WHERE clause */
65
- filters: readonly PredicateConstraint[];
66
- /** Required ordering that ancestor nodes need (ORDER BY) */
67
- requiredOrdering?: readonly OrderingSpec[];
68
- /** LIMIT value known at plan time */
69
- limit?: number | null;
70
- /** Estimated rows hint from planner (may be unknown) */
71
- estimatedRows?: number;
72
- }
73
-
74
- /**
75
- * Result object returned by getBestAccessPlan describing the chosen query plan
76
- */
77
- export interface BestAccessPlanResult {
78
- /** Which filters were handled by the virtual table (parallel to filters array) */
79
- handledFilters: readonly boolean[];
80
- /** Optional JavaScript filter function for residual predicates */
81
- residualFilter?: (row: any) => boolean;
82
- /** Estimated cost in arbitrary virtual CPU units */
83
- cost: number;
84
- /** Estimated number of rows this plan will return */
85
- rows: number | undefined;
86
- /** Ordering guaranteed by this access plan */
87
- providesOrdering?: readonly OrderingSpec[];
88
- /** Name of the index that provides the ordering (if any) */
89
- orderingIndexName?: string;
90
- /** Whether this plan guarantees unique rows (helps DISTINCT optimization) */
91
- isSet?: boolean;
92
- /** Free-text explanation for debugging */
93
- explains?: string;
94
- }
95
-
96
- /**
97
- * Builder class for constructing access plan results
98
- */
99
- export class AccessPlanBuilder {
100
- private result: Partial<BestAccessPlanResult> = {};
101
-
102
- /**
103
- * Create a full table scan access plan
104
- */
105
- static fullScan(estimatedRows: number): AccessPlanBuilder {
106
- return new AccessPlanBuilder()
107
- .setCost(estimatedRows * 1.0) // Sequential scan cost
108
- .setRows(estimatedRows)
109
- .setExplanation('Full table scan');
110
- }
111
-
112
- /**
113
- * Create an equality match access plan (index seek)
114
- */
115
- static eqMatch(matchedRows: number, indexCost: number = 0.5): AccessPlanBuilder {
116
- return new AccessPlanBuilder()
117
- .setCost(indexCost + matchedRows * 0.3)
118
- .setRows(matchedRows)
119
- .setIsSet(matchedRows <= 1)
120
- .setExplanation('Index equality seek');
121
- }
122
-
123
- /**
124
- * Create a range scan access plan
125
- */
126
- static rangeScan(estimatedRows: number, indexCost: number = 0.3): AccessPlanBuilder {
127
- return new AccessPlanBuilder()
128
- .setCost(indexCost + estimatedRows * 0.5)
129
- .setRows(estimatedRows)
130
- .setExplanation('Index range scan');
131
- }
132
-
133
- /**
134
- * Set the estimated cost of this access plan
135
- */
136
- setCost(cost: number): this {
137
- this.result.cost = cost;
138
- return this;
139
- }
140
-
141
- /**
142
- * Set the estimated number of rows
143
- */
144
- setRows(rows: number | undefined): this {
145
- this.result.rows = rows;
146
- return this;
147
- }
148
-
149
- /**
150
- * Set which filters are handled by this plan
151
- */
152
- setHandledFilters(handledFilters: readonly boolean[]): this {
153
- this.result.handledFilters = handledFilters;
154
- return this;
155
- }
156
-
157
- /**
158
- * Set the ordering provided by this plan
159
- */
160
- setOrdering(ordering: readonly OrderingSpec[]): this {
161
- this.result.providesOrdering = ordering;
162
- return this;
163
- }
164
-
165
- /**
166
- * Set whether this plan produces unique rows
167
- */
168
- setIsSet(isSet: boolean): this {
169
- this.result.isSet = isSet;
170
- return this;
171
- }
172
-
173
- /**
174
- * Set an explanation for debugging
175
- */
176
- setExplanation(explanation: string): this {
177
- this.result.explains = explanation;
178
- return this;
179
- }
180
-
181
- /**
182
- * Set a residual filter function
183
- */
184
- setResidualFilter(filter: (row: any) => boolean): this {
185
- this.result.residualFilter = filter;
186
- return this;
187
- }
188
-
189
- /**
190
- * Build the final access plan result
191
- */
192
- build(): BestAccessPlanResult {
193
- // Ensure required fields are set
194
- if (this.result.cost === undefined) {
195
- quereusError('Access plan cost must be set', StatusCode.INTERNAL);
196
- }
197
- if (this.result.handledFilters === undefined) {
198
- this.result.handledFilters = [];
199
- }
200
-
201
- return this.result as BestAccessPlanResult;
202
- }
203
- }
204
-
205
- /**
206
- * Validation function for access plan results
207
- * Throws if the plan violates basic contracts
208
- */
209
- export function validateAccessPlan(
210
- request: BestAccessPlanRequest,
211
- result: BestAccessPlanResult
212
- ): void {
213
- // Validate handledFilters array length
214
- if (result.handledFilters.length !== request.filters.length) {
215
- quereusError(
216
- `handledFilters length (${result.handledFilters.length}) must match filters length (${request.filters.length})`,
217
- StatusCode.FORMAT
218
- );
219
- }
220
-
221
- // Validate cost is non-negative
222
- if (result.cost < 0) {
223
- quereusError(`Access plan cost cannot be negative: ${result.cost}`, StatusCode.INTERNAL);
224
- }
225
-
226
- // Validate rows is non-negative if specified
227
- if (result.rows !== undefined && result.rows < 0) {
228
- quereusError(`Access plan rows cannot be negative: ${result.rows}`, StatusCode.INTERNAL);
229
- }
230
-
231
- // Validate ordering column indexes
232
- if (result.providesOrdering) {
233
- for (const order of result.providesOrdering) {
234
- if (order.columnIndex < 0 || order.columnIndex >= request.columns.length) {
235
- quereusError(
236
- `Invalid ordering column index ${order.columnIndex}, must be 0-${request.columns.length - 1}`,
237
- StatusCode.FORMAT
238
- );
239
- }
240
- }
241
- }
242
- }
243
-
244
-
@@ -1,36 +0,0 @@
1
- import { MaybePromise } from "../common/types.js";
2
-
3
- /**
4
- * Generic interface for VirtualTable connections that support transactions.
5
- * This allows different vtab modules to implement their own connection strategies
6
- * while providing a consistent interface for transaction operations.
7
- */
8
- export interface VirtualTableConnection {
9
- /** Unique identifier for this connection */
10
- readonly connectionId: string;
11
-
12
- /** Name of the table this connection is associated with */
13
- readonly tableName: string;
14
-
15
- // Transaction methods
16
- /** Begins a transaction on this connection */
17
- begin(): MaybePromise<void>;
18
-
19
- /** Commits the current transaction */
20
- commit(): MaybePromise<void>;
21
-
22
- /** Rolls back the current transaction */
23
- rollback(): MaybePromise<void>;
24
-
25
- /** Creates a savepoint with the given index */
26
- createSavepoint(index: number): MaybePromise<void>;
27
-
28
- /** Releases a savepoint with the given index */
29
- releaseSavepoint(index: number): MaybePromise<void>;
30
-
31
- /** Rolls back to a savepoint with the given index */
32
- rollbackToSavepoint(index: number): MaybePromise<void>;
33
-
34
- /** Disconnects and cleans up this connection */
35
- disconnect(): MaybePromise<void>;
36
- }
@@ -1,23 +0,0 @@
1
- import type { SqlValue } from '../common/types.js';
2
- import type { IndexConstraint, IndexInfo } from './index-info.js';
3
-
4
- /**
5
- * Structure to pass all necessary filter and planning information
6
- * to a virtual table's xOpen method when cursors are not used.
7
- */
8
- export interface FilterInfo {
9
- /** The index number chosen by xBestIndex (output of xBestIndex) */
10
- idxNum: number;
11
- /** The index string chosen by xBestIndex (output of xBestIndex) */
12
- idxStr: string | null;
13
- /** Array of WHERE clause constraints (input to xBestIndex/xOpen) */
14
- constraints: ReadonlyArray<{ constraint: IndexConstraint, argvIndex: number }>;
15
- /** Values for ?. argvIndex in constraints (input to xOpen) */
16
- args: ReadonlyArray<SqlValue>;
17
- /**
18
- * The IndexInfo object AFTER xBestIndex has populated its output fields
19
- * (aConstraintUsage, orderByConsumed, estimatedCost, estimatedRows, idxFlags).
20
- * This is needed by xOpen to understand how constraints were used by the planner.
21
- */
22
- indexInfoOutput: IndexInfo;
23
- }
@@ -1,84 +0,0 @@
1
- import { IndexConstraintOp } from '../common/constants.js';
2
-
3
- /**
4
- * Information about a specific constraint in the WHERE clause
5
- */
6
- export interface IndexConstraint {
7
- /** Column index constrained (0 based) */
8
- iColumn: number;
9
- /** Constraint operator (EQ, GT, etc.) */
10
- op: IndexConstraintOp;
11
- /** True if the constraint expression is usable */
12
- usable: boolean;
13
- /** Internal offset used by Quereus - ignore in xBestIndex */
14
- iTermOffset?: number;
15
- }
16
-
17
- /**
18
- * Information about a term in the ORDER BY clause
19
- */
20
- export interface IndexOrderBy {
21
- /** Column index */
22
- iColumn: number;
23
- /** True for DESC, False for ASC */
24
- desc: boolean;
25
- }
26
-
27
- /**
28
- * Usage information for a constraint, filled by xBestIndex
29
- */
30
- export interface IndexConstraintUsage {
31
- /** If >0, constraint value becomes the (argvIndex-1)-th arg to xFilter */
32
- argvIndex: number;
33
- /** If true, Quereus might skip re-checking this constraint */
34
- omit: boolean;
35
- }
36
-
37
- /**
38
- * Structure passed to xBestIndex method containing information about
39
- * WHERE and ORDER BY clauses relevant to the virtual table.
40
- * The xBestIndex method must fill the output fields to describe the chosen query plan.
41
- */
42
- export interface IndexInfo {
43
- // --- Inputs ---
44
-
45
- /** Number of entries in aConstraint */
46
- nConstraint: number;
47
- /** Array of WHERE clause constraints */
48
- aConstraint: ReadonlyArray<IndexConstraint>;
49
-
50
- /** Number of terms in the ORDER BY clause */
51
- nOrderBy: number;
52
- /** Array of ORDER BY terms */
53
- aOrderBy: ReadonlyArray<IndexOrderBy>;
54
-
55
- /** Mask of columns used by the statement (bit N set if column N is used) */
56
- colUsed: bigint;
57
-
58
- // --- Outputs ---
59
-
60
- /** Usage details for each constraint */
61
- aConstraintUsage: IndexConstraintUsage[];
62
-
63
- /** Number identifying the chosen index strategy (passed to xFilter) */
64
- idxNum: number;
65
- /** String identifying the chosen index strategy (passed to xFilter) */
66
- idxStr: string | null;
67
-
68
- /** True if output from xFilter/xNext will satisfy ORDER BY */
69
- orderByConsumed: boolean;
70
-
71
- /** Estimated cost of this strategy (lower is better) */
72
- estimatedCost: number;
73
- /** Estimated number of rows returned by this strategy */
74
- estimatedRows: bigint;
75
-
76
- /** Mask of SQLITE_INDEX_SCAN_* flags */
77
- idxFlags: number;
78
- }
79
-
80
- /** Flags for IndexInfo.idxFlags */
81
- export enum IndexScanFlags {
82
- /** Scan visits at most 1 row */
83
- UNIQUE = 0x0001,
84
- }
@@ -1,86 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import type { SqlValue } from '../common/types.js';
3
- import type { FunctionSchema } from '../schema/function.js';
4
- import type { CollationFunction } from '../util/comparison.js';
5
- import type { TypePluginInfo } from '../types/plugin-interface.js';
6
-
7
- // Re-export TypePluginInfo so it can be imported from this module
8
- export type { TypePluginInfo };
9
-
10
- /**
11
- * Configuration setting definition for a plugin
12
- */
13
- export interface PluginSetting {
14
- key: string; // "path"
15
- label: string; // "JSON Path"
16
- type: 'string' | 'number' | 'boolean' | 'select';
17
- default?: SqlValue;
18
- options?: SqlValue[]; // for select type
19
- help?: string;
20
- }
21
-
22
- /**
23
- * Virtual table module registration info
24
- */
25
- export interface VTablePluginInfo {
26
- name: string; // module name for registration
27
- module: any; // the VirtualTableModule implementation
28
- auxData?: unknown; // optional auxiliary data
29
- }
30
-
31
- /**
32
- * Function registration info
33
- */
34
- export interface FunctionPluginInfo {
35
- schema: FunctionSchema; // complete function schema
36
- }
37
-
38
- /**
39
- * Collation registration info
40
- */
41
- export interface CollationPluginInfo {
42
- name: string; // collation name
43
- func: CollationFunction; // comparison function
44
- }
45
-
46
- /**
47
- * Plugin registration items - what the plugin wants to register
48
- */
49
- export interface PluginRegistrations {
50
- vtables?: VTablePluginInfo[];
51
- functions?: FunctionPluginInfo[];
52
- collations?: CollationPluginInfo[];
53
- types?: TypePluginInfo[];
54
- }
55
-
56
- /**
57
- * Plugin manifest that describes the plugin's metadata and configuration options
58
- */
59
- export interface PluginManifest {
60
- name: string; // "JSON_TABLE"
61
- version: string; // "1.0.0"
62
- author?: string;
63
- description?: string;
64
- pragmaPrefix?: string; // default = name, used for PRAGMA commands
65
- settings?: PluginSetting[]; // configuration options
66
- capabilities?: string[]; // e.g. ['scan', 'index', 'write']
67
-
68
- // Plugin type indicators (for UI display)
69
- provides?: {
70
- vtables?: string[]; // names of vtable modules provided
71
- functions?: string[]; // names of functions provided
72
- collations?: string[]; // names of collations provided
73
- types?: string[]; // names of types provided
74
- };
75
- }
76
-
77
- /**
78
- * Plugin record used for persistence across sessions
79
- */
80
- export interface PluginRecord {
81
- id: string; // UUID for this installation
82
- url: string; // Full URL to the ES module
83
- enabled: boolean; // Whether to load at startup
84
- manifest?: PluginManifest; // Cached after first successful load
85
- config: Record<string, SqlValue>; // User-configured values
86
- }
@@ -1,73 +0,0 @@
1
- import type { VirtualTableConnection } from '../connection.js';
2
- import type { MemoryTableConnection } from './layer/connection.js';
3
- import { createLogger } from '../../common/logger.js';
4
-
5
- const log = createLogger('vtab:memory:vtab-connection');
6
-
7
- /**
8
- * VirtualTableConnection implementation for memory tables.
9
- * Wraps the existing MemoryTableConnection to provide the generic interface.
10
- */
11
- export class MemoryVirtualTableConnection implements VirtualTableConnection {
12
- public readonly connectionId: string;
13
- public readonly tableName: string;
14
- private memoryConnection: MemoryTableConnection;
15
-
16
- constructor(tableName: string, memoryConnection: MemoryTableConnection) {
17
- this.connectionId = `memory-${tableName}-${memoryConnection.connectionId}`;
18
- this.tableName = tableName;
19
- this.memoryConnection = memoryConnection;
20
- }
21
-
22
- /** Begins a transaction on this connection */
23
- begin(): void {
24
- log(`BEGIN transaction on connection ${this.connectionId}`);
25
- this.memoryConnection.begin();
26
- }
27
-
28
- /** Commits the current transaction */
29
- async commit(): Promise<void> {
30
- log(`COMMIT transaction on connection ${this.connectionId}`);
31
- await this.memoryConnection.commit();
32
- }
33
-
34
- /** Rolls back the current transaction */
35
- rollback(): void {
36
- log(`ROLLBACK transaction on connection ${this.connectionId}`);
37
- this.memoryConnection.rollback();
38
- }
39
-
40
- /** Creates a savepoint with the given index */
41
- createSavepoint(index: number): void {
42
- log(`CREATE SAVEPOINT ${index} on connection ${this.connectionId}`);
43
- this.memoryConnection.createSavepoint(index);
44
- }
45
-
46
- /** Releases a savepoint with the given index */
47
- releaseSavepoint(index: number): void {
48
- log(`RELEASE SAVEPOINT ${index} on connection ${this.connectionId}`);
49
- this.memoryConnection.releaseSavepoint(index);
50
- }
51
-
52
- /** Rolls back to a savepoint with the given index */
53
- rollbackToSavepoint(index: number): void {
54
- log(`ROLLBACK TO SAVEPOINT ${index} on connection ${this.connectionId}`);
55
- this.memoryConnection.rollbackToSavepoint(index);
56
- }
57
-
58
- /** Disconnects and cleans up this connection */
59
- async disconnect(): Promise<void> {
60
- log(`DISCONNECT connection ${this.connectionId}`);
61
- // The MemoryTableConnection doesn't have a disconnect method,
62
- // but we can clear any pending transaction state
63
- if (this.memoryConnection.pendingTransactionLayer) {
64
- log(`Rolling back pending transaction on disconnect for ${this.connectionId}`);
65
- this.memoryConnection.rollback();
66
- }
67
- }
68
-
69
- /** Gets the underlying MemoryTableConnection for internal use */
70
- getMemoryConnection(): MemoryTableConnection {
71
- return this.memoryConnection;
72
- }
73
- }