@devrev/meerkat-core 0.0.92 → 0.0.94

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 (298) hide show
  1. package/ast-builder/ast-builder.js.map +1 -0
  2. package/ast-deserializer/ast-deserializer.js.map +1 -0
  3. package/ast-serializer/ast-serializer.js.map +1 -0
  4. package/{src/ast-validator → ast-validator}/dimension-validator.js +3 -3
  5. package/ast-validator/dimension-validator.js.map +1 -0
  6. package/{src/ast-validator → ast-validator}/index.js +3 -3
  7. package/ast-validator/index.js.map +1 -0
  8. package/{src/ast-validator → ast-validator}/measure-validator.js +3 -3
  9. package/ast-validator/measure-validator.js.map +1 -0
  10. package/{src/ast-validator → ast-validator}/tests/test-data.js +9 -9
  11. package/ast-validator/tests/test-data.js.map +1 -0
  12. package/ast-validator/types.js.map +1 -0
  13. package/ast-validator/utils.js.map +1 -0
  14. package/{src/context-params → context-params}/context-params-ast.js +3 -3
  15. package/context-params/context-params-ast.js.map +1 -0
  16. package/cube-filter-transformer/and/and.js.map +1 -0
  17. package/{src/cube-filter-transformer → cube-filter-transformer}/base-condition-builder/base-condition-builder.js +3 -3
  18. package/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +1 -0
  19. package/cube-filter-transformer/contains/contains.js.map +1 -0
  20. package/cube-filter-transformer/equals/equals-array.js +77 -0
  21. package/cube-filter-transformer/equals/equals-array.js.map +1 -0
  22. package/{src/cube-filter-transformer → cube-filter-transformer}/equals/equals.js +5 -5
  23. package/cube-filter-transformer/equals/equals.js.map +1 -0
  24. package/cube-filter-transformer/factory.js.map +1 -0
  25. package/cube-filter-transformer/gt/gt.js.map +1 -0
  26. package/cube-filter-transformer/gte/gte.js.map +1 -0
  27. package/cube-filter-transformer/in/in.js.map +1 -0
  28. package/cube-filter-transformer/in-date-range/in-date-range.js.map +1 -0
  29. package/cube-filter-transformer/lt/lt.js.map +1 -0
  30. package/cube-filter-transformer/lte/lte.js.map +1 -0
  31. package/cube-filter-transformer/not/not.js.map +1 -0
  32. package/cube-filter-transformer/not-In-date-range/not-In-date-range.js.map +1 -0
  33. package/cube-filter-transformer/not-contains/not-contains.js.map +1 -0
  34. package/cube-filter-transformer/not-equals/not-equals-array.js.map +1 -0
  35. package/cube-filter-transformer/not-equals/not-equals.js.map +1 -0
  36. package/cube-filter-transformer/not-in/not-in.js.map +1 -0
  37. package/cube-filter-transformer/not-set/not-set.js.map +1 -0
  38. package/cube-filter-transformer/or/or.js.map +1 -0
  39. package/cube-filter-transformer/set/set.js.map +1 -0
  40. package/cube-group-by-transformer/cube-group-by-transformer.js.map +1 -0
  41. package/cube-limit-offset-transformer/cube-limit-offset-transformer.js.map +1 -0
  42. package/{src/cube-measure-transformer → cube-measure-transformer}/cube-measure-transformer.js +5 -5
  43. package/cube-measure-transformer/cube-measure-transformer.js.map +1 -0
  44. package/cube-order-by-transformer/cube-order-by-transformer.js.map +1 -0
  45. package/cube-to-duckdb/cube-filter-to-duckdb.js.map +1 -0
  46. package/{src/filter-params → filter-params}/filter-params-ast.js +7 -7
  47. package/filter-params/filter-params-ast.js.map +1 -0
  48. package/get-filter-params-sql/get-filter-params-sql.js.map +1 -0
  49. package/get-final-base-sql/get-final-base-sql.js.map +1 -0
  50. package/{src/get-wrapped-base-query-with-projections → get-wrapped-base-query-with-projections}/get-aliased-columns-from-filters.js +3 -3
  51. package/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js.map +1 -0
  52. package/get-wrapped-base-query-with-projections/get-projection-clause.js.map +1 -0
  53. package/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js.map +1 -0
  54. package/{src/get-wrapped-base-query-with-projections → get-wrapped-base-query-with-projections}/sql-expression-modifiers.js +6 -6
  55. package/get-wrapped-base-query-with-projections/sql-expression-modifiers.js.map +1 -0
  56. package/{src/index.js → index.js} +8 -8
  57. package/index.js.map +1 -0
  58. package/{src/joins → joins}/joins.js +4 -4
  59. package/joins/joins.js.map +1 -0
  60. package/member-formatters/constants.js.map +1 -0
  61. package/member-formatters/index.js.map +1 -0
  62. package/member-formatters/member-key-to-safe-key.js.map +1 -0
  63. package/member-formatters/split-into-data-source-and-fields.js.map +1 -0
  64. package/package.json +4 -3
  65. package/types/cube-types/index.d.js.map +1 -0
  66. package/types/cube-types/index.js.map +1 -0
  67. package/types/cube-types/query.d.js.map +1 -0
  68. package/types/cube-types/query.js.map +1 -0
  69. package/types/cube-types/table.d.js.map +1 -0
  70. package/types/cube-types/table.js.map +1 -0
  71. package/types/duckdb-serialization-types/index.d.js.map +1 -0
  72. package/types/duckdb-serialization-types/index.js.map +1 -0
  73. package/types/duckdb-serialization-types/serialization/Constraint.js.map +1 -0
  74. package/{src/types → types}/duckdb-serialization-types/serialization/CreateInfo.js +9 -9
  75. package/types/duckdb-serialization-types/serialization/CreateInfo.js.map +1 -0
  76. package/types/duckdb-serialization-types/serialization/Expression.d.js.map +1 -0
  77. package/{src/types → types}/duckdb-serialization-types/serialization/Expression.js +3 -3
  78. package/types/duckdb-serialization-types/serialization/Expression.js.map +1 -0
  79. package/{src/types → types}/duckdb-serialization-types/serialization/LogicalOperator.js +3 -3
  80. package/types/duckdb-serialization-types/serialization/LogicalOperator.js.map +1 -0
  81. package/types/duckdb-serialization-types/serialization/MacroFunction.js.map +1 -0
  82. package/types/duckdb-serialization-types/serialization/Misc.d.js.map +1 -0
  83. package/types/duckdb-serialization-types/serialization/Misc.js.map +1 -0
  84. package/types/duckdb-serialization-types/serialization/Nodes.d.js +3 -0
  85. package/types/duckdb-serialization-types/serialization/Nodes.d.js.map +1 -0
  86. package/{src/types → types}/duckdb-serialization-types/serialization/Nodes.js +7 -7
  87. package/types/duckdb-serialization-types/serialization/Nodes.js.map +1 -0
  88. package/{src/types → types}/duckdb-serialization-types/serialization/ParseInfo.js +14 -14
  89. package/types/duckdb-serialization-types/serialization/ParseInfo.js.map +1 -0
  90. package/types/duckdb-serialization-types/serialization/ParsedExpression.d.js.map +1 -0
  91. package/types/duckdb-serialization-types/serialization/ParsedExpression.js.map +1 -0
  92. package/types/duckdb-serialization-types/serialization/QueryNode.d.js.map +1 -0
  93. package/{src/types → types}/duckdb-serialization-types/serialization/QueryNode.js +3 -3
  94. package/types/duckdb-serialization-types/serialization/QueryNode.js.map +1 -0
  95. package/types/duckdb-serialization-types/serialization/ResultModifier.d.js.map +1 -0
  96. package/types/duckdb-serialization-types/serialization/ResultModifier.js.map +1 -0
  97. package/types/duckdb-serialization-types/serialization/Statement.d.js.map +1 -0
  98. package/types/duckdb-serialization-types/serialization/Statement.js.map +1 -0
  99. package/types/duckdb-serialization-types/serialization/TableFilter.d.js.map +1 -0
  100. package/types/duckdb-serialization-types/serialization/TableFilter.js.map +1 -0
  101. package/types/duckdb-serialization-types/serialization/TableRef.d.js.map +1 -0
  102. package/{src/types → types}/duckdb-serialization-types/serialization/TableRef.js +4 -4
  103. package/types/duckdb-serialization-types/serialization/TableRef.js.map +1 -0
  104. package/types/duckdb-serialization-types/serialization/Types.d.js.map +1 -0
  105. package/types/duckdb-serialization-types/serialization/Types.js.map +1 -0
  106. package/types/duckdb-serialization-types/serialization/example.js.map +1 -0
  107. package/{src/types → types}/utils.js +9 -9
  108. package/types/utils.js.map +1 -0
  109. package/{src/utils → utils}/__fixtures__/joins.fixtures.js +16 -16
  110. package/utils/__fixtures__/joins.fixtures.js.map +1 -0
  111. package/utils/base-ast.js.map +1 -0
  112. package/{src/utils → utils}/cube-filter-enrichment.js +3 -3
  113. package/utils/cube-filter-enrichment.js.map +1 -0
  114. package/utils/cube-to-table-schema.js +104 -0
  115. package/utils/cube-to-table-schema.js.map +1 -0
  116. package/utils/cube-type-to-duckdb-type.js.map +1 -0
  117. package/utils/find-in-table-schema.js.map +1 -0
  118. package/utils/get-column-names-from-ast.js.map +1 -0
  119. package/utils/get-possible-nodes.js.map +1 -0
  120. package/{src/utils → utils}/get-type-info.js +3 -3
  121. package/utils/get-type-info.js.map +1 -0
  122. package/utils/is-array-member-type.js.map +1 -0
  123. package/utils/key-from-measures-dimension.js.map +1 -0
  124. package/utils/meerkat-placeholder-replacer.js.map +1 -0
  125. package/utils/modify-meerkat-filter.js.map +1 -0
  126. package/{src/utils → utils}/type-guards.js +8 -8
  127. package/utils/type-guards.js.map +1 -0
  128. package/src/ast-builder/ast-builder.js.map +0 -1
  129. package/src/ast-deserializer/ast-deserializer.js.map +0 -1
  130. package/src/ast-serializer/ast-serializer.js.map +0 -1
  131. package/src/ast-validator/dimension-validator.js.map +0 -1
  132. package/src/ast-validator/index.js.map +0 -1
  133. package/src/ast-validator/measure-validator.js.map +0 -1
  134. package/src/ast-validator/tests/test-data.js.map +0 -1
  135. package/src/ast-validator/types.js.map +0 -1
  136. package/src/ast-validator/utils.js.map +0 -1
  137. package/src/context-params/context-params-ast.js.map +0 -1
  138. package/src/cube-filter-transformer/and/and.js.map +0 -1
  139. package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +0 -1
  140. package/src/cube-filter-transformer/contains/contains.js.map +0 -1
  141. package/src/cube-filter-transformer/equals/equals-array.js +0 -30
  142. package/src/cube-filter-transformer/equals/equals-array.js.map +0 -1
  143. package/src/cube-filter-transformer/equals/equals.js.map +0 -1
  144. package/src/cube-filter-transformer/factory.js.map +0 -1
  145. package/src/cube-filter-transformer/gt/gt.js.map +0 -1
  146. package/src/cube-filter-transformer/gte/gte.js.map +0 -1
  147. package/src/cube-filter-transformer/in/in.js.map +0 -1
  148. package/src/cube-filter-transformer/in-date-range/in-date-range.js.map +0 -1
  149. package/src/cube-filter-transformer/lt/lt.js.map +0 -1
  150. package/src/cube-filter-transformer/lte/lte.js.map +0 -1
  151. package/src/cube-filter-transformer/not/not.js.map +0 -1
  152. package/src/cube-filter-transformer/not-In-date-range/not-In-date-range.js.map +0 -1
  153. package/src/cube-filter-transformer/not-contains/not-contains.js.map +0 -1
  154. package/src/cube-filter-transformer/not-equals/not-equals-array.js.map +0 -1
  155. package/src/cube-filter-transformer/not-equals/not-equals.js.map +0 -1
  156. package/src/cube-filter-transformer/not-in/not-in.js.map +0 -1
  157. package/src/cube-filter-transformer/not-set/not-set.js.map +0 -1
  158. package/src/cube-filter-transformer/or/or.js.map +0 -1
  159. package/src/cube-filter-transformer/set/set.js.map +0 -1
  160. package/src/cube-group-by-transformer/cube-group-by-transformer.js.map +0 -1
  161. package/src/cube-limit-offset-transformer/cube-limit-offset-transformer.js.map +0 -1
  162. package/src/cube-measure-transformer/cube-measure-transformer.js.map +0 -1
  163. package/src/cube-order-by-transformer/cube-order-by-transformer.js.map +0 -1
  164. package/src/cube-to-duckdb/cube-filter-to-duckdb.js.map +0 -1
  165. package/src/filter-params/filter-params-ast.js.map +0 -1
  166. package/src/get-filter-params-sql/get-filter-params-sql.js.map +0 -1
  167. package/src/get-final-base-sql/get-final-base-sql.js.map +0 -1
  168. package/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js.map +0 -1
  169. package/src/get-wrapped-base-query-with-projections/get-projection-clause.js.map +0 -1
  170. package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js.map +0 -1
  171. package/src/get-wrapped-base-query-with-projections/sql-expression-modifiers.js.map +0 -1
  172. package/src/index.js.map +0 -1
  173. package/src/joins/joins.js.map +0 -1
  174. package/src/member-formatters/constants.js.map +0 -1
  175. package/src/member-formatters/index.js.map +0 -1
  176. package/src/member-formatters/member-key-to-safe-key.js.map +0 -1
  177. package/src/member-formatters/split-into-data-source-and-fields.js.map +0 -1
  178. package/src/types/cube-types/index.d.js.map +0 -1
  179. package/src/types/cube-types/index.js.map +0 -1
  180. package/src/types/cube-types/query.d.js.map +0 -1
  181. package/src/types/cube-types/query.js.map +0 -1
  182. package/src/types/cube-types/table.d.js.map +0 -1
  183. package/src/types/cube-types/table.js.map +0 -1
  184. package/src/types/duckdb-serialization-types/index.d.js.map +0 -1
  185. package/src/types/duckdb-serialization-types/index.js.map +0 -1
  186. package/src/types/duckdb-serialization-types/serialization/Constraint.js.map +0 -1
  187. package/src/types/duckdb-serialization-types/serialization/CreateInfo.js.map +0 -1
  188. package/src/types/duckdb-serialization-types/serialization/Expression.d.js.map +0 -1
  189. package/src/types/duckdb-serialization-types/serialization/Expression.js.map +0 -1
  190. package/src/types/duckdb-serialization-types/serialization/LogicalOperator.js.map +0 -1
  191. package/src/types/duckdb-serialization-types/serialization/MacroFunction.js.map +0 -1
  192. package/src/types/duckdb-serialization-types/serialization/Misc.d.js.map +0 -1
  193. package/src/types/duckdb-serialization-types/serialization/Misc.js.map +0 -1
  194. package/src/types/duckdb-serialization-types/serialization/Nodes.d.js +0 -10
  195. package/src/types/duckdb-serialization-types/serialization/Nodes.d.js.map +0 -1
  196. package/src/types/duckdb-serialization-types/serialization/Nodes.js.map +0 -1
  197. package/src/types/duckdb-serialization-types/serialization/ParseInfo.js.map +0 -1
  198. package/src/types/duckdb-serialization-types/serialization/ParsedExpression.d.js.map +0 -1
  199. package/src/types/duckdb-serialization-types/serialization/ParsedExpression.js.map +0 -1
  200. package/src/types/duckdb-serialization-types/serialization/QueryNode.d.js.map +0 -1
  201. package/src/types/duckdb-serialization-types/serialization/QueryNode.js.map +0 -1
  202. package/src/types/duckdb-serialization-types/serialization/ResultModifier.d.js.map +0 -1
  203. package/src/types/duckdb-serialization-types/serialization/ResultModifier.js.map +0 -1
  204. package/src/types/duckdb-serialization-types/serialization/Statement.d.js.map +0 -1
  205. package/src/types/duckdb-serialization-types/serialization/Statement.js.map +0 -1
  206. package/src/types/duckdb-serialization-types/serialization/TableFilter.d.js.map +0 -1
  207. package/src/types/duckdb-serialization-types/serialization/TableFilter.js.map +0 -1
  208. package/src/types/duckdb-serialization-types/serialization/TableRef.d.js.map +0 -1
  209. package/src/types/duckdb-serialization-types/serialization/TableRef.js.map +0 -1
  210. package/src/types/duckdb-serialization-types/serialization/Types.d.js.map +0 -1
  211. package/src/types/duckdb-serialization-types/serialization/Types.js.map +0 -1
  212. package/src/types/duckdb-serialization-types/serialization/example.js.map +0 -1
  213. package/src/types/utils.js.map +0 -1
  214. package/src/utils/__fixtures__/joins.fixtures.js.map +0 -1
  215. package/src/utils/base-ast.js.map +0 -1
  216. package/src/utils/cube-filter-enrichment.js.map +0 -1
  217. package/src/utils/cube-to-table-schema.js +0 -104
  218. package/src/utils/cube-to-table-schema.js.map +0 -1
  219. package/src/utils/cube-type-to-duckdb-type.js.map +0 -1
  220. package/src/utils/find-in-table-schema.js.map +0 -1
  221. package/src/utils/get-column-names-from-ast.js.map +0 -1
  222. package/src/utils/get-possible-nodes.js.map +0 -1
  223. package/src/utils/get-type-info.js.map +0 -1
  224. package/src/utils/is-array-member-type.js.map +0 -1
  225. package/src/utils/key-from-measures-dimension.js.map +0 -1
  226. package/src/utils/meerkat-placeholder-replacer.js.map +0 -1
  227. package/src/utils/modify-meerkat-filter.js.map +0 -1
  228. package/src/utils/type-guards.js.map +0 -1
  229. /package/{src/ast-builder → ast-builder}/ast-builder.js +0 -0
  230. /package/{src/ast-deserializer → ast-deserializer}/ast-deserializer.js +0 -0
  231. /package/{src/ast-serializer → ast-serializer}/ast-serializer.js +0 -0
  232. /package/{src/ast-validator → ast-validator}/types.js +0 -0
  233. /package/{src/ast-validator → ast-validator}/utils.js +0 -0
  234. /package/{src/cube-filter-transformer → cube-filter-transformer}/and/and.js +0 -0
  235. /package/{src/cube-filter-transformer → cube-filter-transformer}/contains/contains.js +0 -0
  236. /package/{src/cube-filter-transformer → cube-filter-transformer}/factory.js +0 -0
  237. /package/{src/cube-filter-transformer → cube-filter-transformer}/gt/gt.js +0 -0
  238. /package/{src/cube-filter-transformer → cube-filter-transformer}/gte/gte.js +0 -0
  239. /package/{src/cube-filter-transformer → cube-filter-transformer}/in/in.js +0 -0
  240. /package/{src/cube-filter-transformer → cube-filter-transformer}/in-date-range/in-date-range.js +0 -0
  241. /package/{src/cube-filter-transformer → cube-filter-transformer}/lt/lt.js +0 -0
  242. /package/{src/cube-filter-transformer → cube-filter-transformer}/lte/lte.js +0 -0
  243. /package/{src/cube-filter-transformer → cube-filter-transformer}/not/not.js +0 -0
  244. /package/{src/cube-filter-transformer → cube-filter-transformer}/not-In-date-range/not-In-date-range.js +0 -0
  245. /package/{src/cube-filter-transformer → cube-filter-transformer}/not-contains/not-contains.js +0 -0
  246. /package/{src/cube-filter-transformer → cube-filter-transformer}/not-equals/not-equals-array.js +0 -0
  247. /package/{src/cube-filter-transformer → cube-filter-transformer}/not-equals/not-equals.js +0 -0
  248. /package/{src/cube-filter-transformer → cube-filter-transformer}/not-in/not-in.js +0 -0
  249. /package/{src/cube-filter-transformer → cube-filter-transformer}/not-set/not-set.js +0 -0
  250. /package/{src/cube-filter-transformer → cube-filter-transformer}/or/or.js +0 -0
  251. /package/{src/cube-filter-transformer → cube-filter-transformer}/set/set.js +0 -0
  252. /package/{src/cube-group-by-transformer → cube-group-by-transformer}/cube-group-by-transformer.js +0 -0
  253. /package/{src/cube-limit-offset-transformer → cube-limit-offset-transformer}/cube-limit-offset-transformer.js +0 -0
  254. /package/{src/cube-order-by-transformer → cube-order-by-transformer}/cube-order-by-transformer.js +0 -0
  255. /package/{src/cube-to-duckdb → cube-to-duckdb}/cube-filter-to-duckdb.js +0 -0
  256. /package/{src/get-filter-params-sql → get-filter-params-sql}/get-filter-params-sql.js +0 -0
  257. /package/{src/get-final-base-sql → get-final-base-sql}/get-final-base-sql.js +0 -0
  258. /package/{src/get-wrapped-base-query-with-projections → get-wrapped-base-query-with-projections}/get-projection-clause.js +0 -0
  259. /package/{src/get-wrapped-base-query-with-projections → get-wrapped-base-query-with-projections}/get-wrapped-base-query-with-projections.js +0 -0
  260. /package/{src/member-formatters → member-formatters}/constants.js +0 -0
  261. /package/{src/member-formatters → member-formatters}/index.js +0 -0
  262. /package/{src/member-formatters → member-formatters}/member-key-to-safe-key.js +0 -0
  263. /package/{src/member-formatters → member-formatters}/split-into-data-source-and-fields.js +0 -0
  264. /package/{src/types → types}/cube-types/index.d.js +0 -0
  265. /package/{src/types → types}/cube-types/index.js +0 -0
  266. /package/{src/types → types}/cube-types/query.d.js +0 -0
  267. /package/{src/types → types}/cube-types/query.js +0 -0
  268. /package/{src/types → types}/cube-types/table.d.js +0 -0
  269. /package/{src/types → types}/cube-types/table.js +0 -0
  270. /package/{src/types → types}/duckdb-serialization-types/index.d.js +0 -0
  271. /package/{src/types → types}/duckdb-serialization-types/index.js +0 -0
  272. /package/{src/types → types}/duckdb-serialization-types/serialization/Constraint.js +0 -0
  273. /package/{src/types → types}/duckdb-serialization-types/serialization/Expression.d.js +0 -0
  274. /package/{src/types → types}/duckdb-serialization-types/serialization/MacroFunction.js +0 -0
  275. /package/{src/types → types}/duckdb-serialization-types/serialization/Misc.d.js +0 -0
  276. /package/{src/types → types}/duckdb-serialization-types/serialization/Misc.js +0 -0
  277. /package/{src/types → types}/duckdb-serialization-types/serialization/ParsedExpression.d.js +0 -0
  278. /package/{src/types → types}/duckdb-serialization-types/serialization/ParsedExpression.js +0 -0
  279. /package/{src/types → types}/duckdb-serialization-types/serialization/QueryNode.d.js +0 -0
  280. /package/{src/types → types}/duckdb-serialization-types/serialization/ResultModifier.d.js +0 -0
  281. /package/{src/types → types}/duckdb-serialization-types/serialization/ResultModifier.js +0 -0
  282. /package/{src/types → types}/duckdb-serialization-types/serialization/Statement.d.js +0 -0
  283. /package/{src/types → types}/duckdb-serialization-types/serialization/Statement.js +0 -0
  284. /package/{src/types → types}/duckdb-serialization-types/serialization/TableFilter.d.js +0 -0
  285. /package/{src/types → types}/duckdb-serialization-types/serialization/TableFilter.js +0 -0
  286. /package/{src/types → types}/duckdb-serialization-types/serialization/TableRef.d.js +0 -0
  287. /package/{src/types → types}/duckdb-serialization-types/serialization/Types.d.js +0 -0
  288. /package/{src/types → types}/duckdb-serialization-types/serialization/Types.js +0 -0
  289. /package/{src/types → types}/duckdb-serialization-types/serialization/example.js +0 -0
  290. /package/{src/utils → utils}/base-ast.js +0 -0
  291. /package/{src/utils → utils}/cube-type-to-duckdb-type.js +0 -0
  292. /package/{src/utils → utils}/find-in-table-schema.js +0 -0
  293. /package/{src/utils → utils}/get-column-names-from-ast.js +0 -0
  294. /package/{src/utils → utils}/get-possible-nodes.js +0 -0
  295. /package/{src/utils → utils}/is-array-member-type.js +0 -0
  296. /package/{src/utils → utils}/key-from-measures-dimension.js +0 -0
  297. /package/{src/utils → utils}/meerkat-placeholder-replacer.js +0 -0
  298. /package/{src/utils → utils}/modify-meerkat-filter.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/ast-validator/tests/test-data.ts"],"sourcesContent":["import {\n ExpressionType,\n ParsedExpression,\n ResultModifierType,\n} from '../../types/duckdb-serialization-types';\nimport { ExpressionClass } from '../../types/duckdb-serialization-types/serialization/Expression';\n\nexport const EMPTY_VALID_FUNCTIONS = new Set<string>();\nexport const VALID_FUNCTIONS = new Set(['contains', 'round', 'power']);\n\nexport const COLUMN_REF_NODE: ParsedExpression = {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: 'alias',\n query_location: 0,\n column_names: ['column_name'],\n};\n\nexport const INVALID_NODE: ParsedExpression = {\n class: ExpressionClass.INVALID,\n type: ExpressionType.INVALID,\n alias: '',\n query_location: 0,\n};\n\nexport const DIMENSION_TEST_CASES = [\n {\n description: 'node type COLUMN_REF',\n node: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 0,\n column_names: ['column_name'],\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column_name'],\n expected: true,\n },\n {\n description: 'node type COLUMN_REF with alias',\n node: COLUMN_REF_NODE,\n validFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column_name'],\n expected: true,\n },\n {\n description: 'node type VALUE_CONSTANT',\n node: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 0,\n value: '1',\n },\n columnNames: [],\n validFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n {\n description: 'node type OPERATOR_CAST',\n node: {\n class: ExpressionClass.CAST,\n type: ExpressionType.OPERATOR_CAST,\n alias: '',\n query_location: 7,\n child: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 12,\n column_names: ['column_name1'],\n },\n cast_type: {\n id: 1,\n },\n try_cast: false,\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column_name1'],\n expected: true,\n },\n {\n description: 'node type OPERATOR_COALESCE',\n node: {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_COALESCE,\n alias: '',\n query_location: 18446744073709552000,\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 16,\n column_names: ['column_name2'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 38,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n ],\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column_name2'],\n expected: true,\n },\n {\n description:\n 'node type FUNCTION with ROUND function and if it contains in validFunctions',\n columnNames: ['schema.column_name'],\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'round',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 13,\n column_names: ['schema', 'column_name'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 41,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1,\n },\n },\n ],\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 },\n validFunctions: VALID_FUNCTIONS,\n expected: true,\n },\n {\n description: 'node type CASE',\n columnNames: ['actual_close_date1', 'actual_close_date', 'created_date'],\n node: {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 7,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_GREATERTHAN,\n alias: '',\n query_location: 35,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 17,\n column_names: ['actual_close_date'],\n },\n right: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 37,\n column_names: ['created_date'],\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 55,\n column_names: ['actual_close_date1'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n validFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n];\n\nexport const MEASURE_TEST_CASES = [\n {\n description: 'node type FUNCTION with count_star',\n query: 'count_star()',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'count_star',\n schema: '',\n children: [],\n },\n validFunctions: new Set(['count_star']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: [],\n expected: true,\n },\n {\n description: 'node type FUNCTION with SUM',\n query: 'sum(column1)',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n query_location: 11,\n column_names: ['column1'],\n },\n ],\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 },\n validFunctions: new Set(['sum']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n columnNames: ['column1'],\n expected: true,\n },\n {\n description: 'node type FUNCTION with SUM and invalid function type',\n query: 'sum(column1)',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n query_location: 11,\n column_names: ['column1'],\n },\n ],\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 },\n validFunctions: new Set(['min']),\n validScalarFunctions: new Set(['/']),\n error: 'Invalid function type: sum',\n expected: 'error',\n columnNames: ['column1'],\n },\n {\n description: 'node type FUNCTION with MAX and operator',\n columnNames: ['column1'],\n query: 'max(column1) / 1000',\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 38,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'max',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 11,\n column_names: ['column1'],\n },\n ],\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 class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 40,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1000,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n validFunctions: new Set(['max']),\n validScalarFunctions: new Set(['/']),\n expected: true,\n },\n {\n description: 'node type CASE_EXPR',\n query: 'CASE WHEN COUNT(id) > 1 THEN AVG(mtbf_hours) ELSE null END',\n columnNames: ['mtbf_hours', 'id'],\n node: {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 7,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_GREATERTHAN,\n alias: '',\n query_location: 27,\n left: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 17,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 23,\n column_names: ['id'],\n },\n ],\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 right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 29,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1,\n },\n },\n },\n then_expr: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 36,\n function_name: 'avg',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 40,\n column_names: ['mtbf_hours'],\n },\n ],\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 ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 57,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n validFunctions: new Set(['count', 'avg']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n },\n {\n description:\n 'node type FUNCTION with aggregation and case statement within',\n columnNames: ['modified_date', 'stage_json'],\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'max',\n schema: '',\n children: [\n {\n class: 'CASE',\n type: 'CASE_EXPR',\n alias: '',\n query_location: 11,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 43,\n left: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 32,\n function_name: '->>',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 21,\n column_names: ['stage_json'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 36,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'name',\n },\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 right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 45,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'Tech Doc Inprogress',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 72,\n column_names: ['modified_date'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 91,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n validFunctions: new Set(['max']),\n validScalarFunctions: EMPTY_VALID_FUNCTIONS,\n expected: true,\n query:\n 'max(CASE WHEN stage_json->>name = \"Tech\" THEN modified_date ELSE NULL END)',\n },\n {\n description:\n 'node type FUNCTION two children of aggregation and operator operation on them',\n columnNames: ['mean_reciprocal_rank', 'total_queries'],\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 49,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 7,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 32,\n function_name: '*',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 11,\n column_names: ['mean_reciprocal_rank'],\n },\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 34,\n column_names: ['total_queries'],\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 filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 51,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 55,\n column_names: ['total_queries'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\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 validFunctions: new Set(['sum']),\n validScalarFunctions: new Set(['/', '*']),\n expected: true,\n query: 'sum(mean_reciprocal_rank * total_queries) / sum(total_queries)',\n },\n {\n description: 'node type CAST',\n query:\n \"CAST(COUNT(DISTINCT(id)) AS FLOAT) / NULLIF(DATEDIFF('day', MIN(created_date), MAX(created_date)) / 7 + 1, 0)\",\n columnNames: ['id', 'created_date', 'created_date1'],\n node: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 42,\n function_name: '/',\n schema: '',\n children: [\n {\n class: 'CAST',\n type: 'OPERATOR_CAST',\n alias: '',\n query_location: 7,\n child: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 12,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 27,\n column_names: ['id'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n cast_type: {\n id: 'FLOAT',\n type_info: null,\n },\n try_cast: false,\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 44,\n function_name: 'nullif',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 109,\n function_name: '+',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 105,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 51,\n function_name: 'datediff',\n schema: '',\n children: [\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 60,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'day',\n },\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 67,\n function_name: 'min',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 71,\n column_names: ['created_date'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 86,\n function_name: 'max',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 90,\n column_names: ['created_date1'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 107,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 7,\n },\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 class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 111,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 1,\n },\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 class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 114,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\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 validFunctions: new Set(['count', 'datediff', 'min', 'max']),\n validScalarFunctions: new Set(['/', '*']),\n expected: true,\n },\n {\n description: 'node type COALESCE',\n query: 'COALESCE(SUM(amount) FILTER(direction = \"Income\"), 0)',\n columnNames: ['amount'],\n node: {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_COALESCE,\n alias: '',\n query_location: 18446744073709552000,\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 16,\n function_name: 'sum',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 20,\n column_names: ['amount'],\n },\n ],\n filter: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 45,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 35,\n column_names: ['direction'],\n },\n right: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 47,\n column_names: ['Income'],\n },\n },\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 58,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n ],\n },\n validFunctions: new Set(['sum']),\n validScalarFunctions: new Set(['/']),\n expected: true,\n },\n {\n description: 'node type WINDOW_AGGREGATE',\n query:\n 'AVG(COUNT(column1)) OVER (ORDER BY (MEERKAT).record_date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW)',\n columnNames: ['column1'],\n node: {\n class: ExpressionClass.WINDOW,\n type: ExpressionType.WINDOW_AGGREGATE,\n alias: '',\n query_location: 7,\n function_name: 'avg',\n schema: '',\n catalog: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 11,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 17,\n column_names: ['column1'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n partitions: [],\n orders: [\n {\n type: 'ORDER_DEFAULT',\n null_order: 'ORDER_DEFAULT',\n expression: {\n class: 'OPERATOR',\n type: 'STRUCT_EXTRACT',\n alias: '',\n query_location: 18446744073709552000,\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 54,\n column_names: ['MEERKAT'],\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'record_date',\n },\n },\n ],\n },\n },\n ],\n start: 'EXPR_PRECEDING_ROWS',\n end: 'CURRENT_ROW_ROWS',\n start_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 88,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 6,\n },\n },\n end_expr: null,\n offset_expr: null,\n default_expr: null,\n ignore_nulls: false,\n filter_expr: null,\n exclude_clause: 'NO_OTHER',\n distinct: false,\n },\n validFunctions: new Set(['avg', 'count']),\n validScalarFunctions: new Set(['/']),\n expected: true,\n },\n {\n description: 'node type FUNCTION - AVG with nested scalar function',\n query: \"AVG(DATE_DIFF('minute', created_date, first_response_time))\",\n columnNames: ['created_date', 'first_response_time'],\n node: {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 7,\n function_name: 'avg',\n schema: '',\n children: [\n {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 11,\n function_name: 'date_diff',\n schema: '',\n children: [\n {\n class: 'CONSTANT',\n type: 'VALUE_CONSTANT',\n alias: '',\n query_location: 21,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'minute',\n },\n },\n {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n query_location: 31,\n column_names: ['created_date'],\n },\n {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n query_location: 45,\n column_names: ['first_response_time'],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n validFunctions: new Set(['avg', 'count']),\n validScalarFunctions: new Set(['date_diff']),\n expected: true,\n },\n {\n description: 'node type SUBQUERY',\n columnNames: [\n 'id',\n 'sla_stage',\n 'first_resp_time_arr',\n 'total_first_resp_breaches_ever',\n ],\n query:\n \"(SELECT CASE WHEN COUNT(DISTINCT CASE WHEN sla_stage = ''breached'' THEN id END) + COUNT(DISTINCT CASE WHEN sla_stage = ''completed'' AND ARRAY_LENGTH(first_resp_time_arr) > 0 AND (total_first_resp_breaches_ever = 0 OR total_first_resp_breaches_ever IS NULL) THEN id END) > 0 THEN 100 - (COUNT(DISTINCT CASE WHEN sla_stage = ''breached'' THEN id END) * 100.0 / (COUNT(DISTINCT CASE WHEN sla_stage = ''breached'' THEN id END) + COUNT(DISTINCT CASE WHEN sla_stage = ''completed'' AND ARRAY_LENGTH(first_resp_time_arr) > 0 AND (total_first_resp_breaches_ever = 0 OR total_first_resp_breaches_ever IS NULL) THEN id END))) ELSE NULL END AS result)\",\n node: {\n class: ExpressionClass.SUBQUERY,\n type: ExpressionType.SUBQUERY,\n alias: '',\n query_location: 7,\n\n subquery: {\n node: {\n type: 'SELECT_NODE',\n modifiers: [],\n cte_map: {\n map: [],\n },\n select_list: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: 'result',\n query_location: 15,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_GREATERTHAN,\n alias: '',\n query_location: 275,\n left: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 86,\n function_name: '+',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 25,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 40,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 60,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 50,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 62,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'breached',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 78,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 88,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 103,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.CONJUNCTION,\n type: ExpressionType.CONJUNCTION_AND,\n alias: '',\n query_location: 137,\n children: [\n {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 123,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 113,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 125,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'completed',\n },\n },\n },\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_GREATERTHAN',\n alias: '',\n query_location: 175,\n left: {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 141,\n function_name: 'array_length',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 154,\n column_names: [\n 'first_resp_time_arr',\n ],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 177,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'CONJUNCTION',\n type: 'CONJUNCTION_OR',\n alias: '',\n query_location: 219,\n children: [\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 215,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 184,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 217,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'OPERATOR',\n type: 'OPERATOR_IS_NULL',\n alias: '',\n query_location: 253,\n children: [\n {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 222,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 267,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\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 right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 277,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n then_expr: {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 288,\n function_name: '-',\n schema: '',\n children: [\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 284,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 100,\n },\n },\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 360,\n function_name: '/',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 352,\n function_name: '*',\n schema: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n query_location: 291,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: ExpressionClass.CASE,\n type: ExpressionType.CASE_EXPR,\n alias: '',\n query_location: 306,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: ExpressionType.COMPARE_EQUAL,\n alias: '',\n query_location: 326,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 316,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 328,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'breached',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 344,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 354,\n value: {\n type: {\n id: 'DECIMAL',\n type_info: {\n type: 'DECIMAL_TYPE_INFO',\n alias: '',\n modifiers: [],\n width: 4,\n scale: 1,\n },\n },\n is_null: false,\n value: 1000,\n },\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 class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 424,\n function_name: '+',\n schema: '',\n children: [\n {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 363,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: 'CASE',\n type: 'CASE_EXPR',\n alias: '',\n query_location: 378,\n case_checks: [\n {\n when_expr: {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 398,\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 388,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 400,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'breached',\n },\n },\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 416,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 426,\n function_name: 'count',\n schema: '',\n children: [\n {\n class: 'CASE',\n type: 'CASE_EXPR',\n alias: '',\n query_location: 441,\n case_checks: [\n {\n when_expr: {\n class: 'CONJUNCTION',\n type: 'CONJUNCTION_AND',\n alias: '',\n query_location: 475,\n children: [\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 461,\n left: {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 451,\n column_names: ['sla_stage'],\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 463,\n value: {\n type: {\n id: 'VARCHAR',\n type_info: null,\n },\n is_null: false,\n value: 'completed',\n },\n },\n },\n {\n class: ExpressionClass.COMPARISON,\n type: 'COMPARE_GREATERTHAN',\n alias: '',\n query_location: 513,\n left: {\n class: 'FUNCTION',\n type: 'FUNCTION',\n alias: '',\n query_location: 479,\n function_name: 'array_length',\n schema: '',\n children: [\n {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 492,\n column_names: [\n 'first_resp_time_arr',\n ],\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 515,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'CONJUNCTION',\n type: 'CONJUNCTION_OR',\n alias: '',\n query_location: 557,\n children: [\n {\n class:\n ExpressionClass.COMPARISON,\n type: 'COMPARE_EQUAL',\n alias: '',\n query_location: 553,\n left: {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 522,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n right: {\n class:\n ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 555,\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: 0,\n },\n },\n },\n {\n class: 'OPERATOR',\n type: 'OPERATOR_IS_NULL',\n alias: '',\n query_location: 591,\n children: [\n {\n class:\n ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 560,\n column_names: [\n 'total_first_resp_breaches_ever',\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n then_expr: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n query_location: 605,\n column_names: ['id'],\n },\n },\n ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 18446744073709552000,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: true,\n is_operator: false,\n export_state: false,\n catalog: '',\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 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 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 ],\n else_expr: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n query_location: 620,\n value: {\n type: {\n id: 'NULL',\n type_info: null,\n },\n is_null: true,\n },\n },\n },\n ],\n from_table: {\n type: 'EMPTY',\n alias: '',\n sample: null,\n query_location: 18446744073709552000,\n },\n where_clause: null,\n group_expressions: [],\n group_sets: [],\n aggregate_handling: 'STANDARD_HANDLING',\n having: null,\n sample: null,\n qualify: null,\n },\n },\n child: null,\n comparison_type: 'INVALID',\n },\n validFunctions: new Set(['count', 'count_star']),\n validScalarFunctions: new Set(['-', '/', '*', '+']),\n expected: true,\n },\n];\n"],"names":["EMPTY_VALID_FUNCTIONS","VALID_FUNCTIONS","COLUMN_REF_NODE","INVALID_NODE","DIMENSION_TEST_CASES","MEASURE_TEST_CASES","Set","class","ExpressionClass","COLUMN_REF","type","ExpressionType","alias","query_location","column_names","INVALID","description","node","validFunctions","columnNames","expected","CONSTANT","VALUE_CONSTANT","value","CAST","OPERATOR_CAST","child","cast_type","id","try_cast","OPERATOR","OPERATOR_COALESCE","children","type_info","is_null","FUNCTION","function_name","schema","filter","order_bys","ResultModifierType","ORDER_MODIFIER","orders","distinct","is_operator","export_state","CASE","CASE_EXPR","case_checks","when_expr","COMPARISON","COMPARE_GREATERTHAN","left","right","then_expr","else_expr","query","validScalarFunctions","error","catalog","COMPARE_EQUAL","WINDOW","WINDOW_AGGREGATE","partitions","null_order","expression","start","end","start_expr","end_expr","offset_expr","default_expr","ignore_nulls","filter_expr","exclude_clause","SUBQUERY","subquery","modifiers","cte_map","map","select_list","CONJUNCTION","CONJUNCTION_AND","width","scale","from_table","sample","where_clause","group_expressions","group_sets","aggregate_handling","having","qualify","comparison_type"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/ast-validator/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/ast-validator/utils.ts"],"sourcesContent":["import { ParsedExpression } from '../types/duckdb-serialization-types';\nimport { ParsedSerialization } from './types';\n\nexport function getSelectNode(\n parsedSerialization: ParsedSerialization\n): ParsedExpression {\n const statement = parsedSerialization.statements?.[0];\n if (!statement) {\n throw new Error('No statement found');\n }\n\n if (statement.node.type !== 'SELECT_NODE') {\n throw new Error('Statement must be a SELECT node');\n }\n\n const selectList = statement.node.select_list;\n if (!selectList?.length || selectList.length !== 1) {\n throw new Error('SELECT must contain exactly one expression');\n }\n\n return selectList[0];\n}\n\nexport const isError = (data: ParsedSerialization): boolean => {\n return !!data.error;\n};\n"],"names":["getSelectNode","isError","parsedSerialization","statement","statements","Error","node","type","selectList","select_list","length","data","error"],"mappings":";;;;;;;;IAGgBA,aAAa;eAAbA;;IAoBHC,OAAO;eAAPA;;;AApBN,SAASD,cACdE,mBAAwC;QAEtBA;IAAlB,MAAMC,aAAYD,kCAAAA,oBAAoBE,UAAU,qBAA9BF,+BAAgC,CAAC,EAAE;IACrD,IAAI,CAACC,WAAW;QACd,MAAM,IAAIE,MAAM;IAClB;IAEA,IAAIF,UAAUG,IAAI,CAACC,IAAI,KAAK,eAAe;QACzC,MAAM,IAAIF,MAAM;IAClB;IAEA,MAAMG,aAAaL,UAAUG,IAAI,CAACG,WAAW;IAC7C,IAAI,EAACD,8BAAAA,WAAYE,MAAM,KAAIF,WAAWE,MAAM,KAAK,GAAG;QAClD,MAAM,IAAIL,MAAM;IAClB;IAEA,OAAOG,UAAU,CAAC,EAAE;AACtB;AAEO,MAAMP,UAAU,CAACU;IACtB,OAAO,CAAC,CAACA,KAAKC,KAAK;AACrB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/context-params/context-params-ast.ts"],"sourcesContent":["import { ContextParams } from '../types/cube-types/table';\n\nexport const detectAllContextParams = (\n sql: string\n): {\n memberKey: string;\n matchKey: string;\n}[] => {\n const regex = /\\$\\{CONTEXT_PARAMS\\.([^}]*)\\}/g;\n const matches = [];\n let match;\n\n while ((match = regex.exec(sql)) !== null) {\n matches.push({\n memberKey: match[1],\n matchKey: match[0],\n });\n }\n\n return matches;\n};\n\nexport const applyContextParamsToBaseSQL = (\n baseSQL: string,\n contextParamsSQL: {\n memberKey: string;\n contextParamSQL: string;\n matchKey: string;\n }[]\n) => {\n let newSQL = baseSQL;\n for (const contextParamSQL of contextParamsSQL) {\n // Replace matchKey with contextParamSQL\n newSQL = newSQL.replace(\n contextParamSQL.matchKey,\n contextParamSQL.contextParamSQL\n );\n }\n return newSQL;\n};\n\nexport const detectApplyContextParamsToBaseSQL = (\n baseSQL: string,\n contextParams: ContextParams\n) => {\n const contextParamsSQL = [];\n const contextParamsKeys = detectAllContextParams(baseSQL);\n\n for (const contextParamsKey of contextParamsKeys) {\n const contextParamSQL = contextParams[contextParamsKey.memberKey];\n if (contextParamSQL) {\n contextParamsSQL.push({\n memberKey: contextParamsKey.memberKey,\n matchKey: contextParamsKey.matchKey,\n contextParamSQL: contextParamSQL,\n });\n }\n }\n\n return applyContextParamsToBaseSQL(baseSQL, contextParamsSQL);\n};\n"],"names":["detectAllContextParams","applyContextParamsToBaseSQL","detectApplyContextParamsToBaseSQL","sql","regex","matches","match","exec","push","memberKey","matchKey","baseSQL","contextParamsSQL","newSQL","contextParamSQL","replace","contextParams","contextParamsKeys","contextParamsKey"],"mappings":";;;;;;;;IAEaA,sBAAsB;eAAtBA;;IAoBAC,2BAA2B;eAA3BA;;IAmBAC,iCAAiC;eAAjCA;;;AAvCN,MAAMF,yBAAyB,CACpCG;IAKA,MAAMC,QAAQ;IACd,MAAMC,UAAU,EAAE;IAClB,IAAIC;IAEJ,MAAO,AAACA,CAAAA,QAAQF,MAAMG,IAAI,CAACJ,IAAG,MAAO,KAAM;QACzCE,QAAQG,IAAI,CAAC;YACXC,WAAWH,KAAK,CAAC,EAAE;YACnBI,UAAUJ,KAAK,CAAC,EAAE;QACpB;IACF;IAEA,OAAOD;AACT;AAEO,MAAMJ,8BAA8B,CACzCU,SACAC;IAMA,IAAIC,SAASF;IACb,KAAK,MAAMG,mBAAmBF,iBAAkB;QAC9C,wCAAwC;QACxCC,SAASA,OAAOE,OAAO,CACrBD,gBAAgBJ,QAAQ,EACxBI,gBAAgBA,eAAe;IAEnC;IACA,OAAOD;AACT;AAEO,MAAMX,oCAAoC,CAC/CS,SACAK;IAEA,MAAMJ,mBAAmB,EAAE;IAC3B,MAAMK,oBAAoBjB,uBAAuBW;IAEjD,KAAK,MAAMO,oBAAoBD,kBAAmB;QAChD,MAAMH,kBAAkBE,aAAa,CAACE,iBAAiBT,SAAS,CAAC;QACjE,IAAIK,iBAAiB;YACnBF,iBAAiBJ,IAAI,CAAC;gBACpBC,WAAWS,iBAAiBT,SAAS;gBACrCC,UAAUQ,iBAAiBR,QAAQ;gBACnCI,iBAAiBA;YACnB;QACF;IACF;IAEA,OAAOb,4BAA4BU,SAASC;AAC9C"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/and/and.ts"],"sourcesContent":["import {\n ConjunctionExpression,\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/index';\n\nexport const andDuckdbCondition = (): ConjunctionExpression => {\n return {\n class: ExpressionClass.CONJUNCTION,\n type: ExpressionType.CONJUNCTION_AND,\n alias: '',\n children: [],\n };\n};\n"],"names":["andDuckdbCondition","class","ExpressionClass","CONJUNCTION","type","ExpressionType","CONJUNCTION_AND","alias","children"],"mappings":";+BAMaA;;;eAAAA;;;uBAFN;AAEA,MAAMA,qBAAqB;IAChC,OAAO;QACLC,OAAOC,sBAAe,CAACC,WAAW;QAClCC,MAAMC,qBAAc,CAACC,eAAe;QACpCC,OAAO;QACPC,UAAU,EAAE;IACd;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/base-condition-builder/base-condition-builder.ts"],"sourcesContent":["import { Dimension, Measure } from '../../types/cube-types/index';\n\nimport { COLUMN_NAME_DELIMITER } from '../../member-formatters/constants';\nimport {\n ExpressionClass,\n ExpressionType,\n QueryNodeType,\n SubqueryType,\n} from '../../types/duckdb-serialization-types/index';\nimport { CUBE_TYPE_TO_DUCKDB_TYPE } from '../../utils/cube-type-to-duckdb-type';\nimport { convertFloatToInt, getTypeInfo } from '../../utils/get-type-info';\n\nexport const baseDuckdbCondition = (\n columnName: string,\n type: ExpressionType,\n value: string,\n memberInfo: Measure | Dimension\n) => {\n return {\n class: ExpressionClass.COMPARISON,\n type: type,\n alias: '',\n left: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n column_names: columnName.split(COLUMN_NAME_DELIMITER),\n },\n right: {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n value: valueBuilder(value, memberInfo),\n },\n };\n};\n\nexport const baseArrayDuckdbCondition = (\n columnName: string,\n type: ExpressionType,\n value: string,\n memberInfo: Measure | Dimension\n) => {\n return {\n class: ExpressionClass.SUBQUERY,\n type: ExpressionType.SUBQUERY,\n alias: '',\n subquery_type: SubqueryType.ANY,\n subquery: {\n node: {\n type: QueryNodeType.SELECT_NODE,\n modifiers: [],\n cte_map: {\n map: [],\n },\n select_list: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n function_name: 'unnest',\n schema: '',\n children: [\n {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n column_names: columnName.split(COLUMN_NAME_DELIMITER),\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: false,\n export_state: false,\n catalog: '',\n },\n ],\n from_table: {\n type: 'EMPTY',\n alias: '',\n sample: null,\n },\n where_clause: null,\n group_expressions: [],\n group_sets: [],\n aggregate_handling: 'STANDARD_HANDLING',\n having: null,\n sample: null,\n qualify: null,\n },\n },\n child: {\n class: 'CONSTANT',\n type: 'VALUE_CONSTANT',\n alias: '',\n value: valueBuilder(value, memberInfo),\n },\n comparison_type: type,\n };\n};\n\nexport const valueBuilder = (\n value: string,\n memberInfo: Measure | Dimension\n) => {\n switch (memberInfo.type) {\n case 'string':\n return {\n type: {\n id: CUBE_TYPE_TO_DUCKDB_TYPE[memberInfo.type],\n type_info: null,\n },\n is_null: false,\n value: value,\n };\n\n case 'number': {\n const parsedValue = parseFloat(value);\n return {\n type: {\n id: CUBE_TYPE_TO_DUCKDB_TYPE[memberInfo.type],\n type_info: getTypeInfo(parsedValue),\n },\n is_null: false,\n value: convertFloatToInt(parsedValue),\n };\n }\n case 'boolean': {\n const parsedValue = value === 'true';\n return {\n type: {\n id: CUBE_TYPE_TO_DUCKDB_TYPE[memberInfo.type],\n type_info: null,\n },\n is_null: false,\n value: parsedValue,\n };\n }\n case 'time':\n return {\n type: {\n id: CUBE_TYPE_TO_DUCKDB_TYPE[memberInfo.type],\n type_info: null,\n },\n is_null: false,\n value: value,\n };\n\n default:\n return {\n type: {\n id: CUBE_TYPE_TO_DUCKDB_TYPE.string,\n type_info: null,\n },\n is_null: false,\n value: value,\n };\n }\n};\n"],"names":["baseDuckdbCondition","baseArrayDuckdbCondition","valueBuilder","columnName","type","value","memberInfo","class","ExpressionClass","COMPARISON","alias","left","COLUMN_REF","ExpressionType","column_names","split","COLUMN_NAME_DELIMITER","right","CONSTANT","VALUE_CONSTANT","SUBQUERY","subquery_type","SubqueryType","ANY","subquery","node","QueryNodeType","SELECT_NODE","modifiers","cte_map","map","select_list","FUNCTION","function_name","schema","children","filter","order_bys","orders","distinct","is_operator","export_state","catalog","from_table","sample","where_clause","group_expressions","group_sets","aggregate_handling","having","qualify","child","comparison_type","id","CUBE_TYPE_TO_DUCKDB_TYPE","type_info","is_null","parsedValue","parseFloat","getTypeInfo","convertFloatToInt","string"],"mappings":"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"}
@@ -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,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "equalsArrayTransform", {
3
- enumerable: true,
4
- get: function() {
5
- return equalsArrayTransform;
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 equalsArrayTransform = (query)=>{
12
- const { member, values } = query;
13
- if (!values || values.length === 0) {
14
- throw new Error('Equals 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.baseArrayDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_EQUAL, 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.baseArrayDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_EQUAL, value, query.memberInfo));
26
- });
27
- return orCondition;
28
- };
29
-
30
- //# sourceMappingURL=equals-array.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/equals/equals-array.ts"],"sourcesContent":["import { ExpressionType } from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { baseArrayDuckdbCondition } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { orDuckdbCondition } from '../or/or';\n\nexport const equalsArrayTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values } = query;\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 baseArrayDuckdbCondition(\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 OR condition\n */\n const orCondition = orDuckdbCondition();\n values.forEach((value) => {\n orCondition.children.push(\n baseArrayDuckdbCondition(\n member,\n ExpressionType.COMPARE_EQUAL,\n value,\n query.memberInfo\n )\n );\n });\n return orCondition;\n};\n"],"names":["equalsArrayTransform","query","member","values","length","Error","baseArrayDuckdbCondition","ExpressionType","COMPARE_EQUAL","memberInfo","orCondition","orDuckdbCondition","forEach","value","children","push"],"mappings":";+BAKaA;;;eAAAA;;;4BALkB;sCACU;oBAEP;AAE3B,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,IAAIF,OAAOC,MAAM,KAAK,GAAG;QACvB,OAAOE,IAAAA,8CAAwB,EAC7BJ,QACAK,0BAAc,CAACC,aAAa,EAC5BL,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,8CAAwB,EACtBJ,QACAK,0BAAc,CAACC,aAAa,EAC5BK,OACAZ,MAAMQ,UAAU;IAGtB;IACA,OAAOC;AACT"}
@@ -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 { baseDuckdbCondition } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { orDuckdbCondition } from '../or/or';\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 OR condition\n */\n const orCondition = orDuckdbCondition();\n values.forEach((value) => {\n orCondition.children.push(\n baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_EQUAL,\n value,\n query.memberInfo\n )\n );\n });\n return orCondition;\n};\n"],"names":["equalsTransform","query","member","values","isArrayTypeMember","memberInfo","type","equalsArrayTransform","length","Error","baseDuckdbCondition","ExpressionType","COMPARE_EQUAL","orCondition","orDuckdbCondition","forEach","value","children","push"],"mappings":";+BAOaA;;;eAAAA;;;4BAPkB;mCACG;sCACE;oBAEF;6BACG;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,cAAcC,IAAAA,qBAAiB;IACrCX,OAAOY,OAAO,CAAC,CAACC;QACdH,YAAYI,QAAQ,CAACC,IAAI,CACvBR,IAAAA,yCAAmB,EACjBR,QACAS,0BAAc,CAACC,aAAa,EAC5BI,OACAf,MAAMI,UAAU;IAGtB;IACA,OAAOQ;AACT"}
@@ -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":"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"}
@@ -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 +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 +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 +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 +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 +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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/not/not.ts"],"sourcesContent":["import {\n ExpressionClass,\n ExpressionType,\n OperatorExpression,\n} from '../../types/duckdb-serialization-types/index';\n\nexport const notDuckdbCondition = (): OperatorExpression => {\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_NOT,\n alias: '',\n children: [],\n };\n};\n"],"names":["notDuckdbCondition","class","ExpressionClass","OPERATOR","type","ExpressionType","OPERATOR_NOT","alias","children"],"mappings":";+BAMaA;;;eAAAA;;;uBAFN;AAEA,MAAMA,qBAAqB;IAChC,OAAO;QACLC,OAAOC,sBAAe,CAACC,QAAQ;QAC/BC,MAAMC,qBAAc,CAACC,YAAY;QACjCC,OAAO;QACPC,UAAU,EAAE;IACd;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-In-date-range/not-In-date-range.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 notInDataRangeTransform: CubeToParseExpressionTransform = (\n query\n) => {\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 = orDuckdbCondition();\n\n andCondition.children.push(\n baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_LESSTHAN,\n values[0],\n query.memberInfo\n )\n );\n\n andCondition.children.push(\n baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_GREATERTHAN,\n values[1],\n query.memberInfo\n )\n );\n\n return andCondition;\n};\n"],"names":["notInDataRangeTransform","query","member","values","length","Error","andCondition","orDuckdbCondition","children","push","baseDuckdbCondition","ExpressionType","COMPARE_LESSTHAN","memberInfo","COMPARE_GREATERTHAN"],"mappings":";+BAKaA;;;eAAAA;;;4BALkB;sCACK;oBAEF;AAE3B,MAAMA,0BAA0D,CACrEC;IAEA,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,qBAAiB;IAEtCD,aAAaE,QAAQ,CAACC,IAAI,CACxBC,IAAAA,yCAAmB,EACjBR,QACAS,0BAAc,CAACC,gBAAgB,EAC/BT,MAAM,CAAC,EAAE,EACTF,MAAMY,UAAU;IAIpBP,aAAaE,QAAQ,CAACC,IAAI,CACxBC,IAAAA,yCAAmB,EACjBR,QACAS,0BAAc,CAACG,mBAAmB,EAClCX,MAAM,CAAC,EAAE,EACTF,MAAMY,UAAU;IAIpB,OAAOP;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-contains/not-contains.ts"],"sourcesContent":["import { COLUMN_NAME_DELIMITER } from '../../member-formatters/constants';\nimport { Member, QueryFilter } from '../../types/cube-types/query';\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';\nimport { orDuckdbCondition } from '../or/or';\n\nexport interface NotContainsFilters extends QueryFilter {\n member: Member;\n operator: 'notContains';\n values: string[];\n}\n\nexport const notContainsDuckdbCondition = (\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 notContainsTransform: 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 notContainsDuckdbCondition(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 notContainsDuckdbCondition(member, value, memberInfo)\n );\n });\n return orCondition;\n};\n"],"names":["notContainsDuckdbCondition","notContainsTransform","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":";;;;;;;;IAiBaA,0BAA0B;eAA1BA;;IAqCAC,oBAAoB;eAApBA;;;2BAtDyB;4BAM/B;sCACsB;oBAEK;AAQ3B,MAAMD,6BAA6B,CACxCE,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,uBAAuD,CAACwB;IACnE,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,2BAA2B0B,QAAQC,MAAM,CAAC,EAAE,EAAEvB;IACvD;IAEA;;GAEC,GACD,MAAM0B,cAAcC,IAAAA,qBAAiB;IACrCJ,OAAOK,OAAO,CAAC,CAAC7B;QACd2B,YAAYjB,QAAQ,CAACoB,IAAI,CACvBjC,2BAA2B0B,QAAQvB,OAAOC;IAE9C;IACA,OAAO0B;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-equals/not-equals-array.ts"],"sourcesContent":["import { equalsArrayTransform } from '../equals/equals-array';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { notDuckdbCondition } from '../not/not';\n\nexport const notEqualsArrayTransform: CubeToParseExpressionTransform = (\n query\n) => {\n const { values } = query;\n\n if (!values || values.length === 0) {\n throw new Error('Equals filter must have at least one value');\n }\n\n const notWrapper = notDuckdbCondition();\n const equalsCondition = equalsArrayTransform(query);\n /**\n * We need to wrap the equals condition in a not condition\n * Which basically means ! of ANY of the values\n */\n notWrapper.children = [equalsCondition];\n\n return notWrapper;\n};\n"],"names":["notEqualsArrayTransform","query","values","length","Error","notWrapper","notDuckdbCondition","equalsCondition","equalsArrayTransform","children"],"mappings":";+BAIaA;;;eAAAA;;;6BAJwB;qBAEF;AAE5B,MAAMA,0BAA0D,CACrEC;IAEA,MAAM,EAAEC,MAAM,EAAE,GAAGD;IAEnB,IAAI,CAACC,UAAUA,OAAOC,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA,MAAMC,aAAaC,IAAAA,uBAAkB;IACrC,MAAMC,kBAAkBC,IAAAA,iCAAoB,EAACP;IAC7C;;;GAGC,GACDI,WAAWI,QAAQ,GAAG;QAACF;KAAgB;IAEvC,OAAOF;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-equals/not-equals.ts"],"sourcesContent":["import { Member, QueryFilter } from '../../types/cube-types/query';\nimport { ExpressionType } from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { isArrayTypeMember } from '../../utils/is-array-member-type';\nimport { baseDuckdbCondition } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { orDuckdbCondition } from '../or/or';\nimport { notEqualsArrayTransform } from './not-equals-array';\n\nexport interface NotEqualsFilters extends QueryFilter {\n member: Member;\n operator: 'notEquals';\n values: string[];\n}\n\nexport const notEqualsTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values } = query;\n\n if (!values || values.length === 0) {\n throw new Error('Equals filter must have at least one value');\n }\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 notEqualsArrayTransform(query);\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_NOTEQUAL,\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_NOTEQUAL,\n value,\n query.memberInfo\n )\n );\n });\n return orCondition;\n};\n"],"names":["notEqualsTransform","query","member","values","length","Error","isArrayTypeMember","memberInfo","type","notEqualsArrayTransform","baseDuckdbCondition","ExpressionType","COMPARE_NOTEQUAL","orCondition","orDuckdbCondition","forEach","value","children","push"],"mappings":";+BAcaA;;;eAAAA;;;4BAbkB;mCACG;sCACE;oBAEF;gCACM;AAQjC,MAAMA,qBAAqD,CAACC;IACjE,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF;IAE3B,IAAI,CAACE,UAAUA,OAAOC,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA;;GAEC,GACD,IAAIC,IAAAA,oCAAiB,EAACL,MAAMM,UAAU,CAACC,IAAI,GAAG;QAC5C,OAAOC,IAAAA,uCAAuB,EAACR;IACjC;IAEA;;GAEC,GACD,IAAIE,OAAOC,MAAM,KAAK,GAAG;QACvB,OAAOM,IAAAA,yCAAmB,EACxBR,QACAS,0BAAc,CAACC,gBAAgB,EAC/BT,MAAM,CAAC,EAAE,EACTF,MAAMM,UAAU;IAEpB;IAEA;;GAEC,GACD,MAAMM,cAAcC,IAAAA,qBAAiB;IACrCX,OAAOY,OAAO,CAAC,CAACC;QACdH,YAAYI,QAAQ,CAACC,IAAI,CACvBR,IAAAA,yCAAmB,EACjBR,QACAS,0BAAc,CAACC,gBAAgB,EAC/BI,OACAf,MAAMM,UAAU;IAGtB;IACA,OAAOM;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-in/not-in.ts"],"sourcesContent":["import { Dimension, Measure } from '../../types/cube-types/table';\nimport { CubeToParseExpressionTransform } from '../factory';\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';\n\nconst notInDuckDbCondition = (\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.OPERATOR,\n type: ExpressionType.OPERATOR_NOT,\n alias: '',\n children: [\n {\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 };\n }\n default: {\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.COMPARE_NOT_IN,\n alias: '',\n children: [columnRef, ...sqlTreeValues],\n };\n }\n }\n};\n\nexport const notInTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values, memberInfo } = query;\n if (!values) {\n throw new Error('Not in filter must have at least one value');\n }\n\n return notInDuckDbCondition(member, values, memberInfo);\n};\n"],"names":["notInTransform","notInDuckDbCondition","columnName","values","memberInfo","sqlTreeValues","map","value","class","ExpressionClass","CONSTANT","type","ExpressionType","VALUE_CONSTANT","alias","valueBuilder","columnRef","column_names","split","COLUMN_NAME_DELIMITER","OPERATOR","OPERATOR_NOT","children","FUNCTION","function_name","schema","ARRAY_CONSTRUCTOR","filter","order_bys","orders","distinct","is_operator","export_state","catalog","COMPARE_NOT_IN","query","member","Error"],"mappings":";+BA4EaA;;;eAAAA;;;2BAzEyB;4BAI/B;sCACsB;AAE7B,MAAMC,uBAAuB,CAC3BC,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,CAACS,YAAY;oBACjCP,OAAO;oBACPQ,UAAU;wBACR;4BACEd,OAAOC,2BAAe,CAACc,QAAQ;4BAC/BZ,MAAMC,0BAAc,CAACW,QAAQ;4BAC7BT,OAAO;4BACPU,eAAe;4BACfC,QAAQ;4BACRH,UAAU;gCACRN;gCACA;oCACER,OAAOC,2BAAe,CAACW,QAAQ;oCAC/BT,MAAMC,0BAAc,CAACc,iBAAiB;oCACtCZ,OAAO;oCACPQ,UAAUjB;gCACZ;6BACD;4BACDsB,QAAQ;4BACRC,WAAW;gCACTjB,MAAM;gCACNkB,QAAQ,EAAE;4BACZ;4BACAC,UAAU;4BACVC,aAAa;4BACbC,cAAc;4BACdC,SAAS;wBACX;qBACD;gBACH;YACF;QACA;YAAS;gBACP,OAAO;oBACLzB,OAAOC,2BAAe,CAACW,QAAQ;oBAC/BT,MAAMC,0BAAc,CAACsB,cAAc;oBACnCpB,OAAO;oBACPQ,UAAU;wBAACN;2BAAcX;qBAAc;gBACzC;YACF;IACF;AACF;AAEO,MAAML,iBAAiD,CAACmC;IAC7D,MAAM,EAAEC,MAAM,EAAEjC,MAAM,EAAEC,UAAU,EAAE,GAAG+B;IACvC,IAAI,CAAChC,QAAQ;QACX,MAAM,IAAIkC,MAAM;IAClB;IAEA,OAAOpC,qBAAqBmC,QAAQjC,QAAQC;AAC9C"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-set/not-set.ts"],"sourcesContent":["import { COLUMN_NAME_DELIMITER } from '../../member-formatters/constants';\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { CubeToParseExpressionTransform } from '../factory';\n\nexport const notSetTransform: CubeToParseExpressionTransform = (query) => {\n const { member } = query;\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_IS_NULL,\n alias: '',\n children: [\n {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n column_names: member.split(COLUMN_NAME_DELIMITER),\n },\n ],\n };\n};\n"],"names":["notSetTransform","query","member","class","ExpressionClass","OPERATOR","type","ExpressionType","OPERATOR_IS_NULL","alias","children","column_names","split","COLUMN_NAME_DELIMITER"],"mappings":";+BAOaA;;;eAAAA;;;2BAPyB;4BAI/B;AAGA,MAAMA,kBAAkD,CAACC;IAC9D,MAAM,EAAEC,MAAM,EAAE,GAAGD;IACnB,OAAO;QACLE,OAAOC,2BAAe,CAACC,QAAQ;QAC/BC,MAAMC,0BAAc,CAACC,gBAAgB;QACrCC,OAAO;QACPC,UAAU;YACR;gBACEP,OAAO;gBACPG,MAAM;gBACNG,OAAO;gBACPE,cAAcT,OAAOU,KAAK,CAACC,gCAAqB;YAClD;SACD;IACH;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/or/or.ts"],"sourcesContent":["import { ConjunctionExpression } from '../../types/duckdb-serialization-types/serialization/ParsedExpression';\nimport { ExpressionClass, ExpressionType } from '../../types/duckdb-serialization-types/serialization/Expression';\n\nexport const orDuckdbCondition = (): ConjunctionExpression => {\n return {\n class: ExpressionClass.CONJUNCTION,\n type: ExpressionType.CONJUNCTION_OR,\n alias: '',\n children: [],\n };\n};\n"],"names":["orDuckdbCondition","class","ExpressionClass","CONJUNCTION","type","ExpressionType","CONJUNCTION_OR","alias","children"],"mappings":";+BAGaA;;;eAAAA;;;4BAFmC;AAEzC,MAAMA,oBAAoB;IAC/B,OAAO;QACLC,OAAOC,2BAAe,CAACC,WAAW;QAClCC,MAAMC,0BAAc,CAACC,cAAc;QACnCC,OAAO;QACPC,UAAU,EAAE;IACd;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../meerkat-core/src/cube-filter-transformer/set/set.ts"],"sourcesContent":["import { COLUMN_NAME_DELIMITER } from '../../member-formatters/constants';\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { CubeToParseExpressionTransform } from '../factory';\n\nexport const setTransform: CubeToParseExpressionTransform = (query) => {\n const { member } = query;\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_IS_NOT_NULL,\n alias: '',\n children: [\n {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n column_names: member.split(COLUMN_NAME_DELIMITER),\n },\n ],\n };\n};\n"],"names":["setTransform","query","member","class","ExpressionClass","OPERATOR","type","ExpressionType","OPERATOR_IS_NOT_NULL","alias","children","column_names","split","COLUMN_NAME_DELIMITER"],"mappings":";+BAOaA;;;eAAAA;;;2BAPyB;4BAI/B;AAGA,MAAMA,eAA+C,CAACC;IAC3D,MAAM,EAAEC,MAAM,EAAE,GAAGD;IACnB,OAAO;QACLE,OAAOC,2BAAe,CAACC,QAAQ;QAC/BC,MAAMC,0BAAc,CAACC,oBAAoB;QACzCC,OAAO;QACPC,UAAU;YACR;gBACEP,OAAO;gBACPG,MAAM;gBACNG,OAAO;gBACPE,cAAcT,OAAOU,KAAK,CAACC,gCAAqB;YAClD;SACD;IACH;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/cube-group-by-transformer/cube-group-by-transformer.ts"],"sourcesContent":["import { memberKeyToSafeKey } from '../member-formatters';\nimport { Member } from '../types/cube-types/query';\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../types/duckdb-serialization-types/serialization/Expression';\n\nexport const cubeDimensionToGroupByAST = (dimensions: Member[]) => {\n const groupByAST = dimensions.map((dimension) => {\n const dimensionAST = {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n column_names: [memberKeyToSafeKey(dimension)],\n };\n\n return dimensionAST;\n });\n\n return groupByAST;\n};\n"],"names":["cubeDimensionToGroupByAST","dimensions","groupByAST","map","dimension","dimensionAST","class","ExpressionClass","COLUMN_REF","type","ExpressionType","alias","column_names","memberKeyToSafeKey"],"mappings":";+BAOaA;;;eAAAA;;;kCAPsB;4BAK5B;AAEA,MAAMA,4BAA4B,CAACC;IACxC,MAAMC,aAAaD,WAAWE,GAAG,CAAC,CAACC;QACjC,MAAMC,eAAe;YACnBC,OAAOC,2BAAe,CAACC,UAAU;YACjCC,MAAMC,0BAAc,CAACF,UAAU;YAC/BG,OAAO;YACPC,cAAc;gBAACC,IAAAA,oCAAkB,EAACT;aAAW;QAC/C;QAEA,OAAOC;IACT;IAEA,OAAOH;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/cube-limit-offset-transformer/cube-limit-offset-transformer.ts"],"sourcesContent":["import { ExpressionClass, ExpressionType } from '../types/duckdb-serialization-types/serialization/Expression';\nimport { ResultModifierType } from '../types/duckdb-serialization-types/serialization/ResultModifier';\n\nexport const cubeLimitOffsetToAST = (\n limit?: number | null,\n offset?: number | null\n) => {\n return {\n type: ResultModifierType.LIMIT_MODIFIER,\n limit: limit\n ? {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: limit,\n },\n }\n : null,\n offset: offset\n ? {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: offset,\n },\n }\n : null,\n };\n};\n"],"names":["cubeLimitOffsetToAST","limit","offset","type","ResultModifierType","LIMIT_MODIFIER","class","ExpressionClass","CONSTANT","ExpressionType","VALUE_CONSTANT","alias","value","id","type_info","is_null"],"mappings":";+BAGaA;;;eAAAA;;;4BAHmC;gCACb;AAE5B,MAAMA,uBAAuB,CAClCC,OACAC;IAEA,OAAO;QACLC,MAAMC,kCAAkB,CAACC,cAAc;QACvCJ,OAAOA,QACH;YACEK,OAAOC,2BAAe,CAACC,QAAQ;YAC/BL,MAAMM,0BAAc,CAACC,cAAc;YACnCC,OAAO;YACPC,OAAO;gBACLT,MAAM;oBACJU,IAAI;oBACJC,WAAW;gBACb;gBACAC,SAAS;gBACTH,OAAOX;YACT;QACF,IACA;QACJC,QAAQA,SACJ;YACEI,OAAOC,2BAAe,CAACC,QAAQ;YAC/BL,MAAMM,0BAAc,CAACC,cAAc;YACnCC,OAAO;YACPC,OAAO;gBACLT,MAAM;oBACJU,IAAI;oBACJC,WAAW;gBACb;gBACAC,SAAS;gBACTH,OAAOV;YACT;QACF,IACA;IACN;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/cube-measure-transformer/cube-measure-transformer.ts"],"sourcesContent":["import { memberKeyToSafeKey } from '../member-formatters/member-key-to-safe-key';\nimport { splitIntoDataSourceAndFields } from '../member-formatters/split-into-data-source-and-fields';\nimport { Member } from '../types/cube-types/query';\nimport { Measure, TableSchema } from '../types/cube-types/table';\nimport { meerkatPlaceholderReplacer } from '../utils/meerkat-placeholder-replacer';\n\nexport const cubeMeasureToSQLSelectString = (\n measures: Member[],\n tableSchema: TableSchema\n) => {\n let base = 'SELECT';\n for (let i = 0; i < measures.length; i++) {\n const measure = measures[i];\n if (measure === '*') {\n base += ` ${tableSchema.name}.*`;\n continue;\n }\n const [tableSchemaName, measureKeyWithoutTable] =\n splitIntoDataSourceAndFields(measure);\n\n const aliasKey = memberKeyToSafeKey(measure);\n const measureSchema = tableSchema.measures.find(\n (m) => m.name === measureKeyWithoutTable\n );\n if (!measureSchema) {\n continue;\n }\n if (i > 0) {\n base += ', ';\n }\n let meerkatReplacedSqlString = meerkatPlaceholderReplacer(\n measureSchema.sql,\n tableSchema.name\n );\n\n /**\n * Here we extract the columns used in the measure and replace them with the safeKey.\n * We need to do this because the columns used in the measure are not directly available in the joined table.\n * Thus we need to project them and use them in the join.\n */\n\n const columnsUsedInMeasure = getColumnsFromSQL(\n meerkatReplacedSqlString,\n tableSchemaName\n );\n\n //Replace all the columnsUsedInMeasure with safeKey\n columnsUsedInMeasure?.forEach((measureKey) => {\n const [_, column] = splitIntoDataSourceAndFields(measureKey);\n const memberKey = `${tableSchemaName}.${column}`;\n const columnKey = memberKeyToSafeKey(memberKey);\n meerkatReplacedSqlString = meerkatReplacedSqlString.replace(\n memberKey,\n columnKey\n );\n });\n\n base += ` ${meerkatReplacedSqlString} AS ${aliasKey} `;\n }\n return base;\n};\n\nconst addDimensionToSQLProjection = (\n dimensions: Member[],\n selectString: string,\n tableSchema: TableSchema\n) => {\n if (dimensions.length === 0) {\n return selectString;\n }\n let newSelectString = selectString;\n for (let i = 0; i < dimensions.length; i++) {\n const dimension = dimensions[i];\n const [_, dimensionKeyWithoutTable] =\n splitIntoDataSourceAndFields(dimension);\n const dimensionSchema = tableSchema.dimensions.find(\n (m) => m.name === dimensionKeyWithoutTable\n );\n const aliasKey = memberKeyToSafeKey(dimension);\n\n if (!dimensionSchema) {\n continue;\n }\n if (i > 0) {\n newSelectString += ',';\n }\n // since alias key is expected to have been unfurled in the base query, we can just use it as is.\n newSelectString += ` ${aliasKey}`;\n }\n return newSelectString;\n};\n\nexport const getSelectReplacedSql = (sql: string, selectString: string) => {\n /*\n ** Replaces the select portion of a SQL string with the selectString passed.\n */\n const selectRegex = /SELECT\\s\\*/;\n const match = sql.match(selectRegex);\n if (!match) {\n return sql;\n }\n const selectIndex = match.index;\n if (selectIndex === undefined) {\n throw new Error('SELECT * not found in SQL string');\n }\n const selectLength = match[0].length;\n const beforeSelect = sql.substring(0, selectIndex);\n const afterSelect = sql.substring(selectIndex + selectLength);\n return `${beforeSelect}${selectString}${afterSelect}`;\n};\n\n/**\n * Get all the columns used in the measures.\n * This is used for extracting the columns used in the measures needed for the projection.\n * Example: The joins implementation uses this to get the columns used in the measures to join the tables.\n * like the SQL for the measure is `SUM(table.total)` and the table name is `table`, then the column used is `total`\n * table cannot be used directly here because the joined table would have column name ambiguity.\n * Thus these columns are projected and directly used in the join.\n */\nexport const getAllColumnUsedInMeasures = (\n measures: Measure[],\n tableSchema: TableSchema\n) => {\n let columns: string[] = [];\n measures.forEach((measure) => {\n const columnMatch = getColumnsFromSQL(measure.sql, tableSchema.name);\n if (columnMatch && columnMatch.length > 0) {\n columns = [...columns, ...columnMatch];\n }\n });\n // Remove duplicates\n return [...new Set(columns)];\n};\n\nconst getColumnsFromSQL = (sql: string, tableName: string) => {\n const regex = new RegExp(`(${tableName}\\\\.[a-zA-Z0-9_]+)`, 'g');\n const columnMatch = sql.match(regex);\n return columnMatch;\n};\n\n/**\n * Replace the first SELECT * from the sqlToReplace with the cube measure\n * @param measures\n * @param tableSchema\n * @param sqlToReplace\n * @returns\n */\nexport const applyProjectionToSQLQuery = (\n dimensions: Member[],\n measures: Member[],\n tableSchema: TableSchema,\n sqlToReplace: string\n) => {\n let measureSelectString = cubeMeasureToSQLSelectString(measures, tableSchema);\n\n if (measures.length > 0 && dimensions.length > 0) {\n measureSelectString += ', ';\n }\n const selectString = addDimensionToSQLProjection(\n dimensions,\n measureSelectString,\n tableSchema\n );\n\n return getSelectReplacedSql(sqlToReplace, selectString);\n};\n"],"names":["cubeMeasureToSQLSelectString","getSelectReplacedSql","getAllColumnUsedInMeasures","applyProjectionToSQLQuery","measures","tableSchema","base","i","length","measure","name","tableSchemaName","measureKeyWithoutTable","splitIntoDataSourceAndFields","aliasKey","memberKeyToSafeKey","measureSchema","find","m","meerkatReplacedSqlString","meerkatPlaceholderReplacer","sql","columnsUsedInMeasure","getColumnsFromSQL","forEach","measureKey","_","column","memberKey","columnKey","replace","addDimensionToSQLProjection","dimensions","selectString","newSelectString","dimension","dimensionKeyWithoutTable","dimensionSchema","selectRegex","match","selectIndex","index","undefined","Error","selectLength","beforeSelect","substring","afterSelect","columns","columnMatch","Set","tableName","regex","RegExp","sqlToReplace","measureSelectString"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../meerkat-core/src/cube-order-by-transformer/cube-order-by-transformer.ts"],"sourcesContent":["import { memberKeyToSafeKey } from '../member-formatters/member-key-to-safe-key';\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../types/duckdb-serialization-types/serialization/Expression';\nimport { OrderType } from '../types/duckdb-serialization-types/serialization/Nodes';\nimport { ResultModifierType } from '../types/duckdb-serialization-types/serialization/ResultModifier';\n\nexport const cubeOrderByToAST = (order: { [key: string]: 'asc' | 'desc' }) => {\n const orderArr = [];\n for (const key in order) {\n const value = order[key];\n const astOrderBy =\n value === 'asc' ? OrderType.ASCENDING : OrderType.DESCENDING;\n const orderByAST = {\n type: astOrderBy,\n null_order: OrderType.ORDER_DEFAULT,\n expression: {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n /**\n * We need to convert the key in the __ format as they are being projected in this format\n */\n column_names: [memberKeyToSafeKey(key)],\n },\n };\n orderArr.push(orderByAST);\n }\n return {\n type: ResultModifierType.ORDER_MODIFIER,\n orders: orderArr,\n };\n};\n"],"names":["cubeOrderByToAST","order","orderArr","key","value","astOrderBy","OrderType","ASCENDING","DESCENDING","orderByAST","type","null_order","ORDER_DEFAULT","expression","class","ExpressionClass","COLUMN_REF","ExpressionType","alias","column_names","memberKeyToSafeKey","push","ResultModifierType","ORDER_MODIFIER","orders"],"mappings":";+BAQaA;;;eAAAA;;;oCARsB;4BAI5B;uBACmB;gCACS;AAE5B,MAAMA,mBAAmB,CAACC;IAC/B,MAAMC,WAAW,EAAE;IACnB,IAAK,MAAMC,OAAOF,MAAO;QACvB,MAAMG,QAAQH,KAAK,CAACE,IAAI;QACxB,MAAME,aACJD,UAAU,QAAQE,gBAAS,CAACC,SAAS,GAAGD,gBAAS,CAACE,UAAU;QAC9D,MAAMC,aAAa;YACjBC,MAAML;YACNM,YAAYL,gBAAS,CAACM,aAAa;YACnCC,YAAY;gBACVC,OAAOC,2BAAe,CAACC,UAAU;gBACjCN,MAAMO,0BAAc,CAACD,UAAU;gBAC/BE,OAAO;gBACP;;SAEC,GACDC,cAAc;oBAACC,IAAAA,sCAAkB,EAACjB;iBAAK;YACzC;QACF;QACAD,SAASmB,IAAI,CAACZ;IAChB;IACA,OAAO;QACLC,MAAMY,kCAAkB,CAACC,cAAc;QACvCC,QAAQtB;IACV;AACF"}