@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,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "notDuckdbCondition", {
|
|
3
|
-
enumerable: true,
|
|
4
|
-
get: function() {
|
|
5
|
-
return notDuckdbCondition;
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
const _index = require("../../types/duckdb-serialization-types/index");
|
|
9
|
-
const notDuckdbCondition = ()=>{
|
|
10
|
-
return {
|
|
11
|
-
class: _index.ExpressionClass.OPERATOR,
|
|
12
|
-
type: _index.ExpressionType.OPERATOR_NOT,
|
|
13
|
-
alias: '',
|
|
14
|
-
children: []
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
//# sourceMappingURL=not.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/not/not.ts"],"sourcesContent":["import {\n ExpressionClass,\n ExpressionType,\n OperatorExpression,\n} from '../../types/duckdb-serialization-types/index';\n\nexport const notDuckdbCondition = (): OperatorExpression => {\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_NOT,\n alias: '',\n children: [],\n };\n};\n"],"names":["notDuckdbCondition","class","ExpressionClass","OPERATOR","type","ExpressionType","OPERATOR_NOT","alias","children"],"mappings":";+BAMaA;;;eAAAA;;;uBAFN;AAEA,MAAMA,qBAAqB;IAChC,OAAO;QACLC,OAAOC,sBAAe,CAACC,QAAQ;QAC/BC,MAAMC,qBAAc,CAACC,YAAY;QACjCC,OAAO;QACPC,UAAU,EAAE;IACd;AACF"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "notInDataRangeTransform", {
|
|
3
|
-
enumerable: true,
|
|
4
|
-
get: function() {
|
|
5
|
-
return notInDataRangeTransform;
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
9
|
-
const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
|
|
10
|
-
const _or = require("../or/or");
|
|
11
|
-
const notInDataRangeTransform = (query)=>{
|
|
12
|
-
const { member, values } = query;
|
|
13
|
-
if (!values || values.length === 0) {
|
|
14
|
-
throw new Error('GT filter must have at least one value');
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* If there are multiple values, we need to create an OR condition
|
|
18
|
-
*/ const andCondition = (0, _or.orDuckdbCondition)();
|
|
19
|
-
andCondition.children.push((0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_LESSTHAN, values[0], query.memberInfo));
|
|
20
|
-
andCondition.children.push((0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_GREATERTHAN, values[1], query.memberInfo));
|
|
21
|
-
return andCondition;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
//# sourceMappingURL=not-In-date-range.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/not-In-date-range/not-In-date-range.ts"],"sourcesContent":["import { ExpressionType } from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { baseDuckdbCondition } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { orDuckdbCondition } from '../or/or';\n\nexport const notInDataRangeTransform: CubeToParseExpressionTransform = (\n query\n) => {\n const { member, values } = query;\n\n if (!values || values.length === 0) {\n throw new Error('GT filter must have at least one value');\n }\n\n /**\n * If there are multiple values, we need to create an OR condition\n */\n const andCondition = orDuckdbCondition();\n\n andCondition.children.push(\n baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_LESSTHAN,\n values[0],\n query.memberInfo\n )\n );\n\n andCondition.children.push(\n baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_GREATERTHAN,\n values[1],\n query.memberInfo\n )\n );\n\n return andCondition;\n};\n"],"names":["notInDataRangeTransform","query","member","values","length","Error","andCondition","orDuckdbCondition","children","push","baseDuckdbCondition","ExpressionType","COMPARE_LESSTHAN","memberInfo","COMPARE_GREATERTHAN"],"mappings":";+BAKaA;;;eAAAA;;;4BALkB;sCACK;oBAEF;AAE3B,MAAMA,0BAA0D,CACrEC;IAEA,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF;IAE3B,IAAI,CAACE,UAAUA,OAAOC,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA;;GAEC,GACD,MAAMC,eAAeC,IAAAA,qBAAiB;IAEtCD,aAAaE,QAAQ,CAACC,IAAI,CACxBC,IAAAA,yCAAmB,EACjBR,QACAS,0BAAc,CAACC,gBAAgB,EAC/BT,MAAM,CAAC,EAAE,EACTF,MAAMY,UAAU;IAIpBP,aAAaE,QAAQ,CAACC,IAAI,CACxBC,IAAAA,yCAAmB,EACjBR,QACAS,0BAAc,CAACG,mBAAmB,EAClCX,MAAM,CAAC,EAAE,EACTF,MAAMY,UAAU;IAIpB,OAAOP;AACT"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
function _export(target, all) {
|
|
3
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
4
|
-
enumerable: true,
|
|
5
|
-
get: all[name]
|
|
6
|
-
});
|
|
7
|
-
}
|
|
8
|
-
_export(exports, {
|
|
9
|
-
notContainsDuckdbCondition: function() {
|
|
10
|
-
return notContainsDuckdbCondition;
|
|
11
|
-
},
|
|
12
|
-
notContainsTransform: function() {
|
|
13
|
-
return notContainsTransform;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
const _constants = require("../../member-formatters/constants");
|
|
17
|
-
const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
18
|
-
const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
|
|
19
|
-
const _or = require("../or/or");
|
|
20
|
-
const notContainsDuckdbCondition = (columnName, value, memberInfo)=>{
|
|
21
|
-
return {
|
|
22
|
-
class: _Expression.ExpressionClass.FUNCTION,
|
|
23
|
-
type: _Expression.ExpressionType.FUNCTION,
|
|
24
|
-
alias: '',
|
|
25
|
-
function_name: '!~~',
|
|
26
|
-
schema: '',
|
|
27
|
-
children: [
|
|
28
|
-
{
|
|
29
|
-
class: 'COLUMN_REF',
|
|
30
|
-
type: 'COLUMN_REF',
|
|
31
|
-
alias: '',
|
|
32
|
-
column_names: columnName.split(_constants.COLUMN_NAME_DELIMITER)
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
class: 'CONSTANT',
|
|
36
|
-
type: 'VALUE_CONSTANT',
|
|
37
|
-
alias: '',
|
|
38
|
-
value: (0, _baseconditionbuilder.valueBuilder)(`%${value}%`, memberInfo)
|
|
39
|
-
}
|
|
40
|
-
],
|
|
41
|
-
filter: null,
|
|
42
|
-
order_bys: {
|
|
43
|
-
type: 'ORDER_MODIFIER',
|
|
44
|
-
orders: []
|
|
45
|
-
},
|
|
46
|
-
distinct: false,
|
|
47
|
-
is_operator: true,
|
|
48
|
-
export_state: false,
|
|
49
|
-
catalog: ''
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
const notContainsTransform = (query)=>{
|
|
53
|
-
const { member, values, memberInfo } = query;
|
|
54
|
-
if (!values || values.length === 0) {
|
|
55
|
-
throw new Error('Contains filter must have at least one value');
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* If there is only one value, we can create a simple Contains condition
|
|
59
|
-
*/ if (values.length === 1) {
|
|
60
|
-
return notContainsDuckdbCondition(member, values[0], memberInfo);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* If there are multiple values, we need to create an OR condition
|
|
64
|
-
*/ const orCondition = (0, _or.orDuckdbCondition)();
|
|
65
|
-
values.forEach((value)=>{
|
|
66
|
-
orCondition.children.push(notContainsDuckdbCondition(member, value, memberInfo));
|
|
67
|
-
});
|
|
68
|
-
return orCondition;
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
//# sourceMappingURL=not-contains.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/not-contains/not-contains.ts"],"sourcesContent":["import { COLUMN_NAME_DELIMITER } from '../../member-formatters/constants';\nimport { Member, QueryFilter } from '../../types/cube-types/query';\nimport { Dimension, Measure } from '../../types/cube-types/table';\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { valueBuilder } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { orDuckdbCondition } from '../or/or';\n\nexport interface NotContainsFilters extends QueryFilter {\n member: Member;\n operator: 'notContains';\n values: string[];\n}\n\nexport const notContainsDuckdbCondition = (\n columnName: string,\n value: string,\n memberInfo: Measure | Dimension\n) => {\n return {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n function_name: '!~~',\n schema: '',\n children: [\n {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n column_names: columnName.split(COLUMN_NAME_DELIMITER),\n },\n {\n class: 'CONSTANT',\n type: 'VALUE_CONSTANT',\n alias: '',\n value: valueBuilder(`%${value}%`, memberInfo),\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n };\n};\n\nexport const notContainsTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values, memberInfo } = query;\n\n if (!values || values.length === 0) {\n throw new Error('Contains filter must have at least one value');\n }\n\n /**\n * If there is only one value, we can create a simple Contains condition\n */\n if (values.length === 1) {\n return notContainsDuckdbCondition(member, values[0], memberInfo);\n }\n\n /**\n * If there are multiple values, we need to create an OR condition\n */\n const orCondition = orDuckdbCondition();\n values.forEach((value) => {\n orCondition.children.push(\n notContainsDuckdbCondition(member, value, memberInfo)\n );\n });\n return orCondition;\n};\n"],"names":["notContainsDuckdbCondition","notContainsTransform","columnName","value","memberInfo","class","ExpressionClass","FUNCTION","type","ExpressionType","alias","function_name","schema","children","column_names","split","COLUMN_NAME_DELIMITER","valueBuilder","filter","order_bys","orders","distinct","is_operator","export_state","catalog","query","member","values","length","Error","orCondition","orDuckdbCondition","forEach","push"],"mappings":";;;;;;;;IAiBaA,0BAA0B;eAA1BA;;IAqCAC,oBAAoB;eAApBA;;;2BAtDyB;4BAM/B;sCACsB;oBAEK;AAQ3B,MAAMD,6BAA6B,CACxCE,YACAC,OACAC;IAEA,OAAO;QACLC,OAAOC,2BAAe,CAACC,QAAQ;QAC/BC,MAAMC,0BAAc,CAACF,QAAQ;QAC7BG,OAAO;QACPC,eAAe;QACfC,QAAQ;QACRC,UAAU;YACR;gBACER,OAAO;gBACPG,MAAM;gBACNE,OAAO;gBACPI,cAAcZ,WAAWa,KAAK,CAACC,gCAAqB;YACtD;YACA;gBACEX,OAAO;gBACPG,MAAM;gBACNE,OAAO;gBACPP,OAAOc,IAAAA,kCAAY,EAAC,CAAC,CAAC,EAAEd,MAAM,CAAC,CAAC,EAAEC;YACpC;SACD;QACDc,QAAQ;QACRC,WAAW;YACTX,MAAM;YACNY,QAAQ,EAAE;QACZ;QACAC,UAAU;QACVC,aAAa;QACbC,cAAc;QACdC,SAAS;IACX;AACF;AAEO,MAAMvB,uBAAuD,CAACwB;IACnE,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEvB,UAAU,EAAE,GAAGqB;IAEvC,IAAI,CAACE,UAAUA,OAAOC,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA;;GAEC,GACD,IAAIF,OAAOC,MAAM,KAAK,GAAG;QACvB,OAAO5B,2BAA2B0B,QAAQC,MAAM,CAAC,EAAE,EAAEvB;IACvD;IAEA;;GAEC,GACD,MAAM0B,cAAcC,IAAAA,qBAAiB;IACrCJ,OAAOK,OAAO,CAAC,CAAC7B;QACd2B,YAAYjB,QAAQ,CAACoB,IAAI,CACvBjC,2BAA2B0B,QAAQvB,OAAOC;IAE9C;IACA,OAAO0B;AACT"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "notEqualsArrayTransform", {
|
|
3
|
-
enumerable: true,
|
|
4
|
-
get: function() {
|
|
5
|
-
return notEqualsArrayTransform;
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
const _equalsarray = require("../equals/equals-array");
|
|
9
|
-
const _not = require("../not/not");
|
|
10
|
-
const notEqualsArrayTransform = (query)=>{
|
|
11
|
-
const { values } = query;
|
|
12
|
-
if (!values || values.length === 0) {
|
|
13
|
-
throw new Error('Equals filter must have at least one value');
|
|
14
|
-
}
|
|
15
|
-
const notWrapper = (0, _not.notDuckdbCondition)();
|
|
16
|
-
const equalsCondition = (0, _equalsarray.equalsArrayTransform)(query);
|
|
17
|
-
/**
|
|
18
|
-
* We need to wrap the equals condition in a not condition
|
|
19
|
-
* Which basically means ! of ANY of the values
|
|
20
|
-
*/ notWrapper.children = [
|
|
21
|
-
equalsCondition
|
|
22
|
-
];
|
|
23
|
-
return notWrapper;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
//# sourceMappingURL=not-equals-array.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/not-equals/not-equals-array.ts"],"sourcesContent":["import { equalsArrayTransform } from '../equals/equals-array';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { notDuckdbCondition } from '../not/not';\n\nexport const notEqualsArrayTransform: CubeToParseExpressionTransform = (\n query\n) => {\n const { values } = query;\n\n if (!values || values.length === 0) {\n throw new Error('Equals filter must have at least one value');\n }\n\n const notWrapper = notDuckdbCondition();\n const equalsCondition = equalsArrayTransform(query);\n /**\n * We need to wrap the equals condition in a not condition\n * Which basically means ! of ANY of the values\n */\n notWrapper.children = [equalsCondition];\n\n return notWrapper;\n};\n"],"names":["notEqualsArrayTransform","query","values","length","Error","notWrapper","notDuckdbCondition","equalsCondition","equalsArrayTransform","children"],"mappings":";+BAIaA;;;eAAAA;;;6BAJwB;qBAEF;AAE5B,MAAMA,0BAA0D,CACrEC;IAEA,MAAM,EAAEC,MAAM,EAAE,GAAGD;IAEnB,IAAI,CAACC,UAAUA,OAAOC,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA,MAAMC,aAAaC,IAAAA,uBAAkB;IACrC,MAAMC,kBAAkBC,IAAAA,iCAAoB,EAACP;IAC7C;;;GAGC,GACDI,WAAWI,QAAQ,GAAG;QAACF;KAAgB;IAEvC,OAAOF;AACT"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "notEqualsTransform", {
|
|
3
|
-
enumerable: true,
|
|
4
|
-
get: function() {
|
|
5
|
-
return notEqualsTransform;
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
9
|
-
const _isarraymembertype = require("../../utils/is-array-member-type");
|
|
10
|
-
const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
|
|
11
|
-
const _or = require("../or/or");
|
|
12
|
-
const _notequalsarray = require("./not-equals-array");
|
|
13
|
-
const notEqualsTransform = (query)=>{
|
|
14
|
-
const { member, values } = query;
|
|
15
|
-
if (!values || values.length === 0) {
|
|
16
|
-
throw new Error('Equals filter must have at least one value');
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* If the member is an array, we need to use the array transform
|
|
20
|
-
*/ if ((0, _isarraymembertype.isArrayTypeMember)(query.memberInfo.type)) {
|
|
21
|
-
return (0, _notequalsarray.notEqualsArrayTransform)(query);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* If there is only one value, we can create a simple equals condition
|
|
25
|
-
*/ if (values.length === 1) {
|
|
26
|
-
return (0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_NOTEQUAL, values[0], query.memberInfo);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* If there are multiple values, we need to create an OR condition
|
|
30
|
-
*/ const orCondition = (0, _or.orDuckdbCondition)();
|
|
31
|
-
values.forEach((value)=>{
|
|
32
|
-
orCondition.children.push((0, _baseconditionbuilder.baseDuckdbCondition)(member, _Expression.ExpressionType.COMPARE_NOTEQUAL, value, query.memberInfo));
|
|
33
|
-
});
|
|
34
|
-
return orCondition;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
//# sourceMappingURL=not-equals.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/not-equals/not-equals.ts"],"sourcesContent":["import { Member, QueryFilter } from '../../types/cube-types/query';\nimport { ExpressionType } from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { isArrayTypeMember } from '../../utils/is-array-member-type';\nimport { baseDuckdbCondition } from '../base-condition-builder/base-condition-builder';\nimport { CubeToParseExpressionTransform } from '../factory';\nimport { orDuckdbCondition } from '../or/or';\nimport { notEqualsArrayTransform } from './not-equals-array';\n\nexport interface NotEqualsFilters extends QueryFilter {\n member: Member;\n operator: 'notEquals';\n values: string[];\n}\n\nexport const notEqualsTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values } = query;\n\n if (!values || values.length === 0) {\n throw new Error('Equals filter must have at least one value');\n }\n\n /**\n * If the member is an array, we need to use the array transform\n */\n if (isArrayTypeMember(query.memberInfo.type)) {\n return notEqualsArrayTransform(query);\n }\n\n /**\n * If there is only one value, we can create a simple equals condition\n */\n if (values.length === 1) {\n return baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_NOTEQUAL,\n values[0],\n query.memberInfo\n );\n }\n\n /**\n * If there are multiple values, we need to create an OR condition\n */\n const orCondition = orDuckdbCondition();\n values.forEach((value) => {\n orCondition.children.push(\n baseDuckdbCondition(\n member,\n ExpressionType.COMPARE_NOTEQUAL,\n value,\n query.memberInfo\n )\n );\n });\n return orCondition;\n};\n"],"names":["notEqualsTransform","query","member","values","length","Error","isArrayTypeMember","memberInfo","type","notEqualsArrayTransform","baseDuckdbCondition","ExpressionType","COMPARE_NOTEQUAL","orCondition","orDuckdbCondition","forEach","value","children","push"],"mappings":";+BAcaA;;;eAAAA;;;4BAbkB;mCACG;sCACE;oBAEF;gCACM;AAQjC,MAAMA,qBAAqD,CAACC;IACjE,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF;IAE3B,IAAI,CAACE,UAAUA,OAAOC,MAAM,KAAK,GAAG;QAClC,MAAM,IAAIC,MAAM;IAClB;IAEA;;GAEC,GACD,IAAIC,IAAAA,oCAAiB,EAACL,MAAMM,UAAU,CAACC,IAAI,GAAG;QAC5C,OAAOC,IAAAA,uCAAuB,EAACR;IACjC;IAEA;;GAEC,GACD,IAAIE,OAAOC,MAAM,KAAK,GAAG;QACvB,OAAOM,IAAAA,yCAAmB,EACxBR,QACAS,0BAAc,CAACC,gBAAgB,EAC/BT,MAAM,CAAC,EAAE,EACTF,MAAMM,UAAU;IAEpB;IAEA;;GAEC,GACD,MAAMM,cAAcC,IAAAA,qBAAiB;IACrCX,OAAOY,OAAO,CAAC,CAACC;QACdH,YAAYI,QAAQ,CAACC,IAAI,CACvBR,IAAAA,yCAAmB,EACjBR,QACAS,0BAAc,CAACC,gBAAgB,EAC/BI,OACAf,MAAMM,UAAU;IAGtB;IACA,OAAOM;AACT"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "notInTransform", {
|
|
3
|
-
enumerable: true,
|
|
4
|
-
get: function() {
|
|
5
|
-
return notInTransform;
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
const _constants = require("../../member-formatters/constants");
|
|
9
|
-
const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
10
|
-
const _baseconditionbuilder = require("../base-condition-builder/base-condition-builder");
|
|
11
|
-
const notInDuckDbCondition = (columnName, values, memberInfo)=>{
|
|
12
|
-
const sqlTreeValues = values.map((value)=>{
|
|
13
|
-
return {
|
|
14
|
-
class: _Expression.ExpressionClass.CONSTANT,
|
|
15
|
-
type: _Expression.ExpressionType.VALUE_CONSTANT,
|
|
16
|
-
alias: '',
|
|
17
|
-
value: (0, _baseconditionbuilder.valueBuilder)(value, memberInfo)
|
|
18
|
-
};
|
|
19
|
-
});
|
|
20
|
-
const columnRef = {
|
|
21
|
-
class: 'COLUMN_REF',
|
|
22
|
-
type: 'COLUMN_REF',
|
|
23
|
-
alias: '',
|
|
24
|
-
column_names: columnName.split(_constants.COLUMN_NAME_DELIMITER)
|
|
25
|
-
};
|
|
26
|
-
switch(memberInfo.type){
|
|
27
|
-
case 'number_array':
|
|
28
|
-
case 'string_array':
|
|
29
|
-
{
|
|
30
|
-
return {
|
|
31
|
-
class: _Expression.ExpressionClass.OPERATOR,
|
|
32
|
-
type: _Expression.ExpressionType.OPERATOR_NOT,
|
|
33
|
-
alias: '',
|
|
34
|
-
children: [
|
|
35
|
-
{
|
|
36
|
-
class: _Expression.ExpressionClass.FUNCTION,
|
|
37
|
-
type: _Expression.ExpressionType.FUNCTION,
|
|
38
|
-
alias: '',
|
|
39
|
-
function_name: '&&',
|
|
40
|
-
schema: '',
|
|
41
|
-
children: [
|
|
42
|
-
columnRef,
|
|
43
|
-
{
|
|
44
|
-
class: _Expression.ExpressionClass.OPERATOR,
|
|
45
|
-
type: _Expression.ExpressionType.ARRAY_CONSTRUCTOR,
|
|
46
|
-
alias: '',
|
|
47
|
-
children: sqlTreeValues
|
|
48
|
-
}
|
|
49
|
-
],
|
|
50
|
-
filter: null,
|
|
51
|
-
order_bys: {
|
|
52
|
-
type: 'ORDER_MODIFIER',
|
|
53
|
-
orders: []
|
|
54
|
-
},
|
|
55
|
-
distinct: false,
|
|
56
|
-
is_operator: true,
|
|
57
|
-
export_state: false,
|
|
58
|
-
catalog: ''
|
|
59
|
-
}
|
|
60
|
-
]
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
default:
|
|
64
|
-
{
|
|
65
|
-
return {
|
|
66
|
-
class: _Expression.ExpressionClass.OPERATOR,
|
|
67
|
-
type: _Expression.ExpressionType.COMPARE_NOT_IN,
|
|
68
|
-
alias: '',
|
|
69
|
-
children: [
|
|
70
|
-
columnRef,
|
|
71
|
-
...sqlTreeValues
|
|
72
|
-
]
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
const notInTransform = (query)=>{
|
|
78
|
-
const { member, values, memberInfo } = query;
|
|
79
|
-
if (!values) {
|
|
80
|
-
throw new Error('Not in filter must have at least one value');
|
|
81
|
-
}
|
|
82
|
-
return notInDuckDbCondition(member, values, memberInfo);
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
//# sourceMappingURL=not-in.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/not-in/not-in.ts"],"sourcesContent":["import { Dimension, Measure } from '../../types/cube-types/table';\nimport { CubeToParseExpressionTransform } from '../factory';\n\nimport { COLUMN_NAME_DELIMITER } from '../../member-formatters/constants';\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { valueBuilder } from '../base-condition-builder/base-condition-builder';\n\nconst notInDuckDbCondition = (\n columnName: string,\n values: string[],\n memberInfo: Measure | Dimension\n) => {\n const sqlTreeValues = values.map((value) => {\n return {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n value: valueBuilder(value, memberInfo),\n };\n });\n const columnRef = {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n column_names: columnName.split(COLUMN_NAME_DELIMITER),\n };\n switch (memberInfo.type) {\n case 'number_array':\n case 'string_array': {\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_NOT,\n alias: '',\n children: [\n {\n class: ExpressionClass.FUNCTION,\n type: ExpressionType.FUNCTION,\n alias: '',\n function_name: '&&',\n schema: '',\n children: [\n columnRef,\n {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.ARRAY_CONSTRUCTOR,\n alias: '',\n children: sqlTreeValues,\n },\n ],\n filter: null,\n order_bys: {\n type: 'ORDER_MODIFIER',\n orders: [],\n },\n distinct: false,\n is_operator: true,\n export_state: false,\n catalog: '',\n },\n ],\n };\n }\n default: {\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.COMPARE_NOT_IN,\n alias: '',\n children: [columnRef, ...sqlTreeValues],\n };\n }\n }\n};\n\nexport const notInTransform: CubeToParseExpressionTransform = (query) => {\n const { member, values, memberInfo } = query;\n if (!values) {\n throw new Error('Not in filter must have at least one value');\n }\n\n return notInDuckDbCondition(member, values, memberInfo);\n};\n"],"names":["notInTransform","notInDuckDbCondition","columnName","values","memberInfo","sqlTreeValues","map","value","class","ExpressionClass","CONSTANT","type","ExpressionType","VALUE_CONSTANT","alias","valueBuilder","columnRef","column_names","split","COLUMN_NAME_DELIMITER","OPERATOR","OPERATOR_NOT","children","FUNCTION","function_name","schema","ARRAY_CONSTRUCTOR","filter","order_bys","orders","distinct","is_operator","export_state","catalog","COMPARE_NOT_IN","query","member","Error"],"mappings":";+BA4EaA;;;eAAAA;;;2BAzEyB;4BAI/B;sCACsB;AAE7B,MAAMC,uBAAuB,CAC3BC,YACAC,QACAC;IAEA,MAAMC,gBAAgBF,OAAOG,GAAG,CAAC,CAACC;QAChC,OAAO;YACLC,OAAOC,2BAAe,CAACC,QAAQ;YAC/BC,MAAMC,0BAAc,CAACC,cAAc;YACnCC,OAAO;YACPP,OAAOQ,IAAAA,kCAAY,EAACR,OAAOH;QAC7B;IACF;IACA,MAAMY,YAAY;QAChBR,OAAO;QACPG,MAAM;QACNG,OAAO;QACPG,cAAcf,WAAWgB,KAAK,CAACC,gCAAqB;IACtD;IACA,OAAQf,WAAWO,IAAI;QACrB,KAAK;QACL,KAAK;YAAgB;gBACnB,OAAO;oBACLH,OAAOC,2BAAe,CAACW,QAAQ;oBAC/BT,MAAMC,0BAAc,CAACS,YAAY;oBACjCP,OAAO;oBACPQ,UAAU;wBACR;4BACEd,OAAOC,2BAAe,CAACc,QAAQ;4BAC/BZ,MAAMC,0BAAc,CAACW,QAAQ;4BAC7BT,OAAO;4BACPU,eAAe;4BACfC,QAAQ;4BACRH,UAAU;gCACRN;gCACA;oCACER,OAAOC,2BAAe,CAACW,QAAQ;oCAC/BT,MAAMC,0BAAc,CAACc,iBAAiB;oCACtCZ,OAAO;oCACPQ,UAAUjB;gCACZ;6BACD;4BACDsB,QAAQ;4BACRC,WAAW;gCACTjB,MAAM;gCACNkB,QAAQ,EAAE;4BACZ;4BACAC,UAAU;4BACVC,aAAa;4BACbC,cAAc;4BACdC,SAAS;wBACX;qBACD;gBACH;YACF;QACA;YAAS;gBACP,OAAO;oBACLzB,OAAOC,2BAAe,CAACW,QAAQ;oBAC/BT,MAAMC,0BAAc,CAACsB,cAAc;oBACnCpB,OAAO;oBACPQ,UAAU;wBAACN;2BAAcX;qBAAc;gBACzC;YACF;IACF;AACF;AAEO,MAAML,iBAAiD,CAACmC;IAC7D,MAAM,EAAEC,MAAM,EAAEjC,MAAM,EAAEC,UAAU,EAAE,GAAG+B;IACvC,IAAI,CAAChC,QAAQ;QACX,MAAM,IAAIkC,MAAM;IAClB;IAEA,OAAOpC,qBAAqBmC,QAAQjC,QAAQC;AAC9C"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "notSetTransform", {
|
|
3
|
-
enumerable: true,
|
|
4
|
-
get: function() {
|
|
5
|
-
return notSetTransform;
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
const _constants = require("../../member-formatters/constants");
|
|
9
|
-
const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
10
|
-
const notSetTransform = (query)=>{
|
|
11
|
-
const { member } = query;
|
|
12
|
-
return {
|
|
13
|
-
class: _Expression.ExpressionClass.OPERATOR,
|
|
14
|
-
type: _Expression.ExpressionType.OPERATOR_IS_NULL,
|
|
15
|
-
alias: '',
|
|
16
|
-
children: [
|
|
17
|
-
{
|
|
18
|
-
class: 'COLUMN_REF',
|
|
19
|
-
type: 'COLUMN_REF',
|
|
20
|
-
alias: '',
|
|
21
|
-
column_names: member.split(_constants.COLUMN_NAME_DELIMITER)
|
|
22
|
-
}
|
|
23
|
-
]
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
//# sourceMappingURL=not-set.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/not-set/not-set.ts"],"sourcesContent":["import { COLUMN_NAME_DELIMITER } from '../../member-formatters/constants';\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { CubeToParseExpressionTransform } from '../factory';\n\nexport const notSetTransform: CubeToParseExpressionTransform = (query) => {\n const { member } = query;\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_IS_NULL,\n alias: '',\n children: [\n {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n column_names: member.split(COLUMN_NAME_DELIMITER),\n },\n ],\n };\n};\n"],"names":["notSetTransform","query","member","class","ExpressionClass","OPERATOR","type","ExpressionType","OPERATOR_IS_NULL","alias","children","column_names","split","COLUMN_NAME_DELIMITER"],"mappings":";+BAOaA;;;eAAAA;;;2BAPyB;4BAI/B;AAGA,MAAMA,kBAAkD,CAACC;IAC9D,MAAM,EAAEC,MAAM,EAAE,GAAGD;IACnB,OAAO;QACLE,OAAOC,2BAAe,CAACC,QAAQ;QAC/BC,MAAMC,0BAAc,CAACC,gBAAgB;QACrCC,OAAO;QACPC,UAAU;YACR;gBACEP,OAAO;gBACPG,MAAM;gBACNG,OAAO;gBACPE,cAAcT,OAAOU,KAAK,CAACC,gCAAqB;YAClD;SACD;IACH;AACF"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "orDuckdbCondition", {
|
|
3
|
-
enumerable: true,
|
|
4
|
-
get: function() {
|
|
5
|
-
return orDuckdbCondition;
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
9
|
-
const orDuckdbCondition = ()=>{
|
|
10
|
-
return {
|
|
11
|
-
class: _Expression.ExpressionClass.CONJUNCTION,
|
|
12
|
-
type: _Expression.ExpressionType.CONJUNCTION_OR,
|
|
13
|
-
alias: '',
|
|
14
|
-
children: []
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
//# sourceMappingURL=or.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/or/or.ts"],"sourcesContent":["import { ConjunctionExpression } from '../../types/duckdb-serialization-types/serialization/ParsedExpression';\nimport { ExpressionClass, ExpressionType } from '../../types/duckdb-serialization-types/serialization/Expression';\n\nexport const orDuckdbCondition = (): ConjunctionExpression => {\n return {\n class: ExpressionClass.CONJUNCTION,\n type: ExpressionType.CONJUNCTION_OR,\n alias: '',\n children: [],\n };\n};\n"],"names":["orDuckdbCondition","class","ExpressionClass","CONJUNCTION","type","ExpressionType","CONJUNCTION_OR","alias","children"],"mappings":";+BAGaA;;;eAAAA;;;4BAFmC;AAEzC,MAAMA,oBAAoB;IAC/B,OAAO;QACLC,OAAOC,2BAAe,CAACC,WAAW;QAClCC,MAAMC,0BAAc,CAACC,cAAc;QACnCC,OAAO;QACPC,UAAU,EAAE;IACd;AACF"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "setTransform", {
|
|
3
|
-
enumerable: true,
|
|
4
|
-
get: function() {
|
|
5
|
-
return setTransform;
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
const _constants = require("../../member-formatters/constants");
|
|
9
|
-
const _Expression = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
10
|
-
const setTransform = (query)=>{
|
|
11
|
-
const { member } = query;
|
|
12
|
-
return {
|
|
13
|
-
class: _Expression.ExpressionClass.OPERATOR,
|
|
14
|
-
type: _Expression.ExpressionType.OPERATOR_IS_NOT_NULL,
|
|
15
|
-
alias: '',
|
|
16
|
-
children: [
|
|
17
|
-
{
|
|
18
|
-
class: 'COLUMN_REF',
|
|
19
|
-
type: 'COLUMN_REF',
|
|
20
|
-
alias: '',
|
|
21
|
-
column_names: member.split(_constants.COLUMN_NAME_DELIMITER)
|
|
22
|
-
}
|
|
23
|
-
]
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
//# sourceMappingURL=set.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../meerkat-core/src/cube-filter-transformer/set/set.ts"],"sourcesContent":["import { COLUMN_NAME_DELIMITER } from '../../member-formatters/constants';\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../../types/duckdb-serialization-types/serialization/Expression';\nimport { CubeToParseExpressionTransform } from '../factory';\n\nexport const setTransform: CubeToParseExpressionTransform = (query) => {\n const { member } = query;\n return {\n class: ExpressionClass.OPERATOR,\n type: ExpressionType.OPERATOR_IS_NOT_NULL,\n alias: '',\n children: [\n {\n class: 'COLUMN_REF',\n type: 'COLUMN_REF',\n alias: '',\n column_names: member.split(COLUMN_NAME_DELIMITER),\n },\n ],\n };\n};\n"],"names":["setTransform","query","member","class","ExpressionClass","OPERATOR","type","ExpressionType","OPERATOR_IS_NOT_NULL","alias","children","column_names","split","COLUMN_NAME_DELIMITER"],"mappings":";+BAOaA;;;eAAAA;;;2BAPyB;4BAI/B;AAGA,MAAMA,eAA+C,CAACC;IAC3D,MAAM,EAAEC,MAAM,EAAE,GAAGD;IACnB,OAAO;QACLE,OAAOC,2BAAe,CAACC,QAAQ;QAC/BC,MAAMC,0BAAc,CAACC,oBAAoB;QACzCC,OAAO;QACPC,UAAU;YACR;gBACEP,OAAO;gBACPG,MAAM;gBACNG,OAAO;gBACPE,cAAcT,OAAOU,KAAK,CAACC,gCAAqB;YAClD;SACD;IACH;AACF"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "cubeDimensionToGroupByAST", {
|
|
3
|
-
enumerable: true,
|
|
4
|
-
get: function() {
|
|
5
|
-
return cubeDimensionToGroupByAST;
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
const _memberformatters = require("../member-formatters");
|
|
9
|
-
const _Expression = require("../types/duckdb-serialization-types/serialization/Expression");
|
|
10
|
-
const cubeDimensionToGroupByAST = (dimensions)=>{
|
|
11
|
-
const groupByAST = dimensions.map((dimension)=>{
|
|
12
|
-
const dimensionAST = {
|
|
13
|
-
class: _Expression.ExpressionClass.COLUMN_REF,
|
|
14
|
-
type: _Expression.ExpressionType.COLUMN_REF,
|
|
15
|
-
alias: '',
|
|
16
|
-
column_names: [
|
|
17
|
-
(0, _memberformatters.memberKeyToSafeKey)(dimension)
|
|
18
|
-
]
|
|
19
|
-
};
|
|
20
|
-
return dimensionAST;
|
|
21
|
-
});
|
|
22
|
-
return groupByAST;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
//# sourceMappingURL=cube-group-by-transformer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../meerkat-core/src/cube-group-by-transformer/cube-group-by-transformer.ts"],"sourcesContent":["import { memberKeyToSafeKey } from '../member-formatters';\nimport { Member } from '../types/cube-types/query';\nimport {\n ExpressionClass,\n ExpressionType,\n} from '../types/duckdb-serialization-types/serialization/Expression';\n\nexport const cubeDimensionToGroupByAST = (dimensions: Member[]) => {\n const groupByAST = dimensions.map((dimension) => {\n const dimensionAST = {\n class: ExpressionClass.COLUMN_REF,\n type: ExpressionType.COLUMN_REF,\n alias: '',\n column_names: [memberKeyToSafeKey(dimension)],\n };\n\n return dimensionAST;\n });\n\n return groupByAST;\n};\n"],"names":["cubeDimensionToGroupByAST","dimensions","groupByAST","map","dimension","dimensionAST","class","ExpressionClass","COLUMN_REF","type","ExpressionType","alias","column_names","memberKeyToSafeKey"],"mappings":";+BAOaA;;;eAAAA;;;kCAPsB;4BAK5B;AAEA,MAAMA,4BAA4B,CAACC;IACxC,MAAMC,aAAaD,WAAWE,GAAG,CAAC,CAACC;QACjC,MAAMC,eAAe;YACnBC,OAAOC,2BAAe,CAACC,UAAU;YACjCC,MAAMC,0BAAc,CAACF,UAAU;YAC/BG,OAAO;YACPC,cAAc;gBAACC,IAAAA,oCAAkB,EAACT;aAAW;QAC/C;QAEA,OAAOC;IACT;IAEA,OAAOH;AACT"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "cubeLimitOffsetToAST", {
|
|
3
|
-
enumerable: true,
|
|
4
|
-
get: function() {
|
|
5
|
-
return cubeLimitOffsetToAST;
|
|
6
|
-
}
|
|
7
|
-
});
|
|
8
|
-
const _Expression = require("../types/duckdb-serialization-types/serialization/Expression");
|
|
9
|
-
const _ResultModifier = require("../types/duckdb-serialization-types/serialization/ResultModifier");
|
|
10
|
-
const cubeLimitOffsetToAST = (limit, offset)=>{
|
|
11
|
-
return {
|
|
12
|
-
type: _ResultModifier.ResultModifierType.LIMIT_MODIFIER,
|
|
13
|
-
limit: limit ? {
|
|
14
|
-
class: _Expression.ExpressionClass.CONSTANT,
|
|
15
|
-
type: _Expression.ExpressionType.VALUE_CONSTANT,
|
|
16
|
-
alias: '',
|
|
17
|
-
value: {
|
|
18
|
-
type: {
|
|
19
|
-
id: 'INTEGER',
|
|
20
|
-
type_info: null
|
|
21
|
-
},
|
|
22
|
-
is_null: false,
|
|
23
|
-
value: limit
|
|
24
|
-
}
|
|
25
|
-
} : null,
|
|
26
|
-
offset: offset ? {
|
|
27
|
-
class: _Expression.ExpressionClass.CONSTANT,
|
|
28
|
-
type: _Expression.ExpressionType.VALUE_CONSTANT,
|
|
29
|
-
alias: '',
|
|
30
|
-
value: {
|
|
31
|
-
type: {
|
|
32
|
-
id: 'INTEGER',
|
|
33
|
-
type_info: null
|
|
34
|
-
},
|
|
35
|
-
is_null: false,
|
|
36
|
-
value: offset
|
|
37
|
-
}
|
|
38
|
-
} : null
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
//# sourceMappingURL=cube-limit-offset-transformer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../meerkat-core/src/cube-limit-offset-transformer/cube-limit-offset-transformer.ts"],"sourcesContent":["import { ExpressionClass, ExpressionType } from '../types/duckdb-serialization-types/serialization/Expression';\nimport { ResultModifierType } from '../types/duckdb-serialization-types/serialization/ResultModifier';\n\nexport const cubeLimitOffsetToAST = (\n limit?: number | null,\n offset?: number | null\n) => {\n return {\n type: ResultModifierType.LIMIT_MODIFIER,\n limit: limit\n ? {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: limit,\n },\n }\n : null,\n offset: offset\n ? {\n class: ExpressionClass.CONSTANT,\n type: ExpressionType.VALUE_CONSTANT,\n alias: '',\n value: {\n type: {\n id: 'INTEGER',\n type_info: null,\n },\n is_null: false,\n value: offset,\n },\n }\n : null,\n };\n};\n"],"names":["cubeLimitOffsetToAST","limit","offset","type","ResultModifierType","LIMIT_MODIFIER","class","ExpressionClass","CONSTANT","ExpressionType","VALUE_CONSTANT","alias","value","id","type_info","is_null"],"mappings":";+BAGaA;;;eAAAA;;;4BAHmC;gCACb;AAE5B,MAAMA,uBAAuB,CAClCC,OACAC;IAEA,OAAO;QACLC,MAAMC,kCAAkB,CAACC,cAAc;QACvCJ,OAAOA,QACH;YACEK,OAAOC,2BAAe,CAACC,QAAQ;YAC/BL,MAAMM,0BAAc,CAACC,cAAc;YACnCC,OAAO;YACPC,OAAO;gBACLT,MAAM;oBACJU,IAAI;oBACJC,WAAW;gBACb;gBACAC,SAAS;gBACTH,OAAOX;YACT;QACF,IACA;QACJC,QAAQA,SACJ;YACEI,OAAOC,2BAAe,CAACC,QAAQ;YAC/BL,MAAMM,0BAAc,CAACC,cAAc;YACnCC,OAAO;YACPC,OAAO;gBACLT,MAAM;oBACJU,IAAI;oBACJC,WAAW;gBACb;gBACAC,SAAS;gBACTH,OAAOV;YACT;QACF,IACA;IACN;AACF"}
|
|
@@ -1,127 +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
|
-
applyProjectionToSQLQuery: function() {
|
|
10
|
-
return applyProjectionToSQLQuery;
|
|
11
|
-
},
|
|
12
|
-
cubeMeasureToSQLSelectString: function() {
|
|
13
|
-
return cubeMeasureToSQLSelectString;
|
|
14
|
-
},
|
|
15
|
-
getAllColumnUsedInMeasures: function() {
|
|
16
|
-
return getAllColumnUsedInMeasures;
|
|
17
|
-
},
|
|
18
|
-
getSelectReplacedSql: function() {
|
|
19
|
-
return getSelectReplacedSql;
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
const _memberkeytosafekey = require("../member-formatters/member-key-to-safe-key");
|
|
23
|
-
const _splitintodatasourceandfields = require("../member-formatters/split-into-data-source-and-fields");
|
|
24
|
-
const _meerkatplaceholderreplacer = require("../utils/meerkat-placeholder-replacer");
|
|
25
|
-
const cubeMeasureToSQLSelectString = (measures, tableSchema)=>{
|
|
26
|
-
let base = 'SELECT';
|
|
27
|
-
for(let i = 0; i < measures.length; i++){
|
|
28
|
-
const measure = measures[i];
|
|
29
|
-
if (measure === '*') {
|
|
30
|
-
base += ` ${tableSchema.name}.*`;
|
|
31
|
-
continue;
|
|
32
|
-
}
|
|
33
|
-
const [tableSchemaName, measureKeyWithoutTable] = (0, _splitintodatasourceandfields.splitIntoDataSourceAndFields)(measure);
|
|
34
|
-
const aliasKey = (0, _memberkeytosafekey.memberKeyToSafeKey)(measure);
|
|
35
|
-
const measureSchema = tableSchema.measures.find((m)=>m.name === measureKeyWithoutTable);
|
|
36
|
-
if (!measureSchema) {
|
|
37
|
-
continue;
|
|
38
|
-
}
|
|
39
|
-
if (i > 0) {
|
|
40
|
-
base += ', ';
|
|
41
|
-
}
|
|
42
|
-
let meerkatReplacedSqlString = (0, _meerkatplaceholderreplacer.meerkatPlaceholderReplacer)(measureSchema.sql, tableSchema.name);
|
|
43
|
-
/**
|
|
44
|
-
* Here we extract the columns used in the measure and replace them with the safeKey.
|
|
45
|
-
* We need to do this because the columns used in the measure are not directly available in the joined table.
|
|
46
|
-
* Thus we need to project them and use them in the join.
|
|
47
|
-
*/ const columnsUsedInMeasure = getColumnsFromSQL(meerkatReplacedSqlString, tableSchemaName);
|
|
48
|
-
//Replace all the columnsUsedInMeasure with safeKey
|
|
49
|
-
columnsUsedInMeasure == null ? void 0 : columnsUsedInMeasure.forEach((measureKey)=>{
|
|
50
|
-
const [_, column] = (0, _splitintodatasourceandfields.splitIntoDataSourceAndFields)(measureKey);
|
|
51
|
-
const memberKey = `${tableSchemaName}.${column}`;
|
|
52
|
-
const columnKey = (0, _memberkeytosafekey.memberKeyToSafeKey)(memberKey);
|
|
53
|
-
meerkatReplacedSqlString = meerkatReplacedSqlString.replace(memberKey, columnKey);
|
|
54
|
-
});
|
|
55
|
-
base += ` ${meerkatReplacedSqlString} AS ${aliasKey} `;
|
|
56
|
-
}
|
|
57
|
-
return base;
|
|
58
|
-
};
|
|
59
|
-
const addDimensionToSQLProjection = (dimensions, selectString, tableSchema)=>{
|
|
60
|
-
if (dimensions.length === 0) {
|
|
61
|
-
return selectString;
|
|
62
|
-
}
|
|
63
|
-
let newSelectString = selectString;
|
|
64
|
-
for(let i = 0; i < dimensions.length; i++){
|
|
65
|
-
const dimension = dimensions[i];
|
|
66
|
-
const [_, dimensionKeyWithoutTable] = (0, _splitintodatasourceandfields.splitIntoDataSourceAndFields)(dimension);
|
|
67
|
-
const dimensionSchema = tableSchema.dimensions.find((m)=>m.name === dimensionKeyWithoutTable);
|
|
68
|
-
const aliasKey = (0, _memberkeytosafekey.memberKeyToSafeKey)(dimension);
|
|
69
|
-
if (!dimensionSchema) {
|
|
70
|
-
continue;
|
|
71
|
-
}
|
|
72
|
-
if (i > 0) {
|
|
73
|
-
newSelectString += ',';
|
|
74
|
-
}
|
|
75
|
-
// since alias key is expected to have been unfurled in the base query, we can just use it as is.
|
|
76
|
-
newSelectString += ` ${aliasKey}`;
|
|
77
|
-
}
|
|
78
|
-
return newSelectString;
|
|
79
|
-
};
|
|
80
|
-
const getSelectReplacedSql = (sql, selectString)=>{
|
|
81
|
-
/*
|
|
82
|
-
** Replaces the select portion of a SQL string with the selectString passed.
|
|
83
|
-
*/ const selectRegex = /SELECT\s\*/;
|
|
84
|
-
const match = sql.match(selectRegex);
|
|
85
|
-
if (!match) {
|
|
86
|
-
return sql;
|
|
87
|
-
}
|
|
88
|
-
const selectIndex = match.index;
|
|
89
|
-
if (selectIndex === undefined) {
|
|
90
|
-
throw new Error('SELECT * not found in SQL string');
|
|
91
|
-
}
|
|
92
|
-
const selectLength = match[0].length;
|
|
93
|
-
const beforeSelect = sql.substring(0, selectIndex);
|
|
94
|
-
const afterSelect = sql.substring(selectIndex + selectLength);
|
|
95
|
-
return `${beforeSelect}${selectString}${afterSelect}`;
|
|
96
|
-
};
|
|
97
|
-
const getAllColumnUsedInMeasures = (measures, tableSchema)=>{
|
|
98
|
-
let columns = [];
|
|
99
|
-
measures.forEach((measure)=>{
|
|
100
|
-
const columnMatch = getColumnsFromSQL(measure.sql, tableSchema.name);
|
|
101
|
-
if (columnMatch && columnMatch.length > 0) {
|
|
102
|
-
columns = [
|
|
103
|
-
...columns,
|
|
104
|
-
...columnMatch
|
|
105
|
-
];
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
// Remove duplicates
|
|
109
|
-
return [
|
|
110
|
-
...new Set(columns)
|
|
111
|
-
];
|
|
112
|
-
};
|
|
113
|
-
const getColumnsFromSQL = (sql, tableName)=>{
|
|
114
|
-
const regex = new RegExp(`(${tableName}\\.[a-zA-Z0-9_]+)`, 'g');
|
|
115
|
-
const columnMatch = sql.match(regex);
|
|
116
|
-
return columnMatch;
|
|
117
|
-
};
|
|
118
|
-
const applyProjectionToSQLQuery = (dimensions, measures, tableSchema, sqlToReplace)=>{
|
|
119
|
-
let measureSelectString = cubeMeasureToSQLSelectString(measures, tableSchema);
|
|
120
|
-
if (measures.length > 0 && dimensions.length > 0) {
|
|
121
|
-
measureSelectString += ', ';
|
|
122
|
-
}
|
|
123
|
-
const selectString = addDimensionToSQLProjection(dimensions, measureSelectString, tableSchema);
|
|
124
|
-
return getSelectReplacedSql(sqlToReplace, selectString);
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
//# sourceMappingURL=cube-measure-transformer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../meerkat-core/src/cube-measure-transformer/cube-measure-transformer.ts"],"sourcesContent":["import { memberKeyToSafeKey } from '../member-formatters/member-key-to-safe-key';\nimport { splitIntoDataSourceAndFields } from '../member-formatters/split-into-data-source-and-fields';\nimport { Member } from '../types/cube-types/query';\nimport { Measure, TableSchema } from '../types/cube-types/table';\nimport { meerkatPlaceholderReplacer } from '../utils/meerkat-placeholder-replacer';\n\nexport const cubeMeasureToSQLSelectString = (\n measures: Member[],\n tableSchema: TableSchema\n) => {\n let base = 'SELECT';\n for (let i = 0; i < measures.length; i++) {\n const measure = measures[i];\n if (measure === '*') {\n base += ` ${tableSchema.name}.*`;\n continue;\n }\n const [tableSchemaName, measureKeyWithoutTable] =\n splitIntoDataSourceAndFields(measure);\n\n const aliasKey = memberKeyToSafeKey(measure);\n const measureSchema = tableSchema.measures.find(\n (m) => m.name === measureKeyWithoutTable\n );\n if (!measureSchema) {\n continue;\n }\n if (i > 0) {\n base += ', ';\n }\n let meerkatReplacedSqlString = meerkatPlaceholderReplacer(\n measureSchema.sql,\n tableSchema.name\n );\n\n /**\n * Here we extract the columns used in the measure and replace them with the safeKey.\n * We need to do this because the columns used in the measure are not directly available in the joined table.\n * Thus we need to project them and use them in the join.\n */\n\n const columnsUsedInMeasure = getColumnsFromSQL(\n meerkatReplacedSqlString,\n tableSchemaName\n );\n\n //Replace all the columnsUsedInMeasure with safeKey\n columnsUsedInMeasure?.forEach((measureKey) => {\n const [_, column] = splitIntoDataSourceAndFields(measureKey);\n const memberKey = `${tableSchemaName}.${column}`;\n const columnKey = memberKeyToSafeKey(memberKey);\n meerkatReplacedSqlString = meerkatReplacedSqlString.replace(\n memberKey,\n columnKey\n );\n });\n\n base += ` ${meerkatReplacedSqlString} AS ${aliasKey} `;\n }\n return base;\n};\n\nconst addDimensionToSQLProjection = (\n dimensions: Member[],\n selectString: string,\n tableSchema: TableSchema\n) => {\n if (dimensions.length === 0) {\n return selectString;\n }\n let newSelectString = selectString;\n for (let i = 0; i < dimensions.length; i++) {\n const dimension = dimensions[i];\n const [_, dimensionKeyWithoutTable] =\n splitIntoDataSourceAndFields(dimension);\n const dimensionSchema = tableSchema.dimensions.find(\n (m) => m.name === dimensionKeyWithoutTable\n );\n const aliasKey = memberKeyToSafeKey(dimension);\n\n if (!dimensionSchema) {\n continue;\n }\n if (i > 0) {\n newSelectString += ',';\n }\n // since alias key is expected to have been unfurled in the base query, we can just use it as is.\n newSelectString += ` ${aliasKey}`;\n }\n return newSelectString;\n};\n\nexport const getSelectReplacedSql = (sql: string, selectString: string) => {\n /*\n ** Replaces the select portion of a SQL string with the selectString passed.\n */\n const selectRegex = /SELECT\\s\\*/;\n const match = sql.match(selectRegex);\n if (!match) {\n return sql;\n }\n const selectIndex = match.index;\n if (selectIndex === undefined) {\n throw new Error('SELECT * not found in SQL string');\n }\n const selectLength = match[0].length;\n const beforeSelect = sql.substring(0, selectIndex);\n const afterSelect = sql.substring(selectIndex + selectLength);\n return `${beforeSelect}${selectString}${afterSelect}`;\n};\n\n/**\n * Get all the columns used in the measures.\n * This is used for extracting the columns used in the measures needed for the projection.\n * Example: The joins implementation uses this to get the columns used in the measures to join the tables.\n * like the SQL for the measure is `SUM(table.total)` and the table name is `table`, then the column used is `total`\n * table cannot be used directly here because the joined table would have column name ambiguity.\n * Thus these columns are projected and directly used in the join.\n */\nexport const getAllColumnUsedInMeasures = (\n measures: Measure[],\n tableSchema: TableSchema\n) => {\n let columns: string[] = [];\n measures.forEach((measure) => {\n const columnMatch = getColumnsFromSQL(measure.sql, tableSchema.name);\n if (columnMatch && columnMatch.length > 0) {\n columns = [...columns, ...columnMatch];\n }\n });\n // Remove duplicates\n return [...new Set(columns)];\n};\n\nconst getColumnsFromSQL = (sql: string, tableName: string) => {\n const regex = new RegExp(`(${tableName}\\\\.[a-zA-Z0-9_]+)`, 'g');\n const columnMatch = sql.match(regex);\n return columnMatch;\n};\n\n/**\n * Replace the first SELECT * from the sqlToReplace with the cube measure\n * @param measures\n * @param tableSchema\n * @param sqlToReplace\n * @returns\n */\nexport const applyProjectionToSQLQuery = (\n dimensions: Member[],\n measures: Member[],\n tableSchema: TableSchema,\n sqlToReplace: string\n) => {\n let measureSelectString = cubeMeasureToSQLSelectString(measures, tableSchema);\n\n if (measures.length > 0 && dimensions.length > 0) {\n measureSelectString += ', ';\n }\n const selectString = addDimensionToSQLProjection(\n dimensions,\n measureSelectString,\n tableSchema\n );\n\n return getSelectReplacedSql(sqlToReplace, selectString);\n};\n"],"names":["applyProjectionToSQLQuery","cubeMeasureToSQLSelectString","getAllColumnUsedInMeasures","getSelectReplacedSql","measures","tableSchema","base","i","length","measure","name","tableSchemaName","measureKeyWithoutTable","splitIntoDataSourceAndFields","aliasKey","memberKeyToSafeKey","measureSchema","find","m","meerkatReplacedSqlString","meerkatPlaceholderReplacer","sql","columnsUsedInMeasure","getColumnsFromSQL","forEach","measureKey","_","column","memberKey","columnKey","replace","addDimensionToSQLProjection","dimensions","selectString","newSelectString","dimension","dimensionKeyWithoutTable","dimensionSchema","selectRegex","match","selectIndex","index","undefined","Error","selectLength","beforeSelect","substring","afterSelect","columns","columnMatch","Set","tableName","regex","RegExp","sqlToReplace","measureSelectString"],"mappings":";;;;;;;;IAmJaA,yBAAyB;eAAzBA;;IA7IAC,4BAA4B;eAA5BA;;IAiHAC,0BAA0B;eAA1BA;;IA3BAC,oBAAoB;eAApBA;;;oCA5FsB;8CACU;4CAGF;AAEpC,MAAMF,+BAA+B,CAC1CG,UACAC;IAEA,IAAIC,OAAO;IACX,IAAK,IAAIC,IAAI,GAAGA,IAAIH,SAASI,MAAM,EAAED,IAAK;QACxC,MAAME,UAAUL,QAAQ,CAACG,EAAE;QAC3B,IAAIE,YAAY,KAAK;YACnBH,QAAQ,CAAC,CAAC,EAAED,YAAYK,IAAI,CAAC,EAAE,CAAC;YAChC;QACF;QACA,MAAM,CAACC,iBAAiBC,uBAAuB,GAC7CC,IAAAA,0DAA4B,EAACJ;QAE/B,MAAMK,WAAWC,IAAAA,sCAAkB,EAACN;QACpC,MAAMO,gBAAgBX,YAAYD,QAAQ,CAACa,IAAI,CAC7C,CAACC,IAAMA,EAAER,IAAI,KAAKE;QAEpB,IAAI,CAACI,eAAe;YAClB;QACF;QACA,IAAIT,IAAI,GAAG;YACTD,QAAQ;QACV;QACA,IAAIa,2BAA2BC,IAAAA,sDAA0B,EACvDJ,cAAcK,GAAG,EACjBhB,YAAYK,IAAI;QAGlB;;;;KAIC,GAED,MAAMY,uBAAuBC,kBAC3BJ,0BACAR;QAGF,mDAAmD;QACnDW,wCAAAA,qBAAsBE,OAAO,CAAC,CAACC;YAC7B,MAAM,CAACC,GAAGC,OAAO,GAAGd,IAAAA,0DAA4B,EAACY;YACjD,MAAMG,YAAY,CAAC,EAAEjB,gBAAgB,CAAC,EAAEgB,OAAO,CAAC;YAChD,MAAME,YAAYd,IAAAA,sCAAkB,EAACa;YACrCT,2BAA2BA,yBAAyBW,OAAO,CACzDF,WACAC;QAEJ;QAEAvB,QAAQ,CAAC,CAAC,EAAEa,yBAAyB,IAAI,EAAEL,SAAS,CAAC,CAAC;IACxD;IACA,OAAOR;AACT;AAEA,MAAMyB,8BAA8B,CAClCC,YACAC,cACA5B;IAEA,IAAI2B,WAAWxB,MAAM,KAAK,GAAG;QAC3B,OAAOyB;IACT;IACA,IAAIC,kBAAkBD;IACtB,IAAK,IAAI1B,IAAI,GAAGA,IAAIyB,WAAWxB,MAAM,EAAED,IAAK;QAC1C,MAAM4B,YAAYH,UAAU,CAACzB,EAAE;QAC/B,MAAM,CAACmB,GAAGU,yBAAyB,GACjCvB,IAAAA,0DAA4B,EAACsB;QAC/B,MAAME,kBAAkBhC,YAAY2B,UAAU,CAACf,IAAI,CACjD,CAACC,IAAMA,EAAER,IAAI,KAAK0B;QAEpB,MAAMtB,WAAWC,IAAAA,sCAAkB,EAACoB;QAEpC,IAAI,CAACE,iBAAiB;YACpB;QACF;QACA,IAAI9B,IAAI,GAAG;YACT2B,mBAAmB;QACrB;QACA,iGAAiG;QACjGA,mBAAmB,CAAC,EAAE,EAAEpB,SAAS,CAAC;IACpC;IACA,OAAOoB;AACT;AAEO,MAAM/B,uBAAuB,CAACkB,KAAaY;IAChD;;GAEC,GACD,MAAMK,cAAc;IACpB,MAAMC,QAAQlB,IAAIkB,KAAK,CAACD;IACxB,IAAI,CAACC,OAAO;QACV,OAAOlB;IACT;IACA,MAAMmB,cAAcD,MAAME,KAAK;IAC/B,IAAID,gBAAgBE,WAAW;QAC7B,MAAM,IAAIC,MAAM;IAClB;IACA,MAAMC,eAAeL,KAAK,CAAC,EAAE,CAAC/B,MAAM;IACpC,MAAMqC,eAAexB,IAAIyB,SAAS,CAAC,GAAGN;IACtC,MAAMO,cAAc1B,IAAIyB,SAAS,CAACN,cAAcI;IAChD,OAAO,CAAC,EAAEC,aAAa,EAAEZ,aAAa,EAAEc,YAAY,CAAC;AACvD;AAUO,MAAM7C,6BAA6B,CACxCE,UACAC;IAEA,IAAI2C,UAAoB,EAAE;IAC1B5C,SAASoB,OAAO,CAAC,CAACf;QAChB,MAAMwC,cAAc1B,kBAAkBd,QAAQY,GAAG,EAAEhB,YAAYK,IAAI;QACnE,IAAIuC,eAAeA,YAAYzC,MAAM,GAAG,GAAG;YACzCwC,UAAU;mBAAIA;mBAAYC;aAAY;QACxC;IACF;IACA,oBAAoB;IACpB,OAAO;WAAI,IAAIC,IAAIF;KAAS;AAC9B;AAEA,MAAMzB,oBAAoB,CAACF,KAAa8B;IACtC,MAAMC,QAAQ,IAAIC,OAAO,CAAC,CAAC,EAAEF,UAAU,iBAAiB,CAAC,EAAE;IAC3D,MAAMF,cAAc5B,IAAIkB,KAAK,CAACa;IAC9B,OAAOH;AACT;AASO,MAAMjD,4BAA4B,CACvCgC,YACA5B,UACAC,aACAiD;IAEA,IAAIC,sBAAsBtD,6BAA6BG,UAAUC;IAEjE,IAAID,SAASI,MAAM,GAAG,KAAKwB,WAAWxB,MAAM,GAAG,GAAG;QAChD+C,uBAAuB;IACzB;IACA,MAAMtB,eAAeF,4BACnBC,YACAuB,qBACAlD;IAGF,OAAOF,qBAAqBmD,cAAcrB;AAC5C"}
|