@uwdata/mosaic-sql 0.17.0 → 0.19.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 (429) hide show
  1. package/LICENSE +47 -0
  2. package/README.md +0 -2
  3. package/dist/src/ast/aggregate.d.ts +82 -0
  4. package/dist/src/ast/aggregate.d.ts.map +1 -0
  5. package/dist/src/ast/aggregate.js +180 -0
  6. package/dist/src/ast/aggregate.js.map +1 -0
  7. package/dist/src/ast/between-op.d.ts +46 -0
  8. package/dist/src/ast/between-op.d.ts.map +1 -0
  9. package/dist/src/ast/between-op.js +60 -0
  10. package/dist/src/ast/between-op.js.map +1 -0
  11. package/dist/src/ast/binary-op.d.ts +21 -0
  12. package/dist/src/ast/binary-op.d.ts.map +1 -0
  13. package/dist/src/ast/binary-op.js +29 -0
  14. package/dist/src/ast/binary-op.js.map +1 -0
  15. package/dist/src/ast/case.d.ts +53 -0
  16. package/dist/src/ast/case.d.ts.map +1 -0
  17. package/dist/src/ast/case.js +75 -0
  18. package/dist/src/ast/case.js.map +1 -0
  19. package/dist/src/ast/cast.d.ts +18 -0
  20. package/dist/src/ast/cast.d.ts.map +1 -0
  21. package/dist/src/ast/cast.js +26 -0
  22. package/dist/src/ast/cast.js.map +1 -0
  23. package/dist/src/ast/collate.d.ts +18 -0
  24. package/dist/src/ast/collate.d.ts.map +1 -0
  25. package/dist/src/ast/collate.js +25 -0
  26. package/dist/src/ast/collate.js.map +1 -0
  27. package/dist/src/ast/column-param.d.ts +23 -0
  28. package/dist/src/ast/column-param.d.ts.map +1 -0
  29. package/dist/src/ast/column-param.js +29 -0
  30. package/dist/src/ast/column-param.js.map +1 -0
  31. package/dist/src/ast/column-ref.d.ts +40 -0
  32. package/dist/src/ast/column-ref.d.ts.map +1 -0
  33. package/dist/src/ast/column-ref.js +58 -0
  34. package/dist/src/ast/column-ref.js.map +1 -0
  35. package/dist/src/ast/fragment.d.ts +20 -0
  36. package/dist/src/ast/fragment.d.ts.map +1 -0
  37. package/dist/src/ast/fragment.js +26 -0
  38. package/dist/src/ast/fragment.js.map +1 -0
  39. package/dist/src/ast/from.d.ts +22 -0
  40. package/dist/src/ast/from.d.ts.map +1 -0
  41. package/dist/src/ast/from.js +37 -0
  42. package/dist/src/ast/from.js.map +1 -0
  43. package/dist/src/ast/function.d.ts +18 -0
  44. package/dist/src/ast/function.d.ts.map +1 -0
  45. package/dist/src/ast/function.js +26 -0
  46. package/dist/src/ast/function.js.map +1 -0
  47. package/dist/src/ast/in-op.d.ts +18 -0
  48. package/dist/src/ast/in-op.d.ts.map +1 -0
  49. package/dist/src/ast/in-op.js +25 -0
  50. package/dist/src/ast/in-op.js.map +1 -0
  51. package/dist/src/ast/interval.d.ts +18 -0
  52. package/dist/src/ast/interval.d.ts.map +1 -0
  53. package/dist/src/ast/interval.js +25 -0
  54. package/dist/src/ast/interval.js.map +1 -0
  55. package/dist/src/ast/list.d.ts +15 -0
  56. package/dist/src/ast/list.d.ts.map +1 -0
  57. package/dist/src/ast/list.js +21 -0
  58. package/dist/src/ast/list.js.map +1 -0
  59. package/dist/src/ast/literal.d.ts +16 -0
  60. package/dist/src/ast/literal.d.ts.map +1 -0
  61. package/dist/src/ast/literal.js +53 -0
  62. package/dist/src/ast/literal.js.map +1 -0
  63. package/dist/src/ast/logical-op.d.ts +32 -0
  64. package/dist/src/ast/logical-op.d.ts.map +1 -0
  65. package/dist/src/ast/logical-op.js +46 -0
  66. package/dist/src/ast/logical-op.js.map +1 -0
  67. package/dist/src/ast/node.d.ts +25 -0
  68. package/dist/src/ast/node.d.ts.map +1 -0
  69. package/dist/src/ast/node.js +36 -0
  70. package/dist/src/ast/node.js.map +1 -0
  71. package/dist/src/ast/order-by.d.ts +21 -0
  72. package/dist/src/ast/order-by.d.ts.map +1 -0
  73. package/dist/src/ast/order-by.js +36 -0
  74. package/dist/src/ast/order-by.js.map +1 -0
  75. package/dist/src/ast/param.d.ts +20 -0
  76. package/dist/src/ast/param.d.ts.map +1 -0
  77. package/dist/src/ast/param.js +28 -0
  78. package/dist/src/ast/param.js.map +1 -0
  79. package/dist/src/ast/query.d.ts +334 -0
  80. package/dist/src/ast/query.d.ts.map +1 -0
  81. package/dist/src/ast/query.js +640 -0
  82. package/dist/src/ast/query.js.map +1 -0
  83. package/dist/src/ast/sample.d.ts +27 -0
  84. package/dist/src/ast/sample.d.ts.map +1 -0
  85. package/dist/src/ast/sample.js +38 -0
  86. package/dist/src/ast/sample.js.map +1 -0
  87. package/dist/src/ast/select.d.ts +19 -0
  88. package/dist/src/ast/select.d.ts.map +1 -0
  89. package/dist/src/ast/select.js +35 -0
  90. package/dist/src/ast/select.js.map +1 -0
  91. package/dist/src/ast/subquery.d.ts +16 -0
  92. package/dist/src/ast/subquery.d.ts.map +1 -0
  93. package/dist/src/ast/subquery.js +21 -0
  94. package/dist/src/ast/subquery.js.map +1 -0
  95. package/dist/src/ast/table-ref.d.ts +24 -0
  96. package/dist/src/ast/table-ref.d.ts.map +1 -0
  97. package/dist/src/ast/table-ref.js +35 -0
  98. package/dist/src/ast/table-ref.js.map +1 -0
  99. package/dist/src/ast/unary-op.d.ts +40 -0
  100. package/dist/src/ast/unary-op.d.ts.map +1 -0
  101. package/dist/src/ast/unary-op.js +52 -0
  102. package/dist/src/ast/unary-op.js.map +1 -0
  103. package/dist/src/ast/unnest.d.ts +19 -0
  104. package/dist/src/ast/unnest.d.ts.map +1 -0
  105. package/dist/src/ast/unnest.js +29 -0
  106. package/dist/src/ast/unnest.js.map +1 -0
  107. package/dist/src/ast/verbatim.d.ts +18 -0
  108. package/dist/src/ast/verbatim.d.ts.map +1 -0
  109. package/dist/src/ast/verbatim.js +25 -0
  110. package/dist/src/ast/verbatim.js.map +1 -0
  111. package/dist/src/ast/window-frame.d.ts +54 -0
  112. package/dist/src/ast/window-frame.d.ts.map +1 -0
  113. package/dist/src/ast/window-frame.js +79 -0
  114. package/dist/src/ast/window-frame.js.map +1 -0
  115. package/dist/src/ast/window.d.ts +128 -0
  116. package/dist/src/ast/window.d.ts.map +1 -0
  117. package/dist/src/ast/window.js +194 -0
  118. package/dist/src/ast/window.js.map +1 -0
  119. package/dist/src/ast/with.d.ts +25 -0
  120. package/dist/src/ast/with.d.ts.map +1 -0
  121. package/dist/src/ast/with.js +36 -0
  122. package/dist/src/ast/with.js.map +1 -0
  123. package/dist/src/constants.d.ts +40 -0
  124. package/dist/src/constants.d.ts.map +1 -0
  125. package/dist/src/constants.js +40 -0
  126. package/dist/src/constants.js.map +1 -0
  127. package/dist/src/functions/aggregate.d.ts +236 -0
  128. package/dist/src/functions/aggregate.d.ts.map +1 -0
  129. package/dist/src/functions/aggregate.js +308 -0
  130. package/dist/src/functions/aggregate.js.map +1 -0
  131. package/dist/src/functions/case.d.ts +13 -0
  132. package/dist/src/functions/case.d.ts.map +1 -0
  133. package/dist/src/functions/case.js +17 -0
  134. package/dist/src/functions/case.js.map +1 -0
  135. package/dist/src/functions/cast.d.ts +23 -0
  136. package/dist/src/functions/cast.d.ts.map +1 -0
  137. package/dist/src/functions/cast.js +32 -0
  138. package/dist/src/functions/cast.js.map +1 -0
  139. package/dist/src/functions/collate.d.ts +10 -0
  140. package/dist/src/functions/collate.d.ts.map +1 -0
  141. package/dist/src/functions/collate.js +12 -0
  142. package/dist/src/functions/collate.js.map +1 -0
  143. package/dist/src/functions/column.d.ts +10 -0
  144. package/dist/src/functions/column.d.ts.map +1 -0
  145. package/dist/src/functions/column.js +17 -0
  146. package/dist/src/functions/column.js.map +1 -0
  147. package/dist/src/functions/cte.d.ts +13 -0
  148. package/dist/src/functions/cte.d.ts.map +1 -0
  149. package/dist/src/functions/cte.js +14 -0
  150. package/dist/src/functions/cte.js.map +1 -0
  151. package/dist/src/functions/datetime.d.ts +32 -0
  152. package/dist/src/functions/datetime.d.ts.map +1 -0
  153. package/dist/src/functions/datetime.js +45 -0
  154. package/dist/src/functions/datetime.js.map +1 -0
  155. package/dist/src/functions/interval.d.ts +48 -0
  156. package/dist/src/functions/interval.d.ts.map +1 -0
  157. package/dist/src/functions/interval.js +66 -0
  158. package/dist/src/functions/interval.js.map +1 -0
  159. package/dist/src/functions/list.d.ts +31 -0
  160. package/dist/src/functions/list.d.ts.map +1 -0
  161. package/dist/src/functions/list.js +49 -0
  162. package/dist/src/functions/list.js.map +1 -0
  163. package/dist/src/functions/literal.d.ts +16 -0
  164. package/dist/src/functions/literal.d.ts.map +1 -0
  165. package/dist/src/functions/literal.js +20 -0
  166. package/dist/src/functions/literal.js.map +1 -0
  167. package/dist/src/functions/numeric.d.ts +80 -0
  168. package/dist/src/functions/numeric.d.ts.map +1 -0
  169. package/dist/src/functions/numeric.js +110 -0
  170. package/dist/src/functions/numeric.js.map +1 -0
  171. package/dist/src/functions/operators.d.ts +169 -0
  172. package/dist/src/functions/operators.d.ts.map +1 -0
  173. package/dist/src/functions/operators.js +235 -0
  174. package/dist/src/functions/operators.js.map +1 -0
  175. package/dist/src/functions/order-by.d.ts +15 -0
  176. package/dist/src/functions/order-by.d.ts.map +1 -0
  177. package/dist/src/functions/order-by.js +19 -0
  178. package/dist/src/functions/order-by.js.map +1 -0
  179. package/dist/src/functions/spatial.d.ts +32 -0
  180. package/dist/src/functions/spatial.d.ts.map +1 -0
  181. package/dist/src/functions/spatial.js +44 -0
  182. package/dist/src/functions/spatial.js.map +1 -0
  183. package/dist/src/functions/sql-template-tag.d.ts +13 -0
  184. package/dist/src/functions/sql-template-tag.d.ts.map +1 -0
  185. package/dist/src/functions/sql-template-tag.js +44 -0
  186. package/dist/src/functions/sql-template-tag.js.map +1 -0
  187. package/dist/src/functions/string.d.ts +49 -0
  188. package/dist/src/functions/string.d.ts.map +1 -0
  189. package/dist/src/functions/string.js +67 -0
  190. package/dist/src/functions/string.js.map +1 -0
  191. package/dist/src/functions/table-ref.d.ts +10 -0
  192. package/dist/src/functions/table-ref.d.ts.map +1 -0
  193. package/dist/src/functions/table-ref.js +13 -0
  194. package/dist/src/functions/table-ref.js.map +1 -0
  195. package/dist/src/functions/unnest.d.ts +10 -0
  196. package/dist/src/functions/unnest.d.ts.map +1 -0
  197. package/dist/src/functions/unnest.js +12 -0
  198. package/dist/src/functions/unnest.js.map +1 -0
  199. package/dist/src/functions/util.d.ts +7 -0
  200. package/dist/src/functions/util.d.ts.map +1 -0
  201. package/dist/src/functions/util.js +9 -0
  202. package/dist/src/functions/util.js.map +1 -0
  203. package/dist/src/functions/window-frame.d.ts +41 -0
  204. package/dist/src/functions/window-frame.d.ts.map +1 -0
  205. package/dist/src/functions/window-frame.js +52 -0
  206. package/dist/src/functions/window-frame.js.map +1 -0
  207. package/dist/src/functions/window.d.ts +74 -0
  208. package/dist/src/functions/window.d.ts.map +1 -0
  209. package/dist/src/functions/window.js +96 -0
  210. package/dist/src/functions/window.js.map +1 -0
  211. package/dist/src/index.d.ts +73 -0
  212. package/dist/src/index.d.ts.map +1 -0
  213. package/{src → dist/src}/index.js +8 -8
  214. package/dist/src/index.js.map +1 -0
  215. package/dist/src/load/create.d.ts +10 -0
  216. package/dist/src/load/create.d.ts.map +1 -0
  217. package/dist/src/load/create.js +14 -0
  218. package/dist/src/load/create.js.map +1 -0
  219. package/dist/src/load/extension.d.ts +2 -0
  220. package/dist/src/load/extension.d.ts.map +1 -0
  221. package/dist/src/load/extension.js +4 -0
  222. package/dist/src/load/extension.js.map +1 -0
  223. package/dist/src/load/load.d.ts +18 -0
  224. package/dist/src/load/load.d.ts.map +1 -0
  225. package/dist/src/load/load.js +80 -0
  226. package/dist/src/load/load.js.map +1 -0
  227. package/dist/src/load/sql-from.d.ts +14 -0
  228. package/dist/src/load/sql-from.d.ts.map +1 -0
  229. package/dist/src/load/sql-from.js +29 -0
  230. package/dist/src/load/sql-from.js.map +1 -0
  231. package/dist/src/transforms/bin-1d.d.ts +16 -0
  232. package/dist/src/transforms/bin-1d.d.ts.map +1 -0
  233. package/dist/src/transforms/bin-1d.js +21 -0
  234. package/dist/src/transforms/bin-1d.js.map +1 -0
  235. package/dist/src/transforms/bin-2d.d.ts +19 -0
  236. package/dist/src/transforms/bin-2d.d.ts.map +1 -0
  237. package/dist/src/transforms/bin-2d.js +27 -0
  238. package/dist/src/transforms/bin-2d.js.map +1 -0
  239. package/dist/src/transforms/bin-date.d.ts +31 -0
  240. package/dist/src/transforms/bin-date.d.ts.map +1 -0
  241. package/dist/src/transforms/bin-date.js +20 -0
  242. package/dist/src/transforms/bin-date.js.map +1 -0
  243. package/dist/src/transforms/bin-histogram.d.ts +37 -0
  244. package/dist/src/transforms/bin-histogram.d.ts.map +1 -0
  245. package/dist/src/transforms/bin-histogram.js +32 -0
  246. package/dist/src/transforms/bin-histogram.js.map +1 -0
  247. package/dist/src/transforms/bin-linear-1d.d.ts +11 -0
  248. package/dist/src/transforms/bin-linear-1d.d.ts.map +1 -0
  249. package/dist/src/transforms/bin-linear-1d.js +25 -0
  250. package/dist/src/transforms/bin-linear-1d.js.map +1 -0
  251. package/dist/src/transforms/bin-linear-2d.d.ts +20 -0
  252. package/dist/src/transforms/bin-linear-2d.d.ts.map +1 -0
  253. package/dist/src/transforms/bin-linear-2d.js +49 -0
  254. package/dist/src/transforms/bin-linear-2d.js.map +1 -0
  255. package/dist/src/transforms/filter-query.d.ts +12 -0
  256. package/dist/src/transforms/filter-query.d.ts.map +1 -0
  257. package/dist/src/transforms/filter-query.js +39 -0
  258. package/dist/src/transforms/filter-query.js.map +1 -0
  259. package/dist/src/transforms/line-density.d.ts +24 -0
  260. package/dist/src/transforms/line-density.d.ts.map +1 -0
  261. package/dist/src/transforms/line-density.js +98 -0
  262. package/dist/src/transforms/line-density.js.map +1 -0
  263. package/dist/src/transforms/m4.d.ts +19 -0
  264. package/dist/src/transforms/m4.d.ts.map +1 -0
  265. package/dist/src/transforms/m4.js +38 -0
  266. package/dist/src/transforms/m4.js.map +1 -0
  267. package/dist/src/transforms/scales.d.ts +30 -0
  268. package/dist/src/transforms/scales.d.ts.map +1 -0
  269. package/dist/src/transforms/scales.js +103 -0
  270. package/dist/src/transforms/scales.js.map +1 -0
  271. package/dist/src/transforms/util/bin-step.d.ts +50 -0
  272. package/dist/src/transforms/util/bin-step.d.ts.map +1 -0
  273. package/dist/src/transforms/util/bin-step.js +53 -0
  274. package/dist/src/transforms/util/bin-step.js.map +1 -0
  275. package/dist/src/transforms/util/time-interval.d.ts +14 -0
  276. package/dist/src/transforms/util/time-interval.d.ts.map +1 -0
  277. package/dist/src/transforms/util/time-interval.js +88 -0
  278. package/dist/src/transforms/util/time-interval.js.map +1 -0
  279. package/dist/src/types.d.ts +49 -0
  280. package/dist/src/types.d.ts.map +1 -0
  281. package/dist/src/types.js +2 -0
  282. package/dist/src/types.js.map +1 -0
  283. package/dist/src/util/ast.d.ts +62 -0
  284. package/dist/src/util/ast.d.ts.map +1 -0
  285. package/{src → dist/src}/util/ast.js +36 -41
  286. package/dist/src/util/ast.js.map +1 -0
  287. package/dist/src/util/function.d.ts +56 -0
  288. package/dist/src/util/function.d.ts.map +1 -0
  289. package/dist/src/util/function.js +73 -0
  290. package/dist/src/util/function.js.map +1 -0
  291. package/dist/src/util/identity.d.ts +6 -0
  292. package/dist/src/util/identity.d.ts.map +1 -0
  293. package/dist/src/util/identity.js +8 -0
  294. package/dist/src/util/identity.js.map +1 -0
  295. package/dist/src/util/string.d.ts +4 -0
  296. package/dist/src/util/string.d.ts.map +1 -0
  297. package/dist/src/util/string.js +14 -0
  298. package/dist/src/util/string.js.map +1 -0
  299. package/dist/src/util/type-check.d.ts +17 -0
  300. package/dist/src/util/type-check.d.ts.map +1 -0
  301. package/dist/src/util/type-check.js +28 -0
  302. package/dist/src/util/type-check.js.map +1 -0
  303. package/dist/src/visit/clone.d.ts +7 -0
  304. package/dist/src/visit/clone.d.ts.map +1 -0
  305. package/dist/src/visit/clone.js +52 -0
  306. package/dist/src/visit/clone.js.map +1 -0
  307. package/dist/src/visit/recurse.d.ts +2 -0
  308. package/dist/src/visit/recurse.d.ts.map +1 -0
  309. package/dist/src/visit/recurse.js +37 -0
  310. package/dist/src/visit/recurse.js.map +1 -0
  311. package/dist/src/visit/rewrite.d.ts +9 -0
  312. package/dist/src/visit/rewrite.d.ts.map +1 -0
  313. package/dist/src/visit/rewrite.js +39 -0
  314. package/dist/src/visit/rewrite.js.map +1 -0
  315. package/dist/src/visit/visitors.d.ts +32 -0
  316. package/dist/src/visit/visitors.d.ts.map +1 -0
  317. package/dist/src/visit/visitors.js +95 -0
  318. package/dist/src/visit/visitors.js.map +1 -0
  319. package/dist/src/visit/walk.d.ts +21 -0
  320. package/dist/src/visit/walk.d.ts.map +1 -0
  321. package/dist/src/visit/walk.js +32 -0
  322. package/dist/src/visit/walk.js.map +1 -0
  323. package/package.json +13 -7
  324. package/src/ast/{aggregate.js → aggregate.ts} +49 -60
  325. package/src/ast/{between-op.js → between-op.ts} +19 -26
  326. package/src/ast/binary-op.ts +31 -0
  327. package/src/ast/{case.js → case.ts} +29 -44
  328. package/src/ast/{cast.js → cast.ts} +8 -14
  329. package/src/ast/{collate.js → collate.ts} +8 -14
  330. package/src/ast/column-param.ts +34 -0
  331. package/src/ast/{column-ref.js → column-ref.ts} +16 -25
  332. package/src/ast/fragment.ts +28 -0
  333. package/src/ast/{from.js → from.ts} +12 -21
  334. package/src/ast/{function.js → function.ts} +8 -14
  335. package/src/ast/{in-op.js → in-op.ts} +8 -14
  336. package/src/ast/{interval.js → interval.ts} +8 -14
  337. package/src/ast/list.ts +23 -0
  338. package/src/ast/{literal.js → literal.ts} +6 -9
  339. package/src/ast/logical-op.ts +50 -0
  340. package/src/ast/{node.js → node.ts} +10 -13
  341. package/src/ast/order-by.ts +38 -0
  342. package/src/ast/{param.js → param.ts} +6 -12
  343. package/src/ast/{query.js → query.ts} +224 -204
  344. package/src/ast/sample.ts +47 -0
  345. package/src/ast/{select.js → select.ts} +10 -16
  346. package/src/ast/{subquery.js → subquery.ts} +9 -8
  347. package/src/ast/{table-ref.js → table-ref.ts} +7 -12
  348. package/src/ast/{unary-op.js → unary-op.ts} +16 -23
  349. package/src/ast/unnest.ts +31 -0
  350. package/src/ast/verbatim.ts +27 -0
  351. package/src/ast/{window-frame.js → window-frame.ts} +37 -47
  352. package/src/ast/window.ts +246 -0
  353. package/src/ast/{with.js → with.ts} +19 -20
  354. package/src/{constants.js → constants.ts} +2 -0
  355. package/src/functions/aggregate.ts +344 -0
  356. package/src/functions/{case.js → case.ts} +5 -8
  357. package/src/functions/{cast.js → cast.ts} +9 -13
  358. package/src/functions/{collate.js → collate.ts} +4 -7
  359. package/src/functions/{column.js → column.ts} +9 -10
  360. package/src/functions/{cte.js → cte.ts} +9 -6
  361. package/src/functions/{datetime.js → datetime.ts} +12 -20
  362. package/src/functions/interval.ts +74 -0
  363. package/src/functions/list.ts +63 -0
  364. package/src/functions/{literal.js → literal.ts} +5 -7
  365. package/src/functions/numeric.ts +125 -0
  366. package/src/functions/operators.ts +272 -0
  367. package/src/functions/order-by.ts +21 -0
  368. package/src/functions/spatial.ts +50 -0
  369. package/src/functions/{sql-template-tag.js → sql-template-tag.ts} +16 -13
  370. package/src/functions/string.ts +79 -0
  371. package/src/functions/{table-ref.js → table-ref.ts} +4 -4
  372. package/src/functions/unnest.ts +13 -0
  373. package/src/functions/util.ts +10 -0
  374. package/src/functions/window-frame.ts +58 -0
  375. package/src/functions/{window.js → window.ts} +18 -35
  376. package/src/index.ts +79 -0
  377. package/src/load/{create.js → create.ts} +9 -3
  378. package/src/load/extension.ts +3 -0
  379. package/src/load/{load.js → load.ts} +25 -10
  380. package/src/load/{sql-from.js → sql-from.ts} +14 -7
  381. package/src/transforms/{bin-1d.js → bin-1d.ts} +13 -9
  382. package/src/transforms/{bin-2d.js → bin-2d.ts} +17 -13
  383. package/src/transforms/bin-date.ts +48 -0
  384. package/src/transforms/bin-histogram.ts +61 -0
  385. package/src/transforms/{bin-linear-1d.js → bin-linear-1d.ts} +16 -11
  386. package/src/transforms/{bin-linear-2d.js → bin-linear-2d.ts} +23 -35
  387. package/src/transforms/{filter-query.js → filter-query.ts} +10 -14
  388. package/src/transforms/{line-density.js → line-density.ts} +19 -17
  389. package/src/transforms/{m4.js → m4.ts} +17 -14
  390. package/src/transforms/{scales.js → scales.ts} +57 -14
  391. package/src/transforms/util/bin-step.ts +100 -0
  392. package/src/transforms/util/{time-interval.js → time-interval.ts} +32 -21
  393. package/src/types.ts +5 -39
  394. package/src/util/ast.ts +104 -0
  395. package/src/util/{function.js → function.ts} +40 -31
  396. package/src/util/identity.ts +7 -0
  397. package/src/util/{string.js → string.ts} +4 -4
  398. package/src/util/type-check.ts +31 -0
  399. package/src/visit/{clone.js → clone.ts} +10 -10
  400. package/src/visit/{recurse.js → recurse.ts} +3 -1
  401. package/src/visit/{rewrite.js → rewrite.ts} +7 -7
  402. package/src/visit/{visitors.js → visitors.ts} +22 -30
  403. package/src/visit/walk.ts +46 -0
  404. package/src/ast/binary-op.js +0 -40
  405. package/src/ast/column-param.js +0 -40
  406. package/src/ast/fragment.js +0 -26
  407. package/src/ast/logical-op.js +0 -67
  408. package/src/ast/order-by.js +0 -48
  409. package/src/ast/sample.js +0 -53
  410. package/src/ast/verbatim.js +0 -33
  411. package/src/ast/window.js +0 -260
  412. package/src/functions/aggregate.js +0 -347
  413. package/src/functions/interval.js +0 -83
  414. package/src/functions/numeric.js +0 -143
  415. package/src/functions/operators.js +0 -301
  416. package/src/functions/order-by.js +0 -27
  417. package/src/functions/spatial.js +0 -59
  418. package/src/functions/string.js +0 -85
  419. package/src/functions/util.js +0 -14
  420. package/src/functions/window-frame.js +0 -61
  421. package/src/index-types.ts +0 -2
  422. package/src/load/extension.js +0 -3
  423. package/src/transforms/bin-date.js +0 -38
  424. package/src/transforms/bin-histogram.js +0 -52
  425. package/src/transforms/util/bin-step.js +0 -79
  426. package/src/util/type-check.js +0 -33
  427. package/src/visit/walk.js +0 -34
  428. package/tsconfig.json +0 -8
  429. package/vitest.config.ts +0 -3
