@devrev/meerkat-core 0.0.96 → 0.0.98

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 (358) hide show
  1. package/README.md +70 -6
  2. package/package.json +2 -2
  3. package/src/ast-builder/ast-builder.js +91 -0
  4. package/src/ast-builder/ast-builder.js.map +1 -0
  5. package/src/ast-deserializer/ast-deserializer.js +17 -0
  6. package/src/ast-deserializer/ast-deserializer.js.map +1 -0
  7. package/src/ast-serializer/ast-serializer.js +8 -0
  8. package/src/ast-serializer/ast-serializer.js.map +1 -0
  9. package/src/ast-validator/dimension-validator.js +49 -0
  10. package/src/ast-validator/dimension-validator.js.map +1 -0
  11. package/src/ast-validator/index.js +12 -0
  12. package/src/ast-validator/index.js.map +1 -0
  13. package/src/ast-validator/measure-validator.js +155 -0
  14. package/src/ast-validator/measure-validator.js.map +1 -0
  15. package/{ast-validator → src/ast-validator}/tests/test-data.js +692 -890
  16. package/src/ast-validator/tests/test-data.js.map +1 -0
  17. package/src/ast-validator/types.js +3 -0
  18. package/src/ast-validator/types.js.map +1 -0
  19. package/src/ast-validator/utils.js +24 -0
  20. package/src/ast-validator/utils.js.map +1 -0
  21. package/src/context-params/context-params-ast.js +42 -0
  22. package/src/context-params/context-params-ast.js.map +1 -0
  23. package/src/cube-filter-transformer/and/and.js +14 -0
  24. package/src/cube-filter-transformer/and/and.js.map +1 -0
  25. package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js +145 -0
  26. package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +1 -0
  27. package/src/cube-filter-transformer/contains/contains.js +62 -0
  28. package/src/cube-filter-transformer/contains/contains.js.map +1 -0
  29. package/src/cube-filter-transformer/equals/equals-array.js +71 -0
  30. package/src/cube-filter-transformer/equals/equals-array.js.map +1 -0
  31. package/src/cube-filter-transformer/equals/equals.js +36 -0
  32. package/src/cube-filter-transformer/equals/equals.js.map +1 -0
  33. package/src/cube-filter-transformer/factory.js +120 -0
  34. package/src/cube-filter-transformer/factory.js.map +1 -0
  35. package/src/cube-filter-transformer/gt/gt.js +28 -0
  36. package/src/cube-filter-transformer/gt/gt.js.map +1 -0
  37. package/src/cube-filter-transformer/gte/gte.js +28 -0
  38. package/src/cube-filter-transformer/gte/gte.js.map +1 -0
  39. package/src/cube-filter-transformer/in/in.js +69 -0
  40. package/src/cube-filter-transformer/in/in.js.map +1 -0
  41. package/src/cube-filter-transformer/in-date-range/in-date-range.js +21 -0
  42. package/src/cube-filter-transformer/in-date-range/in-date-range.js.map +1 -0
  43. package/src/cube-filter-transformer/lt/lt.js +28 -0
  44. package/src/cube-filter-transformer/lt/lt.js.map +1 -0
  45. package/src/cube-filter-transformer/lte/lte.js +28 -0
  46. package/src/cube-filter-transformer/lte/lte.js.map +1 -0
  47. package/src/cube-filter-transformer/not/not.js +14 -0
  48. package/src/cube-filter-transformer/not/not.js.map +1 -0
  49. package/src/cube-filter-transformer/not-In-date-range/not-In-date-range.js +21 -0
  50. package/src/cube-filter-transformer/not-In-date-range/not-In-date-range.js.map +1 -0
  51. package/src/cube-filter-transformer/not-contains/not-contains.js +62 -0
  52. package/src/cube-filter-transformer/not-contains/not-contains.js.map +1 -0
  53. package/src/cube-filter-transformer/not-equals/not-equals-array.js +21 -0
  54. package/src/cube-filter-transformer/not-equals/not-equals-array.js.map +1 -0
  55. package/src/cube-filter-transformer/not-equals/not-equals.js +36 -0
  56. package/src/cube-filter-transformer/not-equals/not-equals.js.map +1 -0
  57. package/src/cube-filter-transformer/not-in/not-in.js +76 -0
  58. package/src/cube-filter-transformer/not-in/not-in.js.map +1 -0
  59. package/src/cube-filter-transformer/not-set/not-set.js +23 -0
  60. package/src/cube-filter-transformer/not-set/not-set.js.map +1 -0
  61. package/src/cube-filter-transformer/or/or.js +14 -0
  62. package/src/cube-filter-transformer/or/or.js.map +1 -0
  63. package/src/cube-filter-transformer/set/set.js +23 -0
  64. package/src/cube-filter-transformer/set/set.js.map +1 -0
  65. package/src/cube-group-by-transformer/cube-group-by-transformer.js +19 -0
  66. package/src/cube-group-by-transformer/cube-group-by-transformer.js.map +1 -0
  67. package/src/cube-limit-offset-transformer/cube-limit-offset-transformer.js +42 -0
  68. package/src/cube-limit-offset-transformer/cube-limit-offset-transformer.js.map +1 -0
  69. package/src/cube-measure-transformer/cube-measure-transformer.js +124 -0
  70. package/src/cube-measure-transformer/cube-measure-transformer.js.map +1 -0
  71. package/src/cube-order-by-transformer/cube-order-by-transformer.js +34 -0
  72. package/src/cube-order-by-transformer/cube-order-by-transformer.js.map +1 -0
  73. package/src/cube-to-duckdb/cube-filter-to-duckdb.js +3 -0
  74. package/src/cube-to-duckdb/cube-filter-to-duckdb.js.map +1 -0
  75. package/src/filter-params/filter-params-ast.js +114 -0
  76. package/src/filter-params/filter-params-ast.js.map +1 -0
  77. package/src/get-filter-params-sql/get-filter-params-sql.js +25 -0
  78. package/src/get-filter-params-sql/get-filter-params-sql.js.map +1 -0
  79. package/src/get-final-base-sql/get-final-base-sql.js +28 -0
  80. package/src/get-final-base-sql/get-final-base-sql.js.map +1 -0
  81. package/{get-wrapped-base-query-with-projections → src/get-wrapped-base-query-with-projections}/get-aliased-columns-from-filters.js +39 -64
  82. package/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js.map +1 -0
  83. package/src/get-wrapped-base-query-with-projections/get-projection-clause.js +83 -0
  84. package/src/get-wrapped-base-query-with-projections/get-projection-clause.js.map +1 -0
  85. package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js +32 -0
  86. package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js.map +1 -0
  87. package/src/get-wrapped-base-query-with-projections/sql-expression-modifiers.js +32 -0
  88. package/src/get-wrapped-base-query-with-projections/sql-expression-modifiers.js.map +1 -0
  89. package/src/index.js +37 -0
  90. package/src/index.js.map +1 -0
  91. package/src/joins/joins.js +162 -0
  92. package/src/joins/joins.js.map +1 -0
  93. package/src/member-formatters/constants.js +6 -0
  94. package/src/member-formatters/constants.js.map +1 -0
  95. package/src/member-formatters/index.js +10 -0
  96. package/src/member-formatters/index.js.map +1 -0
  97. package/src/member-formatters/member-key-to-safe-key.js +9 -0
  98. package/src/member-formatters/member-key-to-safe-key.js.map +1 -0
  99. package/src/member-formatters/split-into-data-source-and-fields.js +10 -0
  100. package/src/member-formatters/split-into-data-source-and-fields.js.map +1 -0
  101. package/src/resolution/resolution.js +112 -0
  102. package/src/resolution/resolution.js.map +1 -0
  103. package/src/resolution/types.js +5 -0
  104. package/src/resolution/types.js.map +1 -0
  105. package/src/types/cube-types/index.js +6 -0
  106. package/src/types/cube-types/index.js.map +1 -0
  107. package/src/types/cube-types/query.js +8 -0
  108. package/src/types/cube-types/query.js.map +1 -0
  109. package/src/types/cube-types/table.js +3 -0
  110. package/src/types/cube-types/table.js.map +1 -0
  111. package/src/types/duckdb-serialization-types/index.js +11 -0
  112. package/src/types/duckdb-serialization-types/index.js.map +1 -0
  113. package/{types → src/types}/duckdb-serialization-types/serialization/Constraint.js +6 -19
  114. package/src/types/duckdb-serialization-types/serialization/Constraint.js.map +1 -0
  115. package/{types → src/types}/duckdb-serialization-types/serialization/CreateInfo.js +10 -29
  116. package/src/types/duckdb-serialization-types/serialization/CreateInfo.js.map +1 -0
  117. package/{types → src/types}/duckdb-serialization-types/serialization/Expression.js +6 -19
  118. package/src/types/duckdb-serialization-types/serialization/Expression.js.map +1 -0
  119. package/src/types/duckdb-serialization-types/serialization/LogicalOperator.js +28 -0
  120. package/src/types/duckdb-serialization-types/serialization/LogicalOperator.js.map +1 -0
  121. package/src/types/duckdb-serialization-types/serialization/MacroFunction.js +10 -0
  122. package/src/types/duckdb-serialization-types/serialization/MacroFunction.js.map +1 -0
  123. package/src/types/duckdb-serialization-types/serialization/Misc.js +3 -0
  124. package/src/types/duckdb-serialization-types/serialization/Misc.js.map +1 -0
  125. package/{types → src/types}/duckdb-serialization-types/serialization/Nodes.js +17 -45
  126. package/src/types/duckdb-serialization-types/serialization/Nodes.js.map +1 -0
  127. package/{types → src/types}/duckdb-serialization-types/serialization/ParseInfo.js +20 -54
  128. package/src/types/duckdb-serialization-types/serialization/ParseInfo.js.map +1 -0
  129. package/{types → src/types}/duckdb-serialization-types/serialization/ParsedExpression.js +6 -19
  130. package/src/types/duckdb-serialization-types/serialization/ParsedExpression.js.map +1 -0
  131. package/{types → src/types}/duckdb-serialization-types/serialization/QueryNode.js +8 -24
  132. package/src/types/duckdb-serialization-types/serialization/QueryNode.js.map +1 -0
  133. package/{types → src/types}/duckdb-serialization-types/serialization/ResultModifier.js +4 -9
  134. package/src/types/duckdb-serialization-types/serialization/ResultModifier.js.map +1 -0
  135. package/src/types/duckdb-serialization-types/serialization/Statement.js +3 -0
  136. package/src/types/duckdb-serialization-types/serialization/Statement.js.map +1 -0
  137. package/{types → src/types}/duckdb-serialization-types/serialization/TableFilter.js +4 -9
  138. package/src/types/duckdb-serialization-types/serialization/TableFilter.js.map +1 -0
  139. package/{types → src/types}/duckdb-serialization-types/serialization/TableRef.js +8 -24
  140. package/src/types/duckdb-serialization-types/serialization/TableRef.js.map +1 -0
  141. package/{types → src/types}/duckdb-serialization-types/serialization/Types.js +4 -9
  142. package/src/types/duckdb-serialization-types/serialization/Types.js.map +1 -0
  143. package/src/types/duckdb-serialization-types/serialization/example.js +109 -0
  144. package/src/types/duckdb-serialization-types/serialization/example.js.map +1 -0
  145. package/src/types/utils.js +69 -0
  146. package/src/types/utils.js.map +1 -0
  147. package/{utils → src/utils}/__fixtures__/joins.fixtures.js +228 -316
  148. package/src/utils/__fixtures__/joins.fixtures.js.map +1 -0
  149. package/src/utils/base-ast.js +49 -0
  150. package/src/utils/base-ast.js.map +1 -0
  151. package/src/utils/cube-filter-enrichment.js +53 -0
  152. package/src/utils/cube-filter-enrichment.js.map +1 -0
  153. package/{utils → src/utils}/cube-to-table-schema.js +25 -38
  154. package/src/utils/cube-to-table-schema.js.map +1 -0
  155. package/src/utils/cube-type-to-duckdb-type.js +12 -0
  156. package/src/utils/cube-type-to-duckdb-type.js.map +1 -0
  157. package/src/utils/find-in-table-schema.js +28 -0
  158. package/src/utils/find-in-table-schema.js.map +1 -0
  159. package/src/utils/get-column-names-from-ast.js +45 -0
  160. package/src/utils/get-column-names-from-ast.js.map +1 -0
  161. package/src/utils/get-possible-nodes.js +146 -0
  162. package/src/utils/get-possible-nodes.js.map +1 -0
  163. package/src/utils/get-type-info.js +34 -0
  164. package/src/utils/get-type-info.js.map +1 -0
  165. package/src/utils/is-array-member-type.js +8 -0
  166. package/src/utils/is-array-member-type.js.map +1 -0
  167. package/src/utils/key-from-measures-dimension.js +32 -0
  168. package/src/utils/key-from-measures-dimension.js.map +1 -0
  169. package/src/utils/meerkat-placeholder-replacer.js +10 -0
  170. package/src/utils/meerkat-placeholder-replacer.js.map +1 -0
  171. package/src/utils/modify-meerkat-filter.js +24 -0
  172. package/src/utils/modify-meerkat-filter.js.map +1 -0
  173. package/{utils → src/utils}/type-guards.js +10 -28
  174. package/src/utils/type-guards.js.map +1 -0
  175. package/ast-builder/ast-builder.js +0 -90
  176. package/ast-builder/ast-builder.js.map +0 -1
  177. package/ast-deserializer/ast-deserializer.js +0 -30
  178. package/ast-deserializer/ast-deserializer.js.map +0 -1
  179. package/ast-serializer/ast-serializer.js +0 -12
  180. package/ast-serializer/ast-serializer.js.map +0 -1
  181. package/ast-validator/dimension-validator.js +0 -54
  182. package/ast-validator/dimension-validator.js.map +0 -1
  183. package/ast-validator/index.js +0 -25
  184. package/ast-validator/index.js.map +0 -1
  185. package/ast-validator/measure-validator.js +0 -163
  186. package/ast-validator/measure-validator.js.map +0 -1
  187. package/ast-validator/tests/test-data.js.map +0 -1
  188. package/ast-validator/types.js +0 -3
  189. package/ast-validator/types.js.map +0 -1
  190. package/ast-validator/utils.js +0 -35
  191. package/ast-validator/utils.js.map +0 -1
  192. package/context-params/context-params-ast.js +0 -55
  193. package/context-params/context-params-ast.js.map +0 -1
  194. package/cube-filter-transformer/and/and.js +0 -18
  195. package/cube-filter-transformer/and/and.js.map +0 -1
  196. package/cube-filter-transformer/base-condition-builder/base-condition-builder.js +0 -160
  197. package/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +0 -1
  198. package/cube-filter-transformer/contains/contains.js +0 -71
  199. package/cube-filter-transformer/contains/contains.js.map +0 -1
  200. package/cube-filter-transformer/equals/equals-array.js +0 -77
  201. package/cube-filter-transformer/equals/equals-array.js.map +0 -1
  202. package/cube-filter-transformer/equals/equals.js +0 -37
  203. package/cube-filter-transformer/equals/equals.js.map +0 -1
  204. package/cube-filter-transformer/factory.js +0 -124
  205. package/cube-filter-transformer/factory.js.map +0 -1
  206. package/cube-filter-transformer/gt/gt.js +0 -30
  207. package/cube-filter-transformer/gt/gt.js.map +0 -1
  208. package/cube-filter-transformer/gte/gte.js +0 -30
  209. package/cube-filter-transformer/gte/gte.js.map +0 -1
  210. package/cube-filter-transformer/in/in.js +0 -78
  211. package/cube-filter-transformer/in/in.js.map +0 -1
  212. package/cube-filter-transformer/in-date-range/in-date-range.js +0 -24
  213. package/cube-filter-transformer/in-date-range/in-date-range.js.map +0 -1
  214. package/cube-filter-transformer/lt/lt.js +0 -30
  215. package/cube-filter-transformer/lt/lt.js.map +0 -1
  216. package/cube-filter-transformer/lte/lte.js +0 -30
  217. package/cube-filter-transformer/lte/lte.js.map +0 -1
  218. package/cube-filter-transformer/not/not.js +0 -18
  219. package/cube-filter-transformer/not/not.js.map +0 -1
  220. package/cube-filter-transformer/not-In-date-range/not-In-date-range.js +0 -24
  221. package/cube-filter-transformer/not-In-date-range/not-In-date-range.js.map +0 -1
  222. package/cube-filter-transformer/not-contains/not-contains.js +0 -71
  223. package/cube-filter-transformer/not-contains/not-contains.js.map +0 -1
  224. package/cube-filter-transformer/not-equals/not-equals-array.js +0 -26
  225. package/cube-filter-transformer/not-equals/not-equals-array.js.map +0 -1
  226. package/cube-filter-transformer/not-equals/not-equals.js +0 -37
  227. package/cube-filter-transformer/not-equals/not-equals.js.map +0 -1
  228. package/cube-filter-transformer/not-in/not-in.js +0 -85
  229. package/cube-filter-transformer/not-in/not-in.js.map +0 -1
  230. package/cube-filter-transformer/not-set/not-set.js +0 -27
  231. package/cube-filter-transformer/not-set/not-set.js.map +0 -1
  232. package/cube-filter-transformer/or/or.js +0 -18
  233. package/cube-filter-transformer/or/or.js.map +0 -1
  234. package/cube-filter-transformer/set/set.js +0 -27
  235. package/cube-filter-transformer/set/set.js.map +0 -1
  236. package/cube-group-by-transformer/cube-group-by-transformer.js +0 -25
  237. package/cube-group-by-transformer/cube-group-by-transformer.js.map +0 -1
  238. package/cube-limit-offset-transformer/cube-limit-offset-transformer.js +0 -42
  239. package/cube-limit-offset-transformer/cube-limit-offset-transformer.js.map +0 -1
  240. package/cube-measure-transformer/cube-measure-transformer.js +0 -127
  241. package/cube-measure-transformer/cube-measure-transformer.js.map +0 -1
  242. package/cube-order-by-transformer/cube-order-by-transformer.js +0 -39
  243. package/cube-order-by-transformer/cube-order-by-transformer.js.map +0 -1
  244. package/cube-to-duckdb/cube-filter-to-duckdb.js +0 -3
  245. package/cube-to-duckdb/cube-filter-to-duckdb.js.map +0 -1
  246. package/filter-params/filter-params-ast.js +0 -115
  247. package/filter-params/filter-params-ast.js.map +0 -1
  248. package/get-filter-params-sql/get-filter-params-sql.js +0 -28
  249. package/get-filter-params-sql/get-filter-params-sql.js.map +0 -1
  250. package/get-final-base-sql/get-final-base-sql.js +0 -30
  251. package/get-final-base-sql/get-final-base-sql.js.map +0 -1
  252. package/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js.map +0 -1
  253. package/get-wrapped-base-query-with-projections/get-projection-clause.js +0 -87
  254. package/get-wrapped-base-query-with-projections/get-projection-clause.js.map +0 -1
  255. package/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js +0 -33
  256. package/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js.map +0 -1
  257. package/get-wrapped-base-query-with-projections/sql-expression-modifiers.js +0 -60
  258. package/get-wrapped-base-query-with-projections/sql-expression-modifiers.js.map +0 -1
  259. package/index.js +0 -66
  260. package/index.js.map +0 -1
  261. package/joins/joins.js +0 -170
  262. package/joins/joins.js.map +0 -1
  263. package/member-formatters/constants.js +0 -19
  264. package/member-formatters/constants.js.map +0 -1
  265. package/member-formatters/index.js +0 -23
  266. package/member-formatters/index.js.map +0 -1
  267. package/member-formatters/member-key-to-safe-key.js +0 -13
  268. package/member-formatters/member-key-to-safe-key.js.map +0 -1
  269. package/member-formatters/split-into-data-source-and-fields.js +0 -17
  270. package/member-formatters/split-into-data-source-and-fields.js.map +0 -1
  271. package/resolution/resolution.js +0 -128
  272. package/resolution/resolution.js.map +0 -1
  273. package/resolution/types.js +0 -10
  274. package/resolution/types.js.map +0 -1
  275. package/types/cube-types/index.d.js +0 -6
  276. package/types/cube-types/index.d.js.map +0 -1
  277. package/types/cube-types/index.js +0 -6
  278. package/types/cube-types/index.js.map +0 -1
  279. package/types/cube-types/query.d.js +0 -5
  280. package/types/cube-types/query.d.js.map +0 -1
  281. package/types/cube-types/query.js +0 -14
  282. package/types/cube-types/query.js.map +0 -1
  283. package/types/cube-types/table.d.js +0 -3
  284. package/types/cube-types/table.d.js.map +0 -1
  285. package/types/cube-types/table.js +0 -3
  286. package/types/cube-types/table.js.map +0 -1
  287. package/types/duckdb-serialization-types/index.d.js +0 -11
  288. package/types/duckdb-serialization-types/index.d.js.map +0 -1
  289. package/types/duckdb-serialization-types/index.js +0 -11
  290. package/types/duckdb-serialization-types/index.js.map +0 -1
  291. package/types/duckdb-serialization-types/serialization/Constraint.js.map +0 -1
  292. package/types/duckdb-serialization-types/serialization/CreateInfo.js.map +0 -1
  293. package/types/duckdb-serialization-types/serialization/Expression.d.js +0 -3
  294. package/types/duckdb-serialization-types/serialization/Expression.d.js.map +0 -1
  295. package/types/duckdb-serialization-types/serialization/Expression.js.map +0 -1
  296. package/types/duckdb-serialization-types/serialization/LogicalOperator.js +0 -47
  297. package/types/duckdb-serialization-types/serialization/LogicalOperator.js.map +0 -1
  298. package/types/duckdb-serialization-types/serialization/MacroFunction.js +0 -15
  299. package/types/duckdb-serialization-types/serialization/MacroFunction.js.map +0 -1
  300. package/types/duckdb-serialization-types/serialization/Misc.d.js +0 -3
  301. package/types/duckdb-serialization-types/serialization/Misc.d.js.map +0 -1
  302. package/types/duckdb-serialization-types/serialization/Misc.js +0 -3
  303. package/types/duckdb-serialization-types/serialization/Misc.js.map +0 -1
  304. package/types/duckdb-serialization-types/serialization/Nodes.d.js +0 -3
  305. package/types/duckdb-serialization-types/serialization/Nodes.d.js.map +0 -1
  306. package/types/duckdb-serialization-types/serialization/Nodes.js.map +0 -1
  307. package/types/duckdb-serialization-types/serialization/ParseInfo.js.map +0 -1
  308. package/types/duckdb-serialization-types/serialization/ParsedExpression.d.js +0 -3
  309. package/types/duckdb-serialization-types/serialization/ParsedExpression.d.js.map +0 -1
  310. package/types/duckdb-serialization-types/serialization/ParsedExpression.js.map +0 -1
  311. package/types/duckdb-serialization-types/serialization/QueryNode.d.js +0 -3
  312. package/types/duckdb-serialization-types/serialization/QueryNode.d.js.map +0 -1
  313. package/types/duckdb-serialization-types/serialization/QueryNode.js.map +0 -1
  314. package/types/duckdb-serialization-types/serialization/ResultModifier.d.js +0 -3
  315. package/types/duckdb-serialization-types/serialization/ResultModifier.d.js.map +0 -1
  316. package/types/duckdb-serialization-types/serialization/ResultModifier.js.map +0 -1
  317. package/types/duckdb-serialization-types/serialization/Statement.d.js +0 -3
  318. package/types/duckdb-serialization-types/serialization/Statement.d.js.map +0 -1
  319. package/types/duckdb-serialization-types/serialization/Statement.js +0 -3
  320. package/types/duckdb-serialization-types/serialization/Statement.js.map +0 -1
  321. package/types/duckdb-serialization-types/serialization/TableFilter.d.js +0 -3
  322. package/types/duckdb-serialization-types/serialization/TableFilter.d.js.map +0 -1
  323. package/types/duckdb-serialization-types/serialization/TableFilter.js.map +0 -1
  324. package/types/duckdb-serialization-types/serialization/TableRef.d.js +0 -3
  325. package/types/duckdb-serialization-types/serialization/TableRef.d.js.map +0 -1
  326. package/types/duckdb-serialization-types/serialization/TableRef.js.map +0 -1
  327. package/types/duckdb-serialization-types/serialization/Types.d.js +0 -3
  328. package/types/duckdb-serialization-types/serialization/Types.d.js.map +0 -1
  329. package/types/duckdb-serialization-types/serialization/Types.js.map +0 -1
  330. package/types/duckdb-serialization-types/serialization/example.js +0 -131
  331. package/types/duckdb-serialization-types/serialization/example.js.map +0 -1
  332. package/types/utils.js +0 -108
  333. package/types/utils.js.map +0 -1
  334. package/utils/__fixtures__/joins.fixtures.js.map +0 -1
  335. package/utils/base-ast.js +0 -63
  336. package/utils/base-ast.js.map +0 -1
  337. package/utils/cube-filter-enrichment.js +0 -63
  338. package/utils/cube-filter-enrichment.js.map +0 -1
  339. package/utils/cube-to-table-schema.js.map +0 -1
  340. package/utils/cube-type-to-duckdb-type.js +0 -17
  341. package/utils/cube-type-to-duckdb-type.js.map +0 -1
  342. package/utils/find-in-table-schema.js +0 -40
  343. package/utils/find-in-table-schema.js.map +0 -1
  344. package/utils/get-column-names-from-ast.js +0 -45
  345. package/utils/get-column-names-from-ast.js.map +0 -1
  346. package/utils/get-possible-nodes.js +0 -152
  347. package/utils/get-possible-nodes.js.map +0 -1
  348. package/utils/get-type-info.js +0 -44
  349. package/utils/get-type-info.js.map +0 -1
  350. package/utils/is-array-member-type.js +0 -12
  351. package/utils/is-array-member-type.js.map +0 -1
  352. package/utils/key-from-measures-dimension.js +0 -35
  353. package/utils/key-from-measures-dimension.js.map +0 -1
  354. package/utils/meerkat-placeholder-replacer.js +0 -14
  355. package/utils/meerkat-placeholder-replacer.js.map +0 -1
  356. package/utils/modify-meerkat-filter.js +0 -30
  357. package/utils/modify-meerkat-filter.js.map +0 -1
  358. package/utils/type-guards.js.map +0 -1
