@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
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cubeFilterToDuckdbAST = void 0;
|
|
4
|
+
const type_guards_1 = require("../utils/type-guards");
|
|
5
|
+
const and_1 = require("./and/and");
|
|
6
|
+
const contains_1 = require("./contains/contains");
|
|
7
|
+
const equals_1 = require("./equals/equals");
|
|
8
|
+
const gt_1 = require("./gt/gt");
|
|
9
|
+
const gte_1 = require("./gte/gte");
|
|
10
|
+
const in_date_range_1 = require("./in-date-range/in-date-range");
|
|
11
|
+
const in_1 = require("./in/in");
|
|
12
|
+
const lt_1 = require("./lt/lt");
|
|
13
|
+
const lte_1 = require("./lte/lte");
|
|
14
|
+
const not_In_date_range_1 = require("./not-In-date-range/not-In-date-range");
|
|
15
|
+
const not_contains_1 = require("./not-contains/not-contains");
|
|
16
|
+
const not_equals_1 = require("./not-equals/not-equals");
|
|
17
|
+
const not_in_1 = require("./not-in/not-in");
|
|
18
|
+
const not_set_1 = require("./not-set/not-set");
|
|
19
|
+
const or_1 = require("./or/or");
|
|
20
|
+
const set_1 = require("./set/set");
|
|
21
|
+
// Comparison operators
|
|
22
|
+
const cubeFilterOperatorsToDuckdb = (cubeFilter) => {
|
|
23
|
+
switch (cubeFilter.operator) {
|
|
24
|
+
case 'equals':
|
|
25
|
+
return (0, equals_1.equalsTransform)(cubeFilter);
|
|
26
|
+
case 'notEquals':
|
|
27
|
+
return (0, not_equals_1.notEqualsTransform)(cubeFilter);
|
|
28
|
+
case 'in':
|
|
29
|
+
return (0, in_1.inTransform)(cubeFilter);
|
|
30
|
+
case 'notIn':
|
|
31
|
+
return (0, not_in_1.notInTransform)(cubeFilter);
|
|
32
|
+
case 'contains':
|
|
33
|
+
return (0, contains_1.containsTransform)(cubeFilter);
|
|
34
|
+
case 'notContains':
|
|
35
|
+
return (0, not_contains_1.notContainsTransform)(cubeFilter);
|
|
36
|
+
case 'gt':
|
|
37
|
+
return (0, gt_1.gtTransform)(cubeFilter);
|
|
38
|
+
case 'gte':
|
|
39
|
+
return (0, gte_1.gteTransform)(cubeFilter);
|
|
40
|
+
case 'lt':
|
|
41
|
+
return (0, lt_1.ltTransform)(cubeFilter);
|
|
42
|
+
case 'lte':
|
|
43
|
+
return (0, lte_1.lteTransform)(cubeFilter);
|
|
44
|
+
case 'inDateRange':
|
|
45
|
+
return (0, in_date_range_1.inDataRangeTransform)(cubeFilter);
|
|
46
|
+
case 'notInDateRange':
|
|
47
|
+
return (0, not_In_date_range_1.notInDataRangeTransform)(cubeFilter);
|
|
48
|
+
case 'notSet': {
|
|
49
|
+
return (0, not_set_1.notSetTransform)(cubeFilter);
|
|
50
|
+
}
|
|
51
|
+
case 'set': {
|
|
52
|
+
return (0, set_1.setTransform)(cubeFilter);
|
|
53
|
+
}
|
|
54
|
+
default:
|
|
55
|
+
throw new Error('Could not transform the filter');
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
const cubeFilterLogicalAndOrToDuckdb = (cubeFilter, whereObj) => {
|
|
59
|
+
/**
|
|
60
|
+
* This condition is true when you are at the leaf most level of the filter
|
|
61
|
+
*/
|
|
62
|
+
if (!(0, type_guards_1.isFilterArray)(cubeFilter) && (0, type_guards_1.isQueryFilter)(cubeFilter)) {
|
|
63
|
+
const data = cubeFilterOperatorsToDuckdb(cubeFilter);
|
|
64
|
+
if (!data) {
|
|
65
|
+
throw new Error('Could not transform the filter');
|
|
66
|
+
}
|
|
67
|
+
return data;
|
|
68
|
+
}
|
|
69
|
+
if (!(0, type_guards_1.isFilterArray)(cubeFilter) && (0, type_guards_1.isLogicalAnd)(cubeFilter)) {
|
|
70
|
+
if (cubeFilter.and.length === 0) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
// And or Or we need to recurse
|
|
74
|
+
const andDuckdbExpression = (0, and_1.andDuckdbCondition)();
|
|
75
|
+
const data = cubeFilterLogicalAndOrToDuckdb(cubeFilter.and, andDuckdbExpression);
|
|
76
|
+
return data;
|
|
77
|
+
}
|
|
78
|
+
if (!(0, type_guards_1.isFilterArray)(cubeFilter) && (0, type_guards_1.isLogicalOr)(cubeFilter)) {
|
|
79
|
+
if (cubeFilter.or.length === 0) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
// And or Or we need to recurse
|
|
83
|
+
const orDuckdbExpression = (0, or_1.orDuckdbCondition)();
|
|
84
|
+
const data = cubeFilterLogicalAndOrToDuckdb(cubeFilter.or, orDuckdbExpression);
|
|
85
|
+
return data;
|
|
86
|
+
}
|
|
87
|
+
if ((0, type_guards_1.isFilterArray)(cubeFilter)) {
|
|
88
|
+
for (const filter of cubeFilter) {
|
|
89
|
+
const data = cubeFilterLogicalAndOrToDuckdb(filter, whereObj);
|
|
90
|
+
if (data) {
|
|
91
|
+
if ((0, type_guards_1.hasChildren)(whereObj)) {
|
|
92
|
+
whereObj.children.push(data);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
whereObj = data;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return whereObj;
|
|
100
|
+
}
|
|
101
|
+
return whereObj;
|
|
102
|
+
};
|
|
103
|
+
const cubeFilterToDuckdbAST = (cubeFilter, ast) => {
|
|
104
|
+
let whereObj = ast.node.where_clause || null;
|
|
105
|
+
if (cubeFilter.length > 1) {
|
|
106
|
+
console.error('We do not support multiple filters yet');
|
|
107
|
+
throw new Error('We do not support multiple filters yet');
|
|
108
|
+
}
|
|
109
|
+
const filter = cubeFilter[0];
|
|
110
|
+
if ((0, type_guards_1.isQueryFilter)(filter)) {
|
|
111
|
+
whereObj = cubeFilterOperatorsToDuckdb(filter);
|
|
112
|
+
}
|
|
113
|
+
if ((0, type_guards_1.isLogicalAndOR)(filter)) {
|
|
114
|
+
// And or Or we need to recurse
|
|
115
|
+
whereObj = cubeFilterLogicalAndOrToDuckdb(filter, whereObj || null);
|
|
116
|
+
}
|
|
117
|
+
return whereObj;
|
|
118
|
+
};
|
|
119
|
+
exports.cubeFilterToDuckdbAST = cubeFilterToDuckdbAST;
|
|
120
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../meerkat-core/src/cube-filter-transformer/factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gtTransform = void 0;
|
|
4
|
+
const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
5
|
+
const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
|
|
6
|
+
const or_1 = require("../or/or");
|
|
7
|
+
const gtTransform = (query) => {
|
|
8
|
+
const { member, values } = query;
|
|
9
|
+
if (!values || values.length === 0) {
|
|
10
|
+
throw new Error('GT filter must have at least one value');
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* If there is only one value, we can create a simple equals condition
|
|
14
|
+
*/
|
|
15
|
+
if (values.length === 1) {
|
|
16
|
+
return (0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_GREATERTHAN, values[0], query.memberInfo);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* If there are multiple values, we need to create an OR condition
|
|
20
|
+
*/
|
|
21
|
+
const orCondition = (0, or_1.orDuckdbCondition)();
|
|
22
|
+
values.forEach((value) => {
|
|
23
|
+
orCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_GREATERTHAN, value, query.memberInfo));
|
|
24
|
+
});
|
|
25
|
+
return orCondition;
|
|
26
|
+
};
|
|
27
|
+
exports.gtTransform = gtTransform;
|
|
28
|
+
//# sourceMappingURL=gt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gt.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/gt/gt.ts"],"names":[],"mappings":";;;AAAA,gGAAiG;AACjG,6FAAuF;AAEvF,iCAA6C;AAEtC,MAAM,WAAW,GAAmC,CAAC,KAAK,EAAE,EAAE;IACnE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,4CAAmB,EACxB,MAAM,EACN,2BAAc,CAAC,mBAAmB,EAClC,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CAAC;KACH;IAED;;OAEG;IACH,MAAM,WAAW,GAAG,IAAA,sBAAiB,GAAE,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,WAAW,CAAC,QAAQ,CAAC,IAAI,CACvB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,mBAAmB,EAClC,KAAK,EACL,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAlCW,QAAA,WAAW,eAkCtB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gteTransform = void 0;
|
|
4
|
+
const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
5
|
+
const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
|
|
6
|
+
const or_1 = require("../or/or");
|
|
7
|
+
const gteTransform = (query) => {
|
|
8
|
+
const { member, values } = query;
|
|
9
|
+
if (!values || values.length === 0) {
|
|
10
|
+
throw new Error('GTE filter must have at least one value');
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* If there is only one value, we can create a simple equals condition
|
|
14
|
+
*/
|
|
15
|
+
if (values.length === 1) {
|
|
16
|
+
return (0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_GREATERTHANOREQUALTO, values[0], query.memberInfo);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* If there are multiple values, we need to create an OR condition
|
|
20
|
+
*/
|
|
21
|
+
const orCondition = (0, or_1.orDuckdbCondition)();
|
|
22
|
+
values.forEach((value) => {
|
|
23
|
+
orCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_GREATERTHANOREQUALTO, value, query.memberInfo));
|
|
24
|
+
});
|
|
25
|
+
return orCondition;
|
|
26
|
+
};
|
|
27
|
+
exports.gteTransform = gteTransform;
|
|
28
|
+
//# sourceMappingURL=gte.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gte.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/gte/gte.ts"],"names":[],"mappings":";;;AAAA,gGAAiG;AACjG,6FAAuF;AAEvF,iCAA6C;AAEtC,MAAM,YAAY,GAAmC,CAAC,KAAK,EAAE,EAAE;IACpE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;KAC5D;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,4CAAmB,EACxB,MAAM,EACN,2BAAc,CAAC,4BAA4B,EAC3C,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CAAC;KACH;IAED;;OAEG;IACH,MAAM,WAAW,GAAG,IAAA,sBAAiB,GAAE,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,WAAW,CAAC,QAAQ,CAAC,IAAI,CACvB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,4BAA4B,EAC3C,KAAK,EACL,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAlCW,QAAA,YAAY,gBAkCvB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.inTransform = void 0;
|
|
4
|
+
const constants_1 = require("../../member-formatters/constants");
|
|
5
|
+
const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
6
|
+
const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
|
|
7
|
+
const inDuckDbCondition = (columnName, values, memberInfo) => {
|
|
8
|
+
const sqlTreeValues = values.map((value) => {
|
|
9
|
+
return {
|
|
10
|
+
class: Expression_1.ExpressionClass.CONSTANT,
|
|
11
|
+
type: Expression_1.ExpressionType.VALUE_CONSTANT,
|
|
12
|
+
alias: '',
|
|
13
|
+
value: (0, base_condition_builder_1.valueBuilder)(value, memberInfo),
|
|
14
|
+
};
|
|
15
|
+
});
|
|
16
|
+
const columnRef = {
|
|
17
|
+
class: 'COLUMN_REF',
|
|
18
|
+
type: 'COLUMN_REF',
|
|
19
|
+
alias: '',
|
|
20
|
+
column_names: columnName.split(constants_1.COLUMN_NAME_DELIMITER),
|
|
21
|
+
};
|
|
22
|
+
switch (memberInfo.type) {
|
|
23
|
+
case 'number_array':
|
|
24
|
+
case 'string_array': {
|
|
25
|
+
return {
|
|
26
|
+
class: Expression_1.ExpressionClass.FUNCTION,
|
|
27
|
+
type: Expression_1.ExpressionType.FUNCTION,
|
|
28
|
+
alias: '',
|
|
29
|
+
function_name: '&&',
|
|
30
|
+
schema: '',
|
|
31
|
+
children: [
|
|
32
|
+
columnRef,
|
|
33
|
+
{
|
|
34
|
+
class: Expression_1.ExpressionClass.OPERATOR,
|
|
35
|
+
type: Expression_1.ExpressionType.ARRAY_CONSTRUCTOR,
|
|
36
|
+
alias: '',
|
|
37
|
+
children: sqlTreeValues,
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
filter: null,
|
|
41
|
+
order_bys: {
|
|
42
|
+
type: 'ORDER_MODIFIER',
|
|
43
|
+
orders: [],
|
|
44
|
+
},
|
|
45
|
+
distinct: false,
|
|
46
|
+
is_operator: true,
|
|
47
|
+
export_state: false,
|
|
48
|
+
catalog: '',
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
default: {
|
|
52
|
+
return {
|
|
53
|
+
class: Expression_1.ExpressionClass.OPERATOR,
|
|
54
|
+
type: Expression_1.ExpressionType.COMPARE_IN,
|
|
55
|
+
alias: '',
|
|
56
|
+
children: [columnRef, ...sqlTreeValues],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const inTransform = (query) => {
|
|
62
|
+
const { member, values, memberInfo } = query;
|
|
63
|
+
if (!values) {
|
|
64
|
+
throw new Error('In filter must have at least one value');
|
|
65
|
+
}
|
|
66
|
+
return inDuckDbCondition(member, values, memberInfo);
|
|
67
|
+
};
|
|
68
|
+
exports.inTransform = inTransform;
|
|
69
|
+
//# sourceMappingURL=in.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/in/in.ts"],"names":[],"mappings":";;;AAAA,iEAA0E;AAE1E,gGAGyE;AACzE,6FAAgF;AAGhF,MAAM,iBAAiB,GAAG,CACxB,UAAkB,EAClB,MAAgB,EAChB,UAA+B,EAC/B,EAAE;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,OAAO;YACL,KAAK,EAAE,4BAAe,CAAC,QAAQ;YAC/B,IAAI,EAAE,2BAAc,CAAC,cAAc;YACnC,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,IAAA,qCAAY,EAAC,KAAK,EAAE,UAAU,CAAC;SACvC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG;QAChB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,iCAAqB,CAAC;KACtD,CAAC;IACF,QAAQ,UAAU,CAAC,IAAI,EAAE;QACvB,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc,CAAC,CAAC;YACnB,OAAO;gBACL,KAAK,EAAE,4BAAe,CAAC,QAAQ;gBAC/B,IAAI,EAAE,2BAAc,CAAC,QAAQ;gBAC7B,KAAK,EAAE,EAAE;gBACT,aAAa,EAAE,IAAI;gBACnB,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE;oBACR,SAAS;oBACT;wBACE,KAAK,EAAE,4BAAe,CAAC,QAAQ;wBAC/B,IAAI,EAAE,2BAAc,CAAC,iBAAiB;wBACtC,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,aAAa;qBACxB;iBACF;gBACD,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE;oBACT,IAAI,EAAE,gBAAgB;oBACtB,MAAM,EAAE,EAAE;iBACX;gBACD,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,KAAK;gBACnB,OAAO,EAAE,EAAE;aACZ,CAAC;SACH;QACD,OAAO,CAAC,CAAC;YACP,OAAO;gBACL,KAAK,EAAE,4BAAe,CAAC,QAAQ;gBAC/B,IAAI,EAAE,2BAAc,CAAC,UAAU;gBAC/B,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,CAAC,SAAS,EAAE,GAAG,aAAa,CAAC;aACxC,CAAC;SACH;KACF;AACH,CAAC,CAAC;AAEK,MAAM,WAAW,GAAmC,CAAC,KAAK,EAAE,EAAE;IACnE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC7C,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IACD,OAAO,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACvD,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.inDataRangeTransform = void 0;
|
|
4
|
+
const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
5
|
+
const and_1 = require("../and/and");
|
|
6
|
+
const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
|
|
7
|
+
const inDataRangeTransform = (query) => {
|
|
8
|
+
const { member, values } = query;
|
|
9
|
+
if (!values || values.length === 0) {
|
|
10
|
+
throw new Error('GT filter must have at least one value');
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* If there are multiple values, we need to create an OR condition
|
|
14
|
+
*/
|
|
15
|
+
const andCondition = (0, and_1.andDuckdbCondition)();
|
|
16
|
+
andCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_GREATERTHANOREQUALTO, values[0], query.memberInfo));
|
|
17
|
+
andCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_LESSTHANOREQUALTO, values[1], query.memberInfo));
|
|
18
|
+
return andCondition;
|
|
19
|
+
};
|
|
20
|
+
exports.inDataRangeTransform = inDataRangeTransform;
|
|
21
|
+
//# sourceMappingURL=in-date-range.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-date-range.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/in-date-range/in-date-range.ts"],"names":[],"mappings":";;;AAAA,gGAAiG;AACjG,oCAAgD;AAChD,6FAAuF;AAGhF,MAAM,oBAAoB,GAAmC,CAAC,KAAK,EAAE,EAAE;IAC5E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IAED;;OAEG;IACH,MAAM,YAAY,GAAG,IAAA,wBAAkB,GAAE,CAAC;IAE1C,YAAY,CAAC,QAAQ,CAAC,IAAI,CACxB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,4BAA4B,EAC3C,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IAEF,YAAY,CAAC,QAAQ,CAAC,IAAI,CACxB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,yBAAyB,EACxC,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AA/BW,QAAA,oBAAoB,wBA+B/B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ltTransform = void 0;
|
|
4
|
+
const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
5
|
+
const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
|
|
6
|
+
const or_1 = require("../or/or");
|
|
7
|
+
const ltTransform = (query) => {
|
|
8
|
+
const { member, values } = query;
|
|
9
|
+
if (!values || values.length === 0) {
|
|
10
|
+
throw new Error('lt filter must have at least one value');
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* If there is only one value, we can create a simple equals condition
|
|
14
|
+
*/
|
|
15
|
+
if (values.length === 1) {
|
|
16
|
+
return (0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_LESSTHAN, values[0], query.memberInfo);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* If there are multiple values, we need to create an OR condition
|
|
20
|
+
*/
|
|
21
|
+
const orCondition = (0, or_1.orDuckdbCondition)();
|
|
22
|
+
values.forEach((value) => {
|
|
23
|
+
orCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_LESSTHAN, value, query.memberInfo));
|
|
24
|
+
});
|
|
25
|
+
return orCondition;
|
|
26
|
+
};
|
|
27
|
+
exports.ltTransform = ltTransform;
|
|
28
|
+
//# sourceMappingURL=lt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lt.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/lt/lt.ts"],"names":[],"mappings":";;;AAAA,gGAAiG;AACjG,6FAAuF;AAEvF,iCAA6C;AAEtC,MAAM,WAAW,GAAmC,CAAC,KAAK,EAAE,EAAE;IACnE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,4CAAmB,EACxB,MAAM,EACN,2BAAc,CAAC,gBAAgB,EAC/B,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CAAC;KACH;IAED;;OAEG;IACH,MAAM,WAAW,GAAG,IAAA,sBAAiB,GAAE,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,WAAW,CAAC,QAAQ,CAAC,IAAI,CACvB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,gBAAgB,EAC/B,KAAK,EACL,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAlCW,QAAA,WAAW,eAkCtB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.lteTransform = void 0;
|
|
4
|
+
const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
5
|
+
const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
|
|
6
|
+
const or_1 = require("../or/or");
|
|
7
|
+
const lteTransform = (query) => {
|
|
8
|
+
const { member, values } = query;
|
|
9
|
+
if (!values || values.length === 0) {
|
|
10
|
+
throw new Error('lte filter must have at least one value');
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* If there is only one value, we can create a simple equals condition
|
|
14
|
+
*/
|
|
15
|
+
if (values.length === 1) {
|
|
16
|
+
return (0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_LESSTHANOREQUALTO, values[0], query.memberInfo);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* If there are multiple values, we need to create an OR condition
|
|
20
|
+
*/
|
|
21
|
+
const orCondition = (0, or_1.orDuckdbCondition)();
|
|
22
|
+
values.forEach((value) => {
|
|
23
|
+
orCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_LESSTHANOREQUALTO, value, query.memberInfo));
|
|
24
|
+
});
|
|
25
|
+
return orCondition;
|
|
26
|
+
};
|
|
27
|
+
exports.lteTransform = lteTransform;
|
|
28
|
+
//# sourceMappingURL=lte.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lte.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/lte/lte.ts"],"names":[],"mappings":";;;AAAA,gGAAiG;AACjG,6FAAuF;AAEvF,iCAA6C;AAEtC,MAAM,YAAY,GAAmC,CAAC,KAAK,EAAE,EAAE;IACpE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;KAC5D;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,4CAAmB,EACxB,MAAM,EACN,2BAAc,CAAC,yBAAyB,EACxC,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CAAC;KACH;IAED;;OAEG;IACH,MAAM,WAAW,GAAG,IAAA,sBAAiB,GAAE,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,WAAW,CAAC,QAAQ,CAAC,IAAI,CACvB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,yBAAyB,EACxC,KAAK,EACL,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAlCW,QAAA,YAAY,gBAkCvB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.notDuckdbCondition = void 0;
|
|
4
|
+
const index_1 = require("../../types/duckdb-serialization-types/index");
|
|
5
|
+
const notDuckdbCondition = () => {
|
|
6
|
+
return {
|
|
7
|
+
class: index_1.ExpressionClass.OPERATOR,
|
|
8
|
+
type: index_1.ExpressionType.OPERATOR_NOT,
|
|
9
|
+
alias: '',
|
|
10
|
+
children: [],
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
exports.notDuckdbCondition = notDuckdbCondition;
|
|
14
|
+
//# sourceMappingURL=not.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/not/not.ts"],"names":[],"mappings":";;;AAAA,wEAIsD;AAE/C,MAAM,kBAAkB,GAAG,GAAuB,EAAE;IACzD,OAAO;QACL,KAAK,EAAE,uBAAe,CAAC,QAAQ;QAC/B,IAAI,EAAE,sBAAc,CAAC,YAAY;QACjC,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,kBAAkB,sBAO7B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.notInDataRangeTransform = void 0;
|
|
4
|
+
const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
5
|
+
const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
|
|
6
|
+
const or_1 = require("../or/or");
|
|
7
|
+
const notInDataRangeTransform = (query) => {
|
|
8
|
+
const { member, values } = query;
|
|
9
|
+
if (!values || values.length === 0) {
|
|
10
|
+
throw new Error('GT filter must have at least one value');
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* If there are multiple values, we need to create an OR condition
|
|
14
|
+
*/
|
|
15
|
+
const andCondition = (0, or_1.orDuckdbCondition)();
|
|
16
|
+
andCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_LESSTHAN, values[0], query.memberInfo));
|
|
17
|
+
andCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_GREATERTHAN, values[1], query.memberInfo));
|
|
18
|
+
return andCondition;
|
|
19
|
+
};
|
|
20
|
+
exports.notInDataRangeTransform = notInDataRangeTransform;
|
|
21
|
+
//# sourceMappingURL=not-In-date-range.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-In-date-range.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-In-date-range/not-In-date-range.ts"],"names":[],"mappings":";;;AAAA,gGAAiG;AACjG,6FAAuF;AAEvF,iCAA6C;AAEtC,MAAM,uBAAuB,GAAmC,CACrE,KAAK,EACL,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IAED;;OAEG;IACH,MAAM,YAAY,GAAG,IAAA,sBAAiB,GAAE,CAAC;IAEzC,YAAY,CAAC,QAAQ,CAAC,IAAI,CACxB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,gBAAgB,EAC/B,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IAEF,YAAY,CAAC,QAAQ,CAAC,IAAI,CACxB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,mBAAmB,EAClC,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IAEF,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAjCW,QAAA,uBAAuB,2BAiClC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.notContainsTransform = exports.notContainsDuckdbCondition = void 0;
|
|
4
|
+
const constants_1 = require("../../member-formatters/constants");
|
|
5
|
+
const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
6
|
+
const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
|
|
7
|
+
const or_1 = require("../or/or");
|
|
8
|
+
const notContainsDuckdbCondition = (columnName, value, memberInfo) => {
|
|
9
|
+
return {
|
|
10
|
+
class: Expression_1.ExpressionClass.FUNCTION,
|
|
11
|
+
type: Expression_1.ExpressionType.FUNCTION,
|
|
12
|
+
alias: '',
|
|
13
|
+
function_name: '!~~',
|
|
14
|
+
schema: '',
|
|
15
|
+
children: [
|
|
16
|
+
{
|
|
17
|
+
class: 'COLUMN_REF',
|
|
18
|
+
type: 'COLUMN_REF',
|
|
19
|
+
alias: '',
|
|
20
|
+
column_names: columnName.split(constants_1.COLUMN_NAME_DELIMITER),
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
class: 'CONSTANT',
|
|
24
|
+
type: 'VALUE_CONSTANT',
|
|
25
|
+
alias: '',
|
|
26
|
+
value: (0, base_condition_builder_1.valueBuilder)(`%${value}%`, memberInfo),
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
filter: null,
|
|
30
|
+
order_bys: {
|
|
31
|
+
type: 'ORDER_MODIFIER',
|
|
32
|
+
orders: [],
|
|
33
|
+
},
|
|
34
|
+
distinct: false,
|
|
35
|
+
is_operator: true,
|
|
36
|
+
export_state: false,
|
|
37
|
+
catalog: '',
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
exports.notContainsDuckdbCondition = notContainsDuckdbCondition;
|
|
41
|
+
const notContainsTransform = (query) => {
|
|
42
|
+
const { member, values, memberInfo } = query;
|
|
43
|
+
if (!values || values.length === 0) {
|
|
44
|
+
throw new Error('Contains filter must have at least one value');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* If there is only one value, we can create a simple Contains condition
|
|
48
|
+
*/
|
|
49
|
+
if (values.length === 1) {
|
|
50
|
+
return (0, exports.notContainsDuckdbCondition)(member, values[0], memberInfo);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* If there are multiple values, we need to create an OR condition
|
|
54
|
+
*/
|
|
55
|
+
const orCondition = (0, or_1.orDuckdbCondition)();
|
|
56
|
+
values.forEach((value) => {
|
|
57
|
+
orCondition.children.push((0, exports.notContainsDuckdbCondition)(member, value, memberInfo));
|
|
58
|
+
});
|
|
59
|
+
return orCondition;
|
|
60
|
+
};
|
|
61
|
+
exports.notContainsTransform = notContainsTransform;
|
|
62
|
+
//# sourceMappingURL=not-contains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-contains.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-contains/not-contains.ts"],"names":[],"mappings":";;;AAAA,iEAA0E;AAG1E,gGAGyE;AACzE,6FAAgF;AAEhF,iCAA6C;AAQtC,MAAM,0BAA0B,GAAG,CACxC,UAAkB,EAClB,KAAa,EACb,UAA+B,EAC/B,EAAE;IACF,OAAO;QACL,KAAK,EAAE,4BAAe,CAAC,QAAQ;QAC/B,IAAI,EAAE,2BAAc,CAAC,QAAQ;QAC7B,KAAK,EAAE,EAAE;QACT,aAAa,EAAE,KAAK;QACpB,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR;gBACE,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,iCAAqB,CAAC;aACtD;YACD;gBACE,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,IAAA,qCAAY,EAAC,IAAI,KAAK,GAAG,EAAE,UAAU,CAAC;aAC9C;SACF;QACD,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,EAAE;SACX;QACD,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,0BAA0B,8BAmCrC;AAEK,MAAM,oBAAoB,GAAmC,CAAC,KAAK,EAAE,EAAE;IAC5E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAE7C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;KACjE;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,kCAA0B,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;KAClE;IAED;;OAEG;IACH,MAAM,WAAW,GAAG,IAAA,sBAAiB,GAAE,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,WAAW,CAAC,QAAQ,CAAC,IAAI,CACvB,IAAA,kCAA0B,EAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CACtD,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAxBW,QAAA,oBAAoB,wBAwB/B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.notEqualsArrayTransform = void 0;
|
|
4
|
+
const equals_array_1 = require("../equals/equals-array");
|
|
5
|
+
const not_1 = require("../not/not");
|
|
6
|
+
const notEqualsArrayTransform = (query) => {
|
|
7
|
+
const { values } = query;
|
|
8
|
+
if (!values || values.length === 0) {
|
|
9
|
+
throw new Error('Equals filter must have at least one value');
|
|
10
|
+
}
|
|
11
|
+
const notWrapper = (0, not_1.notDuckdbCondition)();
|
|
12
|
+
const equalsCondition = (0, equals_array_1.equalsArrayTransform)(query);
|
|
13
|
+
/**
|
|
14
|
+
* We need to wrap the equals condition in a not condition
|
|
15
|
+
* Which basically means ! of ANY of the values
|
|
16
|
+
*/
|
|
17
|
+
notWrapper.children = [equalsCondition];
|
|
18
|
+
return notWrapper;
|
|
19
|
+
};
|
|
20
|
+
exports.notEqualsArrayTransform = notEqualsArrayTransform;
|
|
21
|
+
//# sourceMappingURL=not-equals-array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-equals-array.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-equals/not-equals-array.ts"],"names":[],"mappings":";;;AAAA,yDAA8D;AAE9D,oCAAgD;AAEzC,MAAM,uBAAuB,GAAmC,CACrE,KAAK,EACL,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KAC/D;IAED,MAAM,UAAU,GAAG,IAAA,wBAAkB,GAAE,CAAC;IACxC,MAAM,eAAe,GAAG,IAAA,mCAAoB,EAAC,KAAK,CAAC,CAAC;IACpD;;;OAGG;IACH,UAAU,CAAC,QAAQ,GAAG,CAAC,eAAe,CAAC,CAAC;IAExC,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAlBW,QAAA,uBAAuB,2BAkBlC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.notEqualsTransform = void 0;
|
|
4
|
+
const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
5
|
+
const is_array_member_type_1 = require("../../utils/is-array-member-type");
|
|
6
|
+
const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
|
|
7
|
+
const or_1 = require("../or/or");
|
|
8
|
+
const not_equals_array_1 = require("./not-equals-array");
|
|
9
|
+
const notEqualsTransform = (query) => {
|
|
10
|
+
const { member, values } = query;
|
|
11
|
+
if (!values || values.length === 0) {
|
|
12
|
+
throw new Error('Equals filter must have at least one value');
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* If the member is an array, we need to use the array transform
|
|
16
|
+
*/
|
|
17
|
+
if ((0, is_array_member_type_1.isArrayTypeMember)(query.memberInfo.type)) {
|
|
18
|
+
return (0, not_equals_array_1.notEqualsArrayTransform)(query);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* If there is only one value, we can create a simple equals condition
|
|
22
|
+
*/
|
|
23
|
+
if (values.length === 1) {
|
|
24
|
+
return (0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_NOTEQUAL, values[0], query.memberInfo);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* If there are multiple values, we need to create an OR condition
|
|
28
|
+
*/
|
|
29
|
+
const orCondition = (0, or_1.orDuckdbCondition)();
|
|
30
|
+
values.forEach((value) => {
|
|
31
|
+
orCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_NOTEQUAL, value, query.memberInfo));
|
|
32
|
+
});
|
|
33
|
+
return orCondition;
|
|
34
|
+
};
|
|
35
|
+
exports.notEqualsTransform = notEqualsTransform;
|
|
36
|
+
//# sourceMappingURL=not-equals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-equals.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-equals/not-equals.ts"],"names":[],"mappings":";;;AACA,gGAAiG;AACjG,2EAAqE;AACrE,6FAAuF;AAEvF,iCAA6C;AAC7C,yDAA6D;AAQtD,MAAM,kBAAkB,GAAmC,CAAC,KAAK,EAAE,EAAE;IAC1E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KAC/D;IAED;;OAEG;IACH,IAAI,IAAA,wCAAiB,EAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC5C,OAAO,IAAA,0CAAuB,EAAC,KAAK,CAAC,CAAC;KACvC;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,4CAAmB,EACxB,MAAM,EACN,2BAAc,CAAC,gBAAgB,EAC/B,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CAAC;KACH;IAED;;OAEG;IACH,MAAM,WAAW,GAAG,IAAA,sBAAiB,GAAE,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,WAAW,CAAC,QAAQ,CAAC,IAAI,CACvB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,gBAAgB,EAC/B,KAAK,EACL,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAzCW,QAAA,kBAAkB,sBAyC7B"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.notInTransform = void 0;
|
|
4
|
+
const constants_1 = require("../../member-formatters/constants");
|
|
5
|
+
const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
|
|
6
|
+
const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
|
|
7
|
+
const notInDuckDbCondition = (columnName, values, memberInfo) => {
|
|
8
|
+
const sqlTreeValues = values.map((value) => {
|
|
9
|
+
return {
|
|
10
|
+
class: Expression_1.ExpressionClass.CONSTANT,
|
|
11
|
+
type: Expression_1.ExpressionType.VALUE_CONSTANT,
|
|
12
|
+
alias: '',
|
|
13
|
+
value: (0, base_condition_builder_1.valueBuilder)(value, memberInfo),
|
|
14
|
+
};
|
|
15
|
+
});
|
|
16
|
+
const columnRef = {
|
|
17
|
+
class: 'COLUMN_REF',
|
|
18
|
+
type: 'COLUMN_REF',
|
|
19
|
+
alias: '',
|
|
20
|
+
column_names: columnName.split(constants_1.COLUMN_NAME_DELIMITER),
|
|
21
|
+
};
|
|
22
|
+
switch (memberInfo.type) {
|
|
23
|
+
case 'number_array':
|
|
24
|
+
case 'string_array': {
|
|
25
|
+
return {
|
|
26
|
+
class: Expression_1.ExpressionClass.OPERATOR,
|
|
27
|
+
type: Expression_1.ExpressionType.OPERATOR_NOT,
|
|
28
|
+
alias: '',
|
|
29
|
+
children: [
|
|
30
|
+
{
|
|
31
|
+
class: Expression_1.ExpressionClass.FUNCTION,
|
|
32
|
+
type: Expression_1.ExpressionType.FUNCTION,
|
|
33
|
+
alias: '',
|
|
34
|
+
function_name: '&&',
|
|
35
|
+
schema: '',
|
|
36
|
+
children: [
|
|
37
|
+
columnRef,
|
|
38
|
+
{
|
|
39
|
+
class: Expression_1.ExpressionClass.OPERATOR,
|
|
40
|
+
type: Expression_1.ExpressionType.ARRAY_CONSTRUCTOR,
|
|
41
|
+
alias: '',
|
|
42
|
+
children: sqlTreeValues,
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
filter: null,
|
|
46
|
+
order_bys: {
|
|
47
|
+
type: 'ORDER_MODIFIER',
|
|
48
|
+
orders: [],
|
|
49
|
+
},
|
|
50
|
+
distinct: false,
|
|
51
|
+
is_operator: true,
|
|
52
|
+
export_state: false,
|
|
53
|
+
catalog: '',
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
default: {
|
|
59
|
+
return {
|
|
60
|
+
class: Expression_1.ExpressionClass.OPERATOR,
|
|
61
|
+
type: Expression_1.ExpressionType.COMPARE_NOT_IN,
|
|
62
|
+
alias: '',
|
|
63
|
+
children: [columnRef, ...sqlTreeValues],
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
const notInTransform = (query) => {
|
|
69
|
+
const { member, values, memberInfo } = query;
|
|
70
|
+
if (!values) {
|
|
71
|
+
throw new Error('Not in filter must have at least one value');
|
|
72
|
+
}
|
|
73
|
+
return notInDuckDbCondition(member, values, memberInfo);
|
|
74
|
+
};
|
|
75
|
+
exports.notInTransform = notInTransform;
|
|
76
|
+
//# sourceMappingURL=not-in.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-in.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-in/not-in.ts"],"names":[],"mappings":";;;AAGA,iEAA0E;AAC1E,gGAGyE;AACzE,6FAAgF;AAEhF,MAAM,oBAAoB,GAAG,CAC3B,UAAkB,EAClB,MAAgB,EAChB,UAA+B,EAC/B,EAAE;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,OAAO;YACL,KAAK,EAAE,4BAAe,CAAC,QAAQ;YAC/B,IAAI,EAAE,2BAAc,CAAC,cAAc;YACnC,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,IAAA,qCAAY,EAAC,KAAK,EAAE,UAAU,CAAC;SACvC,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG;QAChB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,iCAAqB,CAAC;KACtD,CAAC;IACF,QAAQ,UAAU,CAAC,IAAI,EAAE;QACvB,KAAK,cAAc,CAAC;QACpB,KAAK,cAAc,CAAC,CAAC;YACnB,OAAO;gBACL,KAAK,EAAE,4BAAe,CAAC,QAAQ;gBAC/B,IAAI,EAAE,2BAAc,CAAC,YAAY;gBACjC,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE;oBACR;wBACE,KAAK,EAAE,4BAAe,CAAC,QAAQ;wBAC/B,IAAI,EAAE,2BAAc,CAAC,QAAQ;wBAC7B,KAAK,EAAE,EAAE;wBACT,aAAa,EAAE,IAAI;wBACnB,MAAM,EAAE,EAAE;wBACV,QAAQ,EAAE;4BACR,SAAS;4BACT;gCACE,KAAK,EAAE,4BAAe,CAAC,QAAQ;gCAC/B,IAAI,EAAE,2BAAc,CAAC,iBAAiB;gCACtC,KAAK,EAAE,EAAE;gCACT,QAAQ,EAAE,aAAa;6BACxB;yBACF;wBACD,MAAM,EAAE,IAAI;wBACZ,SAAS,EAAE;4BACT,IAAI,EAAE,gBAAgB;4BACtB,MAAM,EAAE,EAAE;yBACX;wBACD,QAAQ,EAAE,KAAK;wBACf,WAAW,EAAE,IAAI;wBACjB,YAAY,EAAE,KAAK;wBACnB,OAAO,EAAE,EAAE;qBACZ;iBACF;aACF,CAAC;SACH;QACD,OAAO,CAAC,CAAC;YACP,OAAO;gBACL,KAAK,EAAE,4BAAe,CAAC,QAAQ;gBAC/B,IAAI,EAAE,2BAAc,CAAC,cAAc;gBACnC,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,CAAC,SAAS,EAAE,GAAG,aAAa,CAAC;aACxC,CAAC;SACH;KACF;AACH,CAAC,CAAC;AAEK,MAAM,cAAc,GAAmC,CAAC,KAAK,EAAE,EAAE;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC7C,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KAC/D;IAED,OAAO,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC1D,CAAC,CAAC;AAPW,QAAA,cAAc,kBAOzB"}
|