@@ -0,0 +1,67 @@
1
+ import { asLiteral } from '../util/ast.js';
2
+ import { argsList, fn } from '../util/function.js';
3
+ function strFn(name, expr, ...args) {
4
+ return fn(name, expr, ...(argsList(args).map(asLiteral)));
5
+ }
6
+ /**
7
+ * Function that returns true if a string contains a regexp pattern,
8
+ * false otherwise.
9
+ * @param string The string match against.
10
+ * @param pattern The regular expression pattern to match.
11
+ * @param options Regular expression options:
12
+ * 'c': case-sensitive matching
13
+ * 'i': case-insensitive matching
14
+ * 'l': match literals instead of regular expression tokens
15
+ * 'm', 'n', 'p': newline sensitive matching
16
+ * 'g': global replace, only available for regexp_replace
17
+ * 's': non-newline sensitive matching
18
+ */
19
+ export function regexp_matches(string, pattern, options) {
20
+ return strFn('regexp_matches', string, pattern, options);
21
+ }
22
+ /**
23
+ * Function that returns true if search_string is found within string.
24
+ * @param string The string to match against.
25
+ * @param search_string The substring to search for.
26
+ */
27
+ export function contains(string, search_string) {
28
+ return strFn('contains', string, search_string);
29
+ }
30
+ /**
31
+ * Function that returns true if string begins with search_string.
32
+ * @param string The string to match against.
33
+ * @param search_string The substring to search for.
34
+ */
35
+ export function prefix(string, search_string) {
36
+ return strFn('starts_with', string, search_string);
37
+ }
38
+ /**
39
+ * Function that returns true if string ends with search_string.
40
+ * @param string The string to match against.
41
+ * @param search_string The substring to search for.
42
+ */
43
+ export function suffix(string, search_string) {
44
+ return strFn('ends_with', string, search_string);
45
+ }
46
+ /**
47
+ * Function that converts string to lower case.
48
+ * @param string The string to convert.
49
+ */
50
+ export function lower(string) {
51
+ return strFn('lower', string);
52
+ }
53
+ /**
54
+ * Function that converts string to upper case.
55
+ * @param string The string to convert.
56
+ */
57
+ export function upper(string) {
58
+ return strFn('upper', string);
59
+ }
60
+ /**
61
+ * Function that returns the number of characters in string.
62
+ * @param value The string to measure.
63
+ */
64
+ export function length(value) {
65
+ return strFn('length', value);
66
+ }
67
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../../src/functions/string.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAEnD,SAAS,KAAK,CAAC,IAAY,EAAE,IAAe,EAAE,GAAG,IAAe;IAC9D,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAiB,EACjB,OAAoB,EACpB,OAAqB;IAErB,OAAO,KAAK,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAiB,EAAE,aAA0B;IACpE,OAAO,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,MAAiB,EAAE,aAA0B;IAClE,OAAO,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,MAAiB,EAAE,aAA0B;IAClE,OAAO,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,MAAiB;IACrC,OAAO,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,MAAiB;IACrC,OAAO,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAgB;IACrC,OAAO,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { TableRefNode } from '../ast/table-ref.js';
2
+ import { MaybeArray } from '../types.js';
3
+ /**
4
+ * Returns a named table or view reference.
5
+ * @param ids Table and namespace identifiers.
6
+ * For example 'name' or ['schema', 'name'].
7
+ * @returns A table reference or undefined if the input list is empty.
8
+ */
9
+ export declare function tableRef(...ids: MaybeArray<string>[]): TableRefNode | undefined;
10
+ //# sourceMappingURL=table-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-ref.d.ts","sourceRoot":"","sources":["../../../src/functions/table-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,4BAGpD"}
@@ -0,0 +1,13 @@
1
+ import { TableRefNode } from '../ast/table-ref.js';
2
+ import { exprList } from '../util/function.js';
3
+ /**
4
+ * Returns a named table or view reference.
5
+ * @param ids Table and namespace identifiers.
6
+ * For example 'name' or ['schema', 'name'].
7
+ * @returns A table reference or undefined if the input list is empty.
8
+ */
9
+ export function tableRef(...ids) {
10
+ const args = exprList(ids, String);
11
+ return args?.length ? new TableRefNode(args) : undefined;
12
+ }
13
+ //# sourceMappingURL=table-ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-ref.js","sourceRoot":"","sources":["../../../src/functions/table-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAG,GAAyB;IACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ExprValue } from "../types.js";
2
+ import { UnnestNode } from "../ast/unnest.js";
3
+ /**
4
+ * Create an Unnest Node to flatten nested structures, either structs or lists.
5
+ * @param value
6
+ * @param recursive
7
+ * @param maxDepth
8
+ */
9
+ export declare function unnest(value: ExprValue, recursive?: boolean, maxDepth?: number): UnnestNode;
10
+ //# sourceMappingURL=unnest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unnest.d.ts","sourceRoot":"","sources":["../../../src/functions/unnest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,UAAQ,EAAE,QAAQ,SAAI,cAEvE"}
@@ -0,0 +1,12 @@
1
+ import { asNode } from "../util/ast.js";
2
+ import { UnnestNode } from "../ast/unnest.js";
3
+ /**
4
+ * Create an Unnest Node to flatten nested structures, either structs or lists.
5
+ * @param value
6
+ * @param recursive
7
+ * @param maxDepth
8
+ */
9
+ export function unnest(value, recursive = false, maxDepth = 0) {
10
+ return new UnnestNode(asNode(value), recursive, maxDepth);
11
+ }
12
+ //# sourceMappingURL=unnest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unnest.js","sourceRoot":"","sources":["../../../src/functions/unnest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,KAAgB,EAAE,SAAS,GAAG,KAAK,EAAE,QAAQ,GAAG,CAAC;IACtE,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ExprValue } from '../types.js';
2
+ /**
3
+ * Returns the first non-null argument.
4
+ * @param expr The input expressions.
5
+ */
6
+ export declare function coalesce(...expr: ExprValue[]): import("../index.js").FunctionNode;
7
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/functions/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,sCAE5C"}
@@ -0,0 +1,9 @@
1
+ import { fn } from '../util/function.js';
2
+ /**
3
+ * Returns the first non-null argument.
4
+ * @param expr The input expressions.
5
+ */
6
+ export function coalesce(...expr) {
7
+ return fn('coalesce', ...expr);
8
+ }
9
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/functions/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAG,IAAiB;IAC3C,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { FrameExclude, FrameExtent, FrameValue } from '../ast/window-frame.js';
2
+ import { WindowFrameExprNode, WindowFrameNode } from '../ast/window-frame.js';
3
+ /**
4
+ * Return an updated window definition with the given rows frame.
5
+ * @param extent The row-based window frame extent.
6
+ * @param exclude The window frame exclusion criteria.
7
+ * @returns A window frame node.
8
+ */
9
+ export declare function frameRows(extent: FrameExtent, exclude?: FrameExclude): WindowFrameNode;
10
+ /**
11
+ * Return an updated window definition with the given range frame.
12
+ * @param extent The range-based window frame extent.
13
+ * @param exclude The window frame exclusion criteria.
14
+ * @returns A window frame node.
15
+ */
16
+ export declare function frameRange(extent: FrameExtent, exclude?: FrameExclude): WindowFrameNode;
17
+ /**
18
+ * Return an updated window definition with the given groups frame.
19
+ * @param extent The group-based window frame extent.
20
+ * @param exclude The window frame exclusion criteria.
21
+ * @returns A window frame node.
22
+ */
23
+ export declare function frameGroups(extent: FrameExtent, exclude?: FrameExclude): WindowFrameNode;
24
+ /**
25
+ * A `PRECEDING` frame value expression.
26
+ * @param value The frame value.
27
+ * @returns A preceding value.
28
+ */
29
+ export declare function preceding(value: FrameValue): WindowFrameExprNode;
30
+ /**
31
+ * A `FOLLOWING` frame value expression.
32
+ * @param value The frame value.
33
+ * @returns A following value.
34
+ */
35
+ export declare function following(value: FrameValue): WindowFrameExprNode;
36
+ /**
37
+ * A `CURRENT ROW` frame value expression.
38
+ * @returns A current row value.
39
+ */
40
+ export declare function currentRow(): WindowFrameExprNode;
41
+ //# sourceMappingURL=window-frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window-frame.d.ts","sourceRoot":"","sources":["../../../src/functions/window-frame.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAA0D,mBAAmB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEtI;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,YAAY,mBAEpE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,YAAY,mBAErE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,YAAY,mBAEtE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,uBAE1C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,uBAE1C;AAED;;;GAGG;AACH,wBAAgB,UAAU,wBAEzB"}
@@ -0,0 +1,52 @@
1
+ import { CURRENT_ROW, FOLLOWING, GROUPS, PRECEDING, RANGE, ROWS, WindowFrameExprNode, WindowFrameNode } from '../ast/window-frame.js';
2
+ /**
3
+ * Return an updated window definition with the given rows frame.
4
+ * @param extent The row-based window frame extent.
5
+ * @param exclude The window frame exclusion criteria.
6
+ * @returns A window frame node.
7
+ */
8
+ export function frameRows(extent, exclude) {
9
+ return new WindowFrameNode(ROWS, extent, exclude);
10
+ }
11
+ /**
12
+ * Return an updated window definition with the given range frame.
13
+ * @param extent The range-based window frame extent.
14
+ * @param exclude The window frame exclusion criteria.
15
+ * @returns A window frame node.
16
+ */
17
+ export function frameRange(extent, exclude) {
18
+ return new WindowFrameNode(RANGE, extent, exclude);
19
+ }
20
+ /**
21
+ * Return an updated window definition with the given groups frame.
22
+ * @param extent The group-based window frame extent.
23
+ * @param exclude The window frame exclusion criteria.
24
+ * @returns A window frame node.
25
+ */
26
+ export function frameGroups(extent, exclude) {
27
+ return new WindowFrameNode(GROUPS, extent, exclude);
28
+ }
29
+ /**
30
+ * A `PRECEDING` frame value expression.
31
+ * @param value The frame value.
32
+ * @returns A preceding value.
33
+ */
34
+ export function preceding(value) {
35
+ return new WindowFrameExprNode(PRECEDING, value);
36
+ }
37
+ /**
38
+ * A `FOLLOWING` frame value expression.
39
+ * @param value The frame value.
40
+ * @returns A following value.
41
+ */
42
+ export function following(value) {
43
+ return new WindowFrameExprNode(FOLLOWING, value);
44
+ }
45
+ /**
46
+ * A `CURRENT ROW` frame value expression.
47
+ * @returns A current row value.
48
+ */
49
+ export function currentRow() {
50
+ return new WindowFrameExprNode(CURRENT_ROW);
51
+ }
52
+ //# sourceMappingURL=window-frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window-frame.js","sourceRoot":"","sources":["../../../src/functions/window-frame.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEtI;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,MAAmB,EAAE,OAAsB;IACnE,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,MAAmB,EAAE,OAAsB;IACpE,OAAO,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,MAAmB,EAAE,OAAsB;IACrE,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAiB;IACzC,OAAO,IAAI,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAiB;IACzC,OAAO,IAAI,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,74 @@
1
+ import type { ExprValue, NumberValue } from '../types.js';
2
+ /**
3
+ * Create a window function that returns the number of the current row
4
+ * within the partition, counting from 1.
5
+ */
6
+ export declare function row_number(): import("../index.js").WindowNode;
7
+ /**
8
+ * Create a window function that returns the rank of the current row with gaps.
9
+ * This is the same as the row_number of its first peer.
10
+ */
11
+ export declare function rank(): import("../index.js").WindowNode;
12
+ /**
13
+ * Create a window function that returns the rank of the current row without
14
+ * gaps. The function counts peer groups.
15
+ */
16
+ export declare function dense_rank(): import("../index.js").WindowNode;
17
+ /**
18
+ * Create a window function that returns the relative rank of the current row.
19
+ * Computed as (rank() - 1) / (total partition rows - 1).
20
+ */
21
+ export declare function percent_rank(): import("../index.js").WindowNode;
22
+ /**
23
+ * Create a window function that returns the cumulative distribution. Computed
24
+ * as (number of preceding or peer partition rows) / total partition rows.
25
+ */
26
+ export declare function cume_dist(): import("../index.js").WindowNode;
27
+ /**
28
+ * Create a window function that returns an integer ranging from 1 to the
29
+ * argument value, dividing the partition as equally as possible.
30
+ * @param num_buckets The number of quantile buckets.
31
+ */
32
+ export declare function ntile(num_buckets: NumberValue): import("../index.js").WindowNode;
33
+ /**
34
+ * Create a window function that returns the expression evaluated at the row
35
+ * that is offset rows before the current row within the partition.
36
+ * If there is no such row, instead return default (which must be of the same
37
+ * type as the expression). Both offset and default are evaluated with respect
38
+ * to the current row. If omitted, offset defaults to 1 and default to null.
39
+ * @param expr The expression to evaluate.
40
+ * @param offset The row offset (default `1`).
41
+ * @param defaultValue The default value (default `null`).
42
+ */
43
+ export declare function lag(expr: ExprValue, offset?: NumberValue, defaultValue?: unknown): import("../index.js").WindowNode;
44
+ /**
45
+ * Create a window function that returns the expression evaluated at the row
46
+ * that is offset rows after the current row within the partition.
47
+ * If there is no such row, instead return default (which must be of the same
48
+ * type as the expression). Both offset and default are evaluated with respect
49
+ * to the current row. If omitted, offset defaults to 1 and default to null.
50
+ * @param expr The expression to evaluate.
51
+ * @param offset The row offset (default `1`).
52
+ * @param defaultValue The default value (default `null`).
53
+ */
54
+ export declare function lead(expr: ExprValue, offset?: NumberValue, defaultValue?: unknown): import("../index.js").WindowNode;
55
+ /**
56
+ * Create a window function that returns the expression evaluated at the row
57
+ * that is the first row of the window frame.
58
+ * @param expr The expression to evaluate.
59
+ */
60
+ export declare function first_value(expr: ExprValue): import("../index.js").WindowNode;
61
+ /**
62
+ * Create a window function that returns the expression evaluated at the row
63
+ * that is the last row of the window frame.
64
+ * @param expr The expression to evaluate.
65
+ */
66
+ export declare function last_value(expr: ExprValue): import("../index.js").WindowNode;
67
+ /**
68
+ * Create a window function that returns the expression evaluated at the
69
+ * nth row of the window frame (counting from 1), or null if no such row.
70
+ * @param expr The expression to evaluate.
71
+ * @param nth The 1-based window frame index.
72
+ */
73
+ export declare function nth_value(expr: ExprValue, nth: NumberValue): import("../index.js").WindowNode;
74
+ //# sourceMappingURL=window.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../src/functions/window.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1D;;;GAGG;AACH,wBAAgB,UAAU,qCAEzB;AAED;;;GAGG;AACH,wBAAgB,IAAI,qCAEnB;AAED;;;GAGG;AACH,wBAAgB,UAAU,qCAEzB;AAED;;;GAGG;AACH,wBAAgB,YAAY,qCAE3B;AAED;;;GAGG;AACH,wBAAgB,SAAS,qCAExB;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,WAAW,EAAE,WAAW,oCAE7C;AAED;;;;;;;;;GASG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,oCAEhF;AAED;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,oCAEjF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,oCAE1C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,oCAEzC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,oCAE1D"}
@@ -0,0 +1,96 @@
1
+ import { winFn } from '../util/function.js';
2
+ /**
3
+ * Create a window function that returns the number of the current row
4
+ * within the partition, counting from 1.
5
+ */
6
+ export function row_number() {
7
+ return winFn('row_number');
8
+ }
9
+ /**
10
+ * Create a window function that returns the rank of the current row with gaps.
11
+ * This is the same as the row_number of its first peer.
12
+ */
13
+ export function rank() {
14
+ return winFn('rank');
15
+ }
16
+ /**
17
+ * Create a window function that returns the rank of the current row without
18
+ * gaps. The function counts peer groups.
19
+ */
20
+ export function dense_rank() {
21
+ return winFn('dense_rank');
22
+ }
23
+ /**
24
+ * Create a window function that returns the relative rank of the current row.
25
+ * Computed as (rank() - 1) / (total partition rows - 1).
26
+ */
27
+ export function percent_rank() {
28
+ return winFn('percent_rank');
29
+ }
30
+ /**
31
+ * Create a window function that returns the cumulative distribution. Computed
32
+ * as (number of preceding or peer partition rows) / total partition rows.
33
+ */
34
+ export function cume_dist() {
35
+ return winFn('cume_dist');
36
+ }
37
+ /**
38
+ * Create a window function that returns an integer ranging from 1 to the
39
+ * argument value, dividing the partition as equally as possible.
40
+ * @param num_buckets The number of quantile buckets.
41
+ */
42
+ export function ntile(num_buckets) {
43
+ return winFn('ntile', num_buckets);
44
+ }
45
+ /**
46
+ * Create a window function that returns the expression evaluated at the row
47
+ * that is offset rows before the current row within the partition.
48
+ * If there is no such row, instead return default (which must be of the same
49
+ * type as the expression). Both offset and default are evaluated with respect
50
+ * to the current row. If omitted, offset defaults to 1 and default to null.
51
+ * @param expr The expression to evaluate.
52
+ * @param offset The row offset (default `1`).
53
+ * @param defaultValue The default value (default `null`).
54
+ */
55
+ export function lag(expr, offset, defaultValue) {
56
+ return winFn('lag', expr, offset, defaultValue);
57
+ }
58
+ /**
59
+ * Create a window function that returns the expression evaluated at the row
60
+ * that is offset rows after the current row within the partition.
61
+ * If there is no such row, instead return default (which must be of the same
62
+ * type as the expression). Both offset and default are evaluated with respect
63
+ * to the current row. If omitted, offset defaults to 1 and default to null.
64
+ * @param expr The expression to evaluate.
65
+ * @param offset The row offset (default `1`).
66
+ * @param defaultValue The default value (default `null`).
67
+ */
68
+ export function lead(expr, offset, defaultValue) {
69
+ return winFn('lead', expr, offset, defaultValue);
70
+ }
71
+ /**
72
+ * Create a window function that returns the expression evaluated at the row
73
+ * that is the first row of the window frame.
74
+ * @param expr The expression to evaluate.
75
+ */
76
+ export function first_value(expr) {
77
+ return winFn('first_value', expr);
78
+ }
79
+ /**
80
+ * Create a window function that returns the expression evaluated at the row
81
+ * that is the last row of the window frame.
82
+ * @param expr The expression to evaluate.
83
+ */
84
+ export function last_value(expr) {
85
+ return winFn('last_value', expr);
86
+ }
87
+ /**
88
+ * Create a window function that returns the expression evaluated at the
89
+ * nth row of the window frame (counting from 1), or null if no such row.
90
+ * @param expr The expression to evaluate.
91
+ * @param nth The 1-based window frame index.
92
+ */
93
+ export function nth_value(expr, nth) {
94
+ return winFn('nth_value', expr, nth);
95
+ }
96
+ //# sourceMappingURL=window.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window.js","sourceRoot":"","sources":["../../../src/functions/window.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C;;;GAGG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,IAAI;IAClB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,KAAK,CAAC,cAAc,CAAC,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,WAAwB;IAC5C,OAAO,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,GAAG,CAAC,IAAe,EAAE,MAAoB,EAAE,YAAsB;IAC/E,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,IAAI,CAAC,IAAe,EAAE,MAAoB,EAAE,YAAsB;IAChF,OAAO,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAe;IACzC,OAAO,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAe;IACxC,OAAO,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,IAAe,EAAE,GAAgB;IACzD,OAAO,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,73 @@
1
+ export { AggregateNode, aggregateNames, isAggregateFunction } from './ast/aggregate.js';
2
+ export { BetweenOpNode, NotBetweenOpNode } from './ast/between-op.js';
3
+ export { BinaryOpNode } from './ast/binary-op.js';
4
+ export { CaseNode, WhenNode } from './ast/case.js';
5
+ export { CastNode } from './ast/cast.js';
6
+ export { CollateNode } from './ast/collate.js';
7
+ export { ColumnParamNode, isColumnParam } from './ast/column-param.js';
8
+ export { ColumnRefNode, ColumnNameRefNode, isColumnRef } from './ast/column-ref.js';
9
+ export { FragmentNode } from './ast/fragment.js';
10
+ export { FromClauseNode } from './ast/from.js';
11
+ export { FunctionNode } from './ast/function.js';
12
+ export { InOpNode } from './ast/in-op.js';
13
+ export { IntervalNode } from './ast/interval.js';
14
+ export { ListNode } from './ast/list.js';
15
+ export { LiteralNode } from './ast/literal.js';
16
+ export { AndNode, OrNode } from './ast/logical-op.js';
17
+ export { SQLNode, ExprNode, isNode } from './ast/node.js';
18
+ export { OrderByNode } from './ast/order-by.js';
19
+ export { ParamNode } from './ast/param.js';
20
+ export { DescribeQuery, Query, SelectQuery, SetOperation, isDescribeQuery, isQuery, isSelectQuery } from './ast/query.js';
21
+ export { SampleClauseNode } from './ast/sample.js';
22
+ export { ScalarSubqueryNode } from './ast/subquery.js';
23
+ export { SelectClauseNode } from './ast/select.js';
24
+ export { TableRefNode, isTableRef } from './ast/table-ref.js';
25
+ export { UnaryOpNode, UnaryPostfixOpNode } from './ast/unary-op.js';
26
+ export { UnnestNode } from './ast/unnest.js';
27
+ export { VerbatimNode } from './ast/verbatim.js';
28
+ export { WindowClauseNode, WindowDefNode, WindowFunctionNode, WindowNode } from './ast/window.js';
29
+ export { WindowFrameNode, WindowFrameExprNode, type FrameExclude, type FrameExtent, type FrameScope, type FrameType, type FrameValue } from './ast/window-frame.js';
30
+ export { WithClauseNode } from './ast/with.js';
31
+ export { argmax, argmin, arrayAgg, avg, corr, count, covariance, covarPop, entropy, first, geomean, kurtosis, mad, max, median, min, mode, last, product, quantile, regrAvgX, regrAvgY, regrCount, regrIntercept, regrR2, regrSXX, regrSXY, regrSYY, regrSlope, skewness, stddev, stddevPop, stringAgg, sum, variance, varPop } from './functions/aggregate.js';
32
+ export { cond } from './functions/case.js';
33
+ export { cast, float32, float64, int32 } from './functions/cast.js';
34
+ export { collate } from './functions/collate.js';
35
+ export { column } from './functions/column.js';
36
+ export { cte } from './functions/cte.js';
37
+ export { dateBin, dateMonth, dateMonthDay, dateDay, epoch_ms } from './functions/datetime.js';
38
+ export { days, hours, interval, microseconds, minutes, milliseconds, months, seconds, years } from './functions/interval.js';
39
+ export { list, listContains, listHasAll, listHasAny } from './functions/list.js';
40
+ export { literal, verbatim } from './functions/literal.js';
41
+ export { abs, ceil, exp, floor, greatest, isFinite, isInfinite, isNaN, least, ln, log, round, sign, sqrt, trunc } from './functions/numeric.js';
42
+ export { and, or, not, isNull, isNotNull, bitNot, bitAnd, bitOr, bitLeft, bitRight, add, sub, mul, div, idiv, mod, pow, eq, neq, lt, gt, lte, gte, isDistinct, isNotDistinct, isBetween, isNotBetween, isIn } from './functions/operators.js';
43
+ export { asc, desc } from './functions/order-by.js';
44
+ export { geojson, x, y, centroid, centroidX, centroidY } from './functions/spatial.js';
45
+ export { sql } from './functions/sql-template-tag.js';
46
+ export { regexp_matches, contains, prefix, suffix, lower, upper, length } from './functions/string.js';
47
+ export { unnest } from './functions/unnest.js';
48
+ export { coalesce } from './functions/util.js';
49
+ export { cume_dist, dense_rank, first_value, lag, last_value, lead, nth_value, ntile, percent_rank, rank, row_number } from './functions/window.js';
50
+ export { currentRow, following, frameGroups, frameRange, frameRows, preceding } from './functions/window-frame.js';
51
+ export { deepClone } from './visit/clone.js';
52
+ export { rewrite } from './visit/rewrite.js';
53
+ export { collectAggregates, collectColumns, collectParams, isAggregateExpression } from './visit/visitors.js';
54
+ export { walk, type VisitorCallback, type VisitorResult } from './visit/walk.js';
55
+ export { createTable, createSchema } from './load/create.js';
56
+ export { loadExtension } from './load/extension.js';
57
+ export { loadCSV, loadJSON, loadObjects, loadParquet, loadSpatial } from './load/load.js';
58
+ export { bin1d } from './transforms/bin-1d.js';
59
+ export { bin2d } from './transforms/bin-2d.js';
60
+ export { binDate } from './transforms/bin-date.js';
61
+ export { binHistogram } from './transforms/bin-histogram.js';
62
+ export { binLinear1d } from './transforms/bin-linear-1d.js';
63
+ export { binLinear2d } from './transforms/bin-linear-2d.js';
64
+ export { filterQuery } from './transforms/filter-query.js';
65
+ export { lineDensity } from './transforms/line-density.js';
66
+ export { m4 } from './transforms/m4.js';
67
+ export { scaleTransform, type Scale, type ScaleDomain, type ScaleOptions, type ScaleTransform, type ScaleType } from './transforms/scales.js';
68
+ export { asLiteral, asNode, asTableRef, asVerbatim, over } from './util/ast.js';
69
+ export { isParamLike } from './util/type-check.js';
70
+ export { binSpec, binStep, type BinOptions } from './transforms/util/bin-step.js';
71
+ export { timeInterval, type TimeUnit } from './transforms/util/time-interval.js';
72
+ export * from './types.js';
73
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export { AggregateNode, aggregateNames, isAggregateFunction } from './ast/aggregate.js';
2
- export { BetweenOpNode, NotBetweenOpNode } from './ast/between-op.js'
2
+ export { BetweenOpNode, NotBetweenOpNode } from './ast/between-op.js';
3
3
  export { BinaryOpNode } from './ast/binary-op.js';