@@ -1,71 +0,0 @@
1
- "use strict";
2
- function _export(target, all) {
3
- for(var name in all)Object.defineProperty(target, name, {
4
- enumerable: true,
5
- get: all[name]
6
- });
7
- }
8
- _export(exports, {
9
- containsDuckdbCondition: function() {
10
- return containsDuckdbCondition;
11
- },
12
- containsTransform: function() {
13
- return containsTransform;
14
- }
15
- });
16
- const _constants = require("../../member-formatters/constants");
17
- const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
18
- const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
19
- const _or = require("../or/or");
20
- const containsDuckdbCondition = (columnName, value, memberInfo)=>{
21
- return {
22
- class: _Expression.ExpressionClass.FUNCTION,
23
- type: _Expression.ExpressionType.FUNCTION,
24
- alias: '',
25
- function_name: '~~*',
26
- schema: '',
27
- children: [
28
- {
29
- class: 'COLUMN_REF',
30
- type: 'COLUMN_REF',
31
- alias: '',
32
- column_names: columnName.split(_constants.COLUMN_NAME_DELIMITER)
33
- },
34
- {
35
- class: 'CONSTANT',
36
- type: 'VALUE_CONSTANT',
37
- alias: '',
38
- value: (0, _baseconditionbuilder.valueBuilder)(`%${value}%`, memberInfo)
39
- }
40
- ],
41
- filter: null,
42
- order_bys: {
43
- type: 'ORDER_MODIFIER',
44
- orders: []
45
- },
46
- distinct: false,
47
- is_operator: true,
48
- export_state: false,
49
- catalog: ''
50
- };
51
- };
52
- const containsTransform = (query)=>{
53
- const { member, values, memberInfo } = query;
54
- if (!values || values.length === 0) {
55
- throw new Error('Contains filter must have at least one value');
56
- }
57
- /**
58
- * If there is only one value, we can create a simple Contains condition
59
- */ if (values.length === 1) {
60
- return containsDuckdbCondition(member, values[0], memberInfo);
61
- }
62
- /**
63
- * If there are multiple values, we need to create an OR condition
64
- */ const orCondition = (0, _or.orDuckdbCondition)();
65
- values.forEach((value)=>{
66
- orCondition.children.push(containsDuckdbCondition(member, value, memberInfo));
67
- });
68
- return orCondition;
69
- };
70
-
71
- //# sourceMappingURL=contains.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/contains/contains.ts"],"sourcesContent":["import { Member, QueryFilter } from '../../types/cube-types/query';\nimport { Dimension, Measure } from '../../types/cube-types/table';\n\nimport { COLUMN_NAME_DELIMITER } from '../../member-formatters/constants';\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { valueBuilder } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { orDuckdbCondition } from '../or/or';\n\nexport interface ContainsFilters extends QueryFilter {\n member: Member;\n operator: 'contains';\n values: string[];\n}\n\nexport const containsDuckdbCondition = (\n columnName: string,\n value: string,\n memberInfo: Measure | Dimension\n) => {\n return {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n function_name: '~~*',\n schema: '',\n children: [\n {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n column_names: columnName.split(COLUMN_NAME_DELIMITER),\n },\n {\n class: 'CONSTANT',\n type: 'VALUE_CONSTANT',\n alias: '',\n value: valueBuilder(`%${value}%`, memberInfo),\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n };\n};\n\nexport const containsTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values, memberInfo } = query;\n\n if (!values || values.length === 0) {\n throw new Error('Contains filter must have at least one value');\n }\n\n /**\n * If there is only one value, we can create a simple Contains condition\n */\n if (values.length === 1) {\n return containsDuckdbCondition(member, values[0], memberInfo);\n }\n\n /**\n * If there are multiple values, we need to create an OR condition\n */\n const orCondition = orDuckdbCondition();\n values.forEach((value) => {\n orCondition.children.push(\n containsDuckdbCondition(member, value, memberInfo)\n );\n });\n return orCondition;\n};\n"],"names":["containsDuckdbCondition","containsTransform","columnName","value","memberInfo","class","ExpressionClass","FUNCTION","type","ExpressionType","alias","function_name","schema","children","column_names","split","COLUMN_NAME_DELIMITER","valueBuilder","filter","order_bys","orders","distinct","is_operator","export_state","catalog","query","member","values","length","Error","orCondition","orDuckdbCondition","forEach","push"],"mappings":";;;;;;;;IAkBaA,uBAAuB;eAAvBA;;IAqCAC,iBAAiB;eAAjBA;;;2BApDyB;4BAI/B;sCACsB;oBAEK;AAQ3B,MAAMD,0BAA0B,CACrCE,YACAC,OACAC;IAEA,OAAO;QACLC,OAAOC,2BAAe,CAACC,QAAQ;QAC/BC,MAAMC,0BAAc,CAACF,QAAQ;QAC7BG,OAAO;QACPC,eAAe;QACfC,QAAQ;QACRC,UAAU;YACR;gBACER,OAAO;gBACPG,MAAM;gBACNE,OAAO;gBACPI,cAAcZ,WAAWa,KAAK,CAACC,gCAAqB;YACtD;YACA;gBACEX,OAAO;gBACPG,MAAM;gBACNE,OAAO;gBACPP,OAAOc,IAAAA,kCAAY,EAAC,CAAC,CAAC,EAAEd,MAAM,CAAC,CAAC,EAAEC;YACpC;SACD;QACDc,QAAQ;QACRC,WAAW;YACTX,MAAM;YACNY,QAAQ,EAAE;QACZ;QACAC,UAAU;QACVC,aAAa;QACbC,cAAc;QACdC,SAAS;IACX;AACF;AAEO,MAAMvB,oBAAoD,CAACwB;IAChE,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEvB,UAAU,EAAE,GAAGqB;IAEvC,IAAI,CAACE,UAAUA,OAAOC,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA;;GAEC,GACD,IAAIF,OAAOC,MAAM,KAAK,GAAG;QACvB,OAAO5B,wBAAwB0B,QAAQC,MAAM,CAAC,EAAE,EAAEvB;IACpD;IAEA;;GAEC,GACD,MAAM0B,cAAcC,IAAAA,qBAAiB;IACrCJ,OAAOK,OAAO,CAAC,CAAC7B;QACd2B,YAAYjB,QAAQ,CAACoB,IAAI,CACvBjC,wBAAwB0B,QAAQvB,OAAOC;IAE3C;IACA,OAAO0B;AACT"}
@@ -1,77 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "equalsArrayTransform", {
3
- enumerable: true,
4
- get: function() {
5
- return equalsArrayTransform;
6
- }
7
- });
8
- const _constants = require("../../member-formatters/constants");
9
- const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
10
- const _ResultModifier = require("../../types/duckdb-serialization-types/serialization/ResultModifier");
11
- const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
12
- const equalsDuckDbCondition = (columnName, values, memberInfo)=>{
13
- const columnRef = {
14
- class: _Expression.ExpressionClass.COLUMN_REF,
15
- type: _Expression.ExpressionType.COLUMN_REF,
16
- alias: '',
17
- column_names: columnName.split(_constants.COLUMN_NAME_DELIMITER)
18
- };
19
- const sqlTreeValues = values.map((value)=>{
20
- const children = {
21
- class: _Expression.ExpressionClass.CONSTANT,
22
- type: _Expression.ExpressionType.VALUE_CONSTANT,
23
- alias: '',
24
- value: (0, _baseconditionbuilder.valueBuilder)(value, memberInfo)
25
- };
26
- return children;
27
- });
28
- const filterValuesArray = {
29
- class: _Expression.ExpressionClass.FUNCTION,
30
- type: _Expression.ExpressionType.FUNCTION,
31
- alias: '',
32
- function_name: 'list_value',
33
- schema: 'main',
34
- children: sqlTreeValues,
35
- filter: null,
36
- order_bys: {
37
- type: _ResultModifier.ResultModifierType.ORDER_MODIFIER,
38
- orders: []
39
- },
40
- distinct: false,
41
- is_operator: false,
42
- export_state: false,
43
- catalog: ''
44
- };
45
- const sqlTree = {
46
- class: _Expression.ExpressionClass.FUNCTION,
47
- type: _Expression.ExpressionType.FUNCTION,
48
- alias: '',
49
- function_name: 'list_has_all',
50
- schema: '',
51
- children: [
52
- columnRef,
53
- filterValuesArray
54
- ],
55
- filter: null,
56
- order_bys: {
57
- type: _ResultModifier.ResultModifierType.ORDER_MODIFIER,
58
- orders: []
59
- },
60
- distinct: false,
61
- is_operator: false,
62
- export_state: false,
63
- catalog: ''
64
- };
65
- return sqlTree;
66
- };
67
- const equalsArrayTransform = (query)=>{
68
- const { member, values, memberInfo } = query;
69
- /**
70
- * If there is only one value, we can create a simple equals condition
71
- */ if (!values) {
72
- throw new Error('In filter must have at least one value');
73
- }
74
- return equalsDuckDbCondition(member, values, memberInfo);
75
- };
76
-
77
- //# sourceMappingURL=equals-array.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/equals/equals-array.ts"],"sourcesContent":["import { COLUMN_NAME_DELIMITER } from '../../member-formatters/constants';\nimport { Dimension, Measure } from '../../types/cube-types/table';\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { ResultModifierType } from '../../types/duckdb-serialization-types/serialization/ResultModifier';\nimport { valueBuilder } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\n\nconst equalsDuckDbCondition = (\n columnName: string,\n values: string[],\n memberInfo: Measure | Dimension\n) => {\n const columnRef = {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n column_names: columnName.split(COLUMN_NAME_DELIMITER),\n };\n\n const sqlTreeValues = values.map((value) => {\n const children = {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n value: valueBuilder(value, memberInfo),\n };\n return children;\n });\n\n const filterValuesArray = {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n function_name: 'list_value',\n schema: 'main',\n children: sqlTreeValues,\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n };\n\n const sqlTree = {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n function_name: 'list_has_all',\n schema: '',\n children: [columnRef, filterValuesArray],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n };\n return sqlTree;\n};\n\nexport const equalsArrayTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values, memberInfo } = query;\n /**\n * If there is only one value, we can create a simple equals condition\n */\n if (!values) {\n throw new Error('In filter must have at least one value');\n }\n return equalsDuckDbCondition(member, values, memberInfo);\n};\n"],"names":["equalsArrayTransform","equalsDuckDbCondition","columnName","values","memberInfo","columnRef","class","ExpressionClass","COLUMN_REF","type","ExpressionType","alias","column_names","split","COLUMN_NAME_DELIMITER","sqlTreeValues","map","value","children","CONSTANT","VALUE_CONSTANT","valueBuilder","filterValuesArray","FUNCTION","function_name","schema","filter","order_bys","ResultModifierType","ORDER_MODIFIER","orders","distinct","is_operator","export_state","catalog","sqlTree","query","member","Error"],"mappings":";+BAsEaA;;;eAAAA;;;2BAtEyB;4BAK/B;gCAC4B;sCACN;AAG7B,MAAMC,wBAAwB,CAC5BC,YACAC,QACAC;IAEA,MAAMC,YAAY;QAChBC,OAAOC,2BAAe,CAACC,UAAU;QACjCC,MAAMC,0BAAc,CAACF,UAAU;QAC/BG,OAAO;QACPC,cAAcV,WAAWW,KAAK,CAACC,gCAAqB;IACtD;IAEA,MAAMC,gBAAgBZ,OAAOa,GAAG,CAAC,CAACC;QAChC,MAAMC,WAAW;YACfZ,OAAOC,2BAAe,CAACY,QAAQ;YAC/BV,MAAMC,0BAAc,CAACU,cAAc;YACnCT,OAAO;YACPM,OAAOI,IAAAA,kCAAY,EAACJ,OAAOb;QAC7B;QACA,OAAOc;IACT;IAEA,MAAMI,oBAAoB;QACxBhB,OAAOC,2BAAe,CAACgB,QAAQ;QAC/Bd,MAAMC,0BAAc,CAACa,QAAQ;QAC7BZ,OAAO;QACPa,eAAe;QACfC,QAAQ;QACRP,UAAUH;QACVW,QAAQ;QACRC,WAAW;YACTlB,MAAMmB,kCAAkB,CAACC,cAAc;YACvCC,QAAQ,EAAE;QACZ;QACAC,UAAU;QACVC,aAAa;QACbC,cAAc;QACdC,SAAS;IACX;IAEA,MAAMC,UAAU;QACd7B,OAAOC,2BAAe,CAACgB,QAAQ;QAC/Bd,MAAMC,0BAAc,CAACa,QAAQ;QAC7BZ,OAAO;QACPa,eAAe;QACfC,QAAQ;QACRP,UAAU;YAACb;YAAWiB;SAAkB;QACxCI,QAAQ;QACRC,WAAW;YACTlB,MAAMmB,kCAAkB,CAACC,cAAc;YACvCC,QAAQ,EAAE;QACZ;QACAC,UAAU;QACVC,aAAa;QACbC,cAAc;QACdC,SAAS;IACX;IACA,OAAOC;AACT;AAEO,MAAMnC,uBAAuD,CAACoC;IACnE,MAAM,EAAEC,MAAM,EAAElC,MAAM,EAAEC,UAAU,EAAE,GAAGgC;IACvC;;GAEC,GACD,IAAI,CAACjC,QAAQ;QACX,MAAM,IAAImC,MAAM;IAClB;IACA,OAAOrC,sBAAsBoC,QAAQlC,QAAQC;AAC/C"}
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "equalsTransform", {
3
- enumerable: true,
4
- get: function() {
5
- return equalsTransform;
6
- }
7
- });
8
- const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
9
- const _isarraymembertype = require("../../utils/is-array-member-type");
10
- const _and = require("../and/and");
11
- const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
12
- const _equalsarray = require("./equals-array");
13
- const equalsTransform = (query)=>{
14
- const { member, values } = query;
15
- /**
16
- * If the member is an array, we need to use the array transform
17
- */ if ((0, _isarraymembertype.isArrayTypeMember)(query.memberInfo.type)) {
18
- return (0, _equalsarray.equalsArrayTransform)(query);
19
- }
20
- if (!values || values.length === 0) {
21
- throw new Error('Equals filter must have at least one value');
22
- }
23
- /**
24
- * If there is only one value, we can create a simple equals condition
25
- */ if (values.length === 1) {
26
- return (0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_EQUAL, values[0], query.memberInfo);
27
- }
28
- /**
29
- * If there are multiple values, we need to create an AND condition
30
- */ const andCondition = (0, _and.andDuckdbCondition)();
31
- values.forEach((value)=>{
32
- andCondition.children.push((0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_EQUAL, value, query.memberInfo));
33
- });
34
- return andCondition;
35
- };
36
-
37
- //# sourceMappingURL=equals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/equals/equals.ts"],"sourcesContent":["import { ExpressionType } from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { isArrayTypeMember } from '../../utils/is-array-member-type';\nimport { andDuckdbCondition } from '../and/and';\nimport { baseDuckdbCondition } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { equalsArrayTransform } from './equals-array';\n\nexport const equalsTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values } = query;\n\n /**\n * If the member is an array, we need to use the array transform\n */\n if (isArrayTypeMember(query.memberInfo.type)) {\n return equalsArrayTransform(query);\n }\n\n if (!values || values.length === 0) {\n throw new Error('Equals filter must have at least one value');\n }\n\n /**\n * If there is only one value, we can create a simple equals condition\n */\n if (values.length === 1) {\n return baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_EQUAL,\n values[0],\n query.memberInfo\n );\n }\n\n /**\n * If there are multiple values, we need to create an AND condition\n */\n const andCondition = andDuckdbCondition();\n values.forEach((value) => {\n andCondition.children.push(\n baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_EQUAL,\n value,\n query.memberInfo\n )\n );\n });\n return andCondition;\n};\n"],"names":["equalsTransform","query","member","values","isArrayTypeMember","memberInfo","type","equalsArrayTransform","length","Error","baseDuckdbCondition","ExpressionType","COMPARE_EQUAL","andCondition","andDuckdbCondition","forEach","value","children","push"],"mappings":";+BAOaA;;;eAAAA;;;4BAPkB;mCACG;qBACC;sCACC;6BAEC;AAE9B,MAAMA,kBAAkD,CAACC;IAC9D,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF;IAE3B;;GAEC,GACD,IAAIG,IAAAA,oCAAiB,EAACH,MAAMI,UAAU,CAACC,IAAI,GAAG;QAC5C,OAAOC,IAAAA,iCAAoB,EAACN;IAC9B;IAEA,IAAI,CAACE,UAAUA,OAAOK,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA;;GAEC,GACD,IAAIN,OAAOK,MAAM,KAAK,GAAG;QACvB,OAAOE,IAAAA,yCAAmB,EACxBR,QACAS,0BAAc,CAACC,aAAa,EAC5BT,MAAM,CAAC,EAAE,EACTF,MAAMI,UAAU;IAEpB;IAEA;;GAEC,GACD,MAAMQ,eAAeC,IAAAA,uBAAkB;IACvCX,OAAOY,OAAO,CAAC,CAACC;QACdH,aAAaI,QAAQ,CAACC,IAAI,CACxBR,IAAAA,yCAAmB,EACjBR,QACAS,0BAAc,CAACC,aAAa,EAC5BI,OACAf,MAAMI,UAAU;IAGtB;IACA,OAAOQ;AACT"}
@@ -1,124 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "cubeFilterToDuckdbAST", {
3
- enumerable: true,
4
- get: function() {
5
- return cubeFilterToDuckdbAST;
6
- }
7
- });
8
- const _typeguards = require("../utils/type-guards");
9
- const _and = require("./and/and");
10
- const _contains = require("./contains/contains");
11
- const _equals = require("./equals/equals");
12
- const _gt = require("./gt/gt");
13
- const _gte = require("./gte/gte");
14
- const _indaterange = require("./in-date-range/in-date-range");
15
- const _in = require("./in/in");
16
- const _lt = require("./lt/lt");
17
- const _lte = require("./lte/lte");
18
- const _notIndaterange = require("./not-In-date-range/not-In-date-range");
19
- const _notcontains = require("./not-contains/not-contains");
20
- const _notequals = require("./not-equals/not-equals");
21
- const _notin = require("./not-in/not-in");
22
- const _notset = require("./not-set/not-set");
23
- const _or = require("./or/or");
24
- const _set = require("./set/set");
25
- // Comparison operators
26
- const cubeFilterOperatorsToDuckdb = (cubeFilter)=>{
27
- switch(cubeFilter.operator){
28
- case 'equals':
29
- return (0, _equals.equalsTransform)(cubeFilter);
30
- case 'notEquals':
31
- return (0, _notequals.notEqualsTransform)(cubeFilter);
32
- case 'in':
33
- return (0, _in.inTransform)(cubeFilter);
34
- case 'notIn':
35
- return (0, _notin.notInTransform)(cubeFilter);
36
- case 'contains':
37
- return (0, _contains.containsTransform)(cubeFilter);
38
- case 'notContains':
39
- return (0, _notcontains.notContainsTransform)(cubeFilter);
40
- case 'gt':
41
- return (0, _gt.gtTransform)(cubeFilter);
42
- case 'gte':
43
- return (0, _gte.gteTransform)(cubeFilter);
44
- case 'lt':
45
- return (0, _lt.ltTransform)(cubeFilter);
46
- case 'lte':
47
- return (0, _lte.lteTransform)(cubeFilter);
48
- case 'inDateRange':
49
- return (0, _indaterange.inDataRangeTransform)(cubeFilter);
50
- case 'notInDateRange':
51
- return (0, _notIndaterange.notInDataRangeTransform)(cubeFilter);
52
- case 'notSet':
53
- {
54
- return (0, _notset.notSetTransform)(cubeFilter);
55
- }
56
- case 'set':
57
- {
58
- return (0, _set.setTransform)(cubeFilter);
59
- }
60
- default:
61
- throw new Error('Could not transform the filter');
62
- }
63
- };
64
- const cubeFilterLogicalAndOrToDuckdb = (cubeFilter, whereObj)=>{
65
- /**
66
- * This condition is true when you are at the leaf most level of the filter
67
- */ if (!(0, _typeguards.isFilterArray)(cubeFilter) && (0, _typeguards.isQueryFilter)(cubeFilter)) {
68
- const data = cubeFilterOperatorsToDuckdb(cubeFilter);
69
- if (!data) {
70
- throw new Error('Could not transform the filter');
71
- }
72
- return data;
73
- }
74
- if (!(0, _typeguards.isFilterArray)(cubeFilter) && (0, _typeguards.isLogicalAnd)(cubeFilter)) {
75
- if (cubeFilter.and.length === 0) {
76
- return null;
77
- }
78
- // And or Or we need to recurse
79
- const andDuckdbExpression = (0, _and.andDuckdbCondition)();
80
- const data = cubeFilterLogicalAndOrToDuckdb(cubeFilter.and, andDuckdbExpression);
81
- return data;
82
- }
83
- if (!(0, _typeguards.isFilterArray)(cubeFilter) && (0, _typeguards.isLogicalOr)(cubeFilter)) {
84
- if (cubeFilter.or.length === 0) {
85
- return null;
86
- }
87
- // And or Or we need to recurse
88
- const orDuckdbExpression = (0, _or.orDuckdbCondition)();
89
- const data = cubeFilterLogicalAndOrToDuckdb(cubeFilter.or, orDuckdbExpression);
90
- return data;
91
- }
92
- if ((0, _typeguards.isFilterArray)(cubeFilter)) {
93
- for (const filter of cubeFilter){
94
- const data = cubeFilterLogicalAndOrToDuckdb(filter, whereObj);
95
- if (data) {
96
- if ((0, _typeguards.hasChildren)(whereObj)) {
97
- whereObj.children.push(data);
98
- } else {
99
- whereObj = data;
100
- }
101
- }
102
- }
103
- return whereObj;
104
- }
105
- return whereObj;
106
- };
107
- const cubeFilterToDuckdbAST = (cubeFilter, ast)=>{
108
- let whereObj = ast.node.where_clause || null;
109
- if (cubeFilter.length > 1) {
110
- console.error('We do not support multiple filters yet');
111
- throw new Error('We do not support multiple filters yet');
112
- }
113
- const filter = cubeFilter[0];
114
- if ((0, _typeguards.isQueryFilter)(filter)) {
115
- whereObj = cubeFilterOperatorsToDuckdb(filter);
116
- }
117
- if ((0, _typeguards.isLogicalAndOR)(filter)) {
118
- // And or Or we need to recurse
119
- whereObj = cubeFilterLogicalAndOrToDuckdb(filter, whereObj || null);
120
- }
121
- return whereObj;
122
- };
123
-
124
- //# sourceMappingURL=factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../meerkat-core/src/cube-filter-transformer/factory.ts"],"sourcesContent":["import {\n QueryFilterWithInfo,\n QueryFiltersWithInfo,\n QueryOperatorsWithInfo,\n} from '../cube-to-duckdb/cube-filter-to-duckdb';\nimport { ParsedExpression } from '../types/duckdb-serialization-types/serialization/ParsedExpression';\nimport { SelectNode } from '../types/duckdb-serialization-types/serialization/QueryNode';\nimport { SelectStatement } from '../types/duckdb-serialization-types/serialization/Statement';\nimport {\n hasChildren,\n isFilterArray,\n isLogicalAnd,\n isLogicalAndOR,\n isLogicalOr,\n isQueryFilter,\n} from '../utils/type-guards';\nimport { andDuckdbCondition } from './and/and';\nimport { containsTransform } from './contains/contains';\nimport { equalsTransform } from './equals/equals';\nimport { gtTransform } from './gt/gt';\nimport { gteTransform } from './gte/gte';\nimport { inDataRangeTransform } from './in-date-range/in-date-range';\nimport { inTransform } from './in/in';\nimport { ltTransform } from './lt/lt';\nimport { lteTransform } from './lte/lte';\nimport { notInDataRangeTransform } from './not-In-date-range/not-In-date-range';\nimport { notContainsTransform } from './not-contains/not-contains';\nimport { notEqualsTransform } from './not-equals/not-equals';\nimport { notInTransform } from './not-in/not-in';\nimport { notSetTransform } from './not-set/not-set';\nimport { orDuckdbCondition } from './or/or';\nimport { setTransform } from './set/set';\n\nexport type CubeToParseExpressionTransform = (\n query: QueryOperatorsWithInfo\n) => ParsedExpression;\n\n// Comparison operators\nconst cubeFilterOperatorsToDuckdb = (cubeFilter: QueryOperatorsWithInfo) => {\n switch (cubeFilter.operator) {\n case 'equals':\n return equalsTransform(cubeFilter);\n case 'notEquals':\n return notEqualsTransform(cubeFilter);\n case 'in':\n return inTransform(cubeFilter);\n case 'notIn':\n return notInTransform(cubeFilter);\n case 'contains':\n return containsTransform(cubeFilter);\n case 'notContains':\n return notContainsTransform(cubeFilter);\n case 'gt':\n return gtTransform(cubeFilter);\n case 'gte':\n return gteTransform(cubeFilter);\n case 'lt':\n return ltTransform(cubeFilter);\n case 'lte':\n return lteTransform(cubeFilter);\n case 'inDateRange':\n return inDataRangeTransform(cubeFilter);\n case 'notInDateRange':\n return notInDataRangeTransform(cubeFilter);\n case 'notSet': {\n return notSetTransform(cubeFilter);\n }\n case 'set': {\n return setTransform(cubeFilter);\n }\n default:\n throw new Error('Could not transform the filter');\n }\n};\n\nconst cubeFilterLogicalAndOrToDuckdb = (\n cubeFilter: QueryFilterWithInfo,\n whereObj: ParsedExpression | null\n): ParsedExpression | null => {\n /**\n * This condition is true when you are at the leaf most level of the filter\n */\n if (!isFilterArray(cubeFilter) && isQueryFilter(cubeFilter)) {\n const data = cubeFilterOperatorsToDuckdb(cubeFilter);\n if (!data) {\n throw new Error('Could not transform the filter');\n }\n return data;\n }\n\n if (!isFilterArray(cubeFilter) && isLogicalAnd(cubeFilter)) {\n if (cubeFilter.and.length === 0) {\n return null;\n }\n // And or Or we need to recurse\n const andDuckdbExpression = andDuckdbCondition();\n const data = cubeFilterLogicalAndOrToDuckdb(\n cubeFilter.and,\n andDuckdbExpression\n );\n return data;\n }\n\n if (!isFilterArray(cubeFilter) && isLogicalOr(cubeFilter)) {\n if (cubeFilter.or.length === 0) {\n return null;\n }\n // And or Or we need to recurse\n const orDuckdbExpression = orDuckdbCondition();\n const data = cubeFilterLogicalAndOrToDuckdb(\n cubeFilter.or,\n orDuckdbExpression\n );\n return data;\n }\n\n if (isFilterArray(cubeFilter)) {\n for (const filter of cubeFilter) {\n const data = cubeFilterLogicalAndOrToDuckdb(filter, whereObj);\n if (data) {\n if (hasChildren(whereObj)) {\n whereObj.children.push(data);\n } else {\n whereObj = data;\n }\n }\n }\n return whereObj;\n }\n return whereObj;\n};\n\nexport const cubeFilterToDuckdbAST = (\n cubeFilter: QueryFiltersWithInfo,\n ast: SelectStatement\n) => {\n let whereObj: ParsedExpression | null | undefined =\n (ast.node as SelectNode).where_clause || null;\n\n if (cubeFilter.length > 1) {\n console.error('We do not support multiple filters yet');\n throw new Error('We do not support multiple filters yet');\n }\n\n const filter = cubeFilter[0];\n\n if (isQueryFilter(filter)) {\n whereObj = cubeFilterOperatorsToDuckdb(filter);\n }\n\n if (isLogicalAndOR(filter)) {\n // And or Or we need to recurse\n whereObj = cubeFilterLogicalAndOrToDuckdb(filter, whereObj || null);\n }\n\n return whereObj;\n};\n"],"names":["cubeFilterToDuckdbAST","cubeFilterOperatorsToDuckdb","cubeFilter","operator","equalsTransform","notEqualsTransform","inTransform","notInTransform","containsTransform","notContainsTransform","gtTransform","gteTransform","ltTransform","lteTransform","inDataRangeTransform","notInDataRangeTransform","notSetTransform","setTransform","Error","cubeFilterLogicalAndOrToDuckdb","whereObj","isFilterArray","isQueryFilter","data","isLogicalAnd","and","length","andDuckdbExpression","andDuckdbCondition","isLogicalOr","or","orDuckdbExpression","orDuckdbCondition","filter","hasChildren","children","push","ast","node","where_clause","console","error","isLogicalAndOR"],"mappings":";+BAoIaA;;;eAAAA;;;4BArHN;qBAC4B;0BACD;wBACF;oBACJ;qBACC;6BACQ;oBACT;oBACA;qBACC;gCACW;6BACH;2BACF;uBACJ;wBACC;oBACE;qBACL;AAM7B,uBAAuB;AACvB,MAAMC,8BAA8B,CAACC;IACnC,OAAQA,WAAWC,QAAQ;QACzB,KAAK;YACH,OAAOC,IAAAA,uBAAe,EAACF;QACzB,KAAK;YACH,OAAOG,IAAAA,6BAAkB,EAACH;QAC5B,KAAK;YACH,OAAOI,IAAAA,eAAW,EAACJ;QACrB,KAAK;YACH,OAAOK,IAAAA,qBAAc,EAACL;QACxB,KAAK;YACH,OAAOM,IAAAA,2BAAiB,EAACN;QAC3B,KAAK;YACH,OAAOO,IAAAA,iCAAoB,EAACP;QAC9B,KAAK;YACH,OAAOQ,IAAAA,eAAW,EAACR;QACrB,KAAK;YACH,OAAOS,IAAAA,iBAAY,EAACT;QACtB,KAAK;YACH,OAAOU,IAAAA,eAAW,EAACV;QACrB,KAAK;YACH,OAAOW,IAAAA,iBAAY,EAACX;QACtB,KAAK;YACH,OAAOY,IAAAA,iCAAoB,EAACZ;QAC9B,KAAK;YACH,OAAOa,IAAAA,uCAAuB,EAACb;QACjC,KAAK;YAAU;gBACb,OAAOc,IAAAA,uBAAe,EAACd;YACzB;QACA,KAAK;YAAO;gBACV,OAAOe,IAAAA,iBAAY,EAACf;YACtB;QACA;YACE,MAAM,IAAIgB,MAAM;IACpB;AACF;AAEA,MAAMC,iCAAiC,CACrCjB,YACAkB;IAEA;;GAEC,GACD,IAAI,CAACC,IAAAA,yBAAa,EAACnB,eAAeoB,IAAAA,yBAAa,EAACpB,aAAa;QAC3D,MAAMqB,OAAOtB,4BAA4BC;QACzC,IAAI,CAACqB,MAAM;YACT,MAAM,IAAIL,MAAM;QAClB;QACA,OAAOK;IACT;IAEA,IAAI,CAACF,IAAAA,yBAAa,EAACnB,eAAesB,IAAAA,wBAAY,EAACtB,aAAa;QAC1D,IAAIA,WAAWuB,GAAG,CAACC,MAAM,KAAK,GAAG;YAC/B,OAAO;QACT;QACA,+BAA+B;QAC/B,MAAMC,sBAAsBC,IAAAA,uBAAkB;QAC9C,MAAML,OAAOJ,+BACXjB,WAAWuB,GAAG,EACdE;QAEF,OAAOJ;IACT;IAEA,IAAI,CAACF,IAAAA,yBAAa,EAACnB,eAAe2B,IAAAA,uBAAW,EAAC3B,aAAa;QACzD,IAAIA,WAAW4B,EAAE,CAACJ,MAAM,KAAK,GAAG;YAC9B,OAAO;QACT;QACA,+BAA+B;QAC/B,MAAMK,qBAAqBC,IAAAA,qBAAiB;QAC5C,MAAMT,OAAOJ,+BACXjB,WAAW4B,EAAE,EACbC;QAEF,OAAOR;IACT;IAEA,IAAIF,IAAAA,yBAAa,EAACnB,aAAa;QAC7B,KAAK,MAAM+B,UAAU/B,WAAY;YAC/B,MAAMqB,OAAOJ,+BAA+Bc,QAAQb;YACpD,IAAIG,MAAM;gBACR,IAAIW,IAAAA,uBAAW,EAACd,WAAW;oBACzBA,SAASe,QAAQ,CAACC,IAAI,CAACb;gBACzB,OAAO;oBACLH,WAAWG;gBACb;YACF;QACF;QACA,OAAOH;IACT;IACA,OAAOA;AACT;AAEO,MAAMpB,wBAAwB,CACnCE,YACAmC;IAEA,IAAIjB,WACF,AAACiB,IAAIC,IAAI,CAAgBC,YAAY,IAAI;IAE3C,IAAIrC,WAAWwB,MAAM,GAAG,GAAG;QACzBc,QAAQC,KAAK,CAAC;QACd,MAAM,IAAIvB,MAAM;IAClB;IAEA,MAAMe,SAAS/B,UAAU,CAAC,EAAE;IAE5B,IAAIoB,IAAAA,yBAAa,EAACW,SAAS;QACzBb,WAAWnB,4BAA4BgC;IACzC;IAEA,IAAIS,IAAAA,0BAAc,EAACT,SAAS;QAC1B,+BAA+B;QAC/Bb,WAAWD,+BAA+Bc,QAAQb,YAAY;IAChE;IAEA,OAAOA;AACT"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "gtTransform", {
3
- enumerable: true,
4
- get: function() {
5
- return gtTransform;
6
- }
7
- });
8
- const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
9
- const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
10
- const _or = require("../or/or");
11
- const gtTransform = (query)=>{
12
- const { member, values } = query;
13
- if (!values || values.length === 0) {
14
- throw new Error('GT filter must have at least one value');
15
- }
16
- /**
17
- * If there is only one value, we can create a simple equals condition
18
- */ if (values.length === 1) {
19
- return (0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_GREATERTHAN, values[0], query.memberInfo);
20
- }
21
- /**
22
- * If there are multiple values, we need to create an OR condition
23
- */ const orCondition = (0, _or.orDuckdbCondition)();
24
- values.forEach((value)=>{
25
- orCondition.children.push((0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_GREATERTHAN, value, query.memberInfo));
26
- });
27
- return orCondition;
28
- };
29
-
30
- //# sourceMappingURL=gt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/gt/gt.ts"],"sourcesContent":["import { ExpressionType } from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { baseDuckdbCondition } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { orDuckdbCondition } from '../or/or';\n\nexport const gtTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values } = query;\n\n if (!values || values.length === 0) {\n throw new Error('GT filter must have at least one value');\n }\n\n /**\n * If there is only one value, we can create a simple equals condition\n */\n if (values.length === 1) {\n return baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_GREATERTHAN,\n values[0],\n query.memberInfo\n );\n }\n\n /**\n * If there are multiple values, we need to create an OR condition\n */\n const orCondition = orDuckdbCondition();\n values.forEach((value) => {\n orCondition.children.push(\n baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_GREATERTHAN,\n value,\n query.memberInfo\n )\n );\n });\n return orCondition;\n};\n"],"names":["gtTransform","query","member","values","length","Error","baseDuckdbCondition","ExpressionType","COMPARE_GREATERTHAN","memberInfo","orCondition","orDuckdbCondition","forEach","value","children","push"],"mappings":";+BAKaA;;;eAAAA;;;4BALkB;sCACK;oBAEF;AAE3B,MAAMA,cAA8C,CAACC;IAC1D,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF;IAE3B,IAAI,CAACE,UAAUA,OAAOC,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA;;GAEC,GACD,IAAIF,OAAOC,MAAM,KAAK,GAAG;QACvB,OAAOE,IAAAA,yCAAmB,EACxBJ,QACAK,0BAAc,CAACC,mBAAmB,EAClCL,MAAM,CAAC,EAAE,EACTF,MAAMQ,UAAU;IAEpB;IAEA;;GAEC,GACD,MAAMC,cAAcC,IAAAA,qBAAiB;IACrCR,OAAOS,OAAO,CAAC,CAACC;QACdH,YAAYI,QAAQ,CAACC,IAAI,CACvBT,IAAAA,yCAAmB,EACjBJ,QACAK,0BAAc,CAACC,mBAAmB,EAClCK,OACAZ,MAAMQ,UAAU;IAGtB;IACA,OAAOC;AACT"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "gteTransform", {
3
- enumerable: true,
4
- get: function() {
5
- return gteTransform;
6
- }
7
- });
8
- const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
9
- const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
10
- const _or = require("../or/or");
11
- const gteTransform = (query)=>{
12
- const { member, values } = query;
13
- if (!values || values.length === 0) {
14
- throw new Error('GTE filter must have at least one value');
15
- }
16
- /**
17
- * If there is only one value, we can create a simple equals condition
18
- */ if (values.length === 1) {
19
- return (0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_GREATERTHANOREQUALTO, values[0], query.memberInfo);
20
- }
21
- /**
22
- * If there are multiple values, we need to create an OR condition
23
- */ const orCondition = (0, _or.orDuckdbCondition)();
24
- values.forEach((value)=>{
25
- orCondition.children.push((0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_GREATERTHANOREQUALTO, value, query.memberInfo));
26
- });
27
- return orCondition;
28
- };
29
-
30
- //# sourceMappingURL=gte.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/gte/gte.ts"],"sourcesContent":["import { ExpressionType } from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { baseDuckdbCondition } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { orDuckdbCondition } from '../or/or';\n\nexport const gteTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values } = query;\n\n if (!values || values.length === 0) {\n throw new Error('GTE filter must have at least one value');\n }\n\n /**\n * If there is only one value, we can create a simple equals condition\n */\n if (values.length === 1) {\n return baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_GREATERTHANOREQUALTO,\n values[0],\n query.memberInfo\n );\n }\n\n /**\n * If there are multiple values, we need to create an OR condition\n */\n const orCondition = orDuckdbCondition();\n values.forEach((value) => {\n orCondition.children.push(\n baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_GREATERTHANOREQUALTO,\n value,\n query.memberInfo\n )\n );\n });\n return orCondition;\n};\n"],"names":["gteTransform","query","member","values","length","Error","baseDuckdbCondition","ExpressionType","COMPARE_GREATERTHANOREQUALTO","memberInfo","orCondition","orDuckdbCondition","forEach","value","children","push"],"mappings":";+BAKaA;;;eAAAA;;;4BALkB;sCACK;oBAEF;AAE3B,MAAMA,eAA+C,CAACC;IAC3D,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF;IAE3B,IAAI,CAACE,UAAUA,OAAOC,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA;;GAEC,GACD,IAAIF,OAAOC,MAAM,KAAK,GAAG;QACvB,OAAOE,IAAAA,yCAAmB,EACxBJ,QACAK,0BAAc,CAACC,4BAA4B,EAC3CL,MAAM,CAAC,EAAE,EACTF,MAAMQ,UAAU;IAEpB;IAEA;;GAEC,GACD,MAAMC,cAAcC,IAAAA,qBAAiB;IACrCR,OAAOS,OAAO,CAAC,CAACC;QACdH,YAAYI,QAAQ,CAACC,IAAI,CACvBT,IAAAA,yCAAmB,EACjBJ,QACAK,0BAAc,CAACC,4BAA4B,EAC3CK,OACAZ,MAAMQ,UAAU;IAGtB;IACA,OAAOC;AACT"}
@@ -1,78 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "inTransform", {
3
- enumerable: true,
4
- get: function() {
5
- return inTransform;
6
- }
7
- });
8
- const _constants = require("../../member-formatters/constants");
9
- const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
10
- const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
11
- const inDuckDbCondition = (columnName, values, memberInfo)=>{
12
- const sqlTreeValues = values.map((value)=>{
13
- return {
14
- class: _Expression.ExpressionClass.CONSTANT,
15
- type: _Expression.ExpressionType.VALUE_CONSTANT,
16
- alias: '',
17
- value: (0, _baseconditionbuilder.valueBuilder)(value, memberInfo)
18
- };
19
- });
20
- const columnRef = {
21
- class: 'COLUMN_REF',
22
- type: 'COLUMN_REF',
23
- alias: '',
24
- column_names: columnName.split(_constants.COLUMN_NAME_DELIMITER)
25
- };
26
- switch(memberInfo.type){
27
- case 'number_array':
28
- case 'string_array':
29
- {
30
- return {
31
- class: _Expression.ExpressionClass.FUNCTION,
32
- type: _Expression.ExpressionType.FUNCTION,
33
- alias: '',
34
- function_name: '&&',
35
- schema: '',
36
- children: [
37
- columnRef,
38
- {
39
- class: _Expression.ExpressionClass.OPERATOR,
40
- type: _Expression.ExpressionType.ARRAY_CONSTRUCTOR,
41
- alias: '',
42
- children: sqlTreeValues
43
- }
44
- ],
45
- filter: null,
46
- order_bys: {
47
- type: 'ORDER_MODIFIER',
48
- orders: []
49
- },
50
- distinct: false,
51
- is_operator: true,
52
- export_state: false,
53
- catalog: ''
54
- };
55
- }
56
- default:
57
- {
58
- return {
59
- class: _Expression.ExpressionClass.OPERATOR,
60
- type: _Expression.ExpressionType.COMPARE_IN,
61
- alias: '',
62
- children: [
63
- columnRef,
64
- ...sqlTreeValues
65
- ]
66
- };
67
- }
68
- }
69
- };
70
- const inTransform = (query)=>{
71
- const { member, values, memberInfo } = query;
72
- if (!values) {
73
- throw new Error('In filter must have at least one value');
74
- }
75
- return inDuckDbCondition(member, values, memberInfo);
76
- };
77
-
78
- //# sourceMappingURL=in.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/in/in.ts"],"sourcesContent":["import { COLUMN_NAME_DELIMITER } from '../../member-formatters/constants';\nimport { Dimension, Measure } from '../../types/cube-types/table';\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { valueBuilder } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\n\nconst inDuckDbCondition = (\n columnName: string,\n values: string[],\n memberInfo: Measure | Dimension\n) => {\n const sqlTreeValues = values.map((value) => {\n return {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n value: valueBuilder(value, memberInfo),\n };\n });\n const columnRef = {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n column_names: columnName.split(COLUMN_NAME_DELIMITER),\n };\n switch (memberInfo.type) {\n case 'number_array':\n case 'string_array': {\n return {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n function_name: '&&',\n schema: '',\n children: [\n columnRef,\n {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.ARRAY_CONSTRUCTOR,\n alias: '',\n children: sqlTreeValues,\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n };\n }\n default: {\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.COMPARE_IN,\n alias: '',\n children: [columnRef, ...sqlTreeValues],\n };\n }\n }\n};\n\nexport const inTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values, memberInfo } = query;\n if (!values) {\n throw new Error('In filter must have at least one value');\n }\n return inDuckDbCondition(member, values, memberInfo);\n};\n"],"names":["inTransform","inDuckDbCondition","columnName","values","memberInfo","sqlTreeValues","map","value","class","ExpressionClass","CONSTANT","type","ExpressionType","VALUE_CONSTANT","alias","valueBuilder","columnRef","column_names","split","COLUMN_NAME_DELIMITER","FUNCTION","function_name","schema","children","OPERATOR","ARRAY_CONSTRUCTOR","filter","order_bys","orders","distinct","is_operator","export_state","catalog","COMPARE_IN","query","member","Error"],"mappings":";+BAoEaA;;;eAAAA;;;2BApEyB;4BAK/B;sCACsB;AAG7B,MAAMC,oBAAoB,CACxBC,YACAC,QACAC;IAEA,MAAMC,gBAAgBF,OAAOG,GAAG,CAAC,CAACC;QAChC,OAAO;YACLC,OAAOC,2BAAe,CAACC,QAAQ;YAC/BC,MAAMC,0BAAc,CAACC,cAAc;YACnCC,OAAO;YACPP,OAAOQ,IAAAA,kCAAY,EAACR,OAAOH;QAC7B;IACF;IACA,MAAMY,YAAY;QAChBR,OAAO;QACPG,MAAM;QACNG,OAAO;QACPG,cAAcf,WAAWgB,KAAK,CAACC,gCAAqB;IACtD;IACA,OAAQf,WAAWO,IAAI;QACrB,KAAK;QACL,KAAK;YAAgB;gBACnB,OAAO;oBACLH,OAAOC,2BAAe,CAACW,QAAQ;oBAC/BT,MAAMC,0BAAc,CAACQ,QAAQ;oBAC7BN,OAAO;oBACPO,eAAe;oBACfC,QAAQ;oBACRC,UAAU;wBACRP;wBACA;4BACER,OAAOC,2BAAe,CAACe,QAAQ;4BAC/Bb,MAAMC,0BAAc,CAACa,iBAAiB;4BACtCX,OAAO;4BACPS,UAAUlB;wBACZ;qBACD;oBACDqB,QAAQ;oBACRC,WAAW;wBACThB,MAAM;wBACNiB,QAAQ,EAAE;oBACZ;oBACAC,UAAU;oBACVC,aAAa;oBACbC,cAAc;oBACdC,SAAS;gBACX;YACF;QACA;YAAS;gBACP,OAAO;oBACLxB,OAAOC,2BAAe,CAACe,QAAQ;oBAC/Bb,MAAMC,0BAAc,CAACqB,UAAU;oBAC/BnB,OAAO;oBACPS,UAAU;wBAACP;2BAAcX;qBAAc;gBACzC;YACF;IACF;AACF;AAEO,MAAML,cAA8C,CAACkC;IAC1D,MAAM,EAAEC,MAAM,EAAEhC,MAAM,EAAEC,UAAU,EAAE,GAAG8B;IACvC,IAAI,CAAC/B,QAAQ;QACX,MAAM,IAAIiC,MAAM;IAClB;IACA,OAAOnC,kBAAkBkC,QAAQhC,QAAQC;AAC3C"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "inDataRangeTransform", {
3
- enumerable: true,
4
- get: function() {
5
- return inDataRangeTransform;
6
- }
7
- });
8
- const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
9
- const _and = require("../and/and");
10
- const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
11
- const inDataRangeTransform = (query)=>{
12
- const { member, values } = query;
13
- if (!values || values.length === 0) {
14
- throw new Error('GT filter must have at least one value');
15
- }
16
- /**
17
- * If there are multiple values, we need to create an OR condition
18
- */ const andCondition = (0, _and.andDuckdbCondition)();
19
- andCondition.children.push((0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_GREATERTHANOREQUALTO, values[0], query.memberInfo));
20
- andCondition.children.push((0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_LESSTHANOREQUALTO, values[1], query.memberInfo));
21
- return andCondition;
22
- };
23
-
24
- //# sourceMappingURL=in-date-range.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/in-date-range/in-date-range.ts"],"sourcesContent":["import { ExpressionType } from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { andDuckdbCondition } from '../and/and';\nimport { baseDuckdbCondition } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\n\nexport const inDataRangeTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values } = query;\n\n if (!values || values.length === 0) {\n throw new Error('GT filter must have at least one value');\n }\n\n /**\n * If there are multiple values, we need to create an OR condition\n */\n const andCondition = andDuckdbCondition();\n\n andCondition.children.push(\n baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_GREATERTHANOREQUALTO,\n values[0],\n query.memberInfo\n )\n );\n\n andCondition.children.push(\n baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_LESSTHANOREQUALTO,\n values[1],\n query.memberInfo\n )\n );\n\n return andCondition;\n};\n"],"names":["inDataRangeTransform","query","member","values","length","Error","andCondition","andDuckdbCondition","children","push","baseDuckdbCondition","ExpressionType","COMPARE_GREATERTHANOREQUALTO","memberInfo","COMPARE_LESSTHANOREQUALTO"],"mappings":";+BAKaA;;;eAAAA;;;4BALkB;qBACI;sCACC;AAG7B,MAAMA,uBAAuD,CAACC;IACnE,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF;IAE3B,IAAI,CAACE,UAAUA,OAAOC,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA;;GAEC,GACD,MAAMC,eAAeC,IAAAA,uBAAkB;IAEvCD,aAAaE,QAAQ,CAACC,IAAI,CACxBC,IAAAA,yCAAmB,EACjBR,QACAS,0BAAc,CAACC,4BAA4B,EAC3CT,MAAM,CAAC,EAAE,EACTF,MAAMY,UAAU;IAIpBP,aAAaE,QAAQ,CAACC,IAAI,CACxBC,IAAAA,yCAAmB,EACjBR,QACAS,0BAAc,CAACG,yBAAyB,EACxCX,MAAM,CAAC,EAAE,EACTF,MAAMY,UAAU;IAIpB,OAAOP;AACT"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "ltTransform", {
3
- enumerable: true,
4
- get: function() {
5
- return ltTransform;
6
- }
7
- });
8
- const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
9
- const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
10
- const _or = require("../or/or");
11
- const ltTransform = (query)=>{
12
- const { member, values } = query;
13
- if (!values || values.length === 0) {
14
- throw new Error('lt filter must have at least one value');
15
- }
16
- /**
17
- * If there is only one value, we can create a simple equals condition
18
- */ if (values.length === 1) {
19
- return (0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_LESSTHAN, values[0], query.memberInfo);
20
- }
21
- /**
22
- * If there are multiple values, we need to create an OR condition
23
- */ const orCondition = (0, _or.orDuckdbCondition)();
24
- values.forEach((value)=>{
25
- orCondition.children.push((0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_LESSTHAN, value, query.memberInfo));
26
- });
27
- return orCondition;
28
- };
29
-
30
- //# sourceMappingURL=lt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/lt/lt.ts"],"sourcesContent":["import { ExpressionType } from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { baseDuckdbCondition } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { orDuckdbCondition } from '../or/or';\n\nexport const ltTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values } = query;\n\n if (!values || values.length === 0) {\n throw new Error('lt filter must have at least one value');\n }\n\n /**\n * If there is only one value, we can create a simple equals condition\n */\n if (values.length === 1) {\n return baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_LESSTHAN,\n values[0],\n query.memberInfo\n );\n }\n\n /**\n * If there are multiple values, we need to create an OR condition\n */\n const orCondition = orDuckdbCondition();\n values.forEach((value) => {\n orCondition.children.push(\n baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_LESSTHAN,\n value,\n query.memberInfo\n )\n );\n });\n return orCondition;\n};\n"],"names":["ltTransform","query","member","values","length","Error","baseDuckdbCondition","ExpressionType","COMPARE_LESSTHAN","memberInfo","orCondition","orDuckdbCondition","forEach","value","children","push"],"mappings":";+BAKaA;;;eAAAA;;;4BALkB;sCACK;oBAEF;AAE3B,MAAMA,cAA8C,CAACC;IAC1D,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF;IAE3B,IAAI,CAACE,UAAUA,OAAOC,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA;;GAEC,GACD,IAAIF,OAAOC,MAAM,KAAK,GAAG;QACvB,OAAOE,IAAAA,yCAAmB,EACxBJ,QACAK,0BAAc,CAACC,gBAAgB,EAC/BL,MAAM,CAAC,EAAE,EACTF,MAAMQ,UAAU;IAEpB;IAEA;;GAEC,GACD,MAAMC,cAAcC,IAAAA,qBAAiB;IACrCR,OAAOS,OAAO,CAAC,CAACC;QACdH,YAAYI,QAAQ,CAACC,IAAI,CACvBT,IAAAA,yCAAmB,EACjBJ,QACAK,0BAAc,CAACC,gBAAgB,EAC/BK,OACAZ,MAAMQ,UAAU;IAGtB;IACA,OAAOC;AACT"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "lteTransform", {
3
- enumerable: true,
4
- get: function() {
5
- return lteTransform;
6
- }
7
- });
8
- const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
9
- const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
10
- const _or = require("../or/or");
11
- const lteTransform = (query)=>{
12
- const { member, values } = query;
13
- if (!values || values.length === 0) {
14
- throw new Error('lte filter must have at least one value');
15
- }
16
- /**
17
- * If there is only one value, we can create a simple equals condition
18
- */ if (values.length === 1) {
19
- return (0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_LESSTHANOREQUALTO, values[0], query.memberInfo);
20
- }
21
- /**
22
- * If there are multiple values, we need to create an OR condition
23
- */ const orCondition = (0, _or.orDuckdbCondition)();
24
- values.forEach((value)=>{
25
- orCondition.children.push((0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_LESSTHANOREQUALTO, value, query.memberInfo));
26
- });
27
- return orCondition;
28
- };
29
-
30
- //# sourceMappingURL=lte.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/lte/lte.ts"],"sourcesContent":["import { ExpressionType } from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { baseDuckdbCondition } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { orDuckdbCondition } from '../or/or';\n\nexport const lteTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values } = query;\n\n if (!values || values.length === 0) {\n throw new Error('lte filter must have at least one value');\n }\n\n /**\n * If there is only one value, we can create a simple equals condition\n */\n if (values.length === 1) {\n return baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_LESSTHANOREQUALTO,\n values[0],\n query.memberInfo\n );\n }\n\n /**\n * If there are multiple values, we need to create an OR condition\n */\n const orCondition = orDuckdbCondition();\n values.forEach((value) => {\n orCondition.children.push(\n baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_LESSTHANOREQUALTO,\n value,\n query.memberInfo\n )\n );\n });\n return orCondition;\n};\n"],"names":["lteTransform","query","member","values","length","Error","baseDuckdbCondition","ExpressionType","COMPARE_LESSTHANOREQUALTO","memberInfo","orCondition","orDuckdbCondition","forEach","value","children","push"],"mappings":";+BAKaA;;;eAAAA;;;4BALkB;sCACK;oBAEF;AAE3B,MAAMA,eAA+C,CAACC;IAC3D,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF;IAE3B,IAAI,CAACE,UAAUA,OAAOC,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA;;GAEC,GACD,IAAIF,OAAOC,MAAM,KAAK,GAAG;QACvB,OAAOE,IAAAA,yCAAmB,EACxBJ,QACAK,0BAAc,CAACC,yBAAyB,EACxCL,MAAM,CAAC,EAAE,EACTF,MAAMQ,UAAU;IAEpB;IAEA;;GAEC,GACD,MAAMC,cAAcC,IAAAA,qBAAiB;IACrCR,OAAOS,OAAO,CAAC,CAACC;QACdH,YAAYI,QAAQ,CAACC,IAAI,CACvBT,IAAAA,yCAAmB,EACjBJ,QACAK,0BAAc,CAACC,yBAAyB,EACxCK,OACAZ,MAAMQ,UAAU;IAGtB;IACA,OAAOC;AACT"}