@devrev/meerkat-core 0.0.90 → 0.0.93

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 (306) hide show
  1. package/{src/ast-builder → ast-builder}/ast-builder.js +4 -3
  2. package/ast-builder/ast-builder.js.map +1 -0
  3. package/ast-deserializer/ast-deserializer.js.map +1 -0
  4. package/ast-serializer/ast-serializer.js.map +1 -0
  5. package/{src/ast-validator → ast-validator}/dimension-validator.js +3 -3
  6. package/ast-validator/dimension-validator.js.map +1 -0
  7. package/{src/ast-validator → ast-validator}/index.js +3 -3
  8. package/ast-validator/index.js.map +1 -0
  9. package/{src/ast-validator → ast-validator}/measure-validator.js +3 -3
  10. package/ast-validator/measure-validator.js.map +1 -0
  11. package/{src/ast-validator → ast-validator}/tests/test-data.js +9 -9
  12. package/ast-validator/tests/test-data.js.map +1 -0
  13. package/ast-validator/types.js.map +1 -0
  14. package/ast-validator/utils.js.map +1 -0
  15. package/{src/context-params → context-params}/context-params-ast.js +3 -3
  16. package/context-params/context-params-ast.js.map +1 -0
  17. package/cube-filter-transformer/and/and.js.map +1 -0
  18. package/{src/cube-filter-transformer → cube-filter-transformer}/base-condition-builder/base-condition-builder.js +6 -6
  19. package/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +1 -0
  20. package/{src/cube-filter-transformer → cube-filter-transformer}/contains/contains.js +2 -2
  21. package/cube-filter-transformer/contains/contains.js.map +1 -0
  22. package/cube-filter-transformer/equals/equals-array.js +77 -0
  23. package/cube-filter-transformer/equals/equals-array.js.map +1 -0
  24. package/cube-filter-transformer/equals/equals.js.map +1 -0
  25. package/cube-filter-transformer/factory.js.map +1 -0
  26. package/cube-filter-transformer/gt/gt.js.map +1 -0
  27. package/cube-filter-transformer/gte/gte.js.map +1 -0
  28. package/{src/cube-filter-transformer → cube-filter-transformer}/in/in.js +2 -2
  29. package/cube-filter-transformer/in/in.js.map +1 -0
  30. package/cube-filter-transformer/in-date-range/in-date-range.js.map +1 -0
  31. package/cube-filter-transformer/lt/lt.js.map +1 -0
  32. package/cube-filter-transformer/lte/lte.js.map +1 -0
  33. package/cube-filter-transformer/not/not.js.map +1 -0
  34. package/cube-filter-transformer/not-In-date-range/not-In-date-range.js.map +1 -0
  35. package/{src/cube-filter-transformer → cube-filter-transformer}/not-contains/not-contains.js +2 -2
  36. package/cube-filter-transformer/not-contains/not-contains.js.map +1 -0
  37. package/cube-filter-transformer/not-equals/not-equals-array.js.map +1 -0
  38. package/cube-filter-transformer/not-equals/not-equals.js.map +1 -0
  39. package/{src/cube-filter-transformer → cube-filter-transformer}/not-in/not-in.js +2 -2
  40. package/cube-filter-transformer/not-in/not-in.js.map +1 -0
  41. package/{src/cube-filter-transformer → cube-filter-transformer}/not-set/not-set.js +2 -2
  42. package/cube-filter-transformer/not-set/not-set.js.map +1 -0
  43. package/cube-filter-transformer/or/or.js.map +1 -0
  44. package/{src/cube-filter-transformer → cube-filter-transformer}/set/set.js +2 -2
  45. package/cube-filter-transformer/set/set.js.map +1 -0
  46. package/{src/cube-group-by-transformer → cube-group-by-transformer}/cube-group-by-transformer.js +2 -2
  47. package/cube-group-by-transformer/cube-group-by-transformer.js.map +1 -0
  48. package/cube-limit-offset-transformer/cube-limit-offset-transformer.js.map +1 -0
  49. package/{src/cube-measure-transformer → cube-measure-transformer}/cube-measure-transformer.js +10 -9
  50. package/cube-measure-transformer/cube-measure-transformer.js.map +1 -0
  51. package/{src/cube-order-by-transformer → cube-order-by-transformer}/cube-order-by-transformer.js +1 -1
  52. package/cube-order-by-transformer/cube-order-by-transformer.js.map +1 -0
  53. package/cube-to-duckdb/cube-filter-to-duckdb.js.map +1 -0
  54. package/{src/filter-params → filter-params}/filter-params-ast.js +7 -7
  55. package/filter-params/filter-params-ast.js.map +1 -0
  56. package/get-filter-params-sql/get-filter-params-sql.js.map +1 -0
  57. package/get-final-base-sql/get-final-base-sql.js.map +1 -0
  58. package/{src/get-wrapped-base-query-with-projections → get-wrapped-base-query-with-projections}/get-aliased-columns-from-filters.js +8 -7
  59. package/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js.map +1 -0
  60. package/{src/get-wrapped-base-query-with-projections → get-wrapped-base-query-with-projections}/get-projection-clause.js +7 -4
  61. package/get-wrapped-base-query-with-projections/get-projection-clause.js.map +1 -0
  62. package/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js.map +1 -0
  63. package/{src/get-wrapped-base-query-with-projections → get-wrapped-base-query-with-projections}/sql-expression-modifiers.js +6 -6
  64. package/get-wrapped-base-query-with-projections/sql-expression-modifiers.js.map +1 -0
  65. package/{src/index.js → index.js} +9 -12
  66. package/index.js.map +1 -0
  67. package/{src/joins → joins}/joins.js +4 -4
  68. package/joins/joins.js.map +1 -0
  69. package/{src/utils → member-formatters}/constants.js +4 -4
  70. package/member-formatters/constants.js.map +1 -0
  71. package/member-formatters/index.js +23 -0
  72. package/member-formatters/index.js.map +1 -0
  73. package/{src/utils → member-formatters}/member-key-to-safe-key.js +1 -1
  74. package/member-formatters/member-key-to-safe-key.js.map +1 -0
  75. package/member-formatters/split-into-data-source-and-fields.js +17 -0
  76. package/member-formatters/split-into-data-source-and-fields.js.map +1 -0
  77. package/package.json +4 -3
  78. package/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.d.ts +4 -4
  79. package/src/index.d.ts +1 -1
  80. package/src/{utils → member-formatters}/constants.d.ts +1 -1
  81. package/src/member-formatters/index.d.ts +3 -0
  82. package/src/member-formatters/split-into-data-source-and-fields.d.ts +1 -0
  83. package/src/utils/cube-filter-enrichment.d.ts +1 -1
  84. package/types/cube-types/index.d.js.map +1 -0
  85. package/types/cube-types/index.js.map +1 -0
  86. package/types/cube-types/query.d.js.map +1 -0
  87. package/types/cube-types/query.js.map +1 -0
  88. package/types/cube-types/table.d.js.map +1 -0
  89. package/types/cube-types/table.js.map +1 -0
  90. package/types/duckdb-serialization-types/index.d.js.map +1 -0
  91. package/types/duckdb-serialization-types/index.js.map +1 -0
  92. package/types/duckdb-serialization-types/serialization/Constraint.js.map +1 -0
  93. package/{src/types → types}/duckdb-serialization-types/serialization/CreateInfo.js +9 -9
  94. package/types/duckdb-serialization-types/serialization/CreateInfo.js.map +1 -0
  95. package/types/duckdb-serialization-types/serialization/Expression.d.js.map +1 -0
  96. package/{src/types → types}/duckdb-serialization-types/serialization/Expression.js +3 -3
  97. package/types/duckdb-serialization-types/serialization/Expression.js.map +1 -0
  98. package/{src/types → types}/duckdb-serialization-types/serialization/LogicalOperator.js +3 -3
  99. package/types/duckdb-serialization-types/serialization/LogicalOperator.js.map +1 -0
  100. package/types/duckdb-serialization-types/serialization/MacroFunction.js.map +1 -0
  101. package/types/duckdb-serialization-types/serialization/Misc.d.js.map +1 -0
  102. package/types/duckdb-serialization-types/serialization/Misc.js.map +1 -0
  103. package/types/duckdb-serialization-types/serialization/Nodes.d.js +3 -0
  104. package/types/duckdb-serialization-types/serialization/Nodes.d.js.map +1 -0
  105. package/{src/types → types}/duckdb-serialization-types/serialization/Nodes.js +7 -7
  106. package/types/duckdb-serialization-types/serialization/Nodes.js.map +1 -0
  107. package/{src/types → types}/duckdb-serialization-types/serialization/ParseInfo.js +14 -14
  108. package/types/duckdb-serialization-types/serialization/ParseInfo.js.map +1 -0
  109. package/types/duckdb-serialization-types/serialization/ParsedExpression.d.js.map +1 -0
  110. package/types/duckdb-serialization-types/serialization/ParsedExpression.js.map +1 -0
  111. package/types/duckdb-serialization-types/serialization/QueryNode.d.js.map +1 -0
  112. package/{src/types → types}/duckdb-serialization-types/serialization/QueryNode.js +3 -3
  113. package/types/duckdb-serialization-types/serialization/QueryNode.js.map +1 -0
  114. package/types/duckdb-serialization-types/serialization/ResultModifier.d.js.map +1 -0
  115. package/types/duckdb-serialization-types/serialization/ResultModifier.js.map +1 -0
  116. package/types/duckdb-serialization-types/serialization/Statement.d.js.map +1 -0
  117. package/types/duckdb-serialization-types/serialization/Statement.js.map +1 -0
  118. package/types/duckdb-serialization-types/serialization/TableFilter.d.js.map +1 -0
  119. package/types/duckdb-serialization-types/serialization/TableFilter.js.map +1 -0
  120. package/types/duckdb-serialization-types/serialization/TableRef.d.js.map +1 -0
  121. package/{src/types → types}/duckdb-serialization-types/serialization/TableRef.js +4 -4
  122. package/types/duckdb-serialization-types/serialization/TableRef.js.map +1 -0
  123. package/types/duckdb-serialization-types/serialization/Types.d.js.map +1 -0
  124. package/types/duckdb-serialization-types/serialization/Types.js.map +1 -0
  125. package/types/duckdb-serialization-types/serialization/example.js.map +1 -0
  126. package/{src/types → types}/utils.js +9 -9
  127. package/types/utils.js.map +1 -0
  128. package/{src/utils → utils}/__fixtures__/joins.fixtures.js +16 -16
  129. package/utils/__fixtures__/joins.fixtures.js.map +1 -0
  130. package/utils/base-ast.js.map +1 -0
  131. package/{src/utils → utils}/cube-filter-enrichment.js +3 -3
  132. package/utils/cube-filter-enrichment.js.map +1 -0
  133. package/utils/cube-to-table-schema.js +104 -0
  134. package/utils/cube-to-table-schema.js.map +1 -0
  135. package/utils/cube-type-to-duckdb-type.js.map +1 -0
  136. package/utils/find-in-table-schema.js.map +1 -0
  137. package/{src/utils → utils}/get-column-names-from-ast.js +2 -2
  138. package/utils/get-column-names-from-ast.js.map +1 -0
  139. package/utils/get-possible-nodes.js.map +1 -0
  140. package/{src/utils → utils}/get-type-info.js +3 -3
  141. package/utils/get-type-info.js.map +1 -0
  142. package/utils/is-array-member-type.js.map +1 -0
  143. package/{src/utils → utils}/key-from-measures-dimension.js +2 -1
  144. package/utils/key-from-measures-dimension.js.map +1 -0
  145. package/{src/utils → utils}/meerkat-placeholder-replacer.js +1 -1
  146. package/utils/meerkat-placeholder-replacer.js.map +1 -0
  147. package/utils/modify-meerkat-filter.js.map +1 -0
  148. package/{src/utils → utils}/type-guards.js +8 -8
  149. package/utils/type-guards.js.map +1 -0
  150. package/src/ast-builder/ast-builder.js.map +0 -1
  151. package/src/ast-deserializer/ast-deserializer.js.map +0 -1
  152. package/src/ast-serializer/ast-serializer.js.map +0 -1
  153. package/src/ast-validator/dimension-validator.js.map +0 -1
  154. package/src/ast-validator/index.js.map +0 -1
  155. package/src/ast-validator/measure-validator.js.map +0 -1
  156. package/src/ast-validator/tests/test-data.js.map +0 -1
  157. package/src/ast-validator/types.js.map +0 -1
  158. package/src/ast-validator/utils.js.map +0 -1
  159. package/src/context-params/context-params-ast.js.map +0 -1
  160. package/src/cube-filter-transformer/and/and.js.map +0 -1
  161. package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +0 -1
  162. package/src/cube-filter-transformer/constant.d.ts +0 -1
  163. package/src/cube-filter-transformer/constant.js +0 -10
  164. package/src/cube-filter-transformer/constant.js.map +0 -1
  165. package/src/cube-filter-transformer/contains/contains.js.map +0 -1
  166. package/src/cube-filter-transformer/equals/equals-array.js +0 -30
  167. package/src/cube-filter-transformer/equals/equals-array.js.map +0 -1
  168. package/src/cube-filter-transformer/equals/equals.js.map +0 -1
  169. package/src/cube-filter-transformer/factory.js.map +0 -1
  170. package/src/cube-filter-transformer/gt/gt.js.map +0 -1
  171. package/src/cube-filter-transformer/gte/gte.js.map +0 -1
  172. package/src/cube-filter-transformer/in/in.js.map +0 -1
  173. package/src/cube-filter-transformer/in-date-range/in-date-range.js.map +0 -1
  174. package/src/cube-filter-transformer/lt/lt.js.map +0 -1
  175. package/src/cube-filter-transformer/lte/lte.js.map +0 -1
  176. package/src/cube-filter-transformer/not/not.js.map +0 -1
  177. package/src/cube-filter-transformer/not-In-date-range/not-In-date-range.js.map +0 -1
  178. package/src/cube-filter-transformer/not-contains/not-contains.js.map +0 -1
  179. package/src/cube-filter-transformer/not-equals/not-equals-array.js.map +0 -1
  180. package/src/cube-filter-transformer/not-equals/not-equals.js.map +0 -1
  181. package/src/cube-filter-transformer/not-in/not-in.js.map +0 -1
  182. package/src/cube-filter-transformer/not-set/not-set.js.map +0 -1
  183. package/src/cube-filter-transformer/or/or.js.map +0 -1
  184. package/src/cube-filter-transformer/set/set.js.map +0 -1
  185. package/src/cube-group-by-transformer/cube-group-by-transformer.js.map +0 -1
  186. package/src/cube-limit-offset-transformer/cube-limit-offset-transformer.js.map +0 -1
  187. package/src/cube-measure-transformer/cube-measure-transformer.js.map +0 -1
  188. package/src/cube-order-by-transformer/cube-order-by-transformer.js.map +0 -1
  189. package/src/cube-to-duckdb/cube-filter-to-duckdb.js.map +0 -1
  190. package/src/filter-params/filter-params-ast.js.map +0 -1
  191. package/src/get-filter-params-sql/get-filter-params-sql.js.map +0 -1
  192. package/src/get-final-base-sql/get-final-base-sql.js.map +0 -1
  193. package/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js.map +0 -1
  194. package/src/get-wrapped-base-query-with-projections/get-projection-clause.js.map +0 -1
  195. package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js.map +0 -1
  196. package/src/get-wrapped-base-query-with-projections/sql-expression-modifiers.js.map +0 -1
  197. package/src/index.js.map +0 -1
  198. package/src/joins/joins.js.map +0 -1
  199. package/src/types/cube-types/index.d.js.map +0 -1
  200. package/src/types/cube-types/index.js.map +0 -1
  201. package/src/types/cube-types/query.d.js.map +0 -1
  202. package/src/types/cube-types/query.js.map +0 -1
  203. package/src/types/cube-types/table.d.js.map +0 -1
  204. package/src/types/cube-types/table.js.map +0 -1
  205. package/src/types/duckdb-serialization-types/index.d.js.map +0 -1
  206. package/src/types/duckdb-serialization-types/index.js.map +0 -1
  207. package/src/types/duckdb-serialization-types/serialization/Constraint.js.map +0 -1
  208. package/src/types/duckdb-serialization-types/serialization/CreateInfo.js.map +0 -1
  209. package/src/types/duckdb-serialization-types/serialization/Expression.d.js.map +0 -1
  210. package/src/types/duckdb-serialization-types/serialization/Expression.js.map +0 -1
  211. package/src/types/duckdb-serialization-types/serialization/LogicalOperator.js.map +0 -1
  212. package/src/types/duckdb-serialization-types/serialization/MacroFunction.js.map +0 -1
  213. package/src/types/duckdb-serialization-types/serialization/Misc.d.js.map +0 -1
  214. package/src/types/duckdb-serialization-types/serialization/Misc.js.map +0 -1
  215. package/src/types/duckdb-serialization-types/serialization/Nodes.d.js +0 -10
  216. package/src/types/duckdb-serialization-types/serialization/Nodes.d.js.map +0 -1
  217. package/src/types/duckdb-serialization-types/serialization/Nodes.js.map +0 -1
  218. package/src/types/duckdb-serialization-types/serialization/ParseInfo.js.map +0 -1
  219. package/src/types/duckdb-serialization-types/serialization/ParsedExpression.d.js.map +0 -1
  220. package/src/types/duckdb-serialization-types/serialization/ParsedExpression.js.map +0 -1
  221. package/src/types/duckdb-serialization-types/serialization/QueryNode.d.js.map +0 -1
  222. package/src/types/duckdb-serialization-types/serialization/QueryNode.js.map +0 -1
  223. package/src/types/duckdb-serialization-types/serialization/ResultModifier.d.js.map +0 -1
  224. package/src/types/duckdb-serialization-types/serialization/ResultModifier.js.map +0 -1
  225. package/src/types/duckdb-serialization-types/serialization/Statement.d.js.map +0 -1
  226. package/src/types/duckdb-serialization-types/serialization/Statement.js.map +0 -1
  227. package/src/types/duckdb-serialization-types/serialization/TableFilter.d.js.map +0 -1
  228. package/src/types/duckdb-serialization-types/serialization/TableFilter.js.map +0 -1
  229. package/src/types/duckdb-serialization-types/serialization/TableRef.d.js.map +0 -1
  230. package/src/types/duckdb-serialization-types/serialization/TableRef.js.map +0 -1
  231. package/src/types/duckdb-serialization-types/serialization/Types.d.js.map +0 -1
  232. package/src/types/duckdb-serialization-types/serialization/Types.js.map +0 -1
  233. package/src/types/duckdb-serialization-types/serialization/example.js.map +0 -1
  234. package/src/types/utils.js.map +0 -1
  235. package/src/utils/__fixtures__/joins.fixtures.js.map +0 -1
  236. package/src/utils/base-ast.js.map +0 -1
  237. package/src/utils/constants.js.map +0 -1
  238. package/src/utils/cube-filter-enrichment.js.map +0 -1
  239. package/src/utils/cube-to-table-schema.js +0 -104
  240. package/src/utils/cube-to-table-schema.js.map +0 -1
  241. package/src/utils/cube-type-to-duckdb-type.js.map +0 -1
  242. package/src/utils/find-in-table-schema.js.map +0 -1
  243. package/src/utils/get-column-names-from-ast.js.map +0 -1
  244. package/src/utils/get-possible-nodes.js.map +0 -1
  245. package/src/utils/get-type-info.js.map +0 -1
  246. package/src/utils/is-array-member-type.js.map +0 -1
  247. package/src/utils/key-from-measures-dimension.js.map +0 -1
  248. package/src/utils/meerkat-placeholder-replacer.js.map +0 -1
  249. package/src/utils/member-key-to-safe-key.js.map +0 -1
  250. package/src/utils/modify-meerkat-filter.js.map +0 -1
  251. package/src/utils/type-guards.js.map +0 -1
  252. /package/{src/ast-deserializer → ast-deserializer}/ast-deserializer.js +0 -0
  253. /package/{src/ast-serializer → ast-serializer}/ast-serializer.js +0 -0
  254. /package/{src/ast-validator → ast-validator}/types.js +0 -0
  255. /package/{src/ast-validator → ast-validator}/utils.js +0 -0
  256. /package/{src/cube-filter-transformer → cube-filter-transformer}/and/and.js +0 -0
  257. /package/{src/cube-filter-transformer → cube-filter-transformer}/equals/equals.js +0 -0
  258. /package/{src/cube-filter-transformer → cube-filter-transformer}/factory.js +0 -0
  259. /package/{src/cube-filter-transformer → cube-filter-transformer}/gt/gt.js +0 -0
  260. /package/{src/cube-filter-transformer → cube-filter-transformer}/gte/gte.js +0 -0
  261. /package/{src/cube-filter-transformer → cube-filter-transformer}/in-date-range/in-date-range.js +0 -0
  262. /package/{src/cube-filter-transformer → cube-filter-transformer}/lt/lt.js +0 -0
  263. /package/{src/cube-filter-transformer → cube-filter-transformer}/lte/lte.js +0 -0
  264. /package/{src/cube-filter-transformer → cube-filter-transformer}/not/not.js +0 -0
  265. /package/{src/cube-filter-transformer → cube-filter-transformer}/not-In-date-range/not-In-date-range.js +0 -0
  266. /package/{src/cube-filter-transformer → cube-filter-transformer}/not-equals/not-equals-array.js +0 -0
  267. /package/{src/cube-filter-transformer → cube-filter-transformer}/not-equals/not-equals.js +0 -0
  268. /package/{src/cube-filter-transformer → cube-filter-transformer}/or/or.js +0 -0
  269. /package/{src/cube-limit-offset-transformer → cube-limit-offset-transformer}/cube-limit-offset-transformer.js +0 -0
  270. /package/{src/cube-to-duckdb → cube-to-duckdb}/cube-filter-to-duckdb.js +0 -0
  271. /package/{src/get-filter-params-sql → get-filter-params-sql}/get-filter-params-sql.js +0 -0
  272. /package/{src/get-final-base-sql → get-final-base-sql}/get-final-base-sql.js +0 -0
  273. /package/{src/get-wrapped-base-query-with-projections → get-wrapped-base-query-with-projections}/get-wrapped-base-query-with-projections.js +0 -0
  274. /package/src/{utils → member-formatters}/member-key-to-safe-key.d.ts +0 -0
  275. /package/{src/types → types}/cube-types/index.d.js +0 -0
  276. /package/{src/types → types}/cube-types/index.js +0 -0
  277. /package/{src/types → types}/cube-types/query.d.js +0 -0
  278. /package/{src/types → types}/cube-types/query.js +0 -0
  279. /package/{src/types → types}/cube-types/table.d.js +0 -0
  280. /package/{src/types → types}/cube-types/table.js +0 -0
  281. /package/{src/types → types}/duckdb-serialization-types/index.d.js +0 -0
  282. /package/{src/types → types}/duckdb-serialization-types/index.js +0 -0
  283. /package/{src/types → types}/duckdb-serialization-types/serialization/Constraint.js +0 -0
  284. /package/{src/types → types}/duckdb-serialization-types/serialization/Expression.d.js +0 -0
  285. /package/{src/types → types}/duckdb-serialization-types/serialization/MacroFunction.js +0 -0
  286. /package/{src/types → types}/duckdb-serialization-types/serialization/Misc.d.js +0 -0
  287. /package/{src/types → types}/duckdb-serialization-types/serialization/Misc.js +0 -0
  288. /package/{src/types → types}/duckdb-serialization-types/serialization/ParsedExpression.d.js +0 -0
  289. /package/{src/types → types}/duckdb-serialization-types/serialization/ParsedExpression.js +0 -0
  290. /package/{src/types → types}/duckdb-serialization-types/serialization/QueryNode.d.js +0 -0
  291. /package/{src/types → types}/duckdb-serialization-types/serialization/ResultModifier.d.js +0 -0
  292. /package/{src/types → types}/duckdb-serialization-types/serialization/ResultModifier.js +0 -0
  293. /package/{src/types → types}/duckdb-serialization-types/serialization/Statement.d.js +0 -0
  294. /package/{src/types → types}/duckdb-serialization-types/serialization/Statement.js +0 -0
  295. /package/{src/types → types}/duckdb-serialization-types/serialization/TableFilter.d.js +0 -0
  296. /package/{src/types → types}/duckdb-serialization-types/serialization/TableFilter.js +0 -0
  297. /package/{src/types → types}/duckdb-serialization-types/serialization/TableRef.d.js +0 -0
  298. /package/{src/types → types}/duckdb-serialization-types/serialization/Types.d.js +0 -0
  299. /package/{src/types → types}/duckdb-serialization-types/serialization/Types.js +0 -0
  300. /package/{src/types → types}/duckdb-serialization-types/serialization/example.js +0 -0
  301. /package/{src/utils → utils}/base-ast.js +0 -0
  302. /package/{src/utils → utils}/cube-type-to-duckdb-type.js +0 -0
  303. /package/{src/utils → utils}/find-in-table-schema.js +0 -0
  304. /package/{src/utils → utils}/get-possible-nodes.js +0 -0
  305. /package/{src/utils → utils}/is-array-member-type.js +0 -0
  306. /package/{src/utils → utils}/modify-meerkat-filter.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../meerkat-core/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.ts"],"sourcesContent":["import { memberKeyToSafeKey } from '../member-formatters/member-key-to-safe-key';\nimport { splitIntoDataSourceAndFields } from '../member-formatters/split-into-data-source-and-fields';\nimport { MeerkatQueryFilter, Query, TableSchema } from '../types/cube-types';\nimport {\n findInDimensionSchema,\n findInMeasureSchema,\n} from '../utils/find-in-table-schema';\nimport { getModifiedSqlExpression, Modifier } from './sql-expression-modifiers';\n\nexport const getDimensionProjection = ({\n key,\n tableSchema,\n modifiers,\n query,\n}: {\n key: string;\n tableSchema: TableSchema;\n modifiers: Modifier[];\n query: Query;\n}) => {\n // Find the table access key\n const [tableName, measureWithoutTable] = splitIntoDataSourceAndFields(key);\n\n const foundMember = findInDimensionSchema(measureWithoutTable, tableSchema);\n if (!foundMember || tableName !== tableSchema.name) {\n // If the selected member is not found in the table schema or if it is already selected, continue.\n // If the selected member is not from the current table, don't create an alias.\n return {\n sql: undefined,\n foundMember: undefined,\n aliasKey: undefined,\n };\n }\n\n const modifiedSql = getModifiedSqlExpression({\n dimension: foundMember,\n key: key,\n modifiers: modifiers,\n sqlExpression: foundMember.sql,\n query,\n });\n\n const aliasKey = memberKeyToSafeKey(key);\n // Add the alias key to the set. So we have a reference to all the previously selected members.\n return { sql: `${modifiedSql} AS ${aliasKey}`, foundMember, aliasKey };\n};\n\nexport const getFilterMeasureProjection = ({\n key,\n tableSchema,\n measures,\n}: {\n key: string;\n tableSchema: TableSchema;\n measures: string[];\n}) => {\n const [tableName, measureWithoutTable] = splitIntoDataSourceAndFields(key);\n const foundMember = findInMeasureSchema(measureWithoutTable, tableSchema);\n const isMeasure = measures.includes(key);\n if (!foundMember || isMeasure || tableName !== tableSchema.name) {\n // If the selected member is not found in the table schema or if it is already selected, continue.\n // If the selected member is a measure, don't create an alias. Since measure computation is done in the outermost level of the query\n // If the selected member is not from the current table, don't create an alias.\n return {\n sql: undefined,\n foundMember: undefined,\n aliasKey: undefined,\n };\n }\n const aliasKey = memberKeyToSafeKey(key);\n return { sql: `${key} AS ${aliasKey}`, foundMember, aliasKey };\n};\n\nconst getFilterProjections = ({\n member,\n tableSchema,\n measures,\n query,\n}: {\n member: string;\n tableSchema: TableSchema;\n measures: string[];\n query: Query;\n}) => {\n const [, memberWithoutTable] = splitIntoDataSourceAndFields(member);\n const isDimension = findInDimensionSchema(memberWithoutTable, tableSchema);\n if (isDimension) {\n return getDimensionProjection({\n key: member,\n tableSchema,\n modifiers: [],\n query,\n });\n }\n const isMeasure = findInMeasureSchema(memberWithoutTable, tableSchema);\n if (isMeasure) {\n return getFilterMeasureProjection({ key: member, tableSchema, measures });\n }\n return {\n sql: undefined,\n foundMember: undefined,\n aliasKey: undefined,\n };\n};\n\nexport const getAliasedColumnsFromFilters = ({\n baseSql,\n meerkatFilters,\n tableSchema,\n aliasedColumnSet,\n query,\n}: {\n meerkatFilters?: MeerkatQueryFilter[];\n tableSchema: TableSchema;\n baseSql: string;\n aliasedColumnSet: Set<string>;\n query: Query;\n}) => {\n let sql = baseSql;\n const { measures } = query;\n meerkatFilters?.forEach((filter) => {\n if ('and' in filter) {\n // Traverse through the passed 'and' filters\n sql += getAliasedColumnsFromFilters({\n baseSql: '',\n meerkatFilters: filter.and,\n tableSchema,\n aliasedColumnSet,\n query,\n });\n }\n if ('or' in filter) {\n // Traverse through the passed 'or' filters\n sql += getAliasedColumnsFromFilters({\n baseSql: '',\n tableSchema,\n meerkatFilters: filter.or,\n aliasedColumnSet,\n query,\n });\n }\n if ('member' in filter) {\n const {\n aliasKey,\n foundMember,\n sql: memberSql,\n } = getFilterProjections({\n member: filter.member,\n tableSchema,\n measures,\n query,\n });\n if (!foundMember || aliasedColumnSet.has(aliasKey)) {\n // If the selected member is not found in the table schema or if it is already selected, continue.\n return;\n }\n if (aliasKey) {\n aliasedColumnSet.add(aliasKey);\n }\n // Add the alias key to the set. So we have a reference to all the previously selected members.\n sql += `, ${memberSql}`;\n }\n });\n return sql;\n};\n"],"names":["getAliasedColumnsFromFilters","getDimensionProjection","getFilterMeasureProjection","key","tableSchema","modifiers","query","tableName","measureWithoutTable","splitIntoDataSourceAndFields","foundMember","findInDimensionSchema","name","sql","undefined","aliasKey","modifiedSql","getModifiedSqlExpression","dimension","sqlExpression","memberKeyToSafeKey","measures","findInMeasureSchema","isMeasure","includes","getFilterProjections","member","memberWithoutTable","isDimension","baseSql","meerkatFilters","aliasedColumnSet","forEach","filter","and","or","memberSql","has","add"],"mappings":"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"}
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "getProjectionClause", {
6
6
  }
7
7
  });