4
4
  export { CaseNode, WhenNode } from './ast/case.js';
5
5
  export { CastNode } from './ast/cast.js';
@@ -11,6 +11,7 @@ export { FromClauseNode } from './ast/from.js';
11
11
  export { FunctionNode } from './ast/function.js';
12
12
  export { InOpNode } from './ast/in-op.js';
13
13
  export { IntervalNode } from './ast/interval.js';
14
+ export { ListNode } from './ast/list.js';
14
15
  export { LiteralNode } from './ast/literal.js';
15
16
  export { AndNode, OrNode } from './ast/logical-op.js';
16
17
  export { SQLNode, ExprNode, isNode } from './ast/node.js';
@@ -21,12 +22,12 @@ export { SampleClauseNode } from './ast/sample.js';
21
22
  export { ScalarSubqueryNode } from './ast/subquery.js';
22
23
  export { SelectClauseNode } from './ast/select.js';
23
24
  export { TableRefNode, isTableRef } from './ast/table-ref.js';
24
- export { UnaryOpNode, UnaryPosftixOpNode } from './ast/unary-op.js';
25
+ export { UnaryOpNode, UnaryPostfixOpNode } from './ast/unary-op.js';
26
+ export { UnnestNode } from './ast/unnest.js';
25
27
  export { VerbatimNode } from './ast/verbatim.js';
