@qrvey/formula-lang 2.0.2 → 3.0.1-rc.704

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 (355) hide show
  1. package/dist/cjs/constants/index.d.ts +10 -2
  2. package/dist/cjs/constants/index.js +15 -1
  3. package/dist/cjs/constants/index.js.map +1 -1
  4. package/dist/cjs/constants/interfaces.d.ts +20 -2
  5. package/dist/cjs/errors/analyzer/index.js +2 -0
  6. package/dist/cjs/errors/analyzer/index.js.map +1 -1
  7. package/dist/cjs/errors/analyzer/mssql.d.ts +8 -0
  8. package/dist/cjs/errors/analyzer/mssql.js +26 -0
  9. package/dist/cjs/errors/analyzer/mssql.js.map +1 -0
  10. package/dist/cjs/errors/definitions.d.ts +12 -0
  11. package/dist/cjs/errors/definitions.js +22 -1
  12. package/dist/cjs/errors/definitions.js.map +1 -1
  13. package/dist/cjs/errors/dictionary.d.ts +4 -1
  14. package/dist/cjs/errors/dictionary.js +15 -0
  15. package/dist/cjs/errors/dictionary.js.map +1 -1
  16. package/dist/cjs/errors/mismatch.js +2 -2
  17. package/dist/cjs/errors/mismatch.js.map +1 -1
  18. package/dist/cjs/functions/abs.js +6 -0
  19. package/dist/cjs/functions/abs.js.map +1 -1
  20. package/dist/cjs/functions/aggAvg.d.ts +5 -0
  21. package/dist/cjs/functions/aggAvg.js +53 -0
  22. package/dist/cjs/functions/aggAvg.js.map +1 -0
  23. package/dist/cjs/functions/aggCount.d.ts +5 -0
  24. package/dist/cjs/functions/aggCount.js +53 -0
  25. package/dist/cjs/functions/aggCount.js.map +1 -0
  26. package/dist/cjs/functions/aggDistcount.d.ts +5 -0
  27. package/dist/cjs/functions/aggDistcount.js +53 -0
  28. package/dist/cjs/functions/aggDistcount.js.map +1 -0
  29. package/dist/cjs/functions/aggMax.d.ts +5 -0
  30. package/dist/cjs/functions/aggMax.js +53 -0
  31. package/dist/cjs/functions/aggMax.js.map +1 -0
  32. package/dist/cjs/functions/aggMed.d.ts +5 -0
  33. package/dist/cjs/functions/aggMed.js +53 -0
  34. package/dist/cjs/functions/aggMed.js.map +1 -0
  35. package/dist/cjs/functions/aggMin.d.ts +5 -0
  36. package/dist/cjs/functions/aggMin.js +53 -0
  37. package/dist/cjs/functions/aggMin.js.map +1 -0
  38. package/dist/cjs/functions/aggSum.d.ts +5 -0
  39. package/dist/cjs/functions/aggSum.js +53 -0
  40. package/dist/cjs/functions/aggSum.js.map +1 -0
  41. package/dist/cjs/functions/and.js +6 -0
  42. package/dist/cjs/functions/and.js.map +1 -1
  43. package/dist/cjs/functions/concatenate.js +6 -0
  44. package/dist/cjs/functions/concatenate.js.map +1 -1
  45. package/dist/cjs/functions/dateadd.js +24 -0
  46. package/dist/cjs/functions/dateadd.js.map +1 -1
  47. package/dist/cjs/functions/datedif.js +11 -1
  48. package/dist/cjs/functions/datedif.js.map +1 -1
  49. package/dist/cjs/functions/datesubtract.js +24 -0
  50. package/dist/cjs/functions/datesubtract.js.map +1 -1
  51. package/dist/cjs/functions/day.js +6 -0
  52. package/dist/cjs/functions/day.js.map +1 -1
  53. package/dist/cjs/functions/dayofweek.js +15 -0
  54. package/dist/cjs/functions/dayofweek.js.map +1 -1
  55. package/dist/cjs/functions/even.js +6 -0
  56. package/dist/cjs/functions/even.js.map +1 -1
  57. package/dist/cjs/functions/exp.js +6 -0
  58. package/dist/cjs/functions/exp.js.map +1 -1
  59. package/dist/cjs/functions/hour.js +15 -0
  60. package/dist/cjs/functions/hour.js.map +1 -1
  61. package/dist/cjs/functions/if.js +14 -2
  62. package/dist/cjs/functions/if.js.map +1 -1
  63. package/dist/cjs/functions/ifs.js +14 -2
  64. package/dist/cjs/functions/ifs.js.map +1 -1
  65. package/dist/cjs/functions/include.js +6 -0
  66. package/dist/cjs/functions/include.js.map +1 -1
  67. package/dist/cjs/functions/index.d.ts +2 -0
  68. package/dist/cjs/functions/index.js +20 -1
  69. package/dist/cjs/functions/index.js.map +1 -1
  70. package/dist/cjs/functions/isNull.js +12 -2
  71. package/dist/cjs/functions/isNull.js.map +1 -1
  72. package/dist/cjs/functions/left.js +13 -0
  73. package/dist/cjs/functions/left.js.map +1 -1
  74. package/dist/cjs/functions/length.js +9 -0
  75. package/dist/cjs/functions/length.js.map +1 -1
  76. package/dist/cjs/functions/log.js +10 -1
  77. package/dist/cjs/functions/log.js.map +1 -1
  78. package/dist/cjs/functions/lower.js +6 -0
  79. package/dist/cjs/functions/lower.js.map +1 -1
  80. package/dist/cjs/functions/max.js +6 -0
  81. package/dist/cjs/functions/max.js.map +1 -1
  82. package/dist/cjs/functions/mid.js +20 -0
  83. package/dist/cjs/functions/mid.js.map +1 -1
  84. package/dist/cjs/functions/millisecond.js +10 -0
  85. package/dist/cjs/functions/millisecond.js.map +1 -1
  86. package/dist/cjs/functions/min.js +7 -0
  87. package/dist/cjs/functions/min.js.map +1 -1
  88. package/dist/cjs/functions/minute.js +6 -0
  89. package/dist/cjs/functions/minute.js.map +1 -1
  90. package/dist/cjs/functions/month.js +6 -0
  91. package/dist/cjs/functions/month.js.map +1 -1
  92. package/dist/cjs/functions/now.d.ts +5 -0
  93. package/dist/cjs/functions/now.js +44 -0
  94. package/dist/cjs/functions/now.js.map +1 -0
  95. package/dist/cjs/functions/odd.js +6 -0
  96. package/dist/cjs/functions/odd.js.map +1 -1
  97. package/dist/cjs/functions/or.js +6 -0
  98. package/dist/cjs/functions/or.js.map +1 -1
  99. package/dist/cjs/functions/power.js +6 -0
  100. package/dist/cjs/functions/power.js.map +1 -1
  101. package/dist/cjs/functions/proper.js +18 -0
  102. package/dist/cjs/functions/proper.js.map +1 -1
  103. package/dist/cjs/functions/random.js +6 -0
  104. package/dist/cjs/functions/random.js.map +1 -1
  105. package/dist/cjs/functions/replace.js +6 -0
  106. package/dist/cjs/functions/replace.js.map +1 -1
  107. package/dist/cjs/functions/right.js +12 -0
  108. package/dist/cjs/functions/right.js.map +1 -1
  109. package/dist/cjs/functions/round.js +13 -1
  110. package/dist/cjs/functions/round.js.map +1 -1
  111. package/dist/cjs/functions/rounddown.js +11 -0
  112. package/dist/cjs/functions/rounddown.js.map +1 -1
  113. package/dist/cjs/functions/roundup.js +11 -0
  114. package/dist/cjs/functions/roundup.js.map +1 -1
  115. package/dist/cjs/functions/second.js +6 -0
  116. package/dist/cjs/functions/second.js.map +1 -1
  117. package/dist/cjs/functions/sqrt.js +6 -0
  118. package/dist/cjs/functions/sqrt.js.map +1 -1
  119. package/dist/cjs/functions/text.js +6 -0
  120. package/dist/cjs/functions/text.js.map +1 -1
  121. package/dist/cjs/functions/trim.js +6 -0
  122. package/dist/cjs/functions/trim.js.map +1 -1
  123. package/dist/cjs/functions/upper.js +6 -0
  124. package/dist/cjs/functions/upper.js.map +1 -1
  125. package/dist/cjs/functions/year.js +6 -0
  126. package/dist/cjs/functions/year.js.map +1 -1
  127. package/dist/cjs/index.d.ts +2 -2
  128. package/dist/cjs/index.js +4 -1
  129. package/dist/cjs/index.js.map +1 -1
  130. package/dist/cjs/parser/formula-parser.js +19 -5
  131. package/dist/cjs/parser/formula-parser.js.map +1 -1
  132. package/dist/cjs/parser/json-parser.js +51 -1
  133. package/dist/cjs/parser/json-parser.js.map +1 -1
  134. package/dist/cjs/parser/syntax-errors.js +1 -0
  135. package/dist/cjs/parser/syntax-errors.js.map +1 -1
  136. package/dist/cjs/transpiler/columnTranspilation.js +11 -0
  137. package/dist/cjs/transpiler/columnTranspilation.js.map +1 -1
  138. package/dist/cjs/transpiler/formulaErrorList.js.map +1 -1
  139. package/dist/cjs/transpiler/index.d.ts +1 -0
  140. package/dist/cjs/transpiler/index.js +17 -3
  141. package/dist/cjs/transpiler/index.js.map +1 -1
  142. package/dist/cjs/transpiler/validateFuncStructure.d.ts +4 -2
  143. package/dist/cjs/transpiler/validateFuncStructure.js +2 -1
  144. package/dist/cjs/transpiler/validateFuncStructure.js.map +1 -1
  145. package/dist/cjs/utils/addDecimalPointIfNeeded.js +1 -0
  146. package/dist/cjs/utils/addDecimalPointIfNeeded.js.map +1 -1
  147. package/dist/cjs/utils/aggregatedFunctions.d.ts +3 -0
  148. package/dist/cjs/utils/aggregatedFunctions.js +51 -0
  149. package/dist/cjs/utils/aggregatedFunctions.js.map +1 -0
  150. package/dist/cjs/utils/customFunctions.js +3 -0
  151. package/dist/cjs/utils/customFunctions.js.map +1 -1
  152. package/dist/cjs/utils/elasticsearch/index.js +2 -0
  153. package/dist/cjs/utils/elasticsearch/index.js.map +1 -1
  154. package/dist/cjs/utils/elasticsearch/scripts.d.ts +1 -0
  155. package/dist/cjs/utils/elasticsearch/scripts.js +8 -1
  156. package/dist/cjs/utils/elasticsearch/scripts.js.map +1 -1
  157. package/dist/cjs/utils/index.d.ts +3 -0
  158. package/dist/cjs/utils/index.js +7 -1
  159. package/dist/cjs/utils/index.js.map +1 -1
  160. package/dist/cjs/utils/isAColumn.d.ts +4 -1
  161. package/dist/cjs/utils/isAColumn.js +37 -1
  162. package/dist/cjs/utils/isAColumn.js.map +1 -1
  163. package/dist/cjs/utils/isAggregate.d.ts +4 -0
  164. package/dist/cjs/utils/isAggregate.js +21 -0
  165. package/dist/cjs/utils/isAggregate.js.map +1 -0
  166. package/dist/cjs/utils/mssql/index.d.ts +1 -0
  167. package/dist/cjs/utils/mssql/index.js +6 -0
  168. package/dist/cjs/utils/mssql/index.js.map +1 -0
  169. package/dist/cjs/utils/mssql/scripts.d.ts +2 -0
  170. package/dist/cjs/utils/mssql/scripts.js +20 -0
  171. package/dist/cjs/utils/mssql/scripts.js.map +1 -0
  172. package/dist/cjs/utils/sql/index.d.ts +1 -0
  173. package/dist/cjs/utils/sql/index.js +11 -1
  174. package/dist/cjs/utils/sql/index.js.map +1 -1
  175. package/dist/cjs/utils/sql/scripts.d.ts +1 -0
  176. package/dist/cjs/utils/sql/scripts.js +47 -2
  177. package/dist/cjs/utils/sql/scripts.js.map +1 -1
  178. package/dist/module/constants/index.d.ts +10 -2
  179. package/dist/module/constants/index.js +14 -0
  180. package/dist/module/constants/index.js.map +1 -1
  181. package/dist/module/constants/interfaces.d.ts +20 -2
  182. package/dist/module/errors/analyzer/index.js +2 -0
  183. package/dist/module/errors/analyzer/index.js.map +1 -1
  184. package/dist/module/errors/analyzer/mssql.d.ts +8 -0
  185. package/dist/module/errors/analyzer/mssql.js +22 -0
  186. package/dist/module/errors/analyzer/mssql.js.map +1 -0
  187. package/dist/module/errors/definitions.d.ts +12 -0
  188. package/dist/module/errors/definitions.js +18 -0
  189. package/dist/module/errors/definitions.js.map +1 -1
  190. package/dist/module/errors/dictionary.d.ts +4 -1
  191. package/dist/module/errors/dictionary.js +15 -0
  192. package/dist/module/errors/dictionary.js.map +1 -1
  193. package/dist/module/errors/mismatch.js +2 -2
  194. package/dist/module/errors/mismatch.js.map +1 -1
  195. package/dist/module/functions/abs.js +7 -1
  196. package/dist/module/functions/abs.js.map +1 -1
  197. package/dist/module/functions/aggAvg.d.ts +5 -0
  198. package/dist/module/functions/aggAvg.js +50 -0
  199. package/dist/module/functions/aggAvg.js.map +1 -0
  200. package/dist/module/functions/aggCount.d.ts +5 -0
  201. package/dist/module/functions/aggCount.js +50 -0
  202. package/dist/module/functions/aggCount.js.map +1 -0
  203. package/dist/module/functions/aggDistcount.d.ts +5 -0
  204. package/dist/module/functions/aggDistcount.js +50 -0
  205. package/dist/module/functions/aggDistcount.js.map +1 -0
  206. package/dist/module/functions/aggMax.d.ts +5 -0
  207. package/dist/module/functions/aggMax.js +50 -0
  208. package/dist/module/functions/aggMax.js.map +1 -0
  209. package/dist/module/functions/aggMed.d.ts +5 -0
  210. package/dist/module/functions/aggMed.js +50 -0
  211. package/dist/module/functions/aggMed.js.map +1 -0
  212. package/dist/module/functions/aggMin.d.ts +5 -0
  213. package/dist/module/functions/aggMin.js +50 -0
  214. package/dist/module/functions/aggMin.js.map +1 -0
  215. package/dist/module/functions/aggSum.d.ts +5 -0
  216. package/dist/module/functions/aggSum.js +50 -0
  217. package/dist/module/functions/aggSum.js.map +1 -0
  218. package/dist/module/functions/and.js +7 -1
  219. package/dist/module/functions/and.js.map +1 -1
  220. package/dist/module/functions/concatenate.js +7 -1
  221. package/dist/module/functions/concatenate.js.map +1 -1
  222. package/dist/module/functions/dateadd.js +25 -1
  223. package/dist/module/functions/dateadd.js.map +1 -1
  224. package/dist/module/functions/datedif.js +13 -3
  225. package/dist/module/functions/datedif.js.map +1 -1
  226. package/dist/module/functions/datesubtract.js +25 -1
  227. package/dist/module/functions/datesubtract.js.map +1 -1
  228. package/dist/module/functions/day.js +7 -1
  229. package/dist/module/functions/day.js.map +1 -1
  230. package/dist/module/functions/dayofweek.js +16 -1
  231. package/dist/module/functions/dayofweek.js.map +1 -1
  232. package/dist/module/functions/even.js +7 -1
  233. package/dist/module/functions/even.js.map +1 -1
  234. package/dist/module/functions/exp.js +7 -1
  235. package/dist/module/functions/exp.js.map +1 -1
  236. package/dist/module/functions/hour.js +16 -1
  237. package/dist/module/functions/hour.js.map +1 -1
  238. package/dist/module/functions/if.js +15 -3
  239. package/dist/module/functions/if.js.map +1 -1
  240. package/dist/module/functions/ifs.js +15 -3
  241. package/dist/module/functions/ifs.js.map +1 -1
  242. package/dist/module/functions/include.js +7 -1
  243. package/dist/module/functions/include.js.map +1 -1
  244. package/dist/module/functions/index.d.ts +2 -0
  245. package/dist/module/functions/index.js +19 -0
  246. package/dist/module/functions/index.js.map +1 -1
  247. package/dist/module/functions/isNull.js +13 -3
  248. package/dist/module/functions/isNull.js.map +1 -1
  249. package/dist/module/functions/left.js +14 -1
  250. package/dist/module/functions/left.js.map +1 -1
  251. package/dist/module/functions/length.js +10 -1
  252. package/dist/module/functions/length.js.map +1 -1
  253. package/dist/module/functions/log.js +11 -2
  254. package/dist/module/functions/log.js.map +1 -1
  255. package/dist/module/functions/lower.js +7 -1
  256. package/dist/module/functions/lower.js.map +1 -1
  257. package/dist/module/functions/max.js +7 -1
  258. package/dist/module/functions/max.js.map +1 -1
  259. package/dist/module/functions/mid.js +21 -1
  260. package/dist/module/functions/mid.js.map +1 -1
  261. package/dist/module/functions/millisecond.js +11 -1
  262. package/dist/module/functions/millisecond.js.map +1 -1
  263. package/dist/module/functions/min.js +8 -1
  264. package/dist/module/functions/min.js.map +1 -1
  265. package/dist/module/functions/minute.js +7 -1
  266. package/dist/module/functions/minute.js.map +1 -1
  267. package/dist/module/functions/month.js +7 -1
  268. package/dist/module/functions/month.js.map +1 -1
  269. package/dist/module/functions/now.d.ts +5 -0
  270. package/dist/module/functions/now.js +41 -0
  271. package/dist/module/functions/now.js.map +1 -0
  272. package/dist/module/functions/odd.js +7 -1
  273. package/dist/module/functions/odd.js.map +1 -1
  274. package/dist/module/functions/or.js +7 -1
  275. package/dist/module/functions/or.js.map +1 -1
  276. package/dist/module/functions/power.js +7 -1
  277. package/dist/module/functions/power.js.map +1 -1
  278. package/dist/module/functions/proper.js +19 -1
  279. package/dist/module/functions/proper.js.map +1 -1
  280. package/dist/module/functions/random.js +7 -1
  281. package/dist/module/functions/random.js.map +1 -1
  282. package/dist/module/functions/replace.js +7 -1
  283. package/dist/module/functions/replace.js.map +1 -1
  284. package/dist/module/functions/right.js +13 -1
  285. package/dist/module/functions/right.js.map +1 -1
  286. package/dist/module/functions/round.js +14 -2
  287. package/dist/module/functions/round.js.map +1 -1
  288. package/dist/module/functions/rounddown.js +12 -1
  289. package/dist/module/functions/rounddown.js.map +1 -1
  290. package/dist/module/functions/roundup.js +12 -1
  291. package/dist/module/functions/roundup.js.map +1 -1
  292. package/dist/module/functions/second.js +7 -1
  293. package/dist/module/functions/second.js.map +1 -1
  294. package/dist/module/functions/sqrt.js +7 -1
  295. package/dist/module/functions/sqrt.js.map +1 -1
  296. package/dist/module/functions/text.js +7 -1
  297. package/dist/module/functions/text.js.map +1 -1
  298. package/dist/module/functions/trim.js +7 -1
  299. package/dist/module/functions/trim.js.map +1 -1
  300. package/dist/module/functions/upper.js +7 -1
  301. package/dist/module/functions/upper.js.map +1 -1
  302. package/dist/module/functions/year.js +7 -1
  303. package/dist/module/functions/year.js.map +1 -1
  304. package/dist/module/index.d.ts +2 -2
  305. package/dist/module/index.js +2 -2
  306. package/dist/module/index.js.map +1 -1
  307. package/dist/module/parser/formula-parser.js +20 -6
  308. package/dist/module/parser/formula-parser.js.map +1 -1
  309. package/dist/module/parser/json-parser.js +53 -3
  310. package/dist/module/parser/json-parser.js.map +1 -1
  311. package/dist/module/parser/syntax-errors.js +1 -0
  312. package/dist/module/parser/syntax-errors.js.map +1 -1
  313. package/dist/module/transpiler/columnTranspilation.js +11 -0
  314. package/dist/module/transpiler/columnTranspilation.js.map +1 -1
  315. package/dist/module/transpiler/formulaErrorList.js.map +1 -1
  316. package/dist/module/transpiler/index.d.ts +1 -0
  317. package/dist/module/transpiler/index.js +19 -5
  318. package/dist/module/transpiler/index.js.map +1 -1
  319. package/dist/module/transpiler/validateFuncStructure.d.ts +4 -2
  320. package/dist/module/transpiler/validateFuncStructure.js +2 -1
  321. package/dist/module/transpiler/validateFuncStructure.js.map +1 -1
  322. package/dist/module/utils/addDecimalPointIfNeeded.js +1 -0
  323. package/dist/module/utils/addDecimalPointIfNeeded.js.map +1 -1
  324. package/dist/module/utils/aggregatedFunctions.d.ts +3 -0
  325. package/dist/module/utils/aggregatedFunctions.js +47 -0
  326. package/dist/module/utils/aggregatedFunctions.js.map +1 -0
  327. package/dist/module/utils/customFunctions.js +3 -0
  328. package/dist/module/utils/customFunctions.js.map +1 -1
  329. package/dist/module/utils/elasticsearch/index.js +3 -1
  330. package/dist/module/utils/elasticsearch/index.js.map +1 -1
  331. package/dist/module/utils/elasticsearch/scripts.d.ts +1 -0
  332. package/dist/module/utils/elasticsearch/scripts.js +7 -0
  333. package/dist/module/utils/elasticsearch/scripts.js.map +1 -1
  334. package/dist/module/utils/index.d.ts +3 -0
  335. package/dist/module/utils/index.js +3 -0
  336. package/dist/module/utils/index.js.map +1 -1
  337. package/dist/module/utils/isAColumn.d.ts +4 -1
  338. package/dist/module/utils/isAColumn.js +35 -1
  339. package/dist/module/utils/isAColumn.js.map +1 -1
  340. package/dist/module/utils/isAggregate.d.ts +4 -0
  341. package/dist/module/utils/isAggregate.js +15 -0
  342. package/dist/module/utils/isAggregate.js.map +1 -0
  343. package/dist/module/utils/mssql/index.d.ts +1 -0
  344. package/dist/module/utils/mssql/index.js +2 -0
  345. package/dist/module/utils/mssql/index.js.map +1 -0
  346. package/dist/module/utils/mssql/scripts.d.ts +2 -0
  347. package/dist/module/utils/mssql/scripts.js +15 -0
  348. package/dist/module/utils/mssql/scripts.js.map +1 -0
  349. package/dist/module/utils/sql/index.d.ts +1 -0
  350. package/dist/module/utils/sql/index.js +9 -0
  351. package/dist/module/utils/sql/index.js.map +1 -1
  352. package/dist/module/utils/sql/scripts.d.ts +1 -0
  353. package/dist/module/utils/sql/scripts.js +45 -1
  354. package/dist/module/utils/sql/scripts.js.map +1 -1
  355. package/package.json +5 -3