8
8
  const _cubemeasuretransformer = require("../cube-measure-transformer/cube-measure-transformer");
9
- const _memberkeytosafekey = require("../utils/member-key-to-safe-key");
9
+ const _memberkeytosafekey = require("../member-formatters/member-key-to-safe-key");
10
+ const _splitintodatasourceandfields = require("../member-formatters/split-into-data-source-and-fields");
10
11
  const _getaliasedcolumnsfromfilters = require("./get-aliased-columns-from-filters");
11
12
  const _sqlexpressionmodifiers = require("./sql-expression-modifiers");
12
13
  const memberClauseAggregator = ({ member, aliasedColumnSet, acc, sql })=>{
@@ -20,10 +21,12 @@ const memberClauseAggregator = ({ member, aliasedColumnSet, acc, sql })=>{
20
21
  const getProjectionClause = (query, tableSchema, aliasedColumnSet)=>{
21
22
  const { measures, dimensions = [] } = query;
22
23
  const filteredDimensions = dimensions.filter((dimension)=>{
23
- return dimension.split('.')[0] === tableSchema.name;
24
+ const [dimensionDataSource] = (0, _splitintodatasourceandfields.splitIntoDataSourceAndFields)(dimension);
25
+ return dimensionDataSource === tableSchema.name;
24
26
  });
25
27
  const filteredMeasures = measures.filter((measure)=>{
26
- return measure.split('.')[0] === tableSchema.name;
28
+ const [measureDataSource] = (0, _splitintodatasourceandfields.splitIntoDataSourceAndFields)(measure);
29
+ return measureDataSource === tableSchema.name;
27
30
  });
28
31
  const dimensionsProjectionsArr = filteredDimensions.reduce((acc, member, currentIndex, members)=>{
29
32
  const { sql: memberSql } = (0, _getaliasedcolumnsfromfilters.getDimensionProjection)({
@@ -60,7 +63,7 @@ const getProjectionClause = (query, tableSchema, aliasedColumnSet)=>{
60
63
  const measureProjections = measureProjectionsArr.join(', ');
61
64
  const usedMeasureObjects = tableSchema.measures.filter((measure)=>{
62
65
  return measures.findIndex((key)=>{
63
- const keyWithoutTable = key.split('.')[1];
66
+ const [, keyWithoutTable] = (0, _splitintodatasourceandfields.splitIntoDataSourceAndFields)(key);
64
67
  return keyWithoutTable === measure.name;
65
68
  }) !== -1;
66
69
  });
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../meerkat-core/src/get-wrapped-base-query-with-projections/get-projection-clause.ts"],"sourcesContent":["import { getAllColumnUsedInMeasures } from '../cube-measure-transformer/cube-measure-transformer';\nimport { memberKeyToSafeKey } from '../member-formatters/member-key-to-safe-key';\nimport { splitIntoDataSourceAndFields } from '../member-formatters/split-into-data-source-and-fields';\nimport { Query, TableSchema } from '../types/cube-types';\nimport {\n getDimensionProjection,\n getFilterMeasureProjection,\n} from './get-aliased-columns-from-filters';\nimport { MODIFIERS } from './sql-expression-modifiers';\n\nconst memberClauseAggregator = ({\n member,\n aliasedColumnSet,\n acc,\n sql,\n}: {\n member: string;\n aliasedColumnSet: Set<string>;\n acc: string[];\n sql?: string;\n currentIndex: number;\n members: string[];\n}) => {\n if (aliasedColumnSet.has(member) || !sql) {\n return acc;\n }\n aliasedColumnSet.add(member);\n acc.push(sql);\n return acc;\n};\n\nexport const getProjectionClause = (\n query: Query,\n tableSchema: TableSchema,\n aliasedColumnSet: Set<string>\n) => {\n const { measures, dimensions = [] } = query;\n const filteredDimensions = dimensions.filter((dimension) => {\n const [dimensionDataSource] = splitIntoDataSourceAndFields(dimension);\n return dimensionDataSource === tableSchema.name;\n });\n const filteredMeasures = measures.filter((measure) => {\n const [measureDataSource] = splitIntoDataSourceAndFields(measure);\n return measureDataSource === tableSchema.name;\n });\n const dimensionsProjectionsArr = filteredDimensions.reduce(\n (acc, member, currentIndex, members) => {\n const { sql: memberSql } = getDimensionProjection({\n key: member,\n tableSchema,\n modifiers: MODIFIERS,\n query,\n });\n return memberClauseAggregator({\n member: memberKeyToSafeKey(member),\n aliasedColumnSet,\n acc,\n currentIndex,\n members,\n sql: memberSql,\n });\n },\n [] as string[]\n );\n const dimensionsProjections = dimensionsProjectionsArr.join(', ');\n\n const measureProjectionsArr = filteredMeasures.reduce(\n (acc, member, currentIndex, members) => {\n const { sql: memberSql } = getFilterMeasureProjection({\n key: member,\n tableSchema,\n measures,\n });\n return memberClauseAggregator({\n member,\n aliasedColumnSet,\n acc,\n currentIndex,\n members,\n sql: memberSql,\n });\n },\n [] as string[]\n );\n\n const measureProjections = measureProjectionsArr.join(', ');\n\n const usedMeasureObjects = tableSchema.measures.filter((measure) => {\n return (\n measures.findIndex((key) => {\n const [, keyWithoutTable] = splitIntoDataSourceAndFields(key);\n return keyWithoutTable === measure.name;\n }) !== -1\n );\n });\n const columnsUsedInMeasures = getAllColumnUsedInMeasures(\n usedMeasureObjects,\n tableSchema\n );\n\n let columnsUsedInMeasuresInProjection = '';\n columnsUsedInMeasures.forEach((column, index) => {\n const safeKey = memberKeyToSafeKey(column);\n columnsUsedInMeasuresInProjection += `${column} AS ${safeKey}`;\n if (index !== columnsUsedInMeasures.length - 1) {\n columnsUsedInMeasuresInProjection += ', ';\n }\n });\n\n const combinedStr = [\n dimensionsProjections,\n measureProjections,\n columnsUsedInMeasuresInProjection,\n ];\n\n return combinedStr.filter((str) => str.length > 0).join(', ');\n};\n"],"names":["getProjectionClause","memberClauseAggregator","member","aliasedColumnSet","acc","sql","has","add","push","query","tableSchema","measures","dimensions","filteredDimensions","filter","dimension","dimensionDataSource","splitIntoDataSourceAndFields","name","filteredMeasures","measure","measureDataSource","dimensionsProjectionsArr","reduce","currentIndex","members","memberSql","getDimensionProjection","key","modifiers","MODIFIERS","memberKeyToSafeKey","dimensionsProjections","join","measureProjectionsArr","getFilterMeasureProjection","measureProjections","usedMeasureObjects","findIndex","keyWithoutTable","columnsUsedInMeasures","getAllColumnUsedInMeasures","columnsUsedInMeasuresInProjection","forEach","column","index","safeKey","length","combinedStr","str"],"mappings":";+BA+BaA;;;eAAAA;;;wCA/B8B;oCACR;8CACU;8CAKtC;wCACmB;AAE1B,MAAMC,yBAAyB,CAAC,EAC9BC,MAAM,EACNC,gBAAgB,EAChBC,GAAG,EACHC,GAAG,EAQJ;IACC,IAAIF,iBAAiBG,GAAG,CAACJ,WAAW,CAACG,KAAK;QACxC,OAAOD;IACT;IACAD,iBAAiBI,GAAG,CAACL;IACrBE,IAAII,IAAI,CAACH;IACT,OAAOD;AACT;AAEO,MAAMJ,sBAAsB,CACjCS,OACAC,aACAP;IAEA,MAAM,EAAEQ,QAAQ,EAAEC,aAAa,EAAE,EAAE,GAAGH;IACtC,MAAMI,qBAAqBD,WAAWE,MAAM,CAAC,CAACC;QAC5C,MAAM,CAACC,oBAAoB,GAAGC,IAAAA,0DAA4B,EAACF;QAC3D,OAAOC,wBAAwBN,YAAYQ,IAAI;IACjD;IACA,MAAMC,mBAAmBR,SAASG,MAAM,CAAC,CAACM;QACxC,MAAM,CAACC,kBAAkB,GAAGJ,IAAAA,0DAA4B,EAACG;QACzD,OAAOC,sBAAsBX,YAAYQ,IAAI;IAC/C;IACA,MAAMI,2BAA2BT,mBAAmBU,MAAM,CACxD,CAACnB,KAAKF,QAAQsB,cAAcC;QAC1B,MAAM,EAAEpB,KAAKqB,SAAS,EAAE,GAAGC,IAAAA,oDAAsB,EAAC;YAChDC,KAAK1B;YACLQ;YACAmB,WAAWC,iCAAS;YACpBrB;QACF;QACA,OAAOR,uBAAuB;YAC5BC,QAAQ6B,IAAAA,sCAAkB,EAAC7B;YAC3BC;YACAC;YACAoB;YACAC;YACApB,KAAKqB;QACP;IACF,GACA,EAAE;IAEJ,MAAMM,wBAAwBV,yBAAyBW,IAAI,CAAC;IAE5D,MAAMC,wBAAwBf,iBAAiBI,MAAM,CACnD,CAACnB,KAAKF,QAAQsB,cAAcC;QAC1B,MAAM,EAAEpB,KAAKqB,SAAS,EAAE,GAAGS,IAAAA,wDAA0B,EAAC;YACpDP,KAAK1B;YACLQ;YACAC;QACF;QACA,OAAOV,uBAAuB;YAC5BC;YACAC;YACAC;YACAoB;YACAC;YACApB,KAAKqB;QACP;IACF,GACA,EAAE;IAGJ,MAAMU,qBAAqBF,sBAAsBD,IAAI,CAAC;IAEtD,MAAMI,qBAAqB3B,YAAYC,QAAQ,CAACG,MAAM,CAAC,CAACM;QACtD,OACET,SAAS2B,SAAS,CAAC,CAACV;YAClB,MAAM,GAAGW,gBAAgB,GAAGtB,IAAAA,0DAA4B,EAACW;YACzD,OAAOW,oBAAoBnB,QAAQF,IAAI;QACzC,OAAO,CAAC;IAEZ;IACA,MAAMsB,wBAAwBC,IAAAA,kDAA0B,EACtDJ,oBACA3B;IAGF,IAAIgC,oCAAoC;IACxCF,sBAAsBG,OAAO,CAAC,CAACC,QAAQC;QACrC,MAAMC,UAAUf,IAAAA,sCAAkB,EAACa;QACnCF,qCAAqC,CAAC,EAAEE,OAAO,IAAI,EAAEE,QAAQ,CAAC;QAC9D,IAAID,UAAUL,sBAAsBO,MAAM,GAAG,GAAG;YAC9CL,qCAAqC;QACvC;IACF;IAEA,MAAMM,cAAc;QAClBhB;QACAI;QACAM;KACD;IAED,OAAOM,YAAYlC,MAAM,CAAC,CAACmC,MAAQA,IAAIF,MAAM,GAAG,GAAGd,IAAI,CAAC;AAC1D"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../meerkat-core/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.ts"],"sourcesContent":["import { getSelectReplacedSql } from '../cube-measure-transformer/cube-measure-transformer';\nimport { Query, TableSchema } from '../types/cube-types';\nimport { getAliasedColumnsFromFilters } from './get-aliased-columns-from-filters';\nimport {\n getProjectionClause\n} from './get-projection-clause';\n\ninterface GetWrappedBaseQueryWithProjectionsParams {\n baseQuery: string;\n tableSchema: TableSchema;\n query: Query;\n}\n\nexport const getWrappedBaseQueryWithProjections = ({\n baseQuery,\n tableSchema,\n query,\n}: GetWrappedBaseQueryWithProjectionsParams) => {\n /*\n * Im order to be able to filter on computed metric from a query, we need to project the computed metric in the base query.\n * If theres filters supplied, we can safely return the original base query. Since nothing need to be projected and filtered in this case\n */\n // Wrap the query into another 'SELECT * FROM (baseQuery) AS baseTable'' in order to project everything in the base query, and other computed metrics to be able to filter on them\n const newBaseSql = `SELECT * FROM (${baseQuery}) AS ${tableSchema.name}`;\n const aliasedColumnSet = new Set<string>();\n\n const memberProjections = getProjectionClause(\n query,\n tableSchema,\n aliasedColumnSet\n );\n\n const aliasFromFilters = getAliasedColumnsFromFilters({\n aliasedColumnSet,\n baseSql: 'SELECT *',\n // setting measures to empty array, since we don't want to project measures present in the filters in the base query\n tableSchema: tableSchema,\n query,\n meerkatFilters: query.filters,\n });\n\n const formattedMemberProjection = memberProjections\n ? `, ${memberProjections}`\n : '';\n\n const finalAliasedColumnsClause =\n aliasFromFilters + formattedMemberProjection;\n\n const sqlWithFilterProjects = getSelectReplacedSql(\n newBaseSql,\n finalAliasedColumnsClause\n );\n return sqlWithFilterProjects;\n};\n"],"names":["getWrappedBaseQueryWithProjections","baseQuery","tableSchema","query","newBaseSql","name","aliasedColumnSet","Set","memberProjections","getProjectionClause","aliasFromFilters","getAliasedColumnsFromFilters","baseSql","meerkatFilters","filters","formattedMemberProjection","finalAliasedColumnsClause","sqlWithFilterProjects","getSelectReplacedSql"],"mappings":";+BAaaA;;;eAAAA;;;wCAbwB;8CAEQ;qCAGtC;AAQA,MAAMA,qCAAqC,CAAC,EACjDC,SAAS,EACTC,WAAW,EACXC,KAAK,EACoC;IACzC;;;GAGC,GACD,kLAAkL;IAClL,MAAMC,aAAa,CAAC,eAAe,EAAEH,UAAU,KAAK,EAAEC,YAAYG,IAAI,CAAC,CAAC;IACxE,MAAMC,mBAAmB,IAAIC;IAE7B,MAAMC,oBAAoBC,IAAAA,wCAAmB,EAC3CN,OACAD,aACAI;IAGF,MAAMI,mBAAmBC,IAAAA,0DAA4B,EAAC;QACpDL;QACAM,SAAS;QACT,oHAAoH;QACpHV,aAAaA;QACbC;QACAU,gBAAgBV,MAAMW,OAAO;IAC/B;IAEA,MAAMC,4BAA4BP,oBAC9B,CAAC,EAAE,EAAEA,kBAAkB,CAAC,GACxB;IAEJ,MAAMQ,4BACJN,mBAAmBK;IAErB,MAAME,wBAAwBC,IAAAA,4CAAoB,EAChDd,YACAY;IAEF,OAAOC;AACT"}
@@ -6,17 +6,17 @@ function _export(target, all) {
6
6
  });
7
7
  }
8
8
  _export(exports, {
9
- arrayFieldUnNestModifier: function() {
10
- return arrayFieldUnNestModifier;
11
- },
12
- shouldUnnest: function() {
13
- return shouldUnnest;
14
- },
15
9
  MODIFIERS: function() {
16
10
  return MODIFIERS;
17
11
  },
12
+ arrayFieldUnNestModifier: function() {
13
+ return arrayFieldUnNestModifier;
14
+ },
18
15
  getModifiedSqlExpression: function() {
19
16
  return getModifiedSqlExpression;
17
+ },
18
+ shouldUnnest: function() {
19
+ return shouldUnnest;
20
20
  }
21
21
  });
22
22
  const _isarraymembertype = require("../utils/is-array-member-type");
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../meerkat-core/src/get-wrapped-base-query-with-projections/sql-expression-modifiers.ts"],"sourcesContent":["import { Dimension, Query } from \"../types/cube-types\";\nimport { isArrayTypeMember } from \"../utils/is-array-member-type\";\n\nexport interface DimensionModifier {\n sqlExpression: string,\n dimension: Dimension,\n key: string,\n query: Query\n}\n\nexport const arrayFieldUnNestModifier = ({ sqlExpression }: DimensionModifier): string => {\n return `array[unnest(${sqlExpression})]`;\n}\n\nexport const shouldUnnest = ({ dimension, query }: DimensionModifier): boolean => {\n const isArrayType = isArrayTypeMember(dimension.type);\n const hasUnNestedGroupBy = dimension.modifier?.shouldUnnestGroupBy;\n return !!(isArrayType && hasUnNestedGroupBy && query.measures.length > 0);\n}\n\n\nexport type Modifier = {\n name: string,\n matcher: (modifier: DimensionModifier) => boolean,\n modifier: (modifier: DimensionModifier) => string\n}\n\nexport const MODIFIERS: Modifier[] = [{\n name: 'shouldUnnestGroupBy',\n matcher: shouldUnnest,\n modifier: arrayFieldUnNestModifier\n}]\n\n\nexport const getModifiedSqlExpression = ({ sqlExpression, dimension, key, modifiers, query }: DimensionModifier & {\n modifiers: Modifier[]\n}) => {\n let finalDimension: string = sqlExpression;\n modifiers.forEach(({ modifier, matcher }) => {\n const shouldModify = matcher({ sqlExpression: finalDimension, dimension, key, query });\n if (shouldModify) {\n finalDimension = modifier({ sqlExpression: finalDimension, dimension, key, query });\n }\n })\n return finalDimension;\n} "],"names":["MODIFIERS","arrayFieldUnNestModifier","getModifiedSqlExpression","shouldUnnest","sqlExpression","dimension","query","isArrayType","isArrayTypeMember","type","hasUnNestedGroupBy","modifier","shouldUnnestGroupBy","measures","length","name","matcher","key","modifiers","finalDimension","forEach","shouldModify"],"mappings":";;;;;;;;IA2BaA,SAAS;eAATA;;IAjBAC,wBAAwB;eAAxBA;;IAwBAC,wBAAwB;eAAxBA;;IApBAC,YAAY;eAAZA;;;mCAbqB;AAS3B,MAAMF,2BAA2B,CAAC,EAAEG,aAAa,EAAqB;IAC5E,OAAO,CAAC,aAAa,EAAEA,cAAc,EAAE,CAAC;AACzC;AAEO,MAAMD,eAAe,CAAC,EAAEE,SAAS,EAAEC,KAAK,EAAqB;QAEvCD;IAD3B,MAAME,cAAeC,IAAAA,oCAAiB,EAACH,UAAUI,IAAI;IACrD,MAAMC,sBAAqBL,sBAAAA,UAAUM,QAAQ,qBAAlBN,oBAAoBO,mBAAmB;IAClE,OAAO,CAAC,CAAEL,CAAAA,eAAeG,sBAAsBJ,MAAMO,QAAQ,CAACC,MAAM,GAAG,CAAA;AACzE;AASO,MAAMd,YAAwB;IAAC;QACpCe,MAAM;QACNC,SAASb;QACTQ,UAAUV;IACZ;CAAE;AAGK,MAAMC,2BAA2B,CAAC,EAAEE,aAAa,EAAEC,SAAS,EAAEY,GAAG,EAAEC,SAAS,EAAEZ,KAAK,EAEzF;IACC,IAAIa,iBAAyBf;IAC7Bc,UAAUE,OAAO,CAAC,CAAC,EAAET,QAAQ,EAAEK,OAAO,EAAE;QACtC,MAAMK,eAAeL,QAAQ;YAAEZ,eAAee;YAAgBd;YAAWY;YAAKX;QAAM;QACpF,IAAIe,cAAc;YAChBF,iBAAiBR,SAAS;gBAAEP,eAAee;gBAAgBd;gBAAWY;gBAAKX;YAAM;QACnF;IACF;IACA,OAAOa;AACT"}
@@ -6,8 +6,11 @@ function _export(target, all) {
6
6
  });
7
7
  }