26
28
  export { WindowClauseNode, WindowDefNode, WindowFunctionNode, WindowNode } from './ast/window.js';
27
29
  export { WindowFrameNode, WindowFrameExprNode } from './ast/window-frame.js';
28
30
  export { WithClauseNode } from './ast/with.js';
29
-
30
31
  export { argmax, argmin, arrayAgg, avg, corr, count, covariance, covarPop, entropy, first, geomean, kurtosis, mad, max, median, min, mode, last, product, quantile, regrAvgX, regrAvgY, regrCount, regrIntercept, regrR2, regrSXX, regrSXY, regrSYY, regrSlope, skewness, stddev, stddevPop, stringAgg, sum, variance, varPop } from './functions/aggregate.js';
31
32
  export { cond } from './functions/case.js';
32
33
  export { cast, float32, float64, int32 } from './functions/cast.js';
@@ -35,6 +36,7 @@ export { column } from './functions/column.js';
35
36
  export { cte } from './functions/cte.js';
36
37
  export { dateBin, dateMonth, dateMonthDay, dateDay, epoch_ms } from './functions/datetime.js';
37
38
  export { days, hours, interval, microseconds, minutes, milliseconds, months, seconds, years } from './functions/interval.js';
39
+ export { list, listContains, listHasAll, listHasAny } from './functions/list.js';
38
40
  export { literal, verbatim } from './functions/literal.js';