@@ -1,5 +1,6 @@
1
- import { AST_PRIMITIVES } from '../constants';
1
+ import { AST_PRIMITIVES, OPERATION_SCOPE, EXPECTED_AGGREGATE_RESULT, } from '../constants';
2
2
  import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
3
+ import { isAggregateScope } from '../utils/isAggregate';
3
4
  import { isBooleanExpression } from '../utils/isBooleanExpression';
4
5
  import { inferPrimitive, isSinglePrimitive } from '../utils/primitiveFunctions';
5
6
  /**
@@ -7,6 +8,8 @@ import { inferPrimitive, isSinglePrimitive } from '../utils/primitiveFunctions';
7
8
  */
8
9
  export const IF = {
9
10
  identifier: 'IF',
11
+ operationScope: OPERATION_SCOPE.RAW,
12
+ functionScope: [OPERATION_SCOPE.RAW, OPERATION_SCOPE.AGGREGATE],
10
13
  parameters: [
11
14
  {
12
15
  identifier: 'LOGICAL_EXPRESSION',
@@ -33,6 +36,7 @@ export const IF = {
33
36
  redshift,
34
37
  postgresql,
35
38
  databricks,
39
+ mssql,
36
40
  },
37
41
  primitiveResult(args) {
38
42
  var _a, _b, _c, _d;
@@ -54,10 +58,15 @@ function samePrimitiveType(_param, _dataType, context) {
54
58
  ? sPrimitive
55
59
  : AST_PRIMITIVES.UNKNOWN;
56
60
  const ifPrimitive = calculateIfPrimitive(firstPrimitive, secondPrimitive);
57
- const valid = firstPrimitive === secondPrimitive;
61
+ const isAggregate = isAggregateScope(context.globalContext);
62
+ const valid = isAggregate
63
+ ? EXPECTED_AGGREGATE_RESULT.includes(firstPrimitive)
64
+ : firstPrimitive === secondPrimitive;
58
65
  if (!valid)
59
66
  return Object.assign(Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.inferredPrimitive]), { mismatchData: {
60
- primitive: ifPrimitive,
67
+ primitive: isAggregate
68
+ ? EXPECTED_AGGREGATE_RESULT[0]
69
+ : ifPrimitive,
61
70
  } });
62
71
  return { valid };
63
72
  }
@@ -88,4 +97,7 @@ function postgresql(logicalExpression, valueIfTrue, valueIfFalse) {
88
97
  function databricks(logicalExpression, valueIfTrue, valueIfFalse) {
89
98
  return sql(logicalExpression, valueIfTrue, valueIfFalse);
90
99
  }
100
+ function mssql(logicalExpression, valueIfTrue, valueIfFalse) {
101
+ return sql(logicalExpression, valueIfTrue, valueIfFalse);
102
+ }
91
103
  //# sourceMappingURL=if.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"if.js","sourceRoot":"","sources":["../../../src/functions/if.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAOzD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChF;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAuB;IAClC,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,oBAAoB;YAChC,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,OAAO;YACzC,SAAS,EAAE,CAAC,mBAAmB,CAAC;SACnC;QACD;YACI,UAAU,EAAE,eAAe;YAC3B,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,CAAC,iBAAiB,CAAC;SACjC;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,CAAC,iBAAiB,CAAC;SACjC;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;KACb;IACD,eAAe,CAAC,IAAiB;;QAC7B,MAAM,aAAa,GAAG,MAAA,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,SAAS,mCAAI,cAAc,CAAC,OAAO,CAAC;QACnE,MAAM,cAAc,GAAG,MAAA,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,SAAS,mCAAI,IAAI,CAAC;QAClD,IAAI,CAAC,cAAc;YAAE,OAAO,aAAa,CAAC;QAC1C,OAAO,cAAc,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACzD,CAAC;CACJ,CAAC;AAEF,SAAS,iBAAiB,CACtB,MAAW,EACX,SAAgC,EAChC,OAAkC;;IAElC,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,0CAAE,SAAS,CAAC;IAC1D,MAAM,cAAc,GAChB,UAAU,IAAI,iBAAiB,CAAC,UAAU,CAAC;QACvC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC;IACjC,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,0CAAE,SAAS,CAAC;IAC1D,MAAM,eAAe,GACjB,UAAU,IAAI,iBAAiB,CAAC,UAAU,CAAC;QACvC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC;IAEjC,MAAM,WAAW,GAAG,oBAAoB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IAE1E,MAAM,KAAK,GAAG,cAAc,KAAK,eAAe,CAAC;IACjD,IAAI,CAAC,KAAK;QACN,qCACI,KAAK,IACF,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC,KACjD,YAAY,EAAE;gBACV,SAAS,EAAE,WAAW;aACzB,IACH;IACN,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,oBAAoB,CACzB,cAA8B,EAC9B,eAA+B;IAE/B,IAAI,cAAc,KAAK,cAAc,CAAC,OAAO;QAAE,OAAO,cAAc,CAAC;IACrE,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,SAAS,aAAa,CAClB,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,IAAI,iBAAiB,MAAM,WAAW,MAAM,YAAY,GAAG,CAAC;AACvE,CAAC;AAED,SAAS,SAAS,CACd,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,OAAO,iBAAiB,KAAK,WAAW,KAAK,YAAY,GAAG,CAAC;AACxE,CAAC;AAED,SAAS,GAAG,CACR,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO;;WAEA,iBAAiB,SAAS,WAAW;WACrC,YAAY;KAClB,CAAC,IAAI,EAAE,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CACb,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CACf,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CACf,iBAAyB,EACzB,WAAmB,EACnB,YAAqB;IAErB,OAAO,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"if.js","sourceRoot":"","sources":["../../../src/functions/if.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { AST_PRIMITIVES } from '../constants';
1
+ import { AST_PRIMITIVES, OPERATION_SCOPE, EXPECTED_AGGREGATE_RESULT, } from '../constants';
2
2
  import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
3
+ import { isAggregateScope } from '../utils/isAggregate';
3
4
  import { isBooleanExpression } from '../utils/isBooleanExpression';
4
5
  import { inferPrimitive, isSinglePrimitive } from '../utils/primitiveFunctions';
5
6
  /**
@@ -9,6 +10,8 @@ import { inferPrimitive, isSinglePrimitive } from '../utils/primitiveFunctions';
9
10
  */
10
11
  export const IFS = {
11
12
  identifier: 'IFS',
13
+ operationScope: OPERATION_SCOPE.RAW,
14
+ functionScope: [OPERATION_SCOPE.RAW, OPERATION_SCOPE.AGGREGATE],
12
15
  recursiveStartIn: 0,
13
16
  parameters: [
14
17
  {
@@ -30,6 +33,7 @@ export const IFS = {
30
33
  redshift,
31
34
  postgresql,
32
35
  databricks,
36
+ mssql,
33
37
  },
34
38
  primitiveResult(args) {
35
39
  return calculateIfsPrimitive(args);
@@ -39,10 +43,15 @@ function sameRecursivePrimitiveType(_param, _dataType, context) {
39
43
  const args = context.fnNode.arguments;
40
44
  const firstArgsPrimitive = calculateFirstIFSPrimitive(args);
41
45
  const ifsPrimitive = calculateIfsPrimitive(args);
42
- const valid = isSinglePrimitive(ifsPrimitive);
46
+ const isAggregate = isAggregateScope(context.globalContext);
47
+ const valid = isAggregate
48
+ ? EXPECTED_AGGREGATE_RESULT.includes(firstArgsPrimitive)
49
+ : isSinglePrimitive(ifsPrimitive);
43
50
  if (!valid)
44
51
  return Object.assign(Object.assign({ valid }, ERROR_DICTIONARY[ERROR_LIST.inferredPrimitive]), { mismatchData: {
45
- primitive: firstArgsPrimitive,
52
+ primitive: isAggregate
53
+ ? EXPECTED_AGGREGATE_RESULT[0]
54
+ : firstArgsPrimitive,
46
55
  } });
47
56
  return {
48
57
  valid,
@@ -116,4 +125,7 @@ function postgresql(...args) {
116
125
  function databricks(...args) {
117
126
  return sql(...args);
118
127
  }
128
+ function mssql(...args) {
129
+ return sql(...args);
130
+ }
119
131
  //# sourceMappingURL=ifs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ifs.js","sourceRoot":"","sources":["../../../src/functions/ifs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ifs.js","sourceRoot":"","sources":["../../../src/functions/ifs.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
- import { AST_PRIMITIVES } from '../constants';
1
+ import { AST_PRIMITIVES, OPERATION_SCOPE } from '../constants';
2
2
  import { isStringParam } from '../utils';
3
3
  /**
4
4
  * `INCLUDE` Returns true if a string contains a specified sequence of characters.
5
5
  */
6
6
  export const INCLUDE = {
7
7
  identifier: 'INCLUDE',
8
+ operationScope: OPERATION_SCOPE.RAW,
9
+ functionScope: [OPERATION_SCOPE.RAW],
8
10
  parameters: [
9
11
  {
10
12
  identifier: 'STRING',
@@ -25,6 +27,7 @@ export const INCLUDE = {
25
27
  redshift,
26
28
  postgresql,
27
29
  databricks,
30
+ mssql,
28
31
  },
29
32
  primitiveResult: AST_PRIMITIVES.BOOLEAN,
30
33
  };
@@ -46,4 +49,7 @@ function postgresql(str, targetSearch) {
46
49
  function databricks(str, targetSearch) {
47
50
  return SQL(str, targetSearch);
48
51
  }
52
+ function mssql(str, targetSearch) {
53
+ return `(${str} LIKE ('%' + ${targetSearch} + '%'))`;
54
+ }
49
55
  //# sourceMappingURL=include.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"include.js","sourceRoot":"","sources":["../../../src/functions/include.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAuB;IACvC,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,eAAe;YAC3B,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,OAAO;CAC1C,CAAC;AAEF,SAAS,aAAa,CAAC,GAAW,EAAE,YAAoB;IACpD,OAAO,WAAW,GAAG,KAAK,YAAY,GAAG,CAAC;AAC9C,CAAC;AAED,SAAS,GAAG,CAAC,GAAW,EAAE,YAAoB;IAC1C,OAAO,IAAI,GAAG,iBAAiB,YAAY,WAAW,CAAC;AAC3D,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,YAAoB;IAChD,OAAO,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,YAAoB;IAC/C,OAAO,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,YAAoB;IACjD,OAAO,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,YAAoB;IACjD,OAAO,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"include.js","sourceRoot":"","sources":["../../../src/functions/include.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAuB;IACvC,UAAU,EAAE,SAAS;IACrB,cAAc,EAAE,eAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,eAAe;YAC3B,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,cAAc,CAAC,OAAO;CAC1C,CAAC;AAEF,SAAS,aAAa,CAAC,GAAW,EAAE,YAAoB;IACpD,OAAO,WAAW,GAAG,KAAK,YAAY,GAAG,CAAC;AAC9C,CAAC;AAED,SAAS,GAAG,CAAC,GAAW,EAAE,YAAoB;IAC1C,OAAO,IAAI,GAAG,iBAAiB,YAAY,WAAW,CAAC;AAC3D,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,YAAoB;IAChD,OAAO,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,YAAoB;IAC/C,OAAO,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,YAAoB;IACjD,OAAO,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,YAAoB;IACjD,OAAO,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,KAAK,CAAC,GAAW,EAAE,YAAoB;IAC5C,OAAO,IAAI,GAAG,gBAAgB,YAAY,UAAU,CAAC;AACzD,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import { FunctionDefinition, FunctionList } from '../constants/interfaces';
2
2
  export declare const functionList: FunctionList;
3
3
  export declare const FUNCTION_LIST: string[];
4
+ export declare const ROW_FUNCTION_LIST: string[];
5
+ export declare const AGGREGATE_FUNCTION_LIST: string[];
4
6
  export declare function getFunctionDetail(functionName: string): FunctionDefinition | undefined;
@@ -1,3 +1,4 @@
1
+ import { OPERATION_SCOPE } from '../constants';
1
2
  import { MID } from './mid';
2
3
  import { ABS } from './abs';
3
4
  import { DATEDIF } from './datedif';
@@ -39,6 +40,14 @@ import { ROUNDDOWN } from './rounddown';
39
40
  import { ROUNDUP } from './roundup';
40
41
  import { MILLISECOND } from './millisecond';
41
42
  import { TEXT } from './text';
43
+ import { SUM } from './aggSum';
44
+ import { MINVAL } from './aggMin';
45
+ import { MAXVAL } from './aggMax';
46
+ import { AVG } from './aggAvg';
47
+ import { MED } from './aggMed';
48
+ import { COUNT } from './aggCount';
49
+ import { DISTCOUNT } from './aggDistcount';
50
+ import { NOW } from './now';
42
51
  export const functionList = {
43
52
  MID,
44
53
  ABS,
@@ -81,8 +90,18 @@ export const functionList = {
81
90
  ROUNDUP,
82
91
  MILLISECOND,
83
92
  TEXT,
93
+ SUM,
94
+ MINVAL,
95
+ MAXVAL,
96
+ AVG,
97
+ MED,
98
+ COUNT,
99
+ DISTCOUNT,
100
+ NOW,
84
101
  };
85
102
  export const FUNCTION_LIST = Object.keys(functionList);
103
+ export const ROW_FUNCTION_LIST = Object.keys(functionList).filter((key) => functionList[key].functionScope.includes(OPERATION_SCOPE.RAW));
104
+ export const AGGREGATE_FUNCTION_LIST = Object.keys(functionList).filter((key) => functionList[key].functionScope.includes(OPERATION_SCOPE.AGGREGATE));
86
105
  export function getFunctionDetail(functionName) {
87
106
  return functionList[functionName];
88
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,16 @@
1
- import { AST_PRIMITIVES, AST_TYPES } from '../constants';
1
+ import { AST_PRIMITIVES, AST_TYPES, OPERATION_SCOPE, } from '../constants';
2
2
  import { ERROR_DICTIONARY, ERROR_LIST } from '../errors/dictionary';
3
3
  import { isAColumn } from '../utils/isAColumn';
4
4
  import { isALiteral } from '../utils/isALiteral';
5
+ import { isAggregateScope, isAggregateFunction } from '../utils/isAggregate';
5
6
  import { inferPrimitive, isSinglePrimitive } from '../utils/primitiveFunctions';
6
7
  /**
7
8
  * `ISNULL` Returns the replacement if the value is a null
8
9
  */
9
10
  export const ISNULL = {
10
11
  identifier: 'ISNULL',
12
+ operationScope: OPERATION_SCOPE.RAW,
13
+ functionScope: [OPERATION_SCOPE.RAW, OPERATION_SCOPE.AGGREGATE],
11
14
  parameters: [
12
15
  {
13
16
  identifier: 'VALUE',
@@ -27,18 +30,22 @@ export const ISNULL = {
27
30
  redshift,
28
31
  postgresql,
29
32
  databricks,
33
+ mssql,
30
34
  },
31
35
  primitiveResult(args) {
32
36
  return inferPrimitive(...args.map((arg) => arg.primitive));
33
37
  },
34
38
  };
35
39
  function samePrimitiveTypeCol(param, dataType, context) {
40
+ const isAggregate = isAggregateScope(context.globalContext);
41
+ const isAggFunction = isAggregate && isAggregateFunction(context.argument.node);
36
42
  const isColumn = isAColumn(context);
37
43
  const baseResult = samePrimitiveType(param, dataType, context);
38
- const valid = isColumn && baseResult.valid;
44
+ const isFunctionOrColumn = isAggregate ? isAggFunction : isColumn;
45
+ const valid = isFunctionOrColumn && baseResult.valid;
39
46
  const primitive = baseResult.mismatchData.primitive;
40
47
  return Object.assign(Object.assign(Object.assign(Object.assign({}, baseResult), { mismatchData: {
41
- type: AST_TYPES.column,
48
+ type: isAggregate ? AST_TYPES.functionCall : AST_TYPES.column,
42
49
  primitive,
43
50
  } }), (!isColumn && Object.assign({}, ERROR_DICTIONARY[ERROR_LIST.missingColumnExpression]))), { valid });
44
51
  }
@@ -97,4 +104,7 @@ function postgresql(value, replacement) {
97
104
  function databricks(value, replacement) {
98
105
  return sql(value, replacement);
99
106
  }
107
+ function mssql(value, replacement) {
108
+ return sql(value, replacement);
109
+ }
100
110
  //# sourceMappingURL=isNull.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isNull.js","sourceRoot":"","sources":["../../../src/functions/isNull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAa,MAAM,cAAc,CAAC;AAQpE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAuB;IACtC,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,CAAC,oBAAoB,CAAC;SACpC;QACD;YACI,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,CAAC,uBAAuB,CAAC;SACvC;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;KACb;IACD,eAAe,CAAC,IAAiB;QAC7B,OAAO,cAAc,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/D,CAAC;CACJ,CAAC;AAEF,SAAS,oBAAoB,CACzB,KAAU,EACV,QAA+B,EAC/B,OAAkC;IAElC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC;IAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC;IACpD,mEACO,UAAU,KACb,YAAY,EAAE;YACV,IAAI,EAAE,SAAS,CAAC,MAAM;YACtB,SAAS;SACZ,KACE,CAAC,CAAC,QAAQ,sBACN,gBAAgB,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAC1D,CAAC,KACF,KAAK,IACP;AACN,CAAC;AAED,SAAS,uBAAuB,CAC5B,KAAU,EACV,QAA+B,EAC/B,OAAkC;IAElC,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC;IACpD,mEACO,UAAU,KACb,YAAY,EAAE;YACV,IAAI,EAAE,SAAS,CAAC,OAAO;YACvB,SAAS;SACZ,KACE,CAAC,CAAC,SAAS,sBACP,gBAAgB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CACrD,CAAC,KACF,KAAK,IACP;AACN,CAAC;AAED,SAAS,iBAAiB,CACtB,MAAW,EACX,SAAgC,EAChC,OAAkC;IAElC,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,wBAAwB,CACxC,cAAc,EACd,eAAe,CAClB,CAAC;IAEF,MAAM,KAAK,GAAG,cAAc,KAAK,eAAe,CAAC;IACjD,MAAM,UAAU,GAAG;QACf,KAAK;QACL,YAAY,EAAE;YACV,SAAS,EAAE,WAAW;SACzB;KACJ,CAAC;IACF,IAAI,CAAC,KAAK;QACN,uCACO,UAAU,GACV,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC,EACnD;IACN,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,iBAAiB,CACtB,OAAkC,EAClC,KAAa;;IAEb,MAAM,aAAa,GAAG,MAAA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,0CAAE,SAAS,CAAC;IACjE,OAAO,iBAAiB,CAAC,aAAa,CAAC;QACnC,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC;AACjC,CAAC;AAED,SAAS,wBAAwB,CAC7B,cAA8B,EAC9B,eAA+B;IAE/B,IAAI,cAAc,IAAI,cAAc,KAAK,cAAc,CAAC,OAAO;QAC3D,OAAO,cAAc,CAAC;IAC1B,OAAO,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,cAAc,CAAC,OAAO,CAAC;AACrD,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,WAAmB;IACrD,OAAO,kBAAkB,KAAK,KAAK,WAAW,GAAG,CAAC;AACtD,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,WAAmB;IAC3C,OAAO,YAAY,KAAK,KAAK,WAAW,GAAG,CAAC;AAChD,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,WAAmB;IACjD,OAAO,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,WAAmB;IAChD,OAAO,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,WAAmB;IAClD,OAAO,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,WAAmB;IAClD,OAAO,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"isNull.js","sourceRoot":"","sources":["../../../src/functions/isNull.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AST_PRIMITIVES, ELASTICSEARCH_SCRIPT_NAMES } from '../constants';
1
+ import { AST_PRIMITIVES, ELASTICSEARCH_SCRIPT_NAMES, OPERATION_SCOPE, } from '../constants';
2
2
  import { isNumberParam, isStringParam } from '../utils';
3
3
  import { greaterThanOrEqualToReference } from '../utils/greaterThanOrEqualToReference';
4
4
  import { isInteger } from '../utils/isInteger';
@@ -7,6 +7,8 @@ import { isInteger } from '../utils/isInteger';
7
7
  */
8
8
  export const LEFT = {
9
9
  identifier: 'LEFT',
10
+ operationScope: OPERATION_SCOPE.RAW,
11
+ functionScope: [OPERATION_SCOPE.RAW],
10
12
  parameters: [
11
13
  {
12
14
  identifier: 'CURRENT',
@@ -31,6 +33,7 @@ export const LEFT = {
31
33
  redshift,
32
34
  postgresql,
33
35
  databricks,
36
+ mssql,
34
37
  },
35
38
  primitiveResult: AST_PRIMITIVES.STRING,
36
39
  };
@@ -60,4 +63,14 @@ function postgresql(current, length) {
60
63
  function databricks(current, length) {
61
64
  return SQL(current, length);
62
65
  }
66
+ function mssql(current, length) {
67
+ const rawLen = length !== null && length !== void 0 ? length : '1';
68
+ const safeLen = `CAST(FLOOR(${rawLen}) AS INT)`;
69
+ return `(case
70
+ when ${rawLen} IS NULL then NULL
71
+ when (${safeLen} < 0) then ''
72
+ else
73
+ LEFT(${current}, ${safeLen})
74
+ end)`;
75
+ }
63
76
  //# sourceMappingURL=left.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"left.js","sourceRoot":"","sources":["../../../src/functions/left.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE;gBACP,aAAa;gBACb,6BAA6B,CAAC,CAAC,CAAC;gBAChC,SAAS;aACZ;SACJ;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe,EAAE,MAAc;IAClD,OAAO,GAAG,0BAA0B,CAAC,SAAS,IAAI,OAAO,QACrD,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CACd,GAAG,CAAC;AACR,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,MAAc;IAC9C,OAAO,QAAQ,OAAO,WAAW,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,aAAa,CAAC;AAC9D,CAAC;AAED,SAAS,GAAG,CAAC,OAAe,EAAE,MAAc;IACxC,MAAM,OAAO,GAAG,SAAS,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,YAAY,CAAC;IACjD,OAAO;;eAEI,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC;UAChB,OAAO;;eAEF,OAAO,KAAK,OAAO;;MAE5B,CAAC,IAAI,EAAE,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,MAAc;IAC7C,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,MAAc;IAC/C,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,MAAc;IAC/C,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"left.js","sourceRoot":"","sources":["../../../src/functions/left.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,0BAA0B,EAC1B,eAAe,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAuB;IACpC,UAAU,EAAE,MAAM;IAClB,cAAc,EAAE,eAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE;gBACP,aAAa;gBACb,6BAA6B,CAAC,CAAC,CAAC;gBAChC,SAAS;aACZ;SACJ;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe,EAAE,MAAc;IAClD,OAAO,GAAG,0BAA0B,CAAC,SAAS,IAAI,OAAO,QACrD,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CACd,GAAG,CAAC;AACR,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,MAAc;IAC9C,OAAO,QAAQ,OAAO,WAAW,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,aAAa,CAAC;AAC9D,CAAC;AAED,SAAS,GAAG,CAAC,OAAe,EAAE,MAAc;IACxC,MAAM,OAAO,GAAG,SAAS,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,YAAY,CAAC;IACjD,OAAO;;eAEI,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC;UAChB,OAAO;;eAEF,OAAO,KAAK,OAAO;;MAE5B,CAAC,IAAI,EAAE,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,MAAc;IAC7C,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,MAAc;IAC/C,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,MAAc;IAC/C,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,KAAK,CAAC,OAAe,EAAE,MAAc;IAC1C,MAAM,MAAM,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,GAAG,CAAC;IAC7B,MAAM,OAAO,GAAG,cAAc,MAAM,WAAW,CAAC;IAEhD,OAAO;WACA,MAAM;YACL,OAAO;;aAEN,OAAO,KAAK,OAAO;OACzB,CAAC;AACR,CAAC"}
@@ -1,10 +1,12 @@
1
- import { AST_PRIMITIVES } from '../constants';
1
+ import { AST_PRIMITIVES, OPERATION_SCOPE } from '../constants';
2
2
  import { isStringParam } from '../utils';
3
3
  /**
4
4
  * `LENGTH` Returns the number characters of a string.
5
5
  */
6
6
  export const LENGTH = {
7
7
  identifier: 'LENGTH',
8
+ operationScope: OPERATION_SCOPE.RAW,
9
+ functionScope: [OPERATION_SCOPE.RAW],
8
10
  parameters: [
9
11
  {
10
12
  identifier: 'STRING',
@@ -19,6 +21,7 @@ export const LENGTH = {
19
21
  redshift,
20
22
  postgresql,
21
23
  databricks,
24
+ mssql,
22
25
  },
23
26
  primitiveResult: AST_PRIMITIVES.NUMBER,
24
27
  };
@@ -43,4 +46,10 @@ function postgresql(current) {
43
46
  function databricks(current) {
44
47
  return SQL(current);
45
48
  }
49
+ function mssql(current) {
50
+ return `(CASE
51
+ WHEN ${current} IS NULL THEN 0
52
+ ELSE LEN(${current} + 'x') - 1
53
+ END)`;
54
+ }
46
55
  //# sourceMappingURL=length.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"length.js","sourceRoot":"","sources":["../../../src/functions/length.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAuB;IACtC,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe;IAClC,OAAO,UAAU,OAAO,GAAG,CAAC;AAChC,CAAC;AAED,SAAS,GAAG,CAAC,OAAe;IACxB,OAAO;gBACK,OAAO;sBACD,OAAO;SACpB,CAAC;AACV,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"length.js","sourceRoot":"","sources":["../../../src/functions/length.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAuB;IACtC,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,eAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe;IAClC,OAAO,UAAU,OAAO,GAAG,CAAC;AAChC,CAAC;AAED,SAAS,GAAG,CAAC,OAAe;IACxB,OAAO;gBACK,OAAO;sBACD,OAAO;SACpB,CAAC;AACV,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,KAAK,CAAC,OAAe;IAC1B,OAAO;eACI,OAAO;mBACH,OAAO;SACjB,CAAC;AACV,CAAC"}
@@ -1,11 +1,14 @@
1
- import { AST_PRIMITIVES } from '../constants';
1
+ import { AST_PRIMITIVES, OPERATION_SCOPE } from '../constants';
2
2
  import { isNumberParam } from '../utils';
3
3
  import { greaterThanReference } from '../utils/greaterThanReference';
4
+ import { fromFloatToNumeric } from '../utils/sql';
4
5
  /**
5
6
  * `LOG` Returns a number rounded to the next greatest even integer.
6
7
  */
7
8
  export const LOG = {
8
9
  identifier: 'LOG',
10
+ operationScope: OPERATION_SCOPE.RAW,
11
+ functionScope: [OPERATION_SCOPE.RAW, OPERATION_SCOPE.AGGREGATE],
9
12
  parameters: [
10
13
  {
11
14
  identifier: 'NUM_1',
@@ -26,6 +29,7 @@ export const LOG = {
26
29
  redshift,
27
30
  postgresql,
28
31
  databricks,
32
+ mssql,
29
33
  },
30
34
  primitiveResult: AST_PRIMITIVES.NUMBER,
31
35
  };
@@ -52,9 +56,14 @@ function redshift(value, base) {
52
56
  END)`.trim();
53
57
  }
54
58
  function postgresql(value, base) {
55
- return SQL(value, base);
59
+ if (typeof base === 'string')
60
+ base = fromFloatToNumeric(base);
61
+ return SQL(fromFloatToNumeric(value), base);
56
62
  }
57
63
  function databricks(value, base) {
58
64
  return SQL(value, base);
59
65
  }
66
+ function mssql(value, base) {
67
+ return SQL(value, base);
68
+ }
60
69
  //# sourceMappingURL=log.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/functions/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;SACtD;QACD;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;SACtD;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa,EAAE,IAAY;IAC9C,OAAO,OAAO,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,KAAK,KAAK,GAAG,CAAC;AAC5C,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,IAAY;IACpC,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC;IAC3B,OAAO;;gBAEK,KAAK,eAAe,KAAK,iBAAiB,KAAK,YAAY,KAAK;mBAC7D,KAAK,KAAK,KAAK;SACzB,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,IAAY;IAC1C,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,IAAY;IACzC,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC;IAC3B,OAAO;;gBAEK,KAAK,eAAe,KAAK,iBAAiB,KAAK,YAAY,KAAK;mBAC7D,KAAK,UAAU,KAAK;SAC9B,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,IAAY;IAC3C,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,IAAY;IAC3C,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/functions/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,cAAc,EAAE,eAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,SAAS,CAAC;IAC/D,UAAU,EAAE;QACR;YACI,UAAU,EAAE,OAAO;YACnB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;SACtD;QACD;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;SACtD;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa,EAAE,IAAY;IAC9C,OAAO,OAAO,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,KAAK,KAAK,GAAG,CAAC;AAC5C,CAAC;AAED,SAAS,GAAG,CAAC,KAAa,EAAE,IAAY;IACpC,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC;IAC3B,OAAO;;gBAEK,KAAK,eAAe,KAAK,iBAAiB,KAAK,YAAY,KAAK;mBAC7D,KAAK,KAAK,KAAK;SACzB,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,IAAY;IAC1C,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,IAAY;IACzC,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC;IAC3B,OAAO;;gBAEK,KAAK,eAAe,KAAK,iBAAiB,KAAK,YAAY,KAAK;mBAC7D,KAAK,UAAU,KAAK;SAC9B,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,IAAY;IAC3C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,IAAY;IAC3C,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,IAAY;IACtC,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC"}
@@ -1,10 +1,12 @@
1
- import { AST_PRIMITIVES } from '../constants';
1
+ import { AST_PRIMITIVES, OPERATION_SCOPE } from '../constants';
2
2
  import { isStringParam } from '../utils';
3
3
  /**
4
4
  * `LOWER` Returns the string give it in lower case.
5
5
  */
6
6
  export const LOWER = {
7
7
  identifier: 'LOWER',
8
+ operationScope: OPERATION_SCOPE.RAW,
9
+ functionScope: [OPERATION_SCOPE.RAW],
8
10
  parameters: [
9
11
  {
10
12
  identifier: 'STRING',
@@ -19,6 +21,7 @@ export const LOWER = {
19
21
  redshift,
20
22
  postgresql,
21
23
  databricks,
24
+ mssql,
22
25
  },
23
26
  primitiveResult: AST_PRIMITIVES.STRING,
24
27
  };
@@ -40,4 +43,7 @@ function postgresql(current) {
40
43
  function databricks(current) {
41
44
  return SQL(current);
42
45
  }
46
+ function mssql(current) {
47
+ return SQL(current);
48
+ }
43
49
  //# sourceMappingURL=lower.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lower.js","sourceRoot":"","sources":["../../../src/functions/lower.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAuB;IACrC,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe;IAClC,OAAO,GAAG,OAAO,gBAAgB,CAAC;AACtC,CAAC;AAED,SAAS,GAAG,CAAC,OAAe;IACxB,OAAO,SAAS,OAAO,GAAG,CAAC;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"lower.js","sourceRoot":"","sources":["../../../src/functions/lower.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAuB;IACrC,UAAU,EAAE,OAAO;IACnB,cAAc,EAAE,eAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe;IAClC,OAAO,GAAG,OAAO,gBAAgB,CAAC;AACtC,CAAC;AAED,SAAS,GAAG,CAAC,OAAe;IACxB,OAAO,SAAS,OAAO,GAAG,CAAC;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,KAAK,CAAC,OAAe;IAC1B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { DATE_AND_NUMBERS_DATA_TYPES } from '../constants';
1
+ import { DATE_AND_NUMBERS_DATA_TYPES, OPERATION_SCOPE } from '../constants';
2
2
  import { getValidDataTypeParam } from '../utils/getValidDataTypeParam';
3
3
  import { isSameAndValidRecursiveDataType } from '../utils/isSameAndValidRecursiveDataType';
4
4
  /**
@@ -6,6 +6,8 @@ import { isSameAndValidRecursiveDataType } from '../utils/isSameAndValidRecursiv
6
6
  */
7
7
  export const MAX = {
8
8
  identifier: 'MAX',
9
+ operationScope: OPERATION_SCOPE.RAW,
10
+ functionScope: [OPERATION_SCOPE.RAW, OPERATION_SCOPE.AGGREGATE],
9
11
  recursiveStartIn: 1,
10
12
  parameters: [
11
13
  {
@@ -29,6 +31,7 @@ export const MAX = {
29
31
  redshift,
30
32
  postgresql,
31
33
  databricks,
34
+ mssql,
32
35
  },
33
36
  primitiveResult(args) {
34
37
  return getValidDataTypeParam(args, DATE_AND_NUMBERS_DATA_TYPES);
@@ -58,4 +61,7 @@ function postgresql(...args) {
58
61
  function databricks(...args) {
59
62
  return sql(...args);
60
63
  }
64
+ function mssql(...args) {
65
+ return sql(...args);
66
+ }
61
67
  //# sourceMappingURL=max.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"max.js","sourceRoot":"","sources":["../../../src/functions/max.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAE3F;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,CAAC;IACnB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE;gBACP,+BAA+B,CAAC,2BAA2B,CAAC;aAC/D;SACJ;QACD;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE;gBACP,+BAA+B,CAAC,2BAA2B,CAAC;aAC/D;SACJ;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;KACb;IACD,eAAe,CAAC,IAAiB;QAC7B,OAAO,qBAAqB,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC;IACpE,CAAC;CACJ,CAAC;AAEF,SAAS,aAAa,CAAC,GAAG,IAAW;IACjC,OAAO,aAAa,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,GAAG,CAAC,GAAG,IAAW;IACvB,OAAO,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED,SAAS,SAAS,CAAC,GAAG,IAAW;IAC7B,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,WAAW,CAAC,IAAW,EAAE,KAAa;IAC3C,OAAO;gBACK,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;eACnD,KAAK;SACX,CAAC;AACV,CAAC;AAED,SAAS,QAAQ,CAAC,GAAG,IAAW;IAC5B,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,UAAU,CAAC,GAAG,IAAW;IAC9B,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,UAAU,CAAC,GAAG,IAAW;IAC9B,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"max.js","sourceRoot":"","sources":["../../../src/functions/max.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAE3F;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,cAAc,EAAE,eAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,SAAS,CAAC;IAC/D,gBAAgB,EAAE,CAAC;IACnB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE;gBACP,+BAA+B,CAAC,2BAA2B,CAAC;aAC/D;SACJ;QACD;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE;gBACP,+BAA+B,CAAC,2BAA2B,CAAC;aAC/D;SACJ;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,CAAC,IAAiB;QAC7B,OAAO,qBAAqB,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC;IACpE,CAAC;CACJ,CAAC;AAEF,SAAS,aAAa,CAAC,GAAG,IAAW;IACjC,OAAO,aAAa,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,GAAG,CAAC,GAAG,IAAW;IACvB,OAAO,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED,SAAS,SAAS,CAAC,GAAG,IAAW;IAC7B,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,WAAW,CAAC,IAAW,EAAE,KAAa;IAC3C,OAAO;gBACK,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;eACnD,KAAK;SACX,CAAC;AACV,CAAC;AAED,SAAS,QAAQ,CAAC,GAAG,IAAW;IAC5B,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,UAAU,CAAC,GAAG,IAAW;IAC9B,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,UAAU,CAAC,GAAG,IAAW;IAC9B,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,KAAK,CAAC,GAAG,IAAW;IACzB,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AST_PRIMITIVES, ELASTICSEARCH_SCRIPT_NAMES } from '../constants';
1
+ import { AST_PRIMITIVES, ELASTICSEARCH_SCRIPT_NAMES, OPERATION_SCOPE, } from '../constants';
2
2
  import { isNumberParam, isStringParam } from '../utils';
3
3
  import { greaterThanOrEqualToReference } from '../utils/greaterThanOrEqualToReference';
4
4
  import { isInteger } from '../utils/isInteger';
@@ -7,6 +7,8 @@ import { isInteger } from '../utils/isInteger';
7
7
  */
8
8
  export const MID = {
9
9
  identifier: 'MID',
10
+ operationScope: OPERATION_SCOPE.RAW,
11
+ functionScope: [OPERATION_SCOPE.RAW],
10
12
  parameters: [
11
13
  {
12
14
  identifier: 'CURRENT',
@@ -37,6 +39,7 @@ export const MID = {
37
39
  redshift,
38
40
  postgresql,
39
41
  databricks,
42
+ mssql,
40
43
  },
41
44
  primitiveResult: AST_PRIMITIVES.STRING,
42
45
  };
@@ -74,4 +77,21 @@ function postgresql(current, start, length) {
74
77
  function databricks(current, start, length) {
75
78
  return `SUBSTRING(${current}, ${sqlRound(start)} , ${sqlRound(length)})`;
76
79
  }
80
+ function mssql(current, start, length) {
81
+ const safeLen = `(CASE WHEN ${current} IS NULL THEN 0 ELSE LEN(${current} + 'x') - 1 END)`;
82
+ return `
83
+ (case
84
+ when ${current} IS NULL OR ${start} IS NULL OR ${length} IS NULL then NULL
85
+ when (${sqlRound(length)} < 0) OR (${sqlRound(start)} * -1) > ${safeLen} then ''
86
+ else
87
+ SUBSTRING(${current},
88
+ (case
89
+ when ${sqlRound(start)} < 0 then (${safeLen} + ${sqlRound(start)} + 1)
90
+ when ${sqlRound(start)} = 0 then 1
91
+ else ${sqlRound(start)}
92
+ end),
93
+ ${sqlRound(length)})
94
+ end
95
+ )`.trim();
96
+ }
77
97
  //# sourceMappingURL=mid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mid.js","sourceRoot":"","sources":["../../../src/functions/mid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAuB;IACnC,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,CAAC;SAC7B;QACD;YACI,UAAU,EAAE,aAAa;YACzB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;SACxC;QACD;YACI,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,MAAM;YACxC,SAAS,EAAE;gBACP,aAAa;gBACb,6BAA6B,CAAC,CAAC,CAAC;gBAChC,SAAS;aACZ;SACJ;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IACjE,OAAO,GAAG,0BAA0B,CAAC,SAAS,IAAI,OAAO,KAAK,KAAK,KAAK,MAAM,GAAG,CAAC;AACtF,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B,OAAO,cAAc,KAAK,mBAAmB,KAAK,2BAA2B,CAAC;AAClF,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC7D,OAAO,aAAa,OAAO,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;AAC7E,CAAC;AAED,SAAS,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IACvD,OAAO;;eAEI,OAAO,eAAe,KAAK,eAAe,MAAM;UACrD,QAAQ,CAAC,MAAM,CAAC,aAAa,QAAQ,CACvC,KAAK,CACR,mBAAmB,OAAO;;oBAEX,OAAO;;uBAEJ,QAAQ,CACX,KAAK,CACR,qBAAqB,OAAO,OAAO,QAAQ,CAAC,KAAK,CAAC;uBAC5C,QAAQ,CAAC,KAAK,CAAC;uBACf,QAAQ,CAAC,KAAK,CAAC;;cAExB,QAAQ,CAAC,MAAM,CAAC;;MAExB,CAAC,IAAI,EAAE,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC5D,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC9D,OAAO,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,KAAa,EAAE,MAAc;IAC9D,OAAO,aAAa,OAAO,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"mid.js","sourceRoot":"","sources":["../../../src/functions/mid.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import { millisecondScript } from '../utils/elasticsearch/scripts';
2
2
  import { isDateParam } from '../utils';
3
- import { AST_PRIMITIVES } from '../constants';
3
+ import { AST_PRIMITIVES, OPERATION_SCOPE } from '../constants';
4
4
  /**
5
5
  * Returns the millisecond of a datetime value. The millisecond is given as an integer ranging from 0 to 999
6
6
  */
7
7
  export const MILLISECOND = {
8
8
  identifier: 'MILLISECOND',
9
+ operationScope: OPERATION_SCOPE.RAW,
10
+ functionScope: [OPERATION_SCOPE.RAW],
9
11
  parameters: [
10
12
  {
11
13
  identifier: 'DATE',
@@ -20,6 +22,7 @@ export const MILLISECOND = {
20
22
  redshift,
21
23
  postgresql,
22
24
  databricks,
25
+ mssql,
23
26
  },
24
27
  primitiveResult: AST_PRIMITIVES.NUMBER,
25
28
  };
@@ -57,4 +60,11 @@ function databricks(value) {
57
60
  */
58
61
  return `CAST(DATE_FORMAT(${value}, 'SSS') AS INT)`;
59
62
  }
63
+ function mssql(value) {
64
+ /*
65
+ In MSSQL, the DATEPART function extracts the milliseconds from the datetime value.
66
+ For example, '2025-01-03 07:37:56.642' will return 642 as the milliseconds.
67
+ */
68
+ return `DATEPART(MILLISECOND, ${value})`;
69
+ }
60
70
  //# sourceMappingURL=millisecond.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"millisecond.js","sourceRoot":"","sources":["../../../src/functions/millisecond.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAuB;IAC3C,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,IAAI;YACtC,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;KACb;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B;;OAEG;IACH,OAAO,4BAA4B,KAAK,cAAc,CAAC;AAC3D,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B;;;;;MAKE;IACF,OAAO,4BAA4B,KAAK,iCAAiC,KAAK,aAAa,CAAC;AAChG,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B;;;;;MAKE;IACF,OAAO,8BAA8B,KAAK,mCAAmC,KAAK,aAAa,CAAC;AACpG,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B;;;MAGE;IACF,OAAO,oBAAoB,KAAK,kBAAkB,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"millisecond.js","sourceRoot":"","sources":["../../../src/functions/millisecond.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAuB;IAC3C,UAAU,EAAE,aAAa;IACzB,cAAc,EAAE,eAAe,CAAC,GAAG;IACnC,aAAa,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;IACpC,UAAU,EAAE;QACR;YACI,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,cAAc,CAAC,IAAI;YACtC,SAAS,EAAE,CAAC,WAAW,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE;QACR,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR;IACD,eAAe,EAAE,cAAc,CAAC,MAAM;CACzC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAa;IAChC,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC5B;;OAEG;IACH,OAAO,4BAA4B,KAAK,cAAc,CAAC;AAC3D,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC3B;;;;;MAKE;IACF,OAAO,4BAA4B,KAAK,iCAAiC,KAAK,aAAa,CAAC;AAChG,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B;;;;;MAKE;IACF,OAAO,8BAA8B,KAAK,mCAAmC,KAAK,aAAa,CAAC;AACpG,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC7B;;;MAGE;IACF,OAAO,oBAAoB,KAAK,kBAAkB,CAAC;AACvD,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IACxB;;;MAGE;IACF,OAAO,yBAAyB,KAAK,GAAG,CAAC;AAC7C,CAAC"}