8
8
  _export(exports, {
9
- detectApplyContextParamsToBaseSQL: function() {
10
- return _contextparamsast.detectApplyContextParamsToBaseSQL;
9
+ BASE_TABLE_NAME: function() {
10
+ return _baseast.BASE_TABLE_NAME;
11
+ },
12
+ FilterType: function() {
13
+ return _cubetypes.FilterType;
11
14
  },
12
15
  applyFilterParamsToBaseSQL: function() {
13
16
  return _filterparamsast.applyFilterParamsToBaseSQL;
@@ -15,6 +18,9 @@ _export(exports, {
15
18
  detectAllFilterParamsFromSQL: function() {
16
19
  return _filterparamsast.detectAllFilterParamsFromSQL;
17
20
  },
21
+ detectApplyContextParamsToBaseSQL: function() {
22
+ return _contextparamsast.detectApplyContextParamsToBaseSQL;
23
+ },
18
24
  getFilterParamsAST: function() {
19
25
  return _filterparamsast.getFilterParamsAST;
20
26
  },
@@ -27,17 +33,8 @@ _export(exports, {
27
33
  getWrappedBaseQueryWithProjections: function() {
28
34
  return _getwrappedbasequerywithprojections.getWrappedBaseQueryWithProjections;
29
35
  },
30
- FilterType: function() {
31
- return _cubetypes.FilterType;
32
- },
33
- BASE_TABLE_NAME: function() {
34
- return _baseast.BASE_TABLE_NAME;
35
- },
36
36
  meerkatPlaceholderReplacer: function() {
37
37
  return _meerkatplaceholderreplacer.meerkatPlaceholderReplacer;
38
- },
39
- memberKeyToSafeKey: function() {
40
- return _memberkeytosafekey.memberKeyToSafeKey;
41
38
  }
42
39
  });
43
40
  const _export_star = require("@swc/helpers/_/_export_star");
@@ -53,6 +50,7 @@ const _getfilterparamssql = require("./get-filter-params-sql/get-filter-params-s
53
50
  const _getfinalbasesql = require("./get-final-base-sql/get-final-base-sql");
54
51
  const _getwrappedbasequerywithprojections = require("./get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections");
55
52
  _export_star._(require("./joins/joins"), exports);
53
+ _export_star._(require("./member-formatters"), exports);
56
54
  const _cubetypes = require("./types/cube-types");
57
55
  _export_star._(require("./types/cube-types/index"), exports);
58
56
  _export_star._(require("./types/duckdb-serialization-types/index"), exports);
@@ -62,6 +60,5 @@ _export_star._(require("./utils/cube-to-table-schema"), exports);
62
60
  _export_star._(require("./utils/get-column-names-from-ast"), exports);
63
61
  _export_star._(require("./utils/get-possible-nodes"), exports);
64
62
  const _meerkatplaceholderreplacer = require("./utils/meerkat-placeholder-replacer");
65
- const _memberkeytosafekey = require("./utils/member-key-to-safe-key");
66
63
 
67
64
  //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../meerkat-core/src/index.ts"],"sourcesContent":["export * from './ast-builder/ast-builder';\nexport * from './ast-deserializer/ast-deserializer';\nexport * from './ast-serializer/ast-serializer';\nexport * from './ast-validator';\nexport { detectApplyContextParamsToBaseSQL } from './context-params/context-params-ast';\nexport * from './cube-measure-transformer/cube-measure-transformer';\nexport * from './cube-to-duckdb/cube-filter-to-duckdb';\nexport {\n applyFilterParamsToBaseSQL,\n detectAllFilterParamsFromSQL,\n getFilterParamsAST,\n} from './filter-params/filter-params-ast';\nexport { getFilterParamsSQL } from './get-filter-params-sql/get-filter-params-sql';\nexport { getFinalBaseSQL } from './get-final-base-sql/get-final-base-sql';\nexport { getWrappedBaseQueryWithProjections } from './get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections';\nexport * from './joins/joins';\nexport * from './member-formatters';\nexport { FilterType } from './types/cube-types';\nexport * from './types/cube-types/index';\nexport * from './types/duckdb-serialization-types/index';\nexport * from './types/utils';\nexport { BASE_TABLE_NAME } from './utils/base-ast';\nexport * from './utils/cube-to-table-schema';\nexport * from './utils/get-column-names-from-ast';\nexport * from './utils/get-possible-nodes';\nexport { meerkatPlaceholderReplacer } from './utils/meerkat-placeholder-replacer';\n"],"names":["BASE_TABLE_NAME","FilterType","applyFilterParamsToBaseSQL","detectAllFilterParamsFromSQL","detectApplyContextParamsToBaseSQL","getFilterParamsAST","getFilterParamsSQL","getFinalBaseSQL","getWrappedBaseQueryWithProjections","meerkatPlaceholderReplacer"],"mappings":";;;;;;;;IAqBSA,eAAe;eAAfA,wBAAe;;IAJfC,UAAU;eAAVA,qBAAU;;IATjBC,0BAA0B;eAA1BA,2CAA0B;;IAC1BC,4BAA4B;eAA5BA,6CAA4B;;IALrBC,iCAAiC;eAAjCA,mDAAiC;;IAMxCC,kBAAkB;eAAlBA,mCAAkB;;IAEXC,kBAAkB;eAAlBA,sCAAkB;;IAClBC,eAAe;eAAfA,gCAAe;;IACfC,kCAAkC;eAAlCA,sEAAkC;;IAWlCC,0BAA0B;eAA1BA,sDAA0B;;;;uBAzBrB;uBACA;uBACA;uBACA;kCACoC;uBACpC;uBACA;iCAKP;oCAC4B;iCACH;oDACmB;uBACrC;uBACA;2BACa;uBACb;uBACA;uBACA;yBACkB;uBAClB;uBACA;uBACA;4CAC6B"}
@@ -6,14 +6,14 @@ function _export(target, all) {
6
6
  });
7
7
  }
8
8
  _export(exports, {
9
- generateSqlQuery: function() {
10
- return generateSqlQuery;
9
+ checkLoopInJoinPath: function() {
10
+ return checkLoopInJoinPath;
11
11
  },
12
12
  createDirectedGraph: function() {
13
13
  return createDirectedGraph;
14
14
  },
15
- checkLoopInJoinPath: function() {
16
- return checkLoopInJoinPath;
15
+ generateSqlQuery: function() {
16
+ return generateSqlQuery;
17
17
  },
18
18
  getCombinedTableSchema: function() {
19
19
  return getCombinedTableSchema;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../meerkat-core/src/joins/joins.ts"],"sourcesContent":["import { JoinPath, Query, TableSchema, isJoinNode } from '../types/cube-types';\n\nexport type Graph = {\n [key: string]: { [key: string]: { [key: string]: string } };\n};\n\nexport function generateSqlQuery(\n path: JoinPath[],\n tableSchemaSqlMap: { [key: string]: string },\n directedGraph: Graph\n): string {\n if (path.length === 0) {\n throw new Error(\n 'Invalid path, multiple data sources are present without a join path.'\n );\n }\n\n const startingNode = path[0][0].left;\n let query = `${tableSchemaSqlMap[startingNode]}`;\n\n /**\n * If the starting node is not a join node, then return the query as is.\n * It means that the query is a single node query.\n */\n if (!isJoinNode(path[0][0])) {\n return query;\n }\n\n const visitedNodes = new Map();\n\n for (let i = 0; i < path.length; i++) {\n if (path[i][0].left !== startingNode) {\n throw new Error(\n 'Invalid path, starting node is not the same for all paths.'\n );\n }\n for (let j = 0; j < path[i].length; j++) {\n const currentEdge = path[i][j];\n\n if (!isJoinNode(currentEdge)) {\n continue;\n }\n\n const visitedFrom = visitedNodes.get(currentEdge.right);\n\n // If node is already visited from the same edge, continue to next iteration\n if (visitedFrom && visitedFrom.left === currentEdge.left) {\n continue;\n }\n // If node is already visited from a different edge, throw ambiguity error\n if (visitedFrom) {\n throw new Error(\n `Path ambiguity, node ${currentEdge.right} visited from different sources`\n );\n }\n\n // If visitedFrom is undefined, this is the first visit to the node\n visitedNodes.set(currentEdge.right, currentEdge);\n\n query += ` LEFT JOIN (${tableSchemaSqlMap[currentEdge.right]}) AS ${\n currentEdge.right\n } ON ${\n directedGraph[currentEdge.left][currentEdge.right][currentEdge.on]\n }`;\n }\n }\n\n return query;\n}\n\nexport const createDirectedGraph = (\n tableSchema: TableSchema[],\n tableSchemaSqlMap: { [key: string]: string }\n) => {\n const directedGraph: {\n [key: string]: { [key: string]: { [key: string]: string } };\n } = {};\n\n function addEdge(\n table1: string,\n table2: string,\n joinOn: string,\n joinCondition: string\n ) {\n if (\n table1 === table2 ||\n (directedGraph[table1] &&\n directedGraph[table1][table2] &&\n directedGraph[table1][table2][joinOn])\n ) {\n throw new Error('An invalid path was detected.');\n }\n if (!directedGraph[table1]) directedGraph[table1] = {};\n if (!directedGraph[table1][table2]) directedGraph[table1][table2] = {};\n directedGraph[table1][table2][joinOn] = joinCondition;\n }\n /**\n * Iterate through the table schema and add the edges to the directed graph.\n * The edges are added based on the join conditions provided in the table schema.\n * The SQL is split by the '=' sign and the tables columns involved in the joins are extracted.\n * The tables are then added as edges to the directed graph.\n */\n tableSchema.forEach((schema) => {\n schema?.joins?.forEach((join) => {\n const tables = join.sql.split('=').map((str) => str.split('.')[0].trim());\n const conditions = join.sql\n .split('=')\n .map((str) => str.split('.')[1].trim());\n\n /**\n * If the join SQL does not contain exactly 2 tables, then the join is invalid.\n */\n if (tables.length !== 2) {\n throw new Error(`Invalid join SQL: ${join.sql}`);\n }\n\n /**\n * If the tables are the same, then the join is invalid.\n */\n if (tables[0] === tables[1]) {\n throw new Error(`Invalid join SQL: ${join.sql}`);\n }\n\n /**\n * If the tables are not found in the table schema, then the join is invalid.\n */\n\n if (tables[0] !== schema.name && tables[1] !== schema.name) {\n throw new Error(\n `Table \"${schema.name}\" not found in provided join SQL: ${join.sql}`\n );\n }\n\n /**\n * Check if the tables are found in the table schema SQL map.\n */\n if (!tableSchemaSqlMap[tables[0]] || !tableSchemaSqlMap[tables[1]]) {\n return;\n }\n /**\n * If the table is the source table, then add the edge from the source to the target.\n * Thus find which table is the source and which is the target and add the edge accordingly.\n */\n if (tables[0] === schema.name) {\n addEdge(tables[0], tables[1], conditions[0], join.sql);\n } else {\n addEdge(tables[1], tables[0], conditions[1], join.sql);\n }\n });\n });\n\n return directedGraph;\n};\n\nexport const checkLoopInJoinPath = (joinPath: JoinPath[]) => {\n for (let i = 0; i < joinPath.length; i++) {\n const visitedNodes = new Set<string>();\n const currentJoinPath = joinPath[i];\n visitedNodes.add(currentJoinPath[0].left);\n for (let j = 0; j < currentJoinPath.length; j++) {\n const currentEdge = currentJoinPath[j];\n if (isJoinNode(currentEdge) && visitedNodes.has(currentEdge.right)) {\n if (visitedNodes.has(currentEdge.right)) {\n return true;\n }\n visitedNodes.add(currentEdge.right);\n }\n }\n }\n return false;\n};\n\nexport const getCombinedTableSchema = async (\n tableSchema: TableSchema[],\n cubeQuery: Query\n) => {\n if (tableSchema.length === 1) {\n return tableSchema[0];\n }\n\n const tableSchemaSqlMap = tableSchema.reduce(\n (acc: { [key: string]: string }, schema: TableSchema) => {\n return { ...acc, [schema.name]: schema.sql };\n },\n {}\n );\n\n const directedGraph = createDirectedGraph(tableSchema, tableSchemaSqlMap);\n const hasLoop = checkLoopInJoinPath(cubeQuery.joinPaths || []);\n if (hasLoop) {\n throw new Error(\n `A loop was detected in the joins. ${JSON.stringify(\n cubeQuery.joinPaths || []\n )}`\n );\n }\n\n const baseSql = generateSqlQuery(\n cubeQuery.joinPaths || [],\n tableSchemaSqlMap,\n directedGraph\n );\n\n const combinedTableSchema = tableSchema.reduce(\n (acc: TableSchema, schema: TableSchema) => {\n return {\n name: 'MEERKAT_GENERATED_TABLE',\n sql: baseSql,\n measures: [...acc.measures, ...schema.measures],\n dimensions: [...acc.dimensions, ...schema.dimensions],\n joins: [],\n };\n },\n {\n name: '',\n sql: '',\n measures: [],\n dimensions: [],\n joins: [],\n }\n );\n return combinedTableSchema;\n};\n"],"names":["checkLoopInJoinPath","createDirectedGraph","generateSqlQuery","getCombinedTableSchema","path","tableSchemaSqlMap","directedGraph","length","Error","startingNode","left","query","isJoinNode","visitedNodes","Map","i","j","currentEdge","visitedFrom","get","right","set","on","tableSchema","addEdge","table1","table2","joinOn","joinCondition","forEach","schema","joins","join","tables","sql","split","map","str","trim","conditions","name","joinPath","Set","currentJoinPath","add","has","cubeQuery","reduce","acc","hasLoop","joinPaths","JSON","stringify","baseSql","combinedTableSchema","measures","dimensions"],"mappings":"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"}
@@ -6,14 +6,14 @@ function _export(target, all) {
6
6
  });
7
7
  }
8
8
  _export(exports, {
9
+ COLUMN_NAME_DELIMITER: function() {
10
+ return COLUMN_NAME_DELIMITER;
11
+ },
9
12
  MEERKAT_OUTPUT_DELIMITER: function() {
10
13
  return MEERKAT_OUTPUT_DELIMITER;
11
- },
12
- MEERKAT_INPUT_DELIMITER: function() {
13
- return MEERKAT_INPUT_DELIMITER;
14
14
  }
15
15
  });
16
+ const COLUMN_NAME_DELIMITER = '.';
16
17
  const MEERKAT_OUTPUT_DELIMITER = '__';
17
- const MEERKAT_INPUT_DELIMITER = '.';
18
18
 
19
19
  //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../meerkat-core/src/member-formatters/constants.ts"],"sourcesContent":["export const COLUMN_NAME_DELIMITER = '.';\nexport const MEERKAT_OUTPUT_DELIMITER = '__';\n"],"names":["COLUMN_NAME_DELIMITER","MEERKAT_OUTPUT_DELIMITER"],"mappings":";;;;;;;;IAAaA,qBAAqB;eAArBA;;IACAC,wBAAwB;eAAxBA;;;AADN,MAAMD,wBAAwB;AAC9B,MAAMC,2BAA2B"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ function _export(target, all) {
3
+ for(var name in all)Object.defineProperty(target, name, {
4
+ enumerable: true,
5
+ get: all[name]
6
+ });
7
+ }
8
+ _export(exports, {
9
+ COLUMN_NAME_DELIMITER: function() {
10
+ return _constants.COLUMN_NAME_DELIMITER;
11
+ },
12
+ memberKeyToSafeKey: function() {
13
+ return _memberkeytosafekey.memberKeyToSafeKey;
14
+ },
15
+ splitIntoDataSourceAndFields: function() {
16
+ return _splitintodatasourceandfields.splitIntoDataSourceAndFields;
17
+ }
18
+ });
19
+ const _constants = require("./constants");
20
+ const _memberkeytosafekey = require("./member-key-to-safe-key");
21
+ const _splitintodatasourceandfields = require("./split-into-data-source-and-fields");
22
+
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../meerkat-core/src/member-formatters/index.ts"],"sourcesContent":["export { COLUMN_NAME_DELIMITER } from './constants';\nexport { memberKeyToSafeKey } from './member-key-to-safe-key';\nexport { splitIntoDataSourceAndFields } from './split-into-data-source-and-fields';\n"],"names":["COLUMN_NAME_DELIMITER","memberKeyToSafeKey","splitIntoDataSourceAndFields"],"mappings":";;;;;;;;IAASA,qBAAqB;eAArBA,gCAAqB;;IACrBC,kBAAkB;eAAlBA,sCAAkB;;IAClBC,4BAA4B;eAA5BA,0DAA4B;;;2BAFC;oCACH;8CACU"}
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "memberKeyToSafeKey", {
7
7
  });
8
8
  const _constants = require("./constants");
9
9
  const memberKeyToSafeKey = (memberKey)=>{
10
- return memberKey.split(_constants.MEERKAT_INPUT_DELIMITER).join(_constants.MEERKAT_OUTPUT_DELIMITER);
10
+ return memberKey.split(_constants.COLUMN_NAME_DELIMITER).join(_constants.MEERKAT_OUTPUT_DELIMITER);
11
11
  };
12
12
 
13
13
  //# sourceMappingURL=member-key-to-safe-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../meerkat-core/src/member-formatters/member-key-to-safe-key.ts"],"sourcesContent":["import { COLUMN_NAME_DELIMITER, MEERKAT_OUTPUT_DELIMITER } from './constants';\n\nexport const memberKeyToSafeKey = (memberKey: string) => {\n return memberKey.split(COLUMN_NAME_DELIMITER).join(MEERKAT_OUTPUT_DELIMITER);\n};\n"],"names":["memberKeyToSafeKey","memberKey","split","COLUMN_NAME_DELIMITER","join","MEERKAT_OUTPUT_DELIMITER"],"mappings":";+BAEaA;;;eAAAA;;;2BAFmD;AAEzD,MAAMA,qBAAqB,CAACC;IACjC,OAAOA,UAAUC,KAAK,CAACC,gCAAqB,EAAEC,IAAI,CAACC,mCAAwB;AAC7E"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "splitIntoDataSourceAndFields", {
3
+ enumerable: true,
4
+ get: function() {
5
+ return splitIntoDataSourceAndFields;
6
+ }
7
+ });
8
+ const _constants = require("./constants");
9
+ const splitIntoDataSourceAndFields = (member)=>{
10
+ const [dataSource, ...fields] = member.split(_constants.COLUMN_NAME_DELIMITER);
11
+ return [
12
+ dataSource,
13
+ fields.join(_constants.COLUMN_NAME_DELIMITER)
14
+ ];
15
+ };
16
+
17
+ //# sourceMappingURL=split-into-data-source-and-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../meerkat-core/src/member-formatters/split-into-data-source-and-fields.ts"],"sourcesContent":["import { COLUMN_NAME_DELIMITER } from './constants';\n\nexport const splitIntoDataSourceAndFields = (member: string) => {\n const [dataSource, ...fields] = member.split(COLUMN_NAME_DELIMITER);\n return [dataSource, fields.join(COLUMN_NAME_DELIMITER)];\n};\n"],"names":["splitIntoDataSourceAndFields","member","dataSource","fields","split","COLUMN_NAME_DELIMITER","join"],"mappings":";+BAEaA;;;eAAAA;;;2BAFyB;AAE/B,MAAMA,+BAA+B,CAACC;IAC3C,MAAM,CAACC,YAAY,GAAGC,OAAO,GAAGF,OAAOG,KAAK,CAACC,gCAAqB;IAClE,OAAO;QAACH;QAAYC,OAAOG,IAAI,CAACD,gCAAqB;KAAE;AACzD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devrev/meerkat-core",
3
- "version": "0.0.90",
3
+ "version": "0.0.93",
4
4
  "dependencies": {
5
5
  "@swc/helpers": "~0.5.0"
6
6
  },
@@ -26,5 +26,6 @@
26
26
  },
27
27
  "keywords": [],
28
28
  "author": "devrev",
29
- "license": "ISC"
30
- }
29
+ "license": "ISC",
30
+ "types": "./src/index.d.ts"
31
+ }
@@ -1,6 +1,6 @@
1
- import { MeerkatQueryFilter, Query, TableSchema } from "../types/cube-types";
2
- import { Modifier } from "./sql-expression-modifiers";
3
- export declare const getDimensionProjection: ({ key, tableSchema, modifiers, query }: {
1
+ import { MeerkatQueryFilter, Query, TableSchema } from '../types/cube-types';
2
+ import { Modifier } from './sql-expression-modifiers';
3
+ export declare const getDimensionProjection: ({ key, tableSchema, modifiers, query, }: {
4
4
  key: string;
5
5
  tableSchema: TableSchema;
6
6
  modifiers: Modifier[];
@@ -27,7 +27,7 @@ export declare const getFilterMeasureProjection: ({ key, tableSchema, measures,
27
27
  foundMember: import("../types/cube-types").Measure;
28
28
  aliasKey: string;
29
29
  };
30
- export declare const getAliasedColumnsFromFilters: ({ baseSql, meerkatFilters, tableSchema, aliasedColumnSet, query }: {
30
+ export declare const getAliasedColumnsFromFilters: ({ baseSql, meerkatFilters, tableSchema, aliasedColumnSet, query, }: {
31
31
  meerkatFilters?: MeerkatQueryFilter[] | undefined;
32
32
  tableSchema: TableSchema;
33
33
  baseSql: string;
package/src/index.d.ts CHANGED
@@ -10,6 +10,7 @@ export { getFilterParamsSQL } from './get-filter-params-sql/get-filter-params-sq
10
10
  export { getFinalBaseSQL } from './get-final-base-sql/get-final-base-sql';
11
11
  export { getWrappedBaseQueryWithProjections } from './get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections';
12
12
  export * from './joins/joins';
13
+ export * from './member-formatters';
13
14
  export { FilterType } from './types/cube-types';
14
15
  export * from './types/cube-types/index';
15
16
  export * from './types/duckdb-serialization-types/index';
@@ -19,4 +20,3 @@ export * from './utils/cube-to-table-schema';
19
20
  export * from './utils/get-column-names-from-ast';
20
21
  export * from './utils/get-possible-nodes';
21
22
  export { meerkatPlaceholderReplacer } from './utils/meerkat-placeholder-replacer';
22
- export { memberKeyToSafeKey } from './utils/member-key-to-safe-key';
@@ -1,2 +1,2 @@
1
+ export declare const COLUMN_NAME_DELIMITER = ".";
1
2
  export declare const MEERKAT_OUTPUT_DELIMITER = "__";
2
- export declare const MEERKAT_INPUT_DELIMITER = ".";
@@ -0,0 +1,3 @@
1
+ export { COLUMN_NAME_DELIMITER } from './constants';
2
+ export { memberKeyToSafeKey } from './member-key-to-safe-key';
3
+ export { splitIntoDataSourceAndFields } from './split-into-data-source-and-fields';
@@ -0,0 +1 @@
1
+ export declare const splitIntoDataSourceAndFields: (member: string) => string[];
@@ -1,4 +1,4 @@
1
- import { TableSchema } from '../types/cube-types/table';
2
1
  import { LogicalAndFilterWithInfo, LogicalOrFilterWithInfo, QueryFiltersWithInfo, QueryOperatorsWithInfo } from '../cube-to-duckdb/cube-filter-to-duckdb';
2
+ import { TableSchema } from '../types/cube-types/table';
3
3
  export declare const cubeFiltersEnrichmentInternal: (filters: (QueryOperatorsWithInfo | LogicalAndFilterWithInfo | LogicalOrFilterWithInfo) | QueryFiltersWithInfo, tableSchema: TableSchema) => QueryOperatorsWithInfo | QueryFiltersWithInfo | null;
4
4
  export declare const cubeFiltersEnrichment: (filters: QueryFiltersWithInfo, tableSchema: TableSchema) => QueryFiltersWithInfo | null;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../meerkat-core/src/types/cube-types/index.d.ts"],"sourcesContent":["export * from './query';\nexport * from './table';\n"],"names":[],"mappings":";;uBAAc;uBACA"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../meerkat-core/src/types/cube-types/index.ts"],"sourcesContent":["export * from './query';\nexport * from './table';\n"],"names":[],"mappings":";;uBAAc;uBACA"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../meerkat-core/src/types/cube-types/query.d.ts"],"sourcesContent":["/**\n * Request type data type.\n */\ntype RequestType = 'multi';\n/**\n * Result type data type.\n */\ntype ResultType = 'default' | 'compact';\n/**\n * API type data type.\n */\ntype ApiType = 'sql' | 'graphql' | 'rest' | 'ws' | 'stream';\n/**\n * Parsed query type data type.\n */\ntype QueryType = 'regularQuery' | 'compareDateRangeQuery' | 'blendingQuery';\n/**\n * String that represent query member type.\n */\ntype MemberType = 'measures' | 'dimensions' | 'segments';\n/**\n * Member identifier. Should satisfy to the following regexp: /^[a-zA-Z0-9_]+\\.[a-zA-Z0-9_]+$/\n */\ntype Member = string;\n/**\n * Datetime member identifier. Should satisfy to the following\n * regexp: /^[a-zA-Z0-9_]+\\.[a-zA-Z0-9_]+(\\.(second|minute|hour|day|week|month|year))?$/\n */\ntype TimeMember = string;\n/**\n * Filter operator string.\n */\ntype FilterOperator = 'equals' | 'notEquals' | 'contains' | 'notContains' | 'in' | 'notIn' | 'gt' | 'gte' | 'lt' | 'lte' | 'set' | 'notSet' | 'inDateRange' | 'notInDateRange' | 'onTheDate' | 'beforeDate' | 'afterDate' | 'measureFilter';\n/**\n * Time dimension granularity data type.\n */\ntype QueryTimeDimensionGranularity = 'quarter' | 'day' | 'month' | 'year' | 'week' | 'hour' | 'minute' | 'second';\n/**\n * Query order data type.\n */\ntype QueryOrderType = 'asc' | 'desc';\n/**\n * ApiScopes data type.\n */\ntype ApiScopes = 'graphql' | 'meta' | 'data' | 'jobs';\ninterface QueryFilter {\n member: Member;\n operator: FilterOperator;\n values?: string[];\n}\n/**\n * Query 'and'-filters type definition.\n */\ntype LogicalAndFilter = {\n and: (QueryFilter | {\n or: (QueryFilter | LogicalAndFilter)[];\n })[];\n};\n/**\n * Query 'or'-filters type definition.\n */\ntype LogicalOrFilter = {\n or: (QueryFilter | LogicalAndFilter)[];\n};\n/**\n * Query datetime dimention interface.\n */\ninterface QueryTimeDimension {\n dimension: Member;\n dateRange?: string[] | string;\n granularity?: QueryTimeDimensionGranularity;\n}\n/**\n * Incoming network query data type.\n */\ninterface Query {\n measures: Member[];\n dimensions?: (Member | TimeMember)[];\n filters?: (QueryFilter | LogicalAndFilter | LogicalOrFilter)[];\n timeDimensions?: QueryTimeDimension[];\n segments?: Member[];\n limit?: null | number;\n offset?: number;\n total?: boolean;\n totalQuery?: boolean;\n order?: any;\n timezone?: string;\n renewQuery?: boolean;\n ungrouped?: boolean;\n responseFormat?: ResultType;\n}\n/**\n * Normalized filter interface.\n */\ninterface NormalizedQueryFilter extends QueryFilter {\n dimension?: Member;\n}\n/**\n * Normalized query interface.\n */\ninterface NormalizedQuery extends Query {\n filters?: NormalizedQueryFilter[];\n rowLimit?: null | number;\n order?: [{\n id: string;\n desc: boolean;\n }];\n}\nexport { ApiScopes, ApiType, FilterOperator, LogicalAndFilter, LogicalOrFilter, Member, MemberType, NormalizedQuery, NormalizedQueryFilter, Query, QueryFilter, QueryOrderType, QueryTimeDimension, QueryTimeDimensionGranularity, QueryType, RequestType, ResultType, TimeMember, };\n"],"names":[],"mappings":"AAAA;;CAEC"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../meerkat-core/src/types/cube-types/query.ts"],"sourcesContent":["/**\n * Request type data type.\n */\ntype RequestType = 'multi';\n\n/**\n * Result type data type.\n */\ntype ResultType = 'default' | 'compact';\n\n/**\n * API type data type.\n */\ntype ApiType = 'sql' | 'graphql' | 'rest' | 'ws' | 'stream';\n\n/**\n * Parsed query type data type.\n */\ntype QueryType = 'regularQuery' | 'compareDateRangeQuery' | 'blendingQuery';\n\n/**\n * String that represent query member type.\n */\ntype MemberType = 'measures' | 'dimensions' | 'segments';\n\n/**\n * Member identifier. Should satisfy to the following regexp: /^[a-zA-Z0-9_]+\\.[a-zA-Z0-9_]+$/\n */\ntype Member = string;\n\n\n/**\n * Filter operator string.\n */\ntype FilterOperator =\n | 'equals'\n | 'notEquals'\n | 'contains'\n | 'notContains'\n | 'in'\n | 'notIn'\n | 'gt'\n | 'gte'\n | 'lt'\n | 'lte'\n | 'set'\n | 'notSet'\n | 'inDateRange'\n | 'notInDateRange'\n | 'onTheDate'\n | 'beforeDate'\n | 'afterDate'\n | 'measureFilter';\n\n/**\n * Query order data type.\n */\ntype QueryOrderType = 'asc' | 'desc';\n\n/**\n * ApiScopes data type.\n */\ntype ApiScopes = 'graphql' | 'meta' | 'data' | 'jobs';\n\nexport type FilterType = 'BASE_FILTER' | 'PROJECTION_FILTER';\n\ninterface QueryFilter {\n member: Member;\n operator: FilterOperator;\n values?: string[];\n}\n\n/**\n * Query 'and'-filters type definition.\n */\ntype LogicalAndFilter = {\n and: (QueryFilter | { or: (QueryFilter | LogicalAndFilter)[] })[];\n};\n\n/**\n * Query 'or'-filters type definition.\n */\ntype LogicalOrFilter = {\n or: (QueryFilter | LogicalAndFilter)[];\n};\n\n\n/**\n * Join Edge data type.\n */\n\ninterface JoinNode {\n /**\n * Left node.\n */\n left: Member;\n\n /**\n * Right node.\n */\n right: Member;\n\n /**\n * On condition.\n */\n on: string;\n\n /**\n * Example\n * [\n * [\n * {\n * left: dim_ticket,\n * right: dim_user\n * on: 'created_by_id'\n * },\n * {\n * left : dim_user,\n * right: dim_user_role,\n * on: 'role_id'\n * }\n * ]\n * ]\n *\n *\n */\n}\n\n/**\n * Single node data type.\n * This is the case when there is no join. Just a single node.\n */\ninterface SingleNode {\n /**\n * Left node.\n */\n left: Member;\n}\n\ntype JoinPath = [JoinNode | SingleNode, ...JoinNode[]];\n\nexport const isJoinNode = (node: JoinNode | SingleNode): node is JoinNode => {\n return 'right' in node;\n};\n\n/**\n * Incoming network query data type.\n */\n\ntype MeerkatQueryFilter = QueryFilter | LogicalAndFilter | LogicalOrFilter;\n\ninterface Query {\n measures: Member[];\n dimensions?: Member[];\n filters?: MeerkatQueryFilter[];\n joinPaths?: JoinPath[];\n limit?: null | number;\n offset?: number;\n order?: Record<string, QueryOrderType>;\n}\n\n\nexport {\n ApiScopes,\n ApiType,\n FilterOperator,\n JoinPath,\n LogicalAndFilter,\n LogicalOrFilter,\n MeerkatQueryFilter,\n Member,\n MemberType,\n Query,\n QueryFilter,\n QueryOrderType,\n QueryType,\n RequestType,\n ResultType\n};\n"],"names":["isJoinNode","node"],"mappings":"AAAA;;CAEC;+BA2IYA;;;eAAAA;;;AAAN,MAAMA,aAAa,CAACC;IACzB,OAAO,WAAWA;AACpB"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../meerkat-core/src/types/cube-types/table.d.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../meerkat-core/src/types/cube-types/table.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../meerkat-core/src/types/duckdb-serialization-types/index.d.ts"],"sourcesContent":["export * from './serialization/Expression';\nexport * from './serialization/Nodes';\nexport * from './serialization/ParsedExpression';\nexport * from './serialization/QueryNode';\nexport * from './serialization/ResultModifier';\nexport * from './serialization/Statement';\nexport * from './serialization/TableRef';\n"],"names":[],"mappings":";;uBAAc;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../meerkat-core/src/types/duckdb-serialization-types/index.ts"],"sourcesContent":["export * from './serialization/Expression';\nexport * from './serialization/Nodes';\nexport * from './serialization/ParsedExpression';\nexport * from './serialization/QueryNode';\nexport * from './serialization/ResultModifier';\nexport * from './serialization/Statement';\nexport * from './serialization/TableRef';\n"],"names":[],"mappings":";;uBAAc;uBACA;uBACA;uBACA;uBACA;uBACA;uBACA"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../meerkat-core/src/types/duckdb-serialization-types/serialization/Constraint.ts"],"sourcesContent":["import { ParsedExpression } from './ParsedExpression';\n\nexport enum ConstraintType {\n INVALID = 'INVALID',\n NOT_NULL = 'NOT_NULL',\n CHECK = 'CHECK',\n UNIQUE = 'UNIQUE',\n FOREIGN_KEY = 'FOREIGN_KEY',\n}\n\nexport enum ForeignKeyType {\n FK_TYPE_PRIMARY_KEY_TABLE = 'FK_TYPE_PRIMARY_KEY_TABLE',\n FK_TYPE_FOREIGN_KEY_TABLE = 'FK_TYPE_FOREIGN_KEY_TABLE',\n FK_TYPE_SELF_REFERENCE_TABLE = 'FK_TYPE_SELF_REFERENCE_TABLE',\n}\n\nexport interface BaseConstraint {\n type: ConstraintType;\n}\n\nexport type Constraint = NotNullConstraint | CheckConstraint | ForeignKeyConstraint | UniqueConstraint;\n\nexport interface LogicalIndex {\n index: number;\n}\n\nexport interface PhysicalIndex {\n index: number;\n}\n\nexport interface NotNullConstraint extends BaseConstraint {\n enum: 'NOT_NULL';\n index: LogicalIndex;\n}\n\nexport interface CheckConstraint extends BaseConstraint {\n enum: 'CHECK';\n expression: ParsedExpression;\n}\n\nexport interface ForeignKeyConstraint extends BaseConstraint {\n enum: 'FOREIGN_KEY';\n pk_columns: string[];\n fk_columns: string[];\n fk_type: ForeignKeyType;\n schema: string;\n table: string;\n pk_keys: PhysicalIndex[];\n fk_keys: PhysicalIndex[];\n}\n\nexport interface UniqueConstraint extends BaseConstraint {\n enum: 'UNIQUE';\n is_primary_key: boolean;\n index: LogicalIndex;\n columns: string[];\n}\n"],"names":["ConstraintType","ForeignKeyType"],"mappings":";;;;;;;;;;;;;;;;UAEYA;;;;;;GAAAA,mBAAAA;;UAQAC;;;;GAAAA,mBAAAA"}
@@ -6,17 +6,17 @@ function _export(target, all) {
6
6
  });
7
7
  }
8
8
  _export(exports, {
9
- OnCreateConflict: function() {
10
- return OnCreateConflict;
11
- },
12
9
  CatalogType: function() {
13
10
  return CatalogType;
14
11
  },
12
+ IndexConstraintType: function() {
13
+ return IndexConstraintType;
14
+ },
15
15
  IndexType: function() {
16
16
  return IndexType;
17
17
  },
18
- IndexConstraintType: function() {
19
- return IndexConstraintType;
18
+ OnCreateConflict: function() {
19
+ return OnCreateConflict;
20
20
  }
21
21
  });
22
22
  var OnCreateConflict;
@@ -38,16 +38,16 @@ var CatalogType;
38
38
  CatalogType["COLLATION_ENTRY"] = "COLLATION_ENTRY";
39
39
  CatalogType["TYPE_ENTRY"] = "TYPE_ENTRY";
40
40
  CatalogType["DATABASE_ENTRY"] = "DATABASE_ENTRY";
41
- CatalogType[// functions
42
- "TABLE_FUNCTION_ENTRY"] = "TABLE_FUNCTION_ENTRY";
41
+ // functions
42
+ CatalogType["TABLE_FUNCTION_ENTRY"] = "TABLE_FUNCTION_ENTRY";
43
43
  CatalogType["SCALAR_FUNCTION_ENTRY"] = "SCALAR_FUNCTION_ENTRY";
44
44
  CatalogType["AGGREGATE_FUNCTION_ENTRY"] = "AGGREGATE_FUNCTION_ENTRY";
45
45
  CatalogType["PRAGMA_FUNCTION_ENTRY"] = "PRAGMA_FUNCTION_ENTRY";
46
46
  CatalogType["COPY_FUNCTION_ENTRY"] = "COPY_FUNCTION_ENTRY";
47
47
  CatalogType["MACRO_ENTRY"] = "MACRO_ENTRY";
48
48
  CatalogType["TABLE_MACRO_ENTRY"] = "TABLE_MACRO_ENTRY";
49
- CatalogType[// version info
50
- "UPDATED_ENTRY"] = "UPDATED_ENTRY";
49
+ // version info
50
+ CatalogType["UPDATED_ENTRY"] = "UPDATED_ENTRY";
51
51
  CatalogType["DELETED_ENTRY"] = "DELETED_ENTRY";
52
52
  })(CatalogType || (CatalogType = {}));
53
53
  var IndexType;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../meerkat-core/src/types/duckdb-serialization-types/serialization/CreateInfo.ts"],"sourcesContent":["import { Constraint } from './Constraint';\nimport { MacroFunction } from './MacroFunction';\nimport { Value } from './Misc';\nimport { ColumnList, LogicalType } from './Nodes';\nimport { ParsedExpression } from './ParsedExpression';\nimport { SelectStatement } from './Statement';\n\nexport enum OnCreateConflict {\n ERROR_ON_CONFLICT = 'ERROR_ON_CONFLICT',\n IGNORE_ON_CONFLICT = 'IGNORE_ON_CONFLICT',\n REPLACE_ON_CONFLICT = 'REPLACE_ON_CONFLICT',\n ALTER_ON_CONFLICT = 'ALTER_ON_CONFLICT',\n}\n\nexport enum CatalogType {\n INVALID = 'INVALID',\n TABLE_ENTRY = 'TABLE_ENTRY',\n SCHEMA_ENTRY = 'SCHEMA_ENTRY',\n VIEW_ENTRY = 'VIEW_ENTRY',\n INDEX_ENTRY = 'INDEX_ENTRY',\n PREPARED_STATEMENT = 'PREPARED_STATEMENT',\n SEQUENCE_ENTRY = 'SEQUENCE_ENTRY',\n COLLATION_ENTRY = 'COLLATION_ENTRY',\n TYPE_ENTRY = 'TYPE_ENTRY',\n DATABASE_ENTRY = 'DATABASE_ENTRY',\n\n // functions\n TABLE_FUNCTION_ENTRY = 'TABLE_FUNCTION_ENTRY',\n SCALAR_FUNCTION_ENTRY = 'SCALAR_FUNCTION_ENTRY',\n AGGREGATE_FUNCTION_ENTRY = 'AGGREGATE_FUNCTION_ENTRY',\n PRAGMA_FUNCTION_ENTRY = 'PRAGMA_FUNCTION_ENTRY',\n COPY_FUNCTION_ENTRY = 'COPY_FUNCTION_ENTRY',\n MACRO_ENTRY = 'MACRO_ENTRY',\n TABLE_MACRO_ENTRY = 'TABLE_MACRO_ENTRY',\n\n // version info\n UPDATED_ENTRY = 'UPDATED_ENTRY',\n DELETED_ENTRY = 'DELETED_ENTRY',\n}\n\nexport interface BaseCreateInfo {\n type: CatalogType;\n catalog: string;\n schema: string;\n temporary: boolean;\n internal: boolean;\n on_conflict: OnCreateConflict;\n sql: string;\n}\n\nexport type CreateInfo =\n | CreateIndexInfo\n | CreateTableInfo\n | CreateSchemaInfo\n | CreateViewInfo\n | CreateTypeInfo\n | CreateMacroInfo\n | CreateSequenceInfo;\n\nexport enum IndexType {\n INVALID = 'INVALID',\n ART = 'ART',\n EXTENSION = 'EXTENSION',\n}\n\nexport enum IndexConstraintType {\n NONE = 'NONE',\n UNIQUE = 'UNIQUE',\n PRIMARY = 'PRIMARY',\n FOREIGN = 'FOREIGN',\n}\n\nexport interface CreateIndexInfo extends BaseCreateInfo {\n name: string;\n table: string;\n index_type: IndexType;\n constraint_type: IndexConstraintType;\n parsed_expressions: ParsedExpression[];\n names: string[];\n column_ids: number[];\n options: Record<string, Value>;\n index_type_name: string;\n}\n\nexport interface CreateTableInfo extends BaseCreateInfo {\n table: string;\n columns: ColumnList;\n constraints: Constraint[];\n query?: SelectStatement;\n}\n\nexport type CreateSchemaInfo = BaseCreateInfo\n\nexport interface CreateViewInfo extends BaseCreateInfo {\n view_name: string;\n aliases: string[];\n types: LogicalType[];\n query?: SelectStatement;\n}\n\nexport interface CreateTypeInfo extends BaseCreateInfo {\n name: string;\n logical_type: LogicalType;\n}\n\nexport interface CreateMacroInfo extends BaseCreateInfo {\n name: string;\n function: MacroFunction;\n}\n\nexport interface CreateSequenceInfo extends BaseCreateInfo {\n name: string;\n usage_count: number;\n increment: number;\n min_value: number;\n max_value: number;\n start_value: number;\n cycle: boolean;\n}\n"],"names":["OnCreateConflict","CatalogType","IndexType","IndexConstraintType"],"mappings":";;;;;;;;;;;;;;;;;;;;;;UAOYA;;;;;GAAAA,qBAAAA;;UAOAC;;;;;;;;;;;IAYV,YAAY;;;;;;;;IASZ,eAAe;;;GArBLA,gBAAAA;;UA6CAC;;;;GAAAA,cAAAA;;UAMAC;;;;;GAAAA,wBAAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../meerkat-core/src/types/duckdb-serialization-types/serialization/Expression.d.ts"],"names":[],"mappings":""}
@@ -6,11 +6,11 @@ function _export(target, all) {
6
6
  });
7
7
  }
8
8
  _export(exports, {
9
- ExpressionType: function() {
10
- return ExpressionType;
11
- },
12
9
  ExpressionClass: function() {
13
10
  return ExpressionClass;
11
+ },
12
+ ExpressionType: function() {
13
+ return ExpressionType;
14
14
  }
15
15
  });
16
16
  var ExpressionType;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../meerkat-core/src/types/duckdb-serialization-types/serialization/Expression.ts"],"sourcesContent":["import { Value } from './Misc';\nimport {\n BoundCaseCheck,\n BoundParameterData,\n ColumnBinding,\n LogicalType,\n} from './Nodes';\n\nexport enum ExpressionType {\n INVALID = 'INVALID',\n OPERATOR_CAST = 'OPERATOR_CAST',\n OPERATOR_NOT = 'OPERATOR_NOT',\n OPERATOR_IS_NULL = 'OPERATOR_IS_NULL',\n OPERATOR_IS_NOT_NULL = 'OPERATOR_IS_NOT_NULL',\n COMPARE_EQUAL = 'COMPARE_EQUAL',\n COMPARE_BOUNDARY_START = 'COMPARE_BOUNDARY_START',\n COMPARE_NOTEQUAL = 'COMPARE_NOTEQUAL',\n COMPARE_LESSTHAN = 'COMPARE_LESSTHAN',\n COMPARE_GREATERTHAN = 'COMPARE_GREATERTHAN',\n COMPARE_LESSTHANOREQUALTO = 'COMPARE_LESSTHANOREQUALTO',\n COMPARE_GREATERTHANOREQUALTO = 'COMPARE_GREATERTHANOREQUALTO',\n COMPARE_IN = 'COMPARE_IN',\n COMPARE_NOT_IN = 'COMPARE_NOT_IN',\n COMPARE_DISTINCT_FROM = 'COMPARE_DISTINCT_FROM',\n COMPARE_BETWEEN = 'COMPARE_BETWEEN',\n COMPARE_NOT_BETWEEN = 'COMPARE_NOT_BETWEEN',\n COMPARE_NOT_DISTINCT_FROM = 'COMPARE_NOT_DISTINCT_FROM',\n COMPARE_BOUNDARY_END = 'COMPARE_BOUNDARY_END',\n CONJUNCTION_AND = 'CONJUNCTION_AND',\n CONJUNCTION_OR = 'CONJUNCTION_OR',\n VALUE_CONSTANT = 'VALUE_CONSTANT',\n VALUE_PARAMETER = 'VALUE_PARAMETER',\n VALUE_TUPLE = 'VALUE_TUPLE',\n VALUE_TUPLE_ADDRESS = 'VALUE_TUPLE_ADDRESS',\n VALUE_NULL = 'VALUE_NULL',\n VALUE_VECTOR = 'VALUE_VECTOR',\n VALUE_SCALAR = 'VALUE_SCALAR',\n VALUE_DEFAULT = 'VALUE_DEFAULT',\n AGGREGATE = 'AGGREGATE',\n BOUND_AGGREGATE = 'BOUND_AGGREGATE',\n GROUPING_FUNCTION = 'GROUPING_FUNCTION',\n WINDOW_AGGREGATE = 'WINDOW_AGGREGATE',\n WINDOW_RANK = 'WINDOW_RANK',\n WINDOW_RANK_DENSE = 'WINDOW_RANK_DENSE',\n WINDOW_NTILE = 'WINDOW_NTILE',\n WINDOW_PERCENT_RANK = 'WINDOW_PERCENT_RANK',\n WINDOW_CUME_DIST = 'WINDOW_CUME_DIST',\n WINDOW_ROW_NUMBER = 'WINDOW_ROW_NUMBER',\n WINDOW_FIRST_VALUE = 'WINDOW_FIRST_VALUE',\n WINDOW_LAST_VALUE = 'WINDOW_LAST_VALUE',\n WINDOW_LEAD = 'WINDOW_LEAD',\n WINDOW_LAG = 'WINDOW_LAG',\n WINDOW_NTH_VALUE = 'WINDOW_NTH_VALUE',\n FUNCTION = 'FUNCTION',\n BOUND_FUNCTION = 'BOUND_FUNCTION',\n CASE_EXPR = 'CASE_EXPR',\n OPERATOR_NULLIF = 'OPERATOR_NULLIF',\n OPERATOR_COALESCE = 'OPERATOR_COALESCE',\n ARRAY_EXTRACT = 'ARRAY_EXTRACT',\n ARRAY_SLICE = 'ARRAY_SLICE',\n STRUCT_EXTRACT = 'STRUCT_EXTRACT',\n ARRAY_CONSTRUCTOR = 'ARRAY_CONSTRUCTOR',\n ARROW = 'ARROW',\n SUBQUERY = 'SUBQUERY',\n STAR = 'STAR',\n TABLE_STAR = 'TABLE_STAR',\n PLACEHOLDER = 'PLACEHOLDER',\n COLUMN_REF = 'COLUMN_REF',\n FUNCTION_REF = 'FUNCTION_REF',\n TABLE_REF = 'TABLE_REF',\n CAST = 'CAST',\n BOUND_REF = 'BOUND_REF',\n BOUND_COLUMN_REF = 'BOUND_COLUMN_REF',\n BOUND_UNNEST = 'BOUND_UNNEST',\n COLLATE = 'COLLATE',\n LAMBDA = 'LAMBDA',\n POSITIONAL_REFERENCE = 'POSITIONAL_REFERENCE',\n BOUND_LAMBDA_REF = 'BOUND_LAMBDA_REF',\n}\n\nexport enum ExpressionClass {\n INVALID = 'INVALID',\n AGGREGATE = 'AGGREGATE',\n CASE = 'CASE',\n CAST = 'CAST',\n COLUMN_REF = 'COLUMN_REF',\n COMPARISON = 'COMPARISON',\n CONJUNCTION = 'CONJUNCTION',\n CONSTANT = 'CONSTANT',\n DEFAULT = 'DEFAULT',\n FUNCTION = 'FUNCTION',\n OPERATOR = 'OPERATOR',\n STAR = 'STAR',\n SUBQUERY = 'SUBQUERY',\n WINDOW = 'WINDOW',\n PARAMETER = 'PARAMETER',\n COLLATE = 'COLLATE',\n LAMBDA = 'LAMBDA',\n POSITIONAL_REFERENCE = 'POSITIONAL_REFERENCE',\n BETWEEN = 'BETWEEN',\n BOUND_AGGREGATE = 'BOUND_AGGREGATE',\n BOUND_CASE = 'BOUND_CASE',\n BOUND_CAST = 'BOUND_CAST',\n BOUND_COLUMN_REF = 'BOUND_COLUMN_REF',\n BOUND_COMPARISON = 'BOUND_COMPARISON',\n BOUND_CONJUNCTION = 'BOUND_CONJUNCTION',\n BOUND_CONSTANT = 'BOUND_CONSTANT',\n BOUND_DEFAULT = 'BOUND_DEFAULT',\n BOUND_FUNCTION = 'BOUND_FUNCTION',\n BOUND_OPERATOR = 'BOUND_OPERATOR',\n BOUND_PARAMETER = 'BOUND_PARAMETER',\n BOUND_REF = 'BOUND_REF',\n BOUND_SUBQUERY = 'BOUND_SUBQUERY',\n BOUND_WINDOW = 'BOUND_WINDOW',\n BOUND_BETWEEN = 'BOUND_BETWEEN',\n BOUND_UNNEST = 'BOUND_UNNEST',\n BOUND_LAMBDA = 'BOUND_LAMBDA',\n BOUND_LAMBDA_REF = 'BOUND_LAMBDA_REF',\n BOUND_EXPRESSION = 'BOUND_EXPRESSION',\n}\n\nexport interface BaseExpression {\n expression_class: ExpressionClass;\n type: ExpressionType;\n alias: string;\n}\n\nexport type Expression =\n | BoundBetweenExpression\n | BoundCaseExpression\n | BoundCastExpression\n | BoundColumnRefExpression\n | BoundComparisonExpression\n | BoundConjunctionExpression\n | BoundConstantExpression\n | BoundDefaultExpression\n | BoundLambdaExpression\n | BoundLambdaRefExpression\n | BoundOperatorExpression\n | BoundParameterExpression\n | BoundReferenceExpression\n | BoundUnnestExpression\n | BoundFunctionExpression\n | BoundAggregateExpression\n | BoundWindowExpression;\n\nexport interface BoundBetweenExpression extends BaseExpression {\n input: Expression;\n lower: Expression;\n upper: Expression;\n lower_inclusive: boolean;\n upper_inclusive: boolean;\n}\n\nexport interface BoundCaseExpression extends BaseExpression {\n return_type: LogicalType;\n case_checks: BoundCaseCheck[];\n else_expr: Expression;\n}\n\nexport interface BoundCastExpression extends BaseExpression {\n child: Expression;\n return_type: LogicalType;\n try_cast: boolean;\n}\n\nexport interface BoundColumnRefExpression extends BaseExpression {\n return_type: LogicalType;\n binding: ColumnBinding;\n depth: number;\n}\n\nexport interface BoundComparisonExpression extends BaseExpression {\n left: Expression;\n right: Expression;\n}\n\nexport interface BoundConjunctionExpression extends BaseExpression {\n children: Expression[];\n}\n\nexport interface BoundConstantExpression extends BaseExpression {\n value: Value;\n}\n\nexport interface BoundDefaultExpression extends BaseExpression {\n return_type: LogicalType;\n}\n\nexport interface BoundLambdaExpression extends BaseExpression {\n return_type: LogicalType;\n lambda_expr: Expression;\n captures: Expression[];\n parameter_count: number;\n}\n\nexport interface BoundLambdaRefExpression extends BaseExpression {\n return_type: LogicalType;\n binding: ColumnBinding;\n lambda_index: number;\n depth: number;\n}\n\nexport interface BoundOperatorExpression extends BaseExpression {\n return_type: LogicalType;\n children: Expression[];\n}\n\nexport interface BoundParameterExpression extends BaseExpression {\n identifier: string;\n return_type: LogicalType;\n parameter_data: BoundParameterData;\n}\n\nexport interface BoundReferenceExpression extends BaseExpression {\n return_type: LogicalType;\n index: number;\n}\n\nexport interface BoundUnnestExpression extends BaseExpression {\n return_type: LogicalType;\n child: Expression;\n}\n\nexport type BoundFunctionExpression = BaseExpression;\n\nexport type BoundAggregateExpression = BaseExpression;\n\nexport type BoundWindowExpression = BaseExpression;\n"],"names":["ExpressionType","ExpressionClass"],"mappings":";;;;;;;;;;;;;;;;UAQYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAAA,mBAAAA;;UAwEAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAAA,oBAAAA"}
@@ -9,12 +9,12 @@ _export(exports, {
9
9
  DistinctType: function() {
10
10
  return DistinctType;
11
11
  },
12
- OnConflictAction: function() {
13
- return OnConflictAction;
14
- },
15
12
  ExplainType: function() {
16
13
  return ExplainType;
17
14
  },
15
+ OnConflictAction: function() {
16
+ return OnConflictAction;
17
+ },
18
18
  SetScope: function() {
19
19
  return SetScope;
20
20
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../meerkat-core/src/types/duckdb-serialization-types/serialization/LogicalOperator.ts"],"sourcesContent":["import { PhysicalIndex } from './Constraint';\nimport { CreateInfo } from './CreateInfo';\nimport { Expression } from './Expression';\nimport { ColumnDataCollection, Value } from './Misc';\nimport {\n BoundOrderByNode,\n BoundPivotInfo,\n CTEMaterialize,\n ColumnBinding,\n JoinCondition,\n LogicalType,\n SampleOptions,\n} from './Nodes';\nimport { ParseInfo } from './ParseInfo';\nimport { BoundOrderModifier } from './ResultModifier';\nimport { JoinType } from './TableRef';\n\nexport interface BaseLogicalOperator {\n id?: number;\n name?: string;\n type: string;\n children?: LogicalOperator[];\n}\n\nexport type LogicalOperator =\n | LogicalProjection\n | LogicalFilter\n | LogicalAggregate\n | LogicalWindow\n | LogicalUnnest\n | LogicalLimit\n | LogicalOrder\n | LogicalTopN\n | LogicalDistinct\n | LogicalSample\n | LogicalLimitPercent\n | LogicalColumnDataGet\n | LogicalDelimGet\n | LogicalExpressionGet\n | LogicalDummyScan\n | LogicalEmptyResult\n | LogicalCTERef\n | LogicalComparisonJoin\n | LogicalAnyJoin\n | LogicalCrossProduct\n | LogicalPositionalJoin\n | LogicalSetOperation\n | LogicalRecursiveCTE\n | LogicalMaterializedCTE\n | LogicalInsert\n | LogicalDelete\n | LogicalUpdate\n | LogicalCreateTable\n | LogicalCreate\n | LogicalExplain\n | LogicalShow\n | LogicalSet\n | LogicalReset\n | LogicalSimple\n | LogicalPivot\n | LogicalGet\n | LogicalCopyToFile\n | LogicalCreateIndex\n | LogicalExtensionOperator;\n\nexport interface LogicalProjection extends BaseLogicalOperator {\n table_index: number;\n expressions: Expression[];\n}\n\nexport interface LogicalFilter extends BaseLogicalOperator {\n expressions: Expression[];\n projection_map: number[];\n}\n\nexport interface LogicalAggregate extends BaseLogicalOperator {\n expressions: Expression[];\n group_index: number;\n aggregate_index: number;\n groupings_index: number;\n groups: Expression[];\n grouping_sets: Set<number>[];\n grouping_functions: number[][];\n}\n\nexport interface LogicalWindow extends BaseLogicalOperator {\n window_index: number;\n expressions: Expression[];\n}\n\nexport interface LogicalUnnest extends BaseLogicalOperator {\n unnest_index: number;\n expressions: Expression[];\n}\n\nexport interface LogicalLimit extends BaseLogicalOperator {\n limit_val: number;\n offset_val: number;\n limit?: Expression;\n offset?: Expression;\n}\n\nexport interface LogicalOrder extends BaseLogicalOperator {\n orders: BoundOrderByNode[];\n projections: number[];\n}\n\nexport interface LogicalTopN extends BaseLogicalOperator {\n orders: BoundOrderByNode[];\n limit: number;\n offset: number;\n}\n\nexport enum DistinctType {\n DISTINCT = 'DISTINCT',\n DISTINCT_ON = 'DISTINCT_ON',\n}\n\nexport interface LogicalDistinct extends BaseLogicalOperator {\n distinct_type: DistinctType;\n distinct_targets: Expression[];\n order_by?: BoundOrderModifier;\n}\n\nexport interface LogicalSample extends BaseLogicalOperator {\n sample_options: SampleOptions;\n}\n\nexport interface LogicalLimitPercent extends BaseLogicalOperator {\n limit_percent: number;\n offset_val: number;\n limit?: Expression;\n offset?: Expression;\n}\n\nexport interface LogicalColumnDataGet extends BaseLogicalOperator {\n table_index: number;\n chunk_types: LogicalType[];\n collection: ColumnDataCollection;\n}\n\nexport interface LogicalDelimGet extends BaseLogicalOperator {\n table_index: number;\n chunk_types: LogicalType[];\n}\n\nexport interface LogicalExpressionGet extends BaseLogicalOperator {\n table_index: number;\n expr_types: LogicalType[];\n expressions: Expression[][];\n}\n\nexport interface LogicalDummyScan extends BaseLogicalOperator {\n table_index: number;\n}\n\nexport interface LogicalEmptyResult extends BaseLogicalOperator {\n return_types: LogicalType[];\n bindings: ColumnBinding[];\n}\n\nexport interface LogicalCTERef extends BaseLogicalOperator {\n table_index: number;\n cte_index: number;\n chunk_types: LogicalType[];\n bound_columns: string[];\n materialized_cte: CTEMaterialize;\n}\n\nexport interface LogicalComparisonJoin extends BaseLogicalOperator {\n join_type: JoinType;\n mark_index: number;\n left_projection_map: number[];\n right_projection_map: number[];\n conditions: JoinCondition[];\n mark_types: LogicalType[];\n duplicate_eliminated_columns: Expression[];\n}\n\nexport interface LogicalAnyJoin extends BaseLogicalOperator {\n join_type: JoinType;\n mark_index: number;\n left_projection_map: number[];\n right_projection_map: number[];\n condition: Expression;\n}\n\nexport type LogicalCrossProduct = BaseLogicalOperator;\n\nexport type LogicalPositionalJoin = BaseLogicalOperator;\n\nexport interface LogicalSetOperation extends BaseLogicalOperator {\n table_index: number;\n column_count: number;\n}\n\nexport interface LogicalRecursiveCTE extends BaseLogicalOperator {\n union_all: boolean;\n ctename: string;\n table_index: number;\n column_count: number;\n}\n\nexport interface LogicalMaterializedCTE extends BaseLogicalOperator {\n table_index: number;\n column_count: number;\n ctename: string;\n}\n\nexport enum OnConflictAction {\n THROW = 'THROW',\n NOTHING = 'NOTHING',\n UPDATE = 'UPDATE',\n REPLACE = 'REPLACE',\n}\n\nexport interface LogicalInsert extends BaseLogicalOperator {\n catalog: string;\n schema: string;\n table: string;\n insert_values: Expression[][];\n column_index_map: number[];\n expected_types: LogicalType[];\n table_index: number;\n return_chunk: boolean;\n bound_defaults: Expression[];\n action_type: OnConflictAction;\n expected_set_types: LogicalType[];\n on_conflict_filter: Set<number>;\n on_conflict_condition?: Expression;\n do_update_condition?: Expression;\n set_columns: number[];\n set_types: LogicalType[];\n excluded_table_index: number;\n columns_to_fetch: number[];\n source_columns: number[];\n}\n\nexport interface LogicalDelete extends BaseLogicalOperator {\n catalog: string;\n schema: string;\n table: string;\n table_index: number;\n return_chunk: boolean;\n expressions: Expression[];\n}\n\nexport interface LogicalUpdate extends BaseLogicalOperator {\n catalog: string;\n schema: string;\n table: string;\n table_index: number;\n return_chunk: boolean;\n expressions: Expression[];\n columns: PhysicalIndex[];\n bound_defaults: Expression[];\n update_is_del_and_insert: boolean;\n}\n\nexport interface LogicalCreateTable extends BaseLogicalOperator {\n catalog: string;\n schema: string;\n info: CreateInfo;\n}\n\nexport interface LogicalCreate extends BaseLogicalOperator {\n info: CreateInfo;\n}\n\nexport enum ExplainType {\n EXPLAIN_STANDARD = 'EXPLAIN_STANDARD',\n EXPLAIN_ANALYZE = 'EXPLAIN_ANALYZE',\n}\n\nexport interface LogicalExplain extends BaseLogicalOperator {\n explain_type: ExplainType;\n physical_plan: string;\n logical_plan_unopt: string;\n logical_plan_opt: string;\n}\n\nexport interface LogicalShow extends BaseLogicalOperator {\n types_select: LogicalType[];\n aliases: string[];\n}\n\nexport enum SetScope {\n AUTOMATIC = 'AUTOMATIC',\n LOCAL = 'LOCAL',\n SESSION = 'SESSION',\n GLOBAL = 'GLOBAL',\n}\n\nexport interface LogicalSet extends BaseLogicalOperator {\n name: string;\n value: Value;\n scope: SetScope;\n}\n\nexport interface LogicalReset extends BaseLogicalOperator {\n name: string;\n scope: SetScope;\n}\n\nexport interface LogicalSimple extends BaseLogicalOperator {\n info: ParseInfo;\n}\n\nexport interface LogicalPivot extends BaseLogicalOperator {\n pivot_index: number;\n bound_pivot: BoundPivotInfo;\n}\n\nexport type LogicalGet = BaseLogicalOperator;\n\nexport type LogicalCopyToFile = BaseLogicalOperator;\n\nexport interface LogicalCreateIndex extends BaseLogicalOperator {\n info: CreateInfo;\n unbound_expressions: Expression[];\n}\n\nexport type LogicalExtensionOperator = BaseLogicalOperator;\n"],"names":["DistinctType","OnConflictAction","ExplainType","SetScope"],"mappings":";;;;;;;;;;;;;;;;;;;;;;UAiHYA;;;GAAAA,iBAAAA;;UAgGAC;;;;;GAAAA,qBAAAA;;UA4DAC;;;GAAAA,gBAAAA;;UAiBAC;;;;;GAAAA,aAAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../meerkat-core/src/types/duckdb-serialization-types/serialization/MacroFunction.ts"],"sourcesContent":["import { ParsedExpression } from './ParsedExpression';\nimport { BaseQueryNode } from './QueryNode';\n\nexport enum MacroType {\n VOID_MACRO = 'VOID_MACRO',\n TABLE_MACRO = 'TABLE_MACRO',\n SCALAR_MACRO = 'SCALAR_MACRO',\n}\n\nexport interface MacroFunction {\n type: MacroType;\n parameters: ParsedExpression[];\n default_parameters: { [key: string]: ParsedExpression };\n}\n\nexport interface ScalarMacroFunction extends MacroFunction {\n expression: ParsedExpression;\n}\n\nexport interface TableMacroFunction extends MacroFunction {\n query_node: BaseQueryNode;\n}\n"],"names":["MacroType"],"mappings":";;;;;;;;UAGYA;;;;GAAAA,cAAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../meerkat-core/src/types/duckdb-serialization-types/serialization/Misc.d.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../meerkat-core/src/types/duckdb-serialization-types/serialization/Misc.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+
3
+ //# sourceMappingURL=Nodes.d.js.map