39
41
  export { abs, ceil, exp, floor, greatest, isFinite, isInfinite, isNaN, least, ln, log, round, sign, sqrt, trunc } from './functions/numeric.js';
40
42
  export { and, or, not, isNull, isNotNull, bitNot, bitAnd, bitOr, bitLeft, bitRight, add, sub, mul, div, idiv, mod, pow, eq, neq, lt, gt, lte, gte, isDistinct, isNotDistinct, isBetween, isNotBetween, isIn } from './functions/operators.js';
@@ -42,19 +44,17 @@ export { asc, desc } from './functions/order-by.js';
42
44
  export { geojson, x, y, centroid, centroidX, centroidY } from './functions/spatial.js';
43
45
  export { sql } from './functions/sql-template-tag.js';
44
46
  export { regexp_matches, contains, prefix, suffix, lower, upper, length } from './functions/string.js';
47
+ export { unnest } from './functions/unnest.js';
45
48
  export { coalesce } from './functions/util.js';
46
49
  export { cume_dist, dense_rank, first_value, lag, last_value, lead, nth_value, ntile, percent_rank, rank, row_number } from './functions/window.js';
47
50
  export { currentRow, following, frameGroups, frameRange, frameRows, preceding } from './functions/window-frame.js';
48
-
49
51
  export { deepClone } from './visit/clone.js';
