@devrev/meerkat-core 0.0.97 → 0.0.98
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/ast-builder/ast-builder.js +91 -0
- package/src/ast-builder/ast-builder.js.map +1 -0
- package/src/ast-deserializer/ast-deserializer.js +17 -0
- package/src/ast-deserializer/ast-deserializer.js.map +1 -0
- package/src/ast-serializer/ast-serializer.js +8 -0
- package/src/ast-serializer/ast-serializer.js.map +1 -0
- package/src/ast-validator/dimension-validator.js +49 -0
- package/src/ast-validator/dimension-validator.js.map +1 -0
- package/src/ast-validator/index.js +12 -0
- package/src/ast-validator/index.js.map +1 -0
- package/src/ast-validator/measure-validator.js +155 -0
- package/src/ast-validator/measure-validator.js.map +1 -0
- package/{ast-validator → src/ast-validator}/tests/test-data.js +692 -890
- package/src/ast-validator/tests/test-data.js.map +1 -0
- package/src/ast-validator/types.js +3 -0
- package/src/ast-validator/types.js.map +1 -0
- package/src/ast-validator/utils.js +24 -0
- package/src/ast-validator/utils.js.map +1 -0
- package/src/context-params/context-params-ast.js +42 -0
- package/src/context-params/context-params-ast.js.map +1 -0
- package/src/cube-filter-transformer/and/and.js +14 -0
- package/src/cube-filter-transformer/and/and.js.map +1 -0
- package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js +145 -0
- package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +1 -0
- package/src/cube-filter-transformer/contains/contains.js +62 -0
- package/src/cube-filter-transformer/contains/contains.js.map +1 -0
- package/src/cube-filter-transformer/equals/equals-array.js +71 -0
- package/src/cube-filter-transformer/equals/equals-array.js.map +1 -0
- package/src/cube-filter-transformer/equals/equals.js +36 -0
- package/src/cube-filter-transformer/equals/equals.js.map +1 -0
- package/src/cube-filter-transformer/factory.js +120 -0
- package/src/cube-filter-transformer/factory.js.map +1 -0
- package/src/cube-filter-transformer/gt/gt.js +28 -0
- package/src/cube-filter-transformer/gt/gt.js.map +1 -0
- package/src/cube-filter-transformer/gte/gte.js +28 -0
- package/src/cube-filter-transformer/gte/gte.js.map +1 -0
- package/src/cube-filter-transformer/in/in.js +69 -0
- package/src/cube-filter-transformer/in/in.js.map +1 -0
- package/src/cube-filter-transformer/in-date-range/in-date-range.js +21 -0
- package/src/cube-filter-transformer/in-date-range/in-date-range.js.map +1 -0
- package/src/cube-filter-transformer/lt/lt.js +28 -0
- package/src/cube-filter-transformer/lt/lt.js.map +1 -0
- package/src/cube-filter-transformer/lte/lte.js +28 -0
- package/src/cube-filter-transformer/lte/lte.js.map +1 -0
- package/src/cube-filter-transformer/not/not.js +14 -0
- package/src/cube-filter-transformer/not/not.js.map +1 -0
- package/src/cube-filter-transformer/not-In-date-range/not-In-date-range.js +21 -0
- package/src/cube-filter-transformer/not-In-date-range/not-In-date-range.js.map +1 -0
- package/src/cube-filter-transformer/not-contains/not-contains.js +62 -0
- package/src/cube-filter-transformer/not-contains/not-contains.js.map +1 -0
- package/src/cube-filter-transformer/not-equals/not-equals-array.js +21 -0
- package/src/cube-filter-transformer/not-equals/not-equals-array.js.map +1 -0
- package/src/cube-filter-transformer/not-equals/not-equals.js +36 -0
- package/src/cube-filter-transformer/not-equals/not-equals.js.map +1 -0
- package/src/cube-filter-transformer/not-in/not-in.js +76 -0
- package/src/cube-filter-transformer/not-in/not-in.js.map +1 -0
- package/src/cube-filter-transformer/not-set/not-set.js +23 -0
- package/src/cube-filter-transformer/not-set/not-set.js.map +1 -0
- package/src/cube-filter-transformer/or/or.js +14 -0
- package/src/cube-filter-transformer/or/or.js.map +1 -0
- package/src/cube-filter-transformer/set/set.js +23 -0
- package/src/cube-filter-transformer/set/set.js.map +1 -0
- package/src/cube-group-by-transformer/cube-group-by-transformer.js +19 -0
- package/src/cube-group-by-transformer/cube-group-by-transformer.js.map +1 -0
- package/src/cube-limit-offset-transformer/cube-limit-offset-transformer.js +42 -0
- package/src/cube-limit-offset-transformer/cube-limit-offset-transformer.js.map +1 -0
- package/src/cube-measure-transformer/cube-measure-transformer.js +124 -0
- package/src/cube-measure-transformer/cube-measure-transformer.js.map +1 -0
- package/src/cube-order-by-transformer/cube-order-by-transformer.js +34 -0
- package/src/cube-order-by-transformer/cube-order-by-transformer.js.map +1 -0
- package/src/cube-to-duckdb/cube-filter-to-duckdb.js +3 -0
- package/src/cube-to-duckdb/cube-filter-to-duckdb.js.map +1 -0
- package/src/filter-params/filter-params-ast.js +114 -0
- package/src/filter-params/filter-params-ast.js.map +1 -0
- package/src/get-filter-params-sql/get-filter-params-sql.js +25 -0
- package/src/get-filter-params-sql/get-filter-params-sql.js.map +1 -0
- package/src/get-final-base-sql/get-final-base-sql.js +28 -0
- package/src/get-final-base-sql/get-final-base-sql.js.map +1 -0
- package/{get-wrapped-base-query-with-projections → src/get-wrapped-base-query-with-projections}/get-aliased-columns-from-filters.js +39 -64
- package/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js.map +1 -0
- package/src/get-wrapped-base-query-with-projections/get-projection-clause.js +83 -0
- package/src/get-wrapped-base-query-with-projections/get-projection-clause.js.map +1 -0
- package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js +32 -0
- package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js.map +1 -0
- package/src/get-wrapped-base-query-with-projections/sql-expression-modifiers.js +32 -0
- package/src/get-wrapped-base-query-with-projections/sql-expression-modifiers.js.map +1 -0
- package/src/index.js +37 -0
- package/src/index.js.map +1 -0
- package/src/joins/joins.js +162 -0
- package/src/joins/joins.js.map +1 -0
- package/src/member-formatters/constants.js +6 -0
- package/src/member-formatters/constants.js.map +1 -0
- package/src/member-formatters/index.js +10 -0
- package/src/member-formatters/index.js.map +1 -0
- package/src/member-formatters/member-key-to-safe-key.js +9 -0
- package/src/member-formatters/member-key-to-safe-key.js.map +1 -0
- package/src/member-formatters/split-into-data-source-and-fields.js +10 -0
- package/src/member-formatters/split-into-data-source-and-fields.js.map +1 -0
- package/src/resolution/resolution.js +112 -0
- package/src/resolution/resolution.js.map +1 -0
- package/src/resolution/types.js +5 -0
- package/src/resolution/types.js.map +1 -0
- package/src/types/cube-types/index.js +6 -0
- package/src/types/cube-types/index.js.map +1 -0
- package/src/types/cube-types/query.js +8 -0
- package/src/types/cube-types/query.js.map +1 -0
- package/src/types/cube-types/table.js +3 -0
- package/src/types/cube-types/table.js.map +1 -0
- package/src/types/duckdb-serialization-types/index.js +11 -0
- package/src/types/duckdb-serialization-types/index.js.map +1 -0
- package/{types → src/types}/duckdb-serialization-types/serialization/Constraint.js +6 -19
- package/src/types/duckdb-serialization-types/serialization/Constraint.js.map +1 -0
- package/{types → src/types}/duckdb-serialization-types/serialization/CreateInfo.js +10 -29
- package/src/types/duckdb-serialization-types/serialization/CreateInfo.js.map +1 -0
- package/{types → src/types}/duckdb-serialization-types/serialization/Expression.js +6 -19
- package/src/types/duckdb-serialization-types/serialization/Expression.js.map +1 -0
- package/src/types/duckdb-serialization-types/serialization/LogicalOperator.js +28 -0
- package/src/types/duckdb-serialization-types/serialization/LogicalOperator.js.map +1 -0
- package/src/types/duckdb-serialization-types/serialization/MacroFunction.js +10 -0
- package/src/types/duckdb-serialization-types/serialization/MacroFunction.js.map +1 -0
- package/src/types/duckdb-serialization-types/serialization/Misc.js +3 -0
- package/src/types/duckdb-serialization-types/serialization/Misc.js.map +1 -0
- package/{types → src/types}/duckdb-serialization-types/serialization/Nodes.js +17 -45
- package/src/types/duckdb-serialization-types/serialization/Nodes.js.map +1 -0
- package/{types → src/types}/duckdb-serialization-types/serialization/ParseInfo.js +20 -54
- package/src/types/duckdb-serialization-types/serialization/ParseInfo.js.map +1 -0
- package/{types → src/types}/duckdb-serialization-types/serialization/ParsedExpression.js +6 -19
- package/src/types/duckdb-serialization-types/serialization/ParsedExpression.js.map +1 -0
- package/{types → src/types}/duckdb-serialization-types/serialization/QueryNode.js +8 -24
- package/src/types/duckdb-serialization-types/serialization/QueryNode.js.map +1 -0
- package/{types → src/types}/duckdb-serialization-types/serialization/ResultModifier.js +4 -9
- package/src/types/duckdb-serialization-types/serialization/ResultModifier.js.map +1 -0
- package/src/types/duckdb-serialization-types/serialization/Statement.js +3 -0
- package/src/types/duckdb-serialization-types/serialization/Statement.js.map +1 -0
- package/{types → src/types}/duckdb-serialization-types/serialization/TableFilter.js +4 -9
- package/src/types/duckdb-serialization-types/serialization/TableFilter.js.map +1 -0
- package/{types → src/types}/duckdb-serialization-types/serialization/TableRef.js +8 -24
- package/src/types/duckdb-serialization-types/serialization/TableRef.js.map +1 -0
- package/{types → src/types}/duckdb-serialization-types/serialization/Types.js +4 -9
- package/src/types/duckdb-serialization-types/serialization/Types.js.map +1 -0
- package/src/types/duckdb-serialization-types/serialization/example.js +109 -0
- package/src/types/duckdb-serialization-types/serialization/example.js.map +1 -0
- package/src/types/utils.js +69 -0
- package/src/types/utils.js.map +1 -0
- package/{utils → src/utils}/__fixtures__/joins.fixtures.js +228 -316
- package/src/utils/__fixtures__/joins.fixtures.js.map +1 -0
- package/src/utils/base-ast.js +49 -0
- package/src/utils/base-ast.js.map +1 -0
- package/src/utils/cube-filter-enrichment.js +53 -0
- package/src/utils/cube-filter-enrichment.js.map +1 -0
- package/{utils → src/utils}/cube-to-table-schema.js +25 -38
- package/src/utils/cube-to-table-schema.js.map +1 -0
- package/src/utils/cube-type-to-duckdb-type.js +12 -0
- package/src/utils/cube-type-to-duckdb-type.js.map +1 -0
- package/src/utils/find-in-table-schema.js +28 -0
- package/src/utils/find-in-table-schema.js.map +1 -0
- package/src/utils/get-column-names-from-ast.js +45 -0
- package/src/utils/get-column-names-from-ast.js.map +1 -0
- package/src/utils/get-possible-nodes.js +146 -0
- package/src/utils/get-possible-nodes.js.map +1 -0
- package/src/utils/get-type-info.js +34 -0
- package/src/utils/get-type-info.js.map +1 -0
- package/src/utils/is-array-member-type.js +8 -0
- package/src/utils/is-array-member-type.js.map +1 -0
- package/src/utils/key-from-measures-dimension.js +32 -0
- package/src/utils/key-from-measures-dimension.js.map +1 -0
- package/src/utils/meerkat-placeholder-replacer.js +10 -0
- package/src/utils/meerkat-placeholder-replacer.js.map +1 -0
- package/src/utils/modify-meerkat-filter.js +24 -0
- package/src/utils/modify-meerkat-filter.js.map +1 -0
- package/{utils → src/utils}/type-guards.js +10 -28
- package/src/utils/type-guards.js.map +1 -0
- package/ast-builder/ast-builder.js +0 -90
- package/ast-builder/ast-builder.js.map +0 -1
- package/ast-deserializer/ast-deserializer.js +0 -30
- package/ast-deserializer/ast-deserializer.js.map +0 -1
- package/ast-serializer/ast-serializer.js +0 -12
- package/ast-serializer/ast-serializer.js.map +0 -1
- package/ast-validator/dimension-validator.js +0 -54
- package/ast-validator/dimension-validator.js.map +0 -1
- package/ast-validator/index.js +0 -25
- package/ast-validator/index.js.map +0 -1
- package/ast-validator/measure-validator.js +0 -163
- package/ast-validator/measure-validator.js.map +0 -1
- package/ast-validator/tests/test-data.js.map +0 -1
- package/ast-validator/types.js +0 -3
- package/ast-validator/types.js.map +0 -1
- package/ast-validator/utils.js +0 -35
- package/ast-validator/utils.js.map +0 -1
- package/context-params/context-params-ast.js +0 -55
- package/context-params/context-params-ast.js.map +0 -1
- package/cube-filter-transformer/and/and.js +0 -18
- package/cube-filter-transformer/and/and.js.map +0 -1
- package/cube-filter-transformer/base-condition-builder/base-condition-builder.js +0 -160
- package/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +0 -1
- package/cube-filter-transformer/contains/contains.js +0 -71
- package/cube-filter-transformer/contains/contains.js.map +0 -1
- package/cube-filter-transformer/equals/equals-array.js +0 -77
- package/cube-filter-transformer/equals/equals-array.js.map +0 -1
- package/cube-filter-transformer/equals/equals.js +0 -37
- package/cube-filter-transformer/equals/equals.js.map +0 -1
- package/cube-filter-transformer/factory.js +0 -124
- package/cube-filter-transformer/factory.js.map +0 -1
- package/cube-filter-transformer/gt/gt.js +0 -30
- package/cube-filter-transformer/gt/gt.js.map +0 -1
- package/cube-filter-transformer/gte/gte.js +0 -30
- package/cube-filter-transformer/gte/gte.js.map +0 -1
- package/cube-filter-transformer/in/in.js +0 -78
- package/cube-filter-transformer/in/in.js.map +0 -1
- package/cube-filter-transformer/in-date-range/in-date-range.js +0 -24
- package/cube-filter-transformer/in-date-range/in-date-range.js.map +0 -1
- package/cube-filter-transformer/lt/lt.js +0 -30
- package/cube-filter-transformer/lt/lt.js.map +0 -1
- package/cube-filter-transformer/lte/lte.js +0 -30
- package/cube-filter-transformer/lte/lte.js.map +0 -1
- package/cube-filter-transformer/not/not.js +0 -18
- package/cube-filter-transformer/not/not.js.map +0 -1
- package/cube-filter-transformer/not-In-date-range/not-In-date-range.js +0 -24
- package/cube-filter-transformer/not-In-date-range/not-In-date-range.js.map +0 -1
- package/cube-filter-transformer/not-contains/not-contains.js +0 -71
- package/cube-filter-transformer/not-contains/not-contains.js.map +0 -1
- package/cube-filter-transformer/not-equals/not-equals-array.js +0 -26
- package/cube-filter-transformer/not-equals/not-equals-array.js.map +0 -1
- package/cube-filter-transformer/not-equals/not-equals.js +0 -37
- package/cube-filter-transformer/not-equals/not-equals.js.map +0 -1
- package/cube-filter-transformer/not-in/not-in.js +0 -85
- package/cube-filter-transformer/not-in/not-in.js.map +0 -1
- package/cube-filter-transformer/not-set/not-set.js +0 -27
- package/cube-filter-transformer/not-set/not-set.js.map +0 -1
- package/cube-filter-transformer/or/or.js +0 -18
- package/cube-filter-transformer/or/or.js.map +0 -1
- package/cube-filter-transformer/set/set.js +0 -27
- package/cube-filter-transformer/set/set.js.map +0 -1
- package/cube-group-by-transformer/cube-group-by-transformer.js +0 -25
- package/cube-group-by-transformer/cube-group-by-transformer.js.map +0 -1
- package/cube-limit-offset-transformer/cube-limit-offset-transformer.js +0 -42
- package/cube-limit-offset-transformer/cube-limit-offset-transformer.js.map +0 -1
- package/cube-measure-transformer/cube-measure-transformer.js +0 -127
- package/cube-measure-transformer/cube-measure-transformer.js.map +0 -1
- package/cube-order-by-transformer/cube-order-by-transformer.js +0 -39
- package/cube-order-by-transformer/cube-order-by-transformer.js.map +0 -1
- package/cube-to-duckdb/cube-filter-to-duckdb.js +0 -3
- package/cube-to-duckdb/cube-filter-to-duckdb.js.map +0 -1
- package/filter-params/filter-params-ast.js +0 -115
- package/filter-params/filter-params-ast.js.map +0 -1
- package/get-filter-params-sql/get-filter-params-sql.js +0 -28
- package/get-filter-params-sql/get-filter-params-sql.js.map +0 -1
- package/get-final-base-sql/get-final-base-sql.js +0 -30
- package/get-final-base-sql/get-final-base-sql.js.map +0 -1
- package/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js.map +0 -1
- package/get-wrapped-base-query-with-projections/get-projection-clause.js +0 -87
- package/get-wrapped-base-query-with-projections/get-projection-clause.js.map +0 -1
- package/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js +0 -33
- package/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js.map +0 -1
- package/get-wrapped-base-query-with-projections/sql-expression-modifiers.js +0 -60
- package/get-wrapped-base-query-with-projections/sql-expression-modifiers.js.map +0 -1
- package/index.js +0 -66
- package/index.js.map +0 -1
- package/joins/joins.js +0 -170
- package/joins/joins.js.map +0 -1
- package/member-formatters/constants.js +0 -19
- package/member-formatters/constants.js.map +0 -1
- package/member-formatters/index.js +0 -23
- package/member-formatters/index.js.map +0 -1
- package/member-formatters/member-key-to-safe-key.js +0 -13
- package/member-formatters/member-key-to-safe-key.js.map +0 -1
- package/member-formatters/split-into-data-source-and-fields.js +0 -17
- package/member-formatters/split-into-data-source-and-fields.js.map +0 -1
- package/resolution/resolution.js +0 -128
- package/resolution/resolution.js.map +0 -1
- package/resolution/types.js +0 -10
- package/resolution/types.js.map +0 -1
- package/types/cube-types/index.d.js +0 -6
- package/types/cube-types/index.d.js.map +0 -1
- package/types/cube-types/index.js +0 -6
- package/types/cube-types/index.js.map +0 -1
- package/types/cube-types/query.d.js +0 -5
- package/types/cube-types/query.d.js.map +0 -1
- package/types/cube-types/query.js +0 -14
- package/types/cube-types/query.js.map +0 -1
- package/types/cube-types/table.d.js +0 -3
- package/types/cube-types/table.d.js.map +0 -1
- package/types/cube-types/table.js +0 -3
- package/types/cube-types/table.js.map +0 -1
- package/types/duckdb-serialization-types/index.d.js +0 -11
- package/types/duckdb-serialization-types/index.d.js.map +0 -1
- package/types/duckdb-serialization-types/index.js +0 -11
- package/types/duckdb-serialization-types/index.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/Constraint.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/CreateInfo.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/Expression.d.js +0 -3
- package/types/duckdb-serialization-types/serialization/Expression.d.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/Expression.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/LogicalOperator.js +0 -47
- package/types/duckdb-serialization-types/serialization/LogicalOperator.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/MacroFunction.js +0 -15
- package/types/duckdb-serialization-types/serialization/MacroFunction.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/Misc.d.js +0 -3
- package/types/duckdb-serialization-types/serialization/Misc.d.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/Misc.js +0 -3
- package/types/duckdb-serialization-types/serialization/Misc.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/Nodes.d.js +0 -3
- package/types/duckdb-serialization-types/serialization/Nodes.d.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/Nodes.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/ParseInfo.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/ParsedExpression.d.js +0 -3
- package/types/duckdb-serialization-types/serialization/ParsedExpression.d.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/ParsedExpression.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/QueryNode.d.js +0 -3
- package/types/duckdb-serialization-types/serialization/QueryNode.d.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/QueryNode.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/ResultModifier.d.js +0 -3
- package/types/duckdb-serialization-types/serialization/ResultModifier.d.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/ResultModifier.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/Statement.d.js +0 -3
- package/types/duckdb-serialization-types/serialization/Statement.d.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/Statement.js +0 -3
- package/types/duckdb-serialization-types/serialization/Statement.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/TableFilter.d.js +0 -3
- package/types/duckdb-serialization-types/serialization/TableFilter.d.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/TableFilter.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/TableRef.d.js +0 -3
- package/types/duckdb-serialization-types/serialization/TableRef.d.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/TableRef.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/Types.d.js +0 -3
- package/types/duckdb-serialization-types/serialization/Types.d.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/Types.js.map +0 -1
- package/types/duckdb-serialization-types/serialization/example.js +0 -131
- package/types/duckdb-serialization-types/serialization/example.js.map +0 -1
- package/types/utils.js +0 -108
- package/types/utils.js.map +0 -1
- package/utils/__fixtures__/joins.fixtures.js.map +0 -1
- package/utils/base-ast.js +0 -63
- package/utils/base-ast.js.map +0 -1
- package/utils/cube-filter-enrichment.js +0 -63
- package/utils/cube-filter-enrichment.js.map +0 -1
- package/utils/cube-to-table-schema.js.map +0 -1
- package/utils/cube-type-to-duckdb-type.js +0 -17
- package/utils/cube-type-to-duckdb-type.js.map +0 -1
- package/utils/find-in-table-schema.js +0 -40
- package/utils/find-in-table-schema.js.map +0 -1
- package/utils/get-column-names-from-ast.js +0 -45
- package/utils/get-column-names-from-ast.js.map +0 -1
- package/utils/get-possible-nodes.js +0 -152
- package/utils/get-possible-nodes.js.map +0 -1
- package/utils/get-type-info.js +0 -44
- package/utils/get-type-info.js.map +0 -1
- package/utils/is-array-member-type.js +0 -12
- package/utils/is-array-member-type.js.map +0 -1
- package/utils/key-from-measures-dimension.js +0 -35
- package/utils/key-from-measures-dimension.js.map +0 -1
- package/utils/meerkat-placeholder-replacer.js +0 -14
- package/utils/meerkat-placeholder-replacer.js.map +0 -1
- package/utils/modify-meerkat-filter.js +0 -30
- package/utils/modify-meerkat-filter.js.map +0 -1
- package/utils/type-guards.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../meerkat-core/src/utils/__fixtures__/joins.fixtures.ts"],"sourcesContent":["\nexport const CIRCULAR_TABLE_SCHEMA = [\n {\n name: 'node1',\n dimensions: [\n {\n name: 'id',\n sql: 'node1.id',\n },\n ],\n measures: [],\n sql: 'select * from node1',\n joins: [\n { sql: 'node1.id = node2.id' },\n { sql: 'node1.id = node3.id' },\n ],\n },\n {\n name: 'node2',\n dimensions: [\n {\n name: 'id',\n sql: 'node2.id',\n },\n {\n name: 'node11_id',\n sql: 'node2.node11_id',\n },\n ],\n measures: [],\n sql: 'select * from node2',\n joins: [\n { sql: 'node2.id = node3.id' },\n { sql: 'node2.id = node4.id' },\n ],\n },\n {\n name: 'node3',\n dimensions: [\n {\n name: 'id',\n sql: 'node3.id',\n },\n ],\n measures: [],\n sql: 'select * from node3',\n joins: [\n { sql: 'node3.id = node4.id' },\n { sql: 'node3.id = node1.id' }\n ],\n },\n {\n name: 'node4',\n dimensions: [\n {\n name: 'id',\n sql: 'node4.id',\n },\n ],\n measures: [],\n sql: 'select * from node4',\n joins: [],\n },\n];\n\nexport const LINEAR_TABLE_SCHEMA = [\n {\n name: 'node1',\n dimensions: [\n {\n name: 'id',\n sql: 'node1.id',\n },\n ],\n measures: [],\n sql: 'select * from node1',\n joins: [\n { sql: 'node1.id = node2.id' },\n { sql: 'node1.id = node3.id' },\n { sql: 'node1.id = node6.id' },\n ],\n },\n {\n name: 'node2',\n dimensions: [\n {\n name: 'id',\n sql: 'node2.id',\n },\n {\n name: 'node11_id',\n sql: 'node2.node11_id',\n },\n ],\n measures: [],\n sql: 'select * from node2',\n joins: [\n { sql: 'node2.id = node4.id' },\n { sql: 'node2.node11_id = node11.id' },\n ],\n },\n {\n name: 'node3',\n dimensions: [\n {\n name: 'id',\n sql: 'node3.id',\n },\n ],\n measures: [],\n sql: 'select * from node3',\n joins: [{ sql: 'node3.id = node5.id' }],\n },\n {\n name: 'node4',\n dimensions: [\n {\n name: 'id',\n sql: 'node4.id',\n },\n ],\n measures: [],\n sql: 'select * from node4',\n joins: [\n { sql: 'node4.id = node5.id' },\n { sql: 'node4.id = node6.id' },\n { sql: 'node4.id = node7.id' },\n ],\n },\n {\n name: 'node5',\n measures: [],\n dimensions: [\n {\n name: 'id',\n sql: 'node5.id',\n },\n ],\n sql: 'select * from node5',\n joins: [{ sql: 'node5.id = node8.id' }],\n },\n {\n name: 'node6',\n dimensions: [\n {\n name: 'id',\n sql: 'node6.id',\n },\n ],\n measures: [],\n sql: 'select * from node6',\n joins: [{ sql: 'node6.id = node9.id' }],\n },\n {\n name: 'node7',\n dimensions: [\n {\n name: 'id',\n sql: 'node7.id',\n },\n ],\n measures: [],\n sql: 'select * from node7',\n joins: [{ sql: 'node7.id = node10.id' }],\n },\n {\n name: 'node8',\n dimensions: [\n {\n name: 'id',\n sql: 'node8.id',\n },\n ],\n measures: [],\n sql: 'select * from node8',\n joins: [],\n },\n {\n name: 'node9',\n dimensions: [\n {\n name: 'id',\n sql: 'node9.id',\n },\n ],\n measures: [],\n sql: 'select * from node9',\n joins: [{ sql: 'node9.id = node10.id' }],\n },\n {\n name: 'node10',\n dimensions: [\n {\n name: 'id',\n sql: 'node10.id',\n },\n ],\n measures: [],\n sql: 'select * from node10',\n joins: [],\n },\n {\n name: 'node11',\n dimensions: [\n {\n name: 'id',\n sql: 'node11.id',\n },\n ],\n measures: [],\n sql: 'select * from node11',\n joins: [],\n },\n];\n\nexport const BASIC_JOIN_PATH = [\n [\n {\n left: 'node1',\n right: 'node2',\n on: 'id',\n },\n ],\n];\n\nexport const SINGLE_NODE_JOIN_PATH = [\n [\n {\n left: 'node1',\n },\n ],\n];\n\nexport const INTERMEDIATE_JOIN_PATH = [\n [\n {\n left: 'node1',\n right: 'node2',\n on: 'id',\n },\n {\n left: 'node2',\n right: 'node4',\n on: 'id',\n },\n ],\n [\n {\n left: 'node1',\n right: 'node3',\n on: 'id',\n },\n ],\n];\n\nexport const CIRCULAR_JOIN_PATH = [\n [\n {\n left: 'node1',\n right: 'node3',\n on: 'id',\n },\n ],\n [\n {\n left: 'node1',\n right: 'node2',\n on: 'id',\n },\n {\n left: 'node2',\n right: 'node4',\n on: 'id',\n },\n {\n left: 'node4',\n right: 'node1',\n on: 'id',\n },\n ],\n \n];\n\n\nexport const COMPLEX_JOIN_PATH = [\n [\n {\n left: 'node1',\n right: 'node2',\n on: 'id',\n },\n {\n left: 'node2',\n right: 'node4',\n on: 'id',\n },\n {\n left: 'node4',\n right: 'node7',\n on: 'id',\n },\n ],\n [\n {\n left: 'node1',\n right: 'node3',\n on: 'id',\n },\n ],\n [\n {\n left: 'node1',\n right: 'node2',\n on: 'id',\n },\n {\n left: 'node2',\n right: 'node11',\n on: 'node11_id',\n },\n ]\n]\n\nexport const EXPECTED_OUTPUT_WITH_ONE_DEPTH = {\n name: 'node1',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node1.id',\n },\n children: [\n {\n name: 'node2',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node2.id',\n },\n children: [\n {\n name: 'node4',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node4.id',\n },\n children: [\n {\n name: 'node7',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node7.id',\n },\n children: [\n {\n name: 'node10',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node10.id',\n },\n children: [],\n },\n ],\n },\n ],\n },\n ],\n },\n {\n name: 'node5',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node5.id',\n },\n children: [],\n },\n ],\n },\n {\n name: 'node6',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node6.id',\n },\n children: [],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n {\n schema: {\n name: 'node11_id',\n sql: 'node2.node11_id',\n },\n children: [\n {\n name: 'node11',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node11.id',\n },\n children: [],\n },\n ],\n },\n ],\n },\n ],\n },\n {\n name: 'node3',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node3.id',\n },\n children: [\n {\n name: 'node5',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node5.id',\n },\n children: [],\n },\n ],\n },\n ],\n },\n ],\n },\n {\n name: 'node6',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node6.id',\n },\n children: [],\n },\n ],\n },\n ],\n },\n ],\n};\n\nexport const EXPECTED_OUTPUT_WITH_TWO_DEPTH = {\n name: 'node1',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node1.id',\n },\n children: [\n {\n name: 'node2',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node2.id',\n },\n children: [\n {\n name: 'node4',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node4.id',\n },\n children: [\n {\n name: 'node7',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node7.id',\n },\n children: [\n {\n name: 'node10',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node10.id',\n },\n children: [],\n },\n ],\n },\n ],\n },\n ],\n },\n {\n name: 'node5',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node5.id',\n },\n children: [\n {\n name: 'node8',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node8.id',\n },\n children: [],\n },\n ],\n },\n ],\n },\n ],\n },\n {\n name: 'node6',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node6.id',\n },\n children: [\n {\n name: 'node9',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node9.id',\n },\n children: [],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n {\n schema: {\n name: 'node11_id',\n sql: 'node2.node11_id',\n },\n children: [\n {\n name: 'node11',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node11.id',\n },\n children: [],\n },\n ],\n },\n ],\n },\n ],\n },\n {\n name: 'node3',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node3.id',\n },\n children: [\n {\n name: 'node5',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node5.id',\n },\n children: [\n {\n name: 'node8',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node8.id',\n },\n children: [],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n {\n name: 'node6',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node6.id',\n },\n children: [\n {\n name: 'node9',\n measures: [],\n dimensions: [\n {\n schema: {\n name: 'id',\n sql: 'node9.id',\n },\n children: [],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n};\n\nexport const CIRCULAR_TABLE_SCHEMA_SINGLE_JOIN_PATH = {\n \"name\": \"node1\",\n \"measures\": [],\n \"dimensions\": [\n {\n \"schema\": {\n \"name\": \"id\",\n \"sql\": \"node1.id\"\n },\n \"children\": [\n {\n \"name\": \"node2\",\n \"measures\": [],\n \"dimensions\": [\n {\n \"schema\": {\n \"name\": \"id\",\n \"sql\": \"node2.id\"\n },\n \"children\": [\n {\n \"name\": \"node3\",\n \"measures\": [],\n \"dimensions\": [\n {\n \"schema\": {\n \"name\": \"id\",\n \"sql\": \"node3.id\"\n },\n \"children\": []\n }\n ]\n },\n {\n \"name\": \"node4\",\n \"measures\": [],\n \"dimensions\": [\n {\n \"schema\": {\n \"name\": \"id\",\n \"sql\": \"node4.id\"\n },\n \"children\": []\n }\n ]\n }\n ]\n },\n {\n \"schema\": {\n \"name\": \"node11_id\",\n \"sql\": \"node2.node11_id\"\n },\n \"children\": []\n }\n ]\n },\n {\n \"name\": \"node3\",\n \"measures\": [],\n \"dimensions\": [\n {\n \"schema\": {\n \"name\": \"id\",\n \"sql\": \"node3.id\"\n },\n \"children\": [\n {\n \"name\": \"node4\",\n \"measures\": [],\n \"dimensions\": [\n {\n \"schema\": {\n \"name\": \"id\",\n \"sql\": \"node4.id\"\n },\n \"children\": []\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n }\n ]\n}\n\n\nexport const EXPECTED_CIRCULAR_TABLE_SCHEMA_INTERMEDIATE_JOIN_PATH = {\n \"name\": \"node1\",\n \"measures\": [],\n \"dimensions\": [\n {\n \"schema\": {\n \"name\": \"id\",\n \"sql\": \"node1.id\"\n },\n \"children\": [\n {\n \"name\": \"node2\",\n \"measures\": [],\n \"dimensions\": [\n {\n \"schema\": {\n \"name\": \"id\",\n \"sql\": \"node2.id\"\n },\n \"children\": [\n {\n \"name\": \"node4\",\n \"measures\": [],\n \"dimensions\": [\n {\n \"schema\": {\n \"name\": \"id\",\n \"sql\": \"node4.id\"\n },\n \"children\": []\n }\n ]\n }\n ]\n },\n {\n \"schema\": {\n \"name\": \"node11_id\",\n \"sql\": \"node2.node11_id\"\n },\n \"children\": []\n }\n ]\n },\n {\n \"name\": \"node3\",\n \"measures\": [],\n \"dimensions\": [\n {\n \"schema\": {\n \"name\": \"id\",\n \"sql\": \"node3.id\"\n },\n \"children\": []\n }\n ]\n }\n ]\n }\n ]\n}"],"names":["BASIC_JOIN_PATH","CIRCULAR_JOIN_PATH","CIRCULAR_TABLE_SCHEMA","CIRCULAR_TABLE_SCHEMA_SINGLE_JOIN_PATH","COMPLEX_JOIN_PATH","EXPECTED_CIRCULAR_TABLE_SCHEMA_INTERMEDIATE_JOIN_PATH","EXPECTED_OUTPUT_WITH_ONE_DEPTH","EXPECTED_OUTPUT_WITH_TWO_DEPTH","INTERMEDIATE_JOIN_PATH","LINEAR_TABLE_SCHEMA","SINGLE_NODE_JOIN_PATH","name","dimensions","sql","measures","joins","left","right","on","schema","children"],"mappings":"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AO,EAAE;IACb;IACA;QACIJ,MAAM;QACNC,YAAY;YACR;gBACID,MAAM;gBACNE,KAAK;YACT;SACH;QACDC,UAAU,EAAE;QACZD,KAAK;QACLE,OAAO,EAAE;IACb;CACH;AAEM,MAAMf,kBAAkB;IAC3B;QACI;YACIgB,MAAM;YACNC,OAAO;YACPC,IAAI;QACR;KACH;CACJ;AAEM,MAAMR,wBAAwB;IACjC;QACI;YACIM,MAAM;QACV;KACH;CACJ;AAEM,MAAMR,yBAAyB;IAClC;QACI;YACIQ,MAAM;YACNC,OAAO;YACPC,IAAI;QACR;QACA;YACIF,MAAM;YACNC,OAAO;YACPC,IAAI;QACR;KACH;IACD;QACI;YACIF,MAAM;YACNC,OAAO;YACPC,IAAI;QACR;KACH;CACJ;AAEM,MAAMjB,qBAAqB;IAC9B;QACI;YACIe,MAAM;YACNC,OAAO;YACPC,IAAI;QACR;KACH;IACD;QACI;YACIF,MAAM;YACNC,OAAO;YACPC,IAAI;QACR;QACA;YACIF,MAAM;YACNC,OAAO;YACPC,IAAI;QACR;QACA;YACIF,MAAM;YACNC,OAAO;YACPC,IAAI;QACR;KACH;CAEJ;AAGM,MAAMd,oBAAoB;IAC7B;QACI;YACIY,MAAM;YACNC,OAAO;YACPC,IAAI;QACR;QACA;YACIF,MAAM;YACNC,OAAO;YACPC,IAAI;QACR;QACA;YACIF,MAAM;YACNC,OAAO;YACPC,IAAI;QACR;KACH;IACD;QACI;YACIF,MAAM;YACNC,OAAO;YACPC,IAAI;QACR;KACH;IACD;QACI;YACIF,MAAM;YACNC,OAAO;YACPC,IAAI;QACR;QACA;YACIF,MAAM;YACNC,OAAO;YACPC,IAAI;QACR;KACH;CACJ;AAEM,MAAMZ,iCAAiC;IAC1CK,MAAM;IACNG,UAAU,EAAE;IACZF,YAAY;QACR;YACIO,QAAQ;gBACJR,MAAM;gBACNE,KAAK;YACT;YACAO,UAAU;gBACN;oBACIT,MAAM;oBACNG,UAAU,EAAE;oBACZF,YAAY;wBACR;4BACIO,QAAQ;gCACJR,MAAM;gCACNE,KAAK;4BACT;4BACAO,UAAU;gCACN;oCACIT,MAAM;oCACNG,UAAU,EAAE;oCACZF,YAAY;wCACR;4CACIO,QAAQ;gDACJR,MAAM;gDACNE,KAAK;4CACT;4CACAO,UAAU;gDACN;oDACIT,MAAM;oDACNG,UAAU,EAAE;oDACZF,YAAY;wDACR;4DACIO,QAAQ;gEACJR,MAAM;gEACNE,KAAK;4DACT;4DACAO,UAAU;gEACN;oEACIT,MAAM;oEACNG,UAAU,EAAE;oEACZF,YAAY;wEACR;4EACIO,QAAQ;gFACJR,MAAM;gFACNE,KAAK;4EACT;4EACAO,UAAU,EAAE;wEAChB;qEACH;gEACL;6DACH;wDACL;qDACH;gDACL;gDACA;oDACIT,MAAM;oDACNG,UAAU,EAAE;oDACZF,YAAY;wDACR;4DACIO,QAAQ;gEACJR,MAAM;gEACNE,KAAK;4DACT;4DACAO,UAAU,EAAE;wDAChB;qDACH;gDACL;gDACA;oDACIT,MAAM;oDACNG,UAAU,EAAE;oDACZF,YAAY;wDACR;4DACIO,QAAQ;gEACJR,MAAM;gEACNE,KAAK;4DACT;4DACAO,UAAU,EAAE;wDAChB;qDACH;gDACL;6CACH;wCACL;qCACH;gCACL;6BACH;wBACL;wBACA;4BACID,QAAQ;gCACJR,MAAM;gCACNE,KAAK;4BACT;4BACAO,UAAU;gCACN;oCACIT,MAAM;oCACNG,UAAU,EAAE;oCACZF,YAAY;wCACR;4CACIO,QAAQ;gDACJR,MAAM;gDACNE,KAAK;4CACT;4CACAO,UAAU,EAAE;wCAChB;qCACH;gCACL;6BACH;wBACL;qBACH;gBACL;gBACA;oBACIT,MAAM;oBACNG,UAAU,EAAE;oBACZF,YAAY;wBACR;4BACIO,QAAQ;gCACJR,MAAM;gCACNE,KAAK;4BACT;4BACAO,UAAU;gCACN;oCACIT,MAAM;oCACNG,UAAU,EAAE;oCACZF,YAAY;wCACR;4CACIO,QAAQ;gDACJR,MAAM;gDACNE,KAAK;4CACT;4CACAO,UAAU,EAAE;wCAChB;qCACH;gCACL;6BACH;wBACL;qBACH;gBACL;gBACA;oBACIT,MAAM;oBACNG,UAAU,EAAE;oBACZF,YAAY;wBACR;4BACIO,QAAQ;gCACJR,MAAM;gCACNE,KAAK;4BACT;4BACAO,UAAU,EAAE;wBAChB;qBACH;gBACL;aACH;QACL;KACH;AACL;AAEO,MAAMb,iCAAiC;IAC1CI,MAAM;IACNG,UAAU,EAAE;IACZF,YAAY;QACR;YACIO,QAAQ;gBACJR,MAAM;gBACNE,KAAK;YACT;YACAO,UAAU;gBACN;oBACIT,MAAM;oBACNG,UAAU,EAAE;oBACZF,YAAY;wBACR;4BACIO,QAAQ;gCACJR,MAAM;gCACNE,KAAK;4BACT;4BACAO,UAAU;gCACN;oCACIT,MAAM;oCACNG,UAAU,EAAE;oCACZF,YAAY;wCACR;4CACIO,QAAQ;gDACJR,MAAM;gDACNE,KAAK;4CACT;4CACAO,UAAU;gDACN;oDACIT,MAAM;oDACNG,UAAU,EAAE;oDACZF,YAAY;wDACR;4DACIO,QAAQ;gEACJR,MAAM;gEACNE,KAAK;4DACT;4DACAO,UAAU;gEACN;oEACIT,MAAM;oEACNG,UAAU,EAAE;oEACZF,YAAY;wEACR;4EACIO,QAAQ;gFACJR,MAAM;gFACNE,KAAK;4EACT;4EACAO,UAAU,EAAE;wEAChB;qEACH;gEACL;6DACH;wDACL;qDACH;gDACL;gDACA;oDACIT,MAAM;oDACNG,UAAU,EAAE;oDACZF,YAAY;wDACR;4DACIO,QAAQ;gEACJR,MAAM;gEACNE,KAAK;4DACT;4DACAO,UAAU;gEACN;oEACIT,MAAM;oEACNG,UAAU,EAAE;oEACZF,YAAY;wEACR;4EACIO,QAAQ;gFACJR,MAAM;gFACNE,KAAK;4EACT;4EACAO,UAAU,EAAE;wEAChB;qEACH;gEACL;6DACH;wDACL;qDACH;gDACL;gDACA;oDACIT,MAAM;oDACNG,UAAU,EAAE;oDACZF,YAAY;wDACR;4DACIO,QAAQ;gEACJR,MAAM;gEACNE,KAAK;4DACT;4DACAO,UAAU;gEACN;oEACIT,MAAM;oEACNG,UAAU,EAAE;oEACZF,YAAY;wEACR;4EACIO,QAAQ;gFACJR,MAAM;gFACNE,KAAK;4EACT;4EACAO,UAAU,EAAE;wEAChB;qEACH;gEACL;6DACH;wDACL;qDACH;gDACL;6CACH;wCACL;qCACH;gCACL;6BACH;wBACL;wBACA;4BACID,QAAQ;gCACJR,MAAM;gCACNE,KAAK;4BACT;4BACAO,UAAU;gCACN;oCACIT,MAAM;oCACNG,UAAU,EAAE;oCACZF,YAAY;wCACR;4CACIO,QAAQ;gDACJR,MAAM;gDACNE,KAAK;4CACT;4CACAO,UAAU,EAAE;wCAChB;qCACH;gCACL;6BACH;wBACL;qBACH;gBACL;gBACA;oBACIT,MAAM;oBACNG,UAAU,EAAE;oBACZF,YAAY;wBACR;4BACIO,QAAQ;gCACJR,MAAM;gCACNE,KAAK;4BACT;4BACAO,UAAU;gCACN;oCACIT,MAAM;oCACNG,UAAU,EAAE;oCACZF,YAAY;wCACR;4CACIO,QAAQ;gDACJR,MAAM;gDACNE,KAAK;4CACT;4CACAO,UAAU;gDACN;oDACIT,MAAM;oDACNG,UAAU,EAAE;oDACZF,YAAY;wDACR;4DACIO,QAAQ;gEACJR,MAAM;gEACNE,KAAK;4DACT;4DACAO,UAAU,EAAE;wDAChB;qDACH;gDACL;6CACH;wCACL;qCACH;gCACL;6BACH;wBACL;qBACH;gBACL;gBACA;oBACIT,MAAM;oBACNG,UAAU,EAAE;oBACZF,YAAY;wBACR;4BACIO,QAAQ;gCACJR,MAAM;gCACNE,KAAK;4BACT;4BACAO,UAAU;gCACN;oCACIT,MAAM;oCACNG,UAAU,EAAE;oCACZF,YAAY;wCACR;4CACIO,QAAQ;gDACJR,MAAM;gDACNE,KAAK;4CACT;4CACAO,UAAU,EAAE;wCAChB;qCACH;gCACL;6BACH;wBACL;qBACH;gBACL;aACH;QACL;KACH;AACL;AAEO,MAAMjB,yCAAyC;IAClD,QAAQ;IACR,YAAY,EAAE;IACd,cAAc;QACV;YACI,UAAU;gBACN,QAAQ;gBACR,OAAO;YACX;YACA,YAAY;gBACR;oBACI,QAAQ;oBACR,YAAY,EAAE;oBACd,cAAc;wBACV;4BACI,UAAU;gCACN,QAAQ;gCACR,OAAO;4BACX;4BACA,YAAY;gCACR;oCACI,QAAQ;oCACR,YAAY,EAAE;oCACd,cAAc;wCACV;4CACI,UAAU;gDACN,QAAQ;gDACR,OAAO;4CACX;4CACA,YAAY,EAAE;wCAClB;qCACH;gCACL;gCACA;oCACI,QAAQ;oCACR,YAAY,EAAE;oCACd,cAAc;wCACV;4CACI,UAAU;gDACN,QAAQ;gDACR,OAAO;4CACX;4CACA,YAAY,EAAE;wCAClB;qCACH;gCACL;6BACH;wBACL;wBACA;4BACI,UAAU;gCACN,QAAQ;gCACR,OAAO;4BACX;4BACA,YAAY,EAAE;wBAClB;qBACH;gBACL;gBACA;oBACI,QAAQ;oBACR,YAAY,EAAE;oBACd,cAAc;wBACV;4BACI,UAAU;gCACN,QAAQ;gCACR,OAAO;4BACX;4BACA,YAAY;gCACR;oCACI,QAAQ;oCACR,YAAY,EAAE;oCACd,cAAc;wCACV;4CACI,UAAU;gDACN,QAAQ;gDACR,OAAO;4CACX;4CACA,YAAY,EAAE;wCAClB;qCACH;gCACL;6BACH;wBACL;qBACH;gBACL;aACH;QACL;KACH;AACL;AAGO,MAAME,wDAAwD;IACjE,QAAQ;IACR,YAAY,EAAE;IACd,cAAc;QACV;YACI,UAAU;gBACN,QAAQ;gBACR,OAAO;YACX;YACA,YAAY;gBACR;oBACI,QAAQ;oBACR,YAAY,EAAE;oBACd,cAAc;wBACV;4BACI,UAAU;gCACN,QAAQ;gCACR,OAAO;4BACX;4BACA,YAAY;gCACR;oCACI,QAAQ;oCACR,YAAY,EAAE;oCACd,cAAc;wCACV;4CACI,UAAU;gDACN,QAAQ;gDACR,OAAO;4CACX;4CACA,YAAY,EAAE;wCAClB;qCACH;gCACL;6BACH;wBACL;wBACA;4BACI,UAAU;gCACN,QAAQ;gCACR,OAAO;4BACX;4BACA,YAAY,EAAE;wBAClB;qBACH;gBACL;gBACA;oBACI,QAAQ;oBACR,YAAY,EAAE;oBACd,cAAc;wBACV;4BACI,UAAU;gCACN,QAAQ;gCACR,OAAO;4BACX;4BACA,YAAY,EAAE;wBAClB;qBACH;gBACL;aACH;QACL;KACH;AACL"}
|
package/utils/base-ast.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
function _export(target, all) {
|
|
3
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
4
|
-
enumerable: true,
|
|
5
|
-
get: all[name]
|
|
6
|
-
});
|
|
7
|
-
}
|
|
8
|
-
_export(exports, {
|
|
9
|
-
BASE_TABLE_NAME: function() {
|
|
10
|
-
return BASE_TABLE_NAME;
|
|
11
|
-
},
|
|
12
|
-
getBaseAST: function() {
|
|
13
|
-
return getBaseAST;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
const _Expression = require("../types/duckdb-serialization-types/serialization/Expression");
|
|
17
|
-
const _QueryNode = require("../types/duckdb-serialization-types/serialization/QueryNode");
|
|
18
|
-
const _TableRef = require("../types/duckdb-serialization-types/serialization/TableRef");
|
|
19
|
-
const BASE_TABLE_NAME = 'REPLACE_BASE_TABLE';
|
|
20
|
-
const getBaseAST = ()=>{
|
|
21
|
-
return {
|
|
22
|
-
node: {
|
|
23
|
-
type: _QueryNode.QueryNodeType.SELECT_NODE,
|
|
24
|
-
modifiers: [],
|
|
25
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
26
|
-
//@ts-ignore
|
|
27
|
-
cte_map: {
|
|
28
|
-
map: []
|
|
29
|
-
},
|
|
30
|
-
select_list: [
|
|
31
|
-
{
|
|
32
|
-
class: _Expression.ExpressionClass.STAR,
|
|
33
|
-
type: _Expression.ExpressionType.STAR,
|
|
34
|
-
alias: '',
|
|
35
|
-
relation_name: '',
|
|
36
|
-
exclude_list: [],
|
|
37
|
-
replace_list: [],
|
|
38
|
-
columns: false
|
|
39
|
-
}
|
|
40
|
-
],
|
|
41
|
-
from_table: {
|
|
42
|
-
type: _TableRef.TableReferenceType.BASE_TABLE,
|
|
43
|
-
alias: '',
|
|
44
|
-
sample: null,
|
|
45
|
-
schema_name: '',
|
|
46
|
-
table_name: BASE_TABLE_NAME,
|
|
47
|
-
column_name_alias: [],
|
|
48
|
-
catalog_name: ''
|
|
49
|
-
},
|
|
50
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
51
|
-
//@ts-ignore
|
|
52
|
-
where_clause: null,
|
|
53
|
-
group_expressions: [],
|
|
54
|
-
group_sets: [],
|
|
55
|
-
aggregate_handling: _QueryNode.AggregateHandling.STANDARD_HANDLING,
|
|
56
|
-
having: null,
|
|
57
|
-
sample: null,
|
|
58
|
-
qualify: null
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
//# sourceMappingURL=base-ast.js.map
|
package/utils/base-ast.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../meerkat-core/src/utils/base-ast.ts"],"sourcesContent":["import {\n ExpressionClass,\n ExpressionType,\n} from '../types/duckdb-serialization-types/serialization/Expression';\nimport {\n AggregateHandling,\n QueryNodeType,\n} from '../types/duckdb-serialization-types/serialization/QueryNode';\nimport { SelectStatement } from '../types/duckdb-serialization-types/serialization/Statement';\nimport { TableReferenceType } from '../types/duckdb-serialization-types/serialization/TableRef';\n\nexport const BASE_TABLE_NAME = 'REPLACE_BASE_TABLE';\n\nexport const getBaseAST = (): SelectStatement => {\n return {\n node: {\n type: QueryNodeType.SELECT_NODE,\n modifiers: [],\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n cte_map: { map: [] },\n select_list: [\n {\n class: ExpressionClass.STAR,\n type: ExpressionType.STAR,\n alias: '',\n relation_name: '',\n exclude_list: [],\n replace_list: [],\n columns: false,\n },\n ],\n from_table: {\n type: TableReferenceType.BASE_TABLE,\n alias: '',\n sample: null,\n schema_name: '',\n table_name: BASE_TABLE_NAME,\n column_name_alias: [],\n catalog_name: '',\n },\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n where_clause: null,\n group_expressions: [],\n group_sets: [],\n aggregate_handling: AggregateHandling.STANDARD_HANDLING,\n having: null,\n sample: null,\n qualify: null,\n },\n };\n};\n"],"names":["BASE_TABLE_NAME","getBaseAST","node","type","QueryNodeType","SELECT_NODE","modifiers","cte_map","map","select_list","class","ExpressionClass","STAR","ExpressionType","alias","relation_name","exclude_list","replace_list","columns","from_table","TableReferenceType","BASE_TABLE","sample","schema_name","table_name","column_name_alias","catalog_name","where_clause","group_expressions","group_sets","aggregate_handling","AggregateHandling","STANDARD_HANDLING","having","qualify"],"mappings":";;;;;;;;IAWaA,eAAe;eAAfA;;IAEAC,UAAU;eAAVA;;;4BAVN;2BAIA;0BAE4B;AAE5B,MAAMD,kBAAkB;AAExB,MAAMC,aAAa;IACxB,OAAO;QACLC,MAAM;YACJC,MAAMC,wBAAa,CAACC,WAAW;YAC/BC,WAAW,EAAE;YACb,6DAA6D;YAC7D,YAAY;YACZC,SAAS;gBAAEC,KAAK,EAAE;YAAC;YACnBC,aAAa;gBACX;oBACEC,OAAOC,2BAAe,CAACC,IAAI;oBAC3BT,MAAMU,0BAAc,CAACD,IAAI;oBACzBE,OAAO;oBACPC,eAAe;oBACfC,cAAc,EAAE;oBAChBC,cAAc,EAAE;oBAChBC,SAAS;gBACX;aACD;YACDC,YAAY;gBACVhB,MAAMiB,4BAAkB,CAACC,UAAU;gBACnCP,OAAO;gBACPQ,QAAQ;gBACRC,aAAa;gBACbC,YAAYxB;gBACZyB,mBAAmB,EAAE;gBACrBC,cAAc;YAChB;YACA,6DAA6D;YAC7D,YAAY;YACZC,cAAc;YACdC,mBAAmB,EAAE;YACrBC,YAAY,EAAE;YACdC,oBAAoBC,4BAAiB,CAACC,iBAAiB;YACvDC,QAAQ;YACRX,QAAQ;YACRY,SAAS;QACX;IACF;AACF"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
function _export(target, all) {
|
|
3
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
4
|
-
enumerable: true,
|
|
5
|
-
get: all[name]
|
|
6
|
-
});
|
|
7
|
-
}
|
|
8
|
-
_export(exports, {
|
|
9
|
-
cubeFiltersEnrichment: function() {
|
|
10
|
-
return cubeFiltersEnrichment;
|
|
11
|
-
},
|
|
12
|
-
cubeFiltersEnrichmentInternal: function() {
|
|
13
|
-
return cubeFiltersEnrichmentInternal;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
const _keyfrommeasuresdimension = require("./key-from-measures-dimension");
|
|
17
|
-
const _typeguards = require("./type-guards");
|
|
18
|
-
const cubeFiltersEnrichmentInternal = (filters, tableSchema)=>{
|
|
19
|
-
if (!(0, _typeguards.isFilterArray)(filters) && (0, _typeguards.isLogicalAndOR)(filters)) {
|
|
20
|
-
if ((0, _typeguards.isLogicalAnd)(filters)) {
|
|
21
|
-
return cubeFiltersEnrichment(filters.and, tableSchema);
|
|
22
|
-
}
|
|
23
|
-
if ((0, _typeguards.isLogicalOr)(filters)) {
|
|
24
|
-
return cubeFiltersEnrichment(filters.or, tableSchema);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
if (!(0, _typeguards.isFilterArray)(filters) && (0, _typeguards.isQueryFilter)(filters)) {
|
|
28
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
29
|
-
//@ts-ignore
|
|
30
|
-
filters.memberInfo = (0, _keyfrommeasuresdimension.getMemberInfoFromTableSchema)(filters.member, tableSchema);
|
|
31
|
-
}
|
|
32
|
-
if ((0, _typeguards.isFilterArray)(filters)) {
|
|
33
|
-
for (const filter of filters){
|
|
34
|
-
if ((0, _typeguards.isLogicalAndOR)(filter)) {
|
|
35
|
-
if ((0, _typeguards.isLogicalAnd)(filter)) {
|
|
36
|
-
cubeFiltersEnrichmentInternal(filter.and, tableSchema);
|
|
37
|
-
}
|
|
38
|
-
if ((0, _typeguards.isLogicalOr)(filter)) {
|
|
39
|
-
cubeFiltersEnrichmentInternal(filter.or, tableSchema);
|
|
40
|
-
}
|
|
41
|
-
} else if ((0, _typeguards.isQueryFilter)(filter)) {
|
|
42
|
-
console.info('filter', filter);
|
|
43
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
44
|
-
//@ts-ignore
|
|
45
|
-
filter.memberInfo = (0, _keyfrommeasuresdimension.getMemberInfoFromTableSchema)(filter.member, tableSchema);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return filters;
|
|
50
|
-
};
|
|
51
|
-
const cubeFiltersEnrichment = (filters, tableSchema)=>{
|
|
52
|
-
if (!filters) {
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
if ((0, _typeguards.isFilterArray)(filters)) {
|
|
56
|
-
for (const filter of filters){
|
|
57
|
-
cubeFiltersEnrichmentInternal(filter, tableSchema);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return filters;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
//# sourceMappingURL=cube-filter-enrichment.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../meerkat-core/src/utils/cube-filter-enrichment.ts"],"sourcesContent":["import {\n LogicalAndFilterWithInfo,\n LogicalOrFilterWithInfo,\n QueryFiltersWithInfo,\n QueryOperatorsWithInfo,\n} from '../cube-to-duckdb/cube-filter-to-duckdb';\nimport { TableSchema } from '../types/cube-types/table';\nimport { getMemberInfoFromTableSchema } from './key-from-measures-dimension';\nimport {\n isFilterArray,\n isLogicalAnd,\n isLogicalAndOR,\n isLogicalOr,\n isQueryFilter,\n} from './type-guards';\n\nexport const cubeFiltersEnrichmentInternal = (\n filters:\n | (\n | QueryOperatorsWithInfo\n | LogicalAndFilterWithInfo\n | LogicalOrFilterWithInfo\n )\n | QueryFiltersWithInfo,\n tableSchema: TableSchema\n) => {\n if (!isFilterArray(filters) && isLogicalAndOR(filters)) {\n if (isLogicalAnd(filters)) {\n return cubeFiltersEnrichment(filters.and, tableSchema);\n }\n if (isLogicalOr(filters)) {\n return cubeFiltersEnrichment(filters.or, tableSchema);\n }\n }\n if (!isFilterArray(filters) && isQueryFilter(filters)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n filters.memberInfo = getMemberInfoFromTableSchema(\n filters.member,\n tableSchema\n );\n }\n\n if (isFilterArray(filters)) {\n for (const filter of filters) {\n if (isLogicalAndOR(filter)) {\n if (isLogicalAnd(filter)) {\n cubeFiltersEnrichmentInternal(filter.and, tableSchema);\n }\n if (isLogicalOr(filter)) {\n cubeFiltersEnrichmentInternal(filter.or, tableSchema);\n }\n } else if (isQueryFilter(filter)) {\n console.info('filter', filter);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n filter.memberInfo = getMemberInfoFromTableSchema(\n filter.member,\n tableSchema\n );\n }\n }\n }\n\n return filters;\n};\n\nexport const cubeFiltersEnrichment = (\n filters: QueryFiltersWithInfo,\n tableSchema: TableSchema\n): QueryFiltersWithInfo | null => {\n if (!filters) {\n return null;\n }\n\n if (isFilterArray(filters)) {\n for (const filter of filters) {\n cubeFiltersEnrichmentInternal(filter, tableSchema);\n }\n }\n return filters;\n};\n"],"names":["cubeFiltersEnrichment","cubeFiltersEnrichmentInternal","filters","tableSchema","isFilterArray","isLogicalAndOR","isLogicalAnd","and","isLogicalOr","or","isQueryFilter","memberInfo","getMemberInfoFromTableSchema","member","filter","console","info"],"mappings":";;;;;;;;IAmEaA,qBAAqB;eAArBA;;IAnDAC,6BAA6B;eAA7BA;;;0CATgC;4BAOtC;AAEA,MAAMA,gCAAgC,CAC3CC,SAOAC;IAEA,IAAI,CAACC,IAAAA,yBAAa,EAACF,YAAYG,IAAAA,0BAAc,EAACH,UAAU;QACtD,IAAII,IAAAA,wBAAY,EAACJ,UAAU;YACzB,OAAOF,sBAAsBE,QAAQK,GAAG,EAAEJ;QAC5C;QACA,IAAIK,IAAAA,uBAAW,EAACN,UAAU;YACxB,OAAOF,sBAAsBE,QAAQO,EAAE,EAAEN;QAC3C;IACF;IACA,IAAI,CAACC,IAAAA,yBAAa,EAACF,YAAYQ,IAAAA,yBAAa,EAACR,UAAU;QACrD,6DAA6D;QAC7D,YAAY;QACZA,QAAQS,UAAU,GAAGC,IAAAA,sDAA4B,EAC/CV,QAAQW,MAAM,EACdV;IAEJ;IAEA,IAAIC,IAAAA,yBAAa,EAACF,UAAU;QAC1B,KAAK,MAAMY,UAAUZ,QAAS;YAC5B,IAAIG,IAAAA,0BAAc,EAACS,SAAS;gBAC1B,IAAIR,IAAAA,wBAAY,EAACQ,SAAS;oBACxBb,8BAA8Ba,OAAOP,GAAG,EAAEJ;gBAC5C;gBACA,IAAIK,IAAAA,uBAAW,EAACM,SAAS;oBACvBb,8BAA8Ba,OAAOL,EAAE,EAAEN;gBAC3C;YACF,OAAO,IAAIO,IAAAA,yBAAa,EAACI,SAAS;gBAChCC,QAAQC,IAAI,CAAC,UAAUF;gBACvB,6DAA6D;gBAC7D,YAAY;gBACZA,OAAOH,UAAU,GAAGC,IAAAA,sDAA4B,EAC9CE,OAAOD,MAAM,EACbV;YAEJ;QACF;IACF;IAEA,OAAOD;AACT;AAEO,MAAMF,wBAAwB,CACnCE,SACAC;IAEA,IAAI,CAACD,SAAS;QACZ,OAAO;IACT;IAEA,IAAIE,IAAAA,yBAAa,EAACF,UAAU;QAC1B,KAAK,MAAMY,UAAUZ,QAAS;YAC5BD,8BAA8Ba,QAAQX;QACxC;IACF;IACA,OAAOD;AACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../meerkat-core/src/utils/cube-to-table-schema.ts"],"sourcesContent":["import { DimensionType, Measure, TableSchema } from '../types/cube-types/table';\n\nexport type CubeMeasureType =\n | 'string'\n | 'string_array'\n | 'time'\n | 'number'\n | 'number_array'\n | 'boolean'\n | 'count'\n | 'count_distinct'\n | 'count_distinct_approx'\n | 'sum'\n | 'avg'\n | 'min'\n | 'max';\n\ninterface CubeSchema {\n name: string;\n object: {\n sql_table: string;\n measures: {\n [key: string]: CubeMeasure;\n };\n dimensions: {\n [key: string]: {\n sql: string;\n type: DimensionType;\n };\n };\n joins?: {\n [key: string]: {\n sql: string;\n };\n };\n };\n}\nconst cube = (name: any, object: any) => ({ name, object });\nexport function convertCubeStringToTableSchema(\n file: string\n): TableSchema | null {\n // replace ${...} with ...\n let replacedFile = file.replace(/\\${(.*?)}/g, (match, variable) => variable);\n\n // replace CUBE with MEERKAT\n replacedFile = replacedFile.replace(/CUBE/g, '{MEERKAT}');\n const { name, object } = eval(replacedFile);\n return convertCubeToTableSchema({ name, object });\n}\n\nfunction convertCubeToTableSchema({\n name,\n object,\n}: CubeSchema): TableSchema | null {\n const resObj: TableSchema = {\n name,\n sql: object.sql_table,\n measures: [],\n dimensions: [],\n };\n const dimensions = object.dimensions;\n const measures = object.measures;\n\n // convert dimensions and measures\n for (const key in dimensions) {\n resObj.dimensions.push({\n name: key,\n sql: dimensions[key].sql,\n type: dimensions[key].type,\n });\n }\n for (const key in measures) {\n resObj.measures.push({ name: key, ...convertMeasure(measures[key]) });\n }\n\n // convert joins\n if (object.joins && Object.keys(object.joins).length > 0) {\n resObj.joins = [];\n for (const joinName in object.joins) {\n const join = object.joins[joinName];\n resObj.joins.push({\n sql: join.sql,\n });\n }\n }\n return resObj;\n}\ninterface CubeMeasure {\n sql?: string;\n type: CubeMeasureType;\n}\n\nfunction convertMeasure(measure: CubeMeasure): Pick<Measure, 'sql' | 'type'> {\n switch (measure.type) {\n case 'count':\n return {\n sql: measure.sql ? `COUNT(${measure.sql})` : 'COUNT(*)',\n type: 'number',\n };\n case 'count_distinct':\n return {\n sql: `COUNT(DISTINCT ${measure.sql})`,\n type: 'number',\n };\n case 'count_distinct_approx':\n return {\n sql: `APPROX_COUNT_DISTINCT(${measure.sql})`,\n type: 'number',\n };\n case 'sum':\n return {\n sql: `SUM(${measure.sql})`,\n type: 'number',\n };\n case 'avg':\n return {\n sql: `AVG(${measure.sql})`,\n type: 'number',\n };\n case 'min':\n return {\n sql: `MIN(${measure.sql})`,\n type: 'number',\n };\n case 'max':\n return {\n sql: `MAX(${measure.sql})`,\n type: 'number',\n };\n default:\n return {\n sql: measure.sql ?? '',\n type: measure.type,\n };\n }\n}\n"],"names":["convertCubeStringToTableSchema","cube","name","object","file","replacedFile","replace","match","variable","eval","convertCubeToTableSchema","resObj","sql","sql_table","measures","dimensions","key","push","type","convertMeasure","joins","Object","keys","length","joinName","join","measure"],"mappings":";+BAsCgBA;;;eAAAA;;;;AADhB,MAAMC,OAAO,CAACC,MAAWC,SAAiB,CAAA;QAAED;QAAMC;IAAO,CAAA;AAClD,SAASH,+BACdI,IAAY;IAEZ,0BAA0B;IAC1B,IAAIC,eAAeD,KAAKE,OAAO,CAAC,cAAc,CAACC,OAAOC,WAAaA;IAEnE,4BAA4B;IAC5BH,eAAeA,aAAaC,OAAO,CAAC,SAAS;IAC7C,MAAM,EAAEJ,IAAI,EAAEC,MAAM,EAAE,GAAGM,KAAKJ;IAC9B,OAAOK,yBAAyB;QAAER;QAAMC;IAAO;AACjD;AAEA,SAASO,yBAAyB,EAChCR,IAAI,EACJC,MAAM,EACK;IACX,MAAMQ,SAAsB;QAC1BT;QACAU,KAAKT,OAAOU,SAAS;QACrBC,UAAU,EAAE;QACZC,YAAY,EAAE;IAChB;IACA,MAAMA,aAAaZ,OAAOY,UAAU;IACpC,MAAMD,WAAWX,OAAOW,QAAQ;IAEhC,kCAAkC;IAClC,IAAK,MAAME,OAAOD,WAAY;QAC5BJ,OAAOI,UAAU,CAACE,IAAI,CAAC;YACrBf,MAAMc;YACNJ,KAAKG,UAAU,CAACC,IAAI,CAACJ,GAAG;YACxBM,MAAMH,UAAU,CAACC,IAAI,CAACE,IAAI;QAC5B;IACF;IACA,IAAK,MAAMF,OAAOF,SAAU;QAC1BH,OAAOG,QAAQ,CAACG,IAAI,CAAC;YAAEf,MAAMc;WAAQG,eAAeL,QAAQ,CAACE,IAAI;IACnE;IAEA,gBAAgB;IAChB,IAAIb,OAAOiB,KAAK,IAAIC,OAAOC,IAAI,CAACnB,OAAOiB,KAAK,EAAEG,MAAM,GAAG,GAAG;QACxDZ,OAAOS,KAAK,GAAG,EAAE;QACjB,IAAK,MAAMI,YAAYrB,OAAOiB,KAAK,CAAE;YACnC,MAAMK,OAAOtB,OAAOiB,KAAK,CAACI,SAAS;YACnCb,OAAOS,KAAK,CAACH,IAAI,CAAC;gBAChBL,KAAKa,KAAKb,GAAG;YACf;QACF;IACF;IACA,OAAOD;AACT;AAMA,SAASQ,eAAeO,OAAoB;IAC1C,OAAQA,QAAQR,IAAI;QAClB,KAAK;YACH,OAAO;gBACLN,KAAKc,QAAQd,GAAG,GAAG,CAAC,MAAM,EAAEc,QAAQd,GAAG,CAAC,CAAC,CAAC,GAAG;gBAC7CM,MAAM;YACR;QACF,KAAK;YACH,OAAO;gBACLN,KAAK,CAAC,eAAe,EAAEc,QAAQd,GAAG,CAAC,CAAC,CAAC;gBACrCM,MAAM;YACR;QACF,KAAK;YACH,OAAO;gBACLN,KAAK,CAAC,sBAAsB,EAAEc,QAAQd,GAAG,CAAC,CAAC,CAAC;gBAC5CM,MAAM;YACR;QACF,KAAK;YACH,OAAO;gBACLN,KAAK,CAAC,IAAI,EAAEc,QAAQd,GAAG,CAAC,CAAC,CAAC;gBAC1BM,MAAM;YACR;QACF,KAAK;YACH,OAAO;gBACLN,KAAK,CAAC,IAAI,EAAEc,QAAQd,GAAG,CAAC,CAAC,CAAC;gBAC1BM,MAAM;YACR;QACF,KAAK;YACH,OAAO;gBACLN,KAAK,CAAC,IAAI,EAAEc,QAAQd,GAAG,CAAC,CAAC,CAAC;gBAC1BM,MAAM;YACR;QACF,KAAK;YACH,OAAO;gBACLN,KAAK,CAAC,IAAI,EAAEc,QAAQd,GAAG,CAAC,CAAC,CAAC;gBAC1BM,MAAM;YACR;QACF;gBAESQ;YADP,OAAO;gBACLd,KAAKc,CAAAA,eAAAA,QAAQd,GAAG,YAAXc,eAAe;gBACpBR,MAAMQ,QAAQR,IAAI;YACpB;IACJ;AACF"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "CUBE_TYPE_TO_DUCKDB_TYPE", {
|
|
3
|
-
enumerable: true,
|
|
4
|
-
get: function() {
|
|
5
|
-
return CUBE_TYPE_TO_DUCKDB_TYPE;
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
const CUBE_TYPE_TO_DUCKDB_TYPE = {
|
|
9
|
-
string: 'VARCHAR',
|
|
10
|
-
number: 'DECIMAL',
|
|
11
|
-
time: 'VARCHAR',
|
|
12
|
-
boolean: 'BOOLEAN',
|
|
13
|
-
string_array: 'VARCHAR[]',
|
|
14
|
-
number_array: 'DECIMAL[]'
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
//# sourceMappingURL=cube-type-to-duckdb-type.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../meerkat-core/src/utils/cube-type-to-duckdb-type.ts"],"sourcesContent":["import { DimensionType, MeasureType } from '../types/cube-types';\n\ntype CubeType = DimensionType | MeasureType;\n\nexport const CUBE_TYPE_TO_DUCKDB_TYPE: {\n [key in CubeType]: string;\n} = {\n string: 'VARCHAR',\n number: 'DECIMAL',\n time: 'VARCHAR',\n boolean: 'BOOLEAN',\n string_array: 'VARCHAR[]',\n number_array: 'DECIMAL[]',\n};\n"],"names":["CUBE_TYPE_TO_DUCKDB_TYPE","string","number","time","boolean","string_array","number_array"],"mappings":";+BAIaA;;;eAAAA;;;AAAN,MAAMA,2BAET;IACFC,QAAQ;IACRC,QAAQ;IACRC,MAAM;IACNC,SAAS;IACTC,cAAc;IACdC,cAAc;AAChB"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
function _export(target, all) {
|
|
3
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
4
|
-
enumerable: true,
|
|
5
|
-
get: all[name]
|
|
6
|
-
});
|
|
7
|
-
}
|
|
8
|
-
_export(exports, {
|
|
9
|
-
findInDimensionSchema: function() {
|
|
10
|
-
return findInDimensionSchema;
|
|
11
|
-
},
|
|
12
|
-
findInMeasureSchema: function() {
|
|
13
|
-
return findInMeasureSchema;
|
|
14
|
-
},
|
|
15
|
-
findInSchema: function() {
|
|
16
|
-
return findInSchema;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
const findInDimensionSchema = (measure, tableSchema)=>{
|
|
20
|
-
return tableSchema.dimensions.find((m)=>m.name === measure);
|
|
21
|
-
};
|
|
22
|
-
const findInMeasureSchema = (measure, tableSchema)=>{
|
|
23
|
-
return tableSchema.measures.find((m)=>m.name === measure);
|
|
24
|
-
};
|
|
25
|
-
const findInSchema = (measure, tableSchema)=>{
|
|
26
|
-
/*
|
|
27
|
-
** Using the key passed as measureWithoutTable this function searches the table schema.
|
|
28
|
-
** It returns either the first dimension or measure found.
|
|
29
|
-
*/ const foundDimension = findInDimensionSchema(measure, tableSchema);
|
|
30
|
-
if (foundDimension) {
|
|
31
|
-
return foundDimension;
|
|
32
|
-
}
|
|
33
|
-
const foundMeasure = findInMeasureSchema(measure, tableSchema);
|
|
34
|
-
if (foundMeasure) {
|
|
35
|
-
return foundMeasure;
|
|
36
|
-
}
|
|
37
|
-
return undefined;
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
//# sourceMappingURL=find-in-table-schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../meerkat-core/src/utils/find-in-table-schema.ts"],"sourcesContent":["import { TableSchema } from \"../types/cube-types\"\n\n\nexport const findInDimensionSchema = (measure: string, tableSchema: TableSchema) => {\n return tableSchema.dimensions.find(\n (m) => m.name === measure\n )\n}\n\nexport const findInMeasureSchema = (measure: string, tableSchema: TableSchema) => {\n return tableSchema.measures.find(\n (m) => m.name === measure\n )\n}\n\nexport const findInSchema = (measure: string, tableSchema: TableSchema) => {\n /*\n ** Using the key passed as measureWithoutTable this function searches the table schema.\n ** It returns either the first dimension or measure found.\n */\n const foundDimension = findInDimensionSchema(measure, tableSchema)\n if (foundDimension) {\n return foundDimension\n }\n const foundMeasure = findInMeasureSchema(measure, tableSchema)\n if (foundMeasure) {\n return foundMeasure\n }\n return undefined\n}\n"],"names":["findInDimensionSchema","findInMeasureSchema","findInSchema","measure","tableSchema","dimensions","find","m","name","measures","foundDimension","foundMeasure","undefined"],"mappings":";;;;;;;;IAGaA,qBAAqB;eAArBA;;IAMAC,mBAAmB;eAAnBA;;IAMAC,YAAY;eAAZA;;;AAZN,MAAMF,wBAAwB,CAACG,SAAiBC;IACrD,OAAOA,YAAYC,UAAU,CAACC,IAAI,CAChC,CAACC,IAAMA,EAAEC,IAAI,KAAKL;AAEtB;AAEO,MAAMF,sBAAsB,CAACE,SAAiBC;IACnD,OAAOA,YAAYK,QAAQ,CAACH,IAAI,CAC9B,CAACC,IAAMA,EAAEC,IAAI,KAAKL;AAEtB;AAEO,MAAMD,eAAe,CAACC,SAAiBC;IAC5C;;;EAGA,GACA,MAAMM,iBAAiBV,sBAAsBG,SAASC;IACtD,IAAIM,gBAAgB;QAClB,OAAOA;IACT;IACA,MAAMC,eAAeV,oBAAoBE,SAASC;IAClD,IAAIO,cAAc;QAChB,OAAOA;IACT;IACA,OAAOC;AACT"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "getColumnNamesFromAst", {
|
|
3
|
-
enumerable: true,
|
|
4
|
-
get: function() {
|
|
5
|
-
return getColumnNamesFromAst;
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
const _memberformatters = require("../member-formatters");
|
|
9
|
-
const _utils = require("../types/utils");
|
|
10
|
-
const getColumnNamesFromAst = (node, columnSet = new Set())=>{
|
|
11
|
-
if (!node) return Array.from(columnSet);
|
|
12
|
-
if ((0, _utils.isBetweenExpression)(node)) {
|
|
13
|
-
getColumnNamesFromAst(node.input, columnSet);
|
|
14
|
-
getColumnNamesFromAst(node.lower, columnSet);
|
|
15
|
-
getColumnNamesFromAst(node.upper, columnSet);
|
|
16
|
-
}
|
|
17
|
-
if ((0, _utils.isColumnRefExpression)(node)) {
|
|
18
|
-
columnSet.add(node.column_names.join(_memberformatters.COLUMN_NAME_DELIMITER));
|
|
19
|
-
}
|
|
20
|
-
if ((0, _utils.isCastExpression)(node) || (0, _utils.isCollateExpression)(node)) {
|
|
21
|
-
getColumnNamesFromAst(node.child, columnSet);
|
|
22
|
-
}
|
|
23
|
-
if ((0, _utils.isComparisonExpression)(node)) {
|
|
24
|
-
getColumnNamesFromAst(node.left, columnSet);
|
|
25
|
-
getColumnNamesFromAst(node.right, columnSet);
|
|
26
|
-
}
|
|
27
|
-
if ((0, _utils.isFunctionExpression)(node) || (0, _utils.isWindowExpression)(node) || (0, _utils.isOperatorExpression)(node) || (0, _utils.isConjunctionExpression)(node)) {
|
|
28
|
-
node.children.forEach((child)=>getColumnNamesFromAst(child, columnSet));
|
|
29
|
-
}
|
|
30
|
-
if ((0, _utils.isCaseExpression)(node)) {
|
|
31
|
-
node.case_checks.forEach((check)=>{
|
|
32
|
-
getColumnNamesFromAst(check.then_expr, columnSet);
|
|
33
|
-
getColumnNamesFromAst(check.when_expr, columnSet);
|
|
34
|
-
});
|
|
35
|
-
getColumnNamesFromAst(node.else_expr, columnSet);
|
|
36
|
-
}
|
|
37
|
-
if ((0, _utils.isSubqueryExpression)(node) && (0, _utils.isSelectNode)(node.subquery.node)) {
|
|
38
|
-
node.subquery.node.select_list.forEach((node)=>{
|
|
39
|
-
getColumnNamesFromAst(node, columnSet);
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
return Array.from(columnSet);
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
//# sourceMappingURL=get-column-names-from-ast.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../meerkat-core/src/utils/get-column-names-from-ast.ts"],"sourcesContent":["import { COLUMN_NAME_DELIMITER } from '../member-formatters';\nimport { ParsedExpression } from '../types/duckdb-serialization-types';\nimport {\n isBetweenExpression,\n isCaseExpression,\n isCastExpression,\n isCollateExpression,\n isColumnRefExpression,\n isComparisonExpression,\n isConjunctionExpression,\n isFunctionExpression,\n isOperatorExpression,\n isSelectNode,\n isSubqueryExpression,\n isWindowExpression,\n} from '../types/utils';\n\nexport const getColumnNamesFromAst = (\n node: ParsedExpression,\n columnSet: Set<string> = new Set()\n): string[] => {\n if (!node) return Array.from(columnSet);\n\n if (isBetweenExpression(node)) {\n getColumnNamesFromAst(node.input, columnSet);\n getColumnNamesFromAst(node.lower, columnSet);\n getColumnNamesFromAst(node.upper, columnSet);\n }\n\n if (isColumnRefExpression(node)) {\n columnSet.add(node.column_names.join(COLUMN_NAME_DELIMITER));\n }\n\n if (isCastExpression(node) || isCollateExpression(node)) {\n getColumnNamesFromAst(node.child, columnSet);\n }\n\n if (isComparisonExpression(node)) {\n getColumnNamesFromAst(node.left, columnSet);\n getColumnNamesFromAst(node.right, columnSet);\n }\n\n if (\n isFunctionExpression(node) ||\n isWindowExpression(node) ||\n isOperatorExpression(node) ||\n isConjunctionExpression(node)\n ) {\n node.children.forEach((child) => getColumnNamesFromAst(child, columnSet));\n }\n\n if (isCaseExpression(node)) {\n node.case_checks.forEach((check) => {\n getColumnNamesFromAst(check.then_expr, columnSet);\n getColumnNamesFromAst(check.when_expr, columnSet);\n });\n getColumnNamesFromAst(node.else_expr, columnSet);\n }\n\n if (isSubqueryExpression(node) && isSelectNode(node.subquery.node)) {\n node.subquery.node.select_list.forEach((node) => {\n getColumnNamesFromAst(node, columnSet);\n });\n }\n\n return Array.from(columnSet);\n};\n"],"names":["getColumnNamesFromAst","node","columnSet","Set","Array","from","isBetweenExpression","input","lower","upper","isColumnRefExpression","add","column_names","join","COLUMN_NAME_DELIMITER","isCastExpression","isCollateExpression","child","isComparisonExpression","left","right","isFunctionExpression","isWindowExpression","isOperatorExpression","isConjunctionExpression","children","forEach","isCaseExpression","case_checks","check","then_expr","when_expr","else_expr","isSubqueryExpression","isSelectNode","subquery","select_list"],"mappings":";+BAiBaA;;;eAAAA;;;kCAjByB;uBAe/B;AAEA,MAAMA,wBAAwB,CACnCC,MACAC,YAAyB,IAAIC,KAAK;IAElC,IAAI,CAACF,MAAM,OAAOG,MAAMC,IAAI,CAACH;IAE7B,IAAII,IAAAA,0BAAmB,EAACL,OAAO;QAC7BD,sBAAsBC,KAAKM,KAAK,EAAEL;QAClCF,sBAAsBC,KAAKO,KAAK,EAAEN;QAClCF,sBAAsBC,KAAKQ,KAAK,EAAEP;IACpC;IAEA,IAAIQ,IAAAA,4BAAqB,EAACT,OAAO;QAC/BC,UAAUS,GAAG,CAACV,KAAKW,YAAY,CAACC,IAAI,CAACC,uCAAqB;IAC5D;IAEA,IAAIC,IAAAA,uBAAgB,EAACd,SAASe,IAAAA,0BAAmB,EAACf,OAAO;QACvDD,sBAAsBC,KAAKgB,KAAK,EAAEf;IACpC;IAEA,IAAIgB,IAAAA,6BAAsB,EAACjB,OAAO;QAChCD,sBAAsBC,KAAKkB,IAAI,EAAEjB;QACjCF,sBAAsBC,KAAKmB,KAAK,EAAElB;IACpC;IAEA,IACEmB,IAAAA,2BAAoB,EAACpB,SACrBqB,IAAAA,yBAAkB,EAACrB,SACnBsB,IAAAA,2BAAoB,EAACtB,SACrBuB,IAAAA,8BAAuB,EAACvB,OACxB;QACAA,KAAKwB,QAAQ,CAACC,OAAO,CAAC,CAACT,QAAUjB,sBAAsBiB,OAAOf;IAChE;IAEA,IAAIyB,IAAAA,uBAAgB,EAAC1B,OAAO;QAC1BA,KAAK2B,WAAW,CAACF,OAAO,CAAC,CAACG;YACxB7B,sBAAsB6B,MAAMC,SAAS,EAAE5B;YACvCF,sBAAsB6B,MAAME,SAAS,EAAE7B;QACzC;QACAF,sBAAsBC,KAAK+B,SAAS,EAAE9B;IACxC;IAEA,IAAI+B,IAAAA,2BAAoB,EAAChC,SAASiC,IAAAA,mBAAY,EAACjC,KAAKkC,QAAQ,CAAClC,IAAI,GAAG;QAClEA,KAAKkC,QAAQ,CAAClC,IAAI,CAACmC,WAAW,CAACV,OAAO,CAAC,CAACzB;YACtCD,sBAAsBC,MAAMC;QAC9B;IACF;IAEA,OAAOE,MAAMC,IAAI,CAACH;AACpB"}
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "getNestedTableSchema", {
|
|
3
|
-
enumerable: true,
|
|
4
|
-
get: function() {
|
|
5
|
-
return getNestedTableSchema;
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
const _joins = require("../joins/joins");
|
|
9
|
-
const _cubetypes = require("../types/cube-types");
|
|
10
|
-
const getNestedTableSchema = (tableSchemas, joinPath, depth)=>{
|
|
11
|
-
const tableSchemaSqlMap = {};
|
|
12
|
-
for (const schema of tableSchemas){
|
|
13
|
-
if (!schema) {
|
|
14
|
-
throw new Error('Schema is undefined');
|
|
15
|
-
}
|
|
16
|
-
tableSchemaSqlMap[schema.name] = schema.sql;
|
|
17
|
-
}
|
|
18
|
-
const directedGraph = (0, _joins.createDirectedGraph)(tableSchemas, tableSchemaSqlMap);
|
|
19
|
-
const hasLoop = (0, _joins.checkLoopInJoinPath)(joinPath);
|
|
20
|
-
if (hasLoop) {
|
|
21
|
-
throw new Error('A loop was detected in the joins paths');
|
|
22
|
-
}
|
|
23
|
-
const visitedNodes = {};
|
|
24
|
-
const startingNode = tableSchemas.find((schema)=>schema.name === joinPath[0][0].left);
|
|
25
|
-
visitedNodes[startingNode.name] = true;
|
|
26
|
-
const nestedTableSchema = {
|
|
27
|
-
name: startingNode.name,
|
|
28
|
-
measures: startingNode.measures.map((measure)=>({
|
|
29
|
-
schema: measure,
|
|
30
|
-
children: []
|
|
31
|
-
})),
|
|
32
|
-
dimensions: startingNode.dimensions.map((dimension)=>({
|
|
33
|
-
schema: dimension,
|
|
34
|
-
children: []
|
|
35
|
-
}))
|
|
36
|
-
};
|
|
37
|
-
const checkedPaths = {};
|
|
38
|
-
const buildNestedSchema = (edges, index, nestedTableSchema, tableSchemas)=>{
|
|
39
|
-
var _nestedDimension_children;
|
|
40
|
-
const edge = edges[index];
|
|
41
|
-
/**
|
|
42
|
-
* If there is no right table, return the nested schema immediately
|
|
43
|
-
* This means there is a single node in the path.
|
|
44
|
-
*/ if (!(0, _cubetypes.isJoinNode)(edge)) {
|
|
45
|
-
return nestedTableSchema;
|
|
46
|
-
}
|
|
47
|
-
// If the path has been checked before, return the nested schema immediately
|
|
48
|
-
const pathKey = `${edge.left}-${edge.right}-${edge.on}`;
|
|
49
|
-
if (checkedPaths[pathKey]) {
|
|
50
|
-
nestedTableSchema.dimensions.map((dimension)=>{
|
|
51
|
-
var _dimension_children;
|
|
52
|
-
(_dimension_children = dimension.children) == null ? void 0 : _dimension_children.forEach((child)=>{
|
|
53
|
-
if (child.name === edge.right) {
|
|
54
|
-
return buildNestedSchema(edges, index + 1, child, tableSchemas);
|
|
55
|
-
}
|
|
56
|
-
return;
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
return nestedTableSchema;
|
|
60
|
-
}
|
|
61
|
-
const rightSchema = tableSchemas.find((schema)=>schema.name === edge.right);
|
|
62
|
-
if (!rightSchema) {
|
|
63
|
-
throw new Error(`The schema for ${edge.right} does not exist.`);
|
|
64
|
-
}
|
|
65
|
-
// Mark the path as checked
|
|
66
|
-
checkedPaths[pathKey] = true;
|
|
67
|
-
const nestedRightSchema = {
|
|
68
|
-
name: rightSchema.name,
|
|
69
|
-
measures: (rightSchema.measures || []).map((measure)=>({
|
|
70
|
-
schema: measure,
|
|
71
|
-
children: []
|
|
72
|
-
})),
|
|
73
|
-
dimensions: (rightSchema.dimensions || []).map((dimension)=>({
|
|
74
|
-
schema: dimension,
|
|
75
|
-
children: []
|
|
76
|
-
}))
|
|
77
|
-
};
|
|
78
|
-
const nestedDimension = nestedTableSchema.dimensions.find((dimension)=>dimension.schema.name === edge.on);
|
|
79
|
-
if (!nestedDimension) {
|
|
80
|
-
throw new Error(`The dimension ${edge.on} does not exist in the table schema.`);
|
|
81
|
-
}
|
|
82
|
-
(_nestedDimension_children = nestedDimension.children) == null ? void 0 : _nestedDimension_children.push(nestedRightSchema);
|
|
83
|
-
// Mark the right schema as visited
|
|
84
|
-
visitedNodes[rightSchema.name] = true;
|
|
85
|
-
if (index < edges.length - 1) {
|
|
86
|
-
buildNestedSchema(edges, index + 1, nestedRightSchema, tableSchemas);
|
|
87
|
-
}
|
|
88
|
-
return nestedTableSchema;
|
|
89
|
-
};
|
|
90
|
-
for(let i = 0; i < joinPath.length; i++){
|
|
91
|
-
buildNestedSchema(joinPath[i], 0, nestedTableSchema, tableSchemas);
|
|
92
|
-
}
|
|
93
|
-
getNextPossibleNodes(directedGraph, nestedTableSchema, visitedNodes, tableSchemas, depth);
|
|
94
|
-
return nestedTableSchema;
|
|
95
|
-
};
|
|
96
|
-
const getNextPossibleNodes = (directedGraph, nestedTableSchema, visitedNodes, tableSchemas, depth, currentDepth = 0)=>{
|
|
97
|
-
const currentNode = nestedTableSchema.name;
|
|
98
|
-
/**
|
|
99
|
-
* We are already iterating the next nodes for each dimension. It means we are already at the next level of depth.
|
|
100
|
-
* So we should return if the current depth is greater than or equal to the depth we want to go to.
|
|
101
|
-
*/ if (currentDepth >= depth) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Iterating through each dimension of the current node
|
|
106
|
-
*/ for(let i = 0; i < nestedTableSchema.dimensions.length; i++){
|
|
107
|
-
const dimension = nestedTableSchema.dimensions[i];
|
|
108
|
-
/**
|
|
109
|
-
* Gettting the next possible nodes for the current dimension
|
|
110
|
-
*/ const nextPossibleNodes = directedGraph[currentNode];
|
|
111
|
-
if (!nextPossibleNodes) {
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
for (const [node] of Object.entries(nextPossibleNodes)){
|
|
115
|
-
/**
|
|
116
|
-
* If the next node is not possible with the current dimension, continue to the next node
|
|
117
|
-
*/ if (!nextPossibleNodes[node][dimension.schema.name]) {
|
|
118
|
-
continue;
|
|
119
|
-
}
|
|
120
|
-
const nextSchema = tableSchemas.find((schema)=>schema.name === node);
|
|
121
|
-
if (!nextSchema) {
|
|
122
|
-
throw new Error(`The schema for ${node} does not exist.`);
|
|
123
|
-
}
|
|
124
|
-
if (!visitedNodes[nextSchema.name]) {
|
|
125
|
-
var _dimension_children;
|
|
126
|
-
const nestedNextSchema = {
|
|
127
|
-
name: nextSchema.name,
|
|
128
|
-
measures: nextSchema.measures.map((measure)=>({
|
|
129
|
-
schema: measure,
|
|
130
|
-
children: []
|
|
131
|
-
})),
|
|
132
|
-
dimensions: nextSchema.dimensions.map((dimension)=>({
|
|
133
|
-
schema: dimension,
|
|
134
|
-
children: []
|
|
135
|
-
}))
|
|
136
|
-
};
|
|
137
|
-
if (!((_dimension_children = dimension.children) == null ? void 0 : _dimension_children.some((child)=>child.name === nestedNextSchema.name))) {
|
|
138
|
-
var _dimension_children1;
|
|
139
|
-
(_dimension_children1 = dimension.children) == null ? void 0 : _dimension_children1.push(nestedNextSchema);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
for (const children of dimension.children || []){
|
|
143
|
-
if (visitedNodes[children.name] && currentDepth > 0) {
|
|
144
|
-
continue;
|
|
145
|
-
}
|
|
146
|
-
getNextPossibleNodes(directedGraph, children, visitedNodes, tableSchemas, depth, visitedNodes[children.name] ? 0 : currentDepth + 1);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
//# sourceMappingURL=get-possible-nodes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../meerkat-core/src/utils/get-possible-nodes.ts"],"sourcesContent":["import { Graph, checkLoopInJoinPath, createDirectedGraph } from '../joins/joins';\nimport {\n Dimension,\n JoinPath,\n Measure,\n TableSchema,\n isJoinNode,\n} from '../types/cube-types';\n\nexport interface NestedMeasure {\n schema: Measure;\n children: NestedTableSchema[];\n}\n\nexport interface NestedDimension {\n schema: Dimension;\n children: NestedTableSchema[];\n}\n\nexport interface NestedTableSchema {\n name: string;\n measures: NestedMeasure[];\n dimensions: NestedDimension[];\n}\n\nexport const getNestedTableSchema = (\n tableSchemas: TableSchema[],\n joinPath: JoinPath[],\n depth: number\n) => {\n const tableSchemaSqlMap: { [key: string]: string } = {};\n for (const schema of tableSchemas) {\n if (!schema) {\n throw new Error('Schema is undefined');\n }\n tableSchemaSqlMap[schema.name] = schema.sql;\n }\n\n const directedGraph = createDirectedGraph(tableSchemas, tableSchemaSqlMap);\n\n const hasLoop = checkLoopInJoinPath(joinPath);\n if (hasLoop) {\n throw new Error('A loop was detected in the joins paths',);\n }\n const visitedNodes: { [key: string]: boolean } = {};\n\n const startingNode = tableSchemas.find(\n (schema) => schema.name === joinPath[0][0].left\n ) as TableSchema;\n\n visitedNodes[startingNode.name] = true;\n\n const nestedTableSchema: NestedTableSchema = {\n name: startingNode.name,\n measures: startingNode.measures.map((measure) => ({\n schema: measure,\n children: [],\n })),\n dimensions: startingNode.dimensions.map((dimension) => ({\n schema: dimension,\n children: [],\n })),\n };\n\n const checkedPaths: { [key: string]: boolean } = {};\n\n const buildNestedSchema = (\n edges: JoinPath,\n index: number,\n nestedTableSchema: NestedTableSchema,\n tableSchemas: TableSchema[]\n ): NestedTableSchema => {\n const edge = edges[index];\n\n /**\n * If there is no right table, return the nested schema immediately\n * This means there is a single node in the path.\n */\n\n if (!isJoinNode(edge)) {\n return nestedTableSchema;\n }\n\n // If the path has been checked before, return the nested schema immediately\n const pathKey = `${edge.left}-${edge.right}-${edge.on}`;\n if (checkedPaths[pathKey]) {\n nestedTableSchema.dimensions.map((dimension) => {\n dimension.children?.forEach((child) => {\n if (child.name === edge.right) {\n return buildNestedSchema(edges, index + 1, child, tableSchemas);\n }\n return;\n });\n });\n return nestedTableSchema;\n }\n\n const rightSchema = tableSchemas.find(\n (schema) => schema.name === edge.right\n ) as TableSchema;\n\n if (!rightSchema) {\n throw new Error(`The schema for ${edge.right} does not exist.`);\n }\n\n // Mark the path as checked\n checkedPaths[pathKey] = true;\n\n const nestedRightSchema: NestedTableSchema = {\n name: rightSchema.name,\n measures: (rightSchema.measures || []).map(\n (measure) => ({ schema: measure, children: [] } as NestedMeasure)\n ),\n dimensions: (rightSchema.dimensions || []).map(\n (dimension) => ({ schema: dimension, children: [] } as NestedDimension)\n ),\n };\n\n const nestedDimension = nestedTableSchema.dimensions.find(\n (dimension) => dimension.schema.name === edge.on\n ) as NestedMeasure;\n\n if (!nestedDimension) {\n throw new Error(\n `The dimension ${edge.on} does not exist in the table schema.`\n );\n }\n\n nestedDimension.children?.push(nestedRightSchema);\n\n // Mark the right schema as visited\n visitedNodes[rightSchema.name] = true;\n\n if (index < edges.length - 1) {\n buildNestedSchema(\n edges,\n index + 1,\n nestedRightSchema as NestedTableSchema,\n tableSchemas\n );\n }\n return nestedTableSchema;\n };\n\n for (let i = 0; i < joinPath.length; i++) {\n buildNestedSchema(joinPath[i], 0, nestedTableSchema, tableSchemas);\n }\n\n getNextPossibleNodes(\n directedGraph,\n nestedTableSchema,\n visitedNodes,\n tableSchemas,\n depth\n );\n\n return nestedTableSchema;\n};\n\nconst getNextPossibleNodes = (\n directedGraph: Graph,\n nestedTableSchema: NestedTableSchema,\n visitedNodes: { [key: string]: boolean },\n tableSchemas: TableSchema[],\n depth: number,\n currentDepth = 0\n) => {\n const currentNode = nestedTableSchema.name;\n\n /**\n * We are already iterating the next nodes for each dimension. It means we are already at the next level of depth.\n * So we should return if the current depth is greater than or equal to the depth we want to go to.\n */\n if (currentDepth >= depth) {\n return;\n }\n\n /**\n * Iterating through each dimension of the current node\n */\n for (let i = 0; i < nestedTableSchema.dimensions.length; i++) {\n const dimension = nestedTableSchema.dimensions[i];\n /**\n * Gettting the next possible nodes for the current dimension\n */\n const nextPossibleNodes = directedGraph[currentNode];\n if (!nextPossibleNodes) {\n return;\n }\n\n for (const [node] of Object.entries(nextPossibleNodes)) {\n /**\n * If the next node is not possible with the current dimension, continue to the next node\n */\n if (!nextPossibleNodes[node][dimension.schema.name]) {\n continue;\n }\n const nextSchema = tableSchemas.find(\n (schema) => schema.name === node\n ) as TableSchema;\n\n if (!nextSchema) {\n throw new Error(`The schema for ${node} does not exist.`);\n }\n\n if (!visitedNodes[nextSchema.name]) {\n const nestedNextSchema: NestedTableSchema = {\n name: nextSchema.name,\n measures: nextSchema.measures.map((measure) => ({\n schema: measure,\n children: [],\n })),\n dimensions: nextSchema.dimensions.map((dimension) => ({\n schema: dimension,\n children: [],\n })),\n };\n if (\n !dimension.children?.some(\n (child) => child.name === nestedNextSchema.name\n )\n ) {\n dimension.children?.push(nestedNextSchema);\n }\n }\n for (const children of dimension.children || []) {\n if (visitedNodes[children.name] && currentDepth > 0) {\n continue;\n }\n\n getNextPossibleNodes(\n directedGraph,\n children,\n visitedNodes,\n tableSchemas,\n depth,\n visitedNodes[children.name] ? 0 : currentDepth + 1\n );\n }\n }\n }\n};\n"],"names":["getNestedTableSchema","tableSchemas","joinPath","depth","tableSchemaSqlMap","schema","Error","name","sql","directedGraph","createDirectedGraph","hasLoop","checkLoopInJoinPath","visitedNodes","startingNode","find","left","nestedTableSchema","measures","map","measure","children","dimensions","dimension","checkedPaths","buildNestedSchema","edges","index","nestedDimension","edge","isJoinNode","pathKey","right","on","forEach","child","rightSchema","nestedRightSchema","push","length","i","getNextPossibleNodes","currentDepth","currentNode","nextPossibleNodes","node","Object","entries","nextSchema","nestedNextSchema","some"],"mappings":"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"}
|
package/utils/get-type-info.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
function _export(target, all) {
|
|
3
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
4
|
-
enumerable: true,
|
|
5
|
-
get: all[name]
|
|
6
|
-
});
|
|
7
|
-
}
|
|
8
|
-
_export(exports, {
|
|
9
|
-
convertFloatToInt: function() {
|
|
10
|
-
return convertFloatToInt;
|
|
11
|
-
},
|
|
12
|
-
getTypeInfo: function() {
|
|
13
|
-
return getTypeInfo;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
function getTypeInfo(num) {
|
|
17
|
-
var _numString_split_;
|
|
18
|
-
const numString = num.toString();
|
|
19
|
-
let width = numString.length;
|
|
20
|
-
if (numString.includes('.')) {
|
|
21
|
-
width -= 1; // subtract 1 to exclude the dot from the count of digits
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* If the number is a whole number, then the scale is 0
|
|
25
|
-
* If the number is a floating point number, then the scale is the number of digits after the decimal
|
|
26
|
-
*/ const scale = ((_numString_split_ = numString.split('.')[1]) == null ? void 0 : _numString_split_.length) || 0;
|
|
27
|
-
const typeInfo = {
|
|
28
|
-
type: 'DECIMAL_TYPE_INFO',
|
|
29
|
-
alias: '',
|
|
30
|
-
width: width,
|
|
31
|
-
scale: scale
|
|
32
|
-
};
|
|
33
|
-
return typeInfo;
|
|
34
|
-
}
|
|
35
|
-
const convertFloatToInt = (num)=>{
|
|
36
|
-
const numString = num.toString();
|
|
37
|
-
//Remove dot from the number string
|
|
38
|
-
const numStringWithoutDot = numString.replace('.', '');
|
|
39
|
-
//Convert the number string to a number
|
|
40
|
-
const numWithoutDot = parseInt(numStringWithoutDot);
|
|
41
|
-
return numWithoutDot;
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
//# sourceMappingURL=get-type-info.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../meerkat-core/src/utils/get-type-info.ts"],"sourcesContent":["export function getTypeInfo(num: number) {\n const numString = num.toString();\n\n let width = numString.length;\n if (numString.includes('.')) {\n width -= 1; // subtract 1 to exclude the dot from the count of digits\n }\n\n /**\n * If the number is a whole number, then the scale is 0\n * If the number is a floating point number, then the scale is the number of digits after the decimal\n */\n const scale = numString.split('.')[1]?.length || 0;\n\n const typeInfo = {\n type: 'DECIMAL_TYPE_INFO',\n alias: '',\n width: width,\n scale: scale,\n };\n\n return typeInfo;\n}\n\nexport const convertFloatToInt = (num: number) => {\n const numString = num.toString();\n\n //Remove dot from the number string\n const numStringWithoutDot = numString.replace('.', '');\n\n //Convert the number string to a number\n const numWithoutDot = parseInt(numStringWithoutDot);\n\n return numWithoutDot;\n};\n"],"names":["convertFloatToInt","getTypeInfo","num","numString","toString","width","length","includes","scale","split","typeInfo","type","alias","numStringWithoutDot","replace","numWithoutDot","parseInt"],"mappings":";;;;;;;;IAwBaA,iBAAiB;eAAjBA;;IAxBGC,WAAW;eAAXA;;;AAAT,SAASA,YAAYC,GAAW;QAYvBC;IAXd,MAAMA,YAAYD,IAAIE,QAAQ;IAE9B,IAAIC,QAAQF,UAAUG,MAAM;IAC5B,IAAIH,UAAUI,QAAQ,CAAC,MAAM;QAC3BF,SAAS,GAAG,yDAAyD;IACvE;IAEA;;;GAGC,GACD,MAAMG,QAAQL,EAAAA,oBAAAA,UAAUM,KAAK,CAAC,IAAI,CAAC,EAAE,qBAAvBN,kBAAyBG,MAAM,KAAI;IAEjD,MAAMI,WAAW;QACfC,MAAM;QACNC,OAAO;QACPP,OAAOA;QACPG,OAAOA;IACT;IAEA,OAAOE;AACT;AAEO,MAAMV,oBAAoB,CAACE;IAChC,MAAMC,YAAYD,IAAIE,QAAQ;IAE9B,mCAAmC;IACnC,MAAMS,sBAAsBV,UAAUW,OAAO,CAAC,KAAK;IAEnD,uCAAuC;IACvC,MAAMC,gBAAgBC,SAASH;IAE/B,OAAOE;AACT"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "isArrayTypeMember", {
|
|
3
|
-
enumerable: true,
|
|
4
|
-
get: function() {
|
|
5
|
-
return isArrayTypeMember;
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
const isArrayTypeMember = (type)=>{
|
|
9
|
-
return type.endsWith('_array');
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
//# sourceMappingURL=is-array-member-type.js.map
|