50
52
  export { rewrite } from './visit/rewrite.js';
51
53
  export { collectAggregates, collectColumns, collectParams, isAggregateExpression } from './visit/visitors.js';
52
54
  export { walk } from './visit/walk.js';
53
-
54
55
  export { createTable, createSchema } from './load/create.js';
55
56
  export { loadExtension } from './load/extension.js';
56
57
  export { loadCSV, loadJSON, loadObjects, loadParquet, loadSpatial } from './load/load.js';
57
-
58
58
  export { bin1d } from './transforms/bin-1d.js';
59
59
  export { bin2d } from './transforms/bin-2d.js';
60
60
  export { binDate } from './transforms/bin-date.js';
@@ -65,9 +65,9 @@ export { filterQuery } from './transforms/filter-query.js';
65
65
  export { lineDensity } from './transforms/line-density.js';
66
66
  export { m4 } from './transforms/m4.js';
67
67
  export { scaleTransform } from './transforms/scales.js';
68
-
69
68
  export { asLiteral, asNode, asTableRef, asVerbatim, over } from './util/ast.js';
70
69
  export { isParamLike } from './util/type-check.js';
71
-
72
70
  export { binSpec, binStep } from './transforms/util/bin-step.js';
73
71
  export { timeInterval } from './transforms/util/time-interval.js';
72
+ export * from './types.js';
73
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface CreateTableOptions {
2
+ replace?: boolean;
3
+ temp?: boolean;
4
+ view?: boolean;
5
+ }
6
+ export declare function createTable(name: string, query: string, { replace, temp, view }?: CreateTableOptions): string;
7
+ export declare function createSchema(name: string, { strict }?: {
8
+ strict?: boolean | undefined;
9
+ }): string;
10
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/load/create.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EACvD,OAAe,EACf,IAAY,EACZ,IAAY,EACb,GAAE,kBAAuB,UAOzB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EACzC,MAAc,EACf;;CAAK,UAIL"}