@devrev/meerkat-core 0.0.112 → 0.0.115

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/package.json +1 -1
  2. package/src/ast-builder/ast-builder.d.ts +3 -1
  3. package/src/ast-builder/ast-builder.js +18 -15
  4. package/src/ast-builder/ast-builder.js.map +1 -1
  5. package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.d.ts +37 -15
  6. package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js +48 -15
  7. package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +1 -1
  8. package/src/cube-filter-transformer/contains/contains.d.ts +3 -9
  9. package/src/cube-filter-transformer/contains/contains.js +8 -12
  10. package/src/cube-filter-transformer/contains/contains.js.map +1 -1
  11. package/src/cube-filter-transformer/equals/equals-array.js +7 -11
  12. package/src/cube-filter-transformer/equals/equals-array.js.map +1 -1
  13. package/src/cube-filter-transformer/equals/equals.js +5 -5
  14. package/src/cube-filter-transformer/equals/equals.js.map +1 -1
  15. package/src/cube-filter-transformer/factory.d.ts +3 -2
  16. package/src/cube-filter-transformer/factory.js +23 -23
  17. package/src/cube-filter-transformer/factory.js.map +1 -1
  18. package/src/cube-filter-transformer/gt/gt.js +4 -4
  19. package/src/cube-filter-transformer/gt/gt.js.map +1 -1
  20. package/src/cube-filter-transformer/gte/gte.js +4 -4
  21. package/src/cube-filter-transformer/gte/gte.js.map +1 -1
  22. package/src/cube-filter-transformer/in/in.js +7 -11
  23. package/src/cube-filter-transformer/in/in.js.map +1 -1
  24. package/src/cube-filter-transformer/in-date-range/in-date-range.js +4 -4
  25. package/src/cube-filter-transformer/in-date-range/in-date-range.js.map +1 -1
  26. package/src/cube-filter-transformer/lt/lt.js +4 -4
  27. package/src/cube-filter-transformer/lt/lt.js.map +1 -1
  28. package/src/cube-filter-transformer/lte/lte.js +4 -4
  29. package/src/cube-filter-transformer/lte/lte.js.map +1 -1
  30. package/src/cube-filter-transformer/not-In-date-range/not-In-date-range.js +3 -3
  31. package/src/cube-filter-transformer/not-In-date-range/not-In-date-range.js.map +1 -1
  32. package/src/cube-filter-transformer/not-contains/not-contains.d.ts +3 -9
  33. package/src/cube-filter-transformer/not-contains/not-contains.js +8 -12
  34. package/src/cube-filter-transformer/not-contains/not-contains.js.map +1 -1
  35. package/src/cube-filter-transformer/not-equals/not-equals-array.js +2 -2
  36. package/src/cube-filter-transformer/not-equals/not-equals-array.js.map +1 -1
  37. package/src/cube-filter-transformer/not-equals/not-equals.js +5 -5
  38. package/src/cube-filter-transformer/not-equals/not-equals.js.map +1 -1
  39. package/src/cube-filter-transformer/not-in/not-in.js +7 -11
  40. package/src/cube-filter-transformer/not-in/not-in.js.map +1 -1
  41. package/src/cube-filter-transformer/not-set/not-set.js +5 -8
  42. package/src/cube-filter-transformer/not-set/not-set.js.map +1 -1
  43. package/src/cube-filter-transformer/set/set.js +5 -8
  44. package/src/cube-filter-transformer/set/set.js.map +1 -1
  45. package/src/cube-filter-transformer/sql-expression/sql-expression-parser.d.ts +2 -1
  46. package/src/cube-filter-transformer/sql-expression/sql-expression-parser.js +10 -18
  47. package/src/cube-filter-transformer/sql-expression/sql-expression-parser.js.map +1 -1
  48. package/src/cube-group-by-transformer/cube-group-by-transformer.d.ts +2 -1
  49. package/src/cube-group-by-transformer/cube-group-by-transformer.js +2 -8
  50. package/src/cube-group-by-transformer/cube-group-by-transformer.js.map +1 -1
  51. package/src/cube-measure-transformer/cube-measure-transformer.d.ts +4 -2
  52. package/src/cube-measure-transformer/cube-measure-transformer.js +16 -30
  53. package/src/cube-measure-transformer/cube-measure-transformer.js.map +1 -1
  54. package/src/cube-order-by-transformer/cube-order-by-transformer.d.ts +3 -2
  55. package/src/cube-order-by-transformer/cube-order-by-transformer.js +3 -9
  56. package/src/cube-order-by-transformer/cube-order-by-transformer.js.map +1 -1
  57. package/src/filter-params/filter-params-ast.d.ts +2 -1
  58. package/src/filter-params/filter-params-ast.js +2 -1
  59. package/src/filter-params/filter-params-ast.js.map +1 -1
  60. package/src/get-filter-params-sql/get-filter-params-sql.d.ts +5 -3
  61. package/src/get-filter-params-sql/get-filter-params-sql.js +2 -2
  62. package/src/get-filter-params-sql/get-filter-params-sql.js.map +1 -1
  63. package/src/get-final-base-sql/get-final-base-sql.d.ts +3 -1
  64. package/src/get-final-base-sql/get-final-base-sql.js +3 -1
  65. package/src/get-final-base-sql/get-final-base-sql.js.map +1 -1
  66. package/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.d.ts +7 -3
  67. package/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js +11 -14
  68. package/src/get-wrapped-base-query-with-projections/get-aliased-columns-from-filters.js.map +1 -1
  69. package/src/get-wrapped-base-query-with-projections/get-projection-clause.d.ts +2 -1
  70. package/src/get-wrapped-base-query-with-projections/get-projection-clause.js +5 -11
  71. package/src/get-wrapped-base-query-with-projections/get-projection-clause.js.map +1 -1
  72. package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.d.ts +3 -1
  73. package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js +3 -2
  74. package/src/get-wrapped-base-query-with-projections/get-wrapped-base-query-with-projections.js.map +1 -1
  75. package/src/joins/joins.d.ts +22 -0
  76. package/src/joins/joins.js +60 -8
  77. package/src/joins/joins.js.map +1 -1
  78. package/src/member-formatters/get-alias.d.ts +97 -7
  79. package/src/member-formatters/get-alias.js +131 -17
  80. package/src/member-formatters/get-alias.js.map +1 -1
  81. package/src/member-formatters/index.d.ts +2 -2
  82. package/src/member-formatters/index.js +5 -1
  83. package/src/member-formatters/index.js.map +1 -1
  84. package/src/member-formatters/member-key-to-safe-key.d.ts +17 -1
  85. package/src/member-formatters/member-key-to-safe-key.js +15 -1
  86. package/src/member-formatters/member-key-to-safe-key.js.map +1 -1
  87. package/src/resolution/generators/generate-resolution-join-paths.js +7 -7
  88. package/src/resolution/generators/generate-resolution-join-paths.js.map +1 -1
  89. package/src/resolution/generators/generate-resolution-schemas.d.ts +1 -1
  90. package/src/resolution/generators/generate-resolution-schemas.js +5 -10
  91. package/src/resolution/generators/generate-resolution-schemas.js.map +1 -1
  92. package/src/resolution/generators/generate-resolved-dimensions.js +3 -2
  93. package/src/resolution/generators/generate-resolved-dimensions.js.map +1 -1
  94. package/src/resolution/generators/generate-row-number-sql.js +2 -1
  95. package/src/resolution/generators/generate-row-number-sql.js.map +1 -1
  96. package/src/resolution/resolution.d.ts +1 -1
  97. package/src/resolution/resolution.js +20 -21
  98. package/src/resolution/resolution.js.map +1 -1
  99. package/src/resolution/steps/apply-aliases-step.js +9 -5
  100. package/src/resolution/steps/apply-aliases-step.js.map +1 -1
  101. package/src/resolution/steps/apply-sql-overrides.d.ts +2 -3
  102. package/src/resolution/steps/apply-sql-overrides.js +6 -5
  103. package/src/resolution/steps/apply-sql-overrides.js.map +1 -1
  104. package/src/resolution/steps/resolution-step.js +6 -7
  105. package/src/resolution/steps/resolution-step.js.map +1 -1
  106. package/src/utils/meerkat-placeholder-replacer.d.ts +2 -1
  107. package/src/utils/meerkat-placeholder-replacer.js +4 -9
  108. package/src/utils/meerkat-placeholder-replacer.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devrev/meerkat-core",
3
- "version": "0.0.112",
3
+ "version": "0.0.115",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0"
6
6
  },
@@ -1,6 +1,8 @@
1
+ import { QueryOptions } from '../member-formatters/get-alias';
1
2
  import { FilterType, Query } from '../types/cube-types/query';
2
3
  import { TableSchema } from '../types/cube-types/table';
3
4
  import { SelectStatement } from '../types/duckdb-serialization-types';
4
- export declare const cubeToDuckdbAST: (query: Query, tableSchema: TableSchema, options?: {
5
+ export declare const cubeToDuckdbAST: (query: Query, tableSchema: TableSchema, options: {
5
6
  filterType: FilterType;
7
+ config: QueryOptions;
6
8
  }) => SelectStatement | null;
@@ -10,28 +10,29 @@ const get_alias_1 = require("../member-formatters/get-alias");
10
10
  const base_ast_1 = require("../utils/base-ast");
11
11
  const cube_filter_enrichment_1 = require("../utils/cube-filter-enrichment");
12
12
  const modify_meerkat_filter_1 = require("../utils/modify-meerkat-filter");
13
- const formatFilters = (queryFiltersWithInfo, filterType) => {
13
+ const formatFilters = (queryFiltersWithInfo, filterType, config) => {
14
14
  /*
15
15
  * If the type of filter is set to base filter where
16
16
  */
17
17
  return filterType === 'BASE_FILTER'
18
18
  ? queryFiltersWithInfo
19
19
  : (0, modify_meerkat_filter_1.modifyLeafMeerkatFilter)(queryFiltersWithInfo, (item) => {
20
- return Object.assign(Object.assign({}, item), { member: (0, get_alias_1.constructAlias)({
21
- name: item.member,
22
- alias: item.memberInfo.alias,
23
- aliasContext: {
24
- isAstIdentifier: true,
25
- },
26
- }) });
20
+ return Object.assign(Object.assign({}, item), { member: (0, get_alias_1.constructAliasForAST)(item.member, item.memberInfo.alias, config) });
27
21
  });
28
22
  };
29
- const getFormattedFilters = ({ queryFiltersWithInfo, filterType, mapperFn, baseAST, }) => {
23
+ const getFormattedFilters = ({ queryFiltersWithInfo, filterType, mapperFn, baseAST, config, }) => {
30
24
  const filters = queryFiltersWithInfo
31
25
  .map((item) => mapperFn(item))
32
26
  .filter(Boolean);
33
- const formattedFilters = formatFilters(filters, filterType);
34
- return (0, factory_1.cubeFilterToDuckdbAST)(formattedFilters, baseAST);
27
+ const formattedFilters = formatFilters(filters, filterType, config);
28
+ // When it's a projection filter (not BASE_FILTER), we reference projected aliases.
29
+ // When it's a BASE_FILTER, we reference table.column directly.
30
+ const isProjectionFilter = filterType !== 'BASE_FILTER';
31
+ const columnRefOptions = {
32
+ isAlias: isProjectionFilter,
33
+ useDotNotation: config.useDotNotation,
34
+ };
35
+ return (0, factory_1.cubeFilterToDuckdbAST)(formattedFilters, baseAST, columnRefOptions);
35
36
  };
36
37
  const cubeToDuckdbAST = (query, tableSchema, options) => {
37
38
  var _a;
@@ -55,13 +56,15 @@ const cubeToDuckdbAST = (query, tableSchema, options) => {
55
56
  baseAST,
56
57
  mapperFn: (item) => (0, filter_params_ast_1.traverseAndFilter)(item, (value) => !query.measures.includes(value.member)),
57
58
  queryFiltersWithInfo,
58
- filterType: options === null || options === void 0 ? void 0 : options.filterType,
59
+ filterType: options.filterType,
60
+ config: options.config,
59
61
  });
60
62
  const havingClause = getFormattedFilters({
61
63
  baseAST,
62
64
  mapperFn: (item) => (0, filter_params_ast_1.traverseAndFilter)(item, (value) => query.measures.includes(value.member)),
63
65
  queryFiltersWithInfo,
64
- filterType: options === null || options === void 0 ? void 0 : options.filterType,
66
+ filterType: options.filterType,
67
+ config: options.config,
65
68
  });
66
69
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
67
70
  //@ts-ignore
@@ -71,7 +74,7 @@ const cubeToDuckdbAST = (query, tableSchema, options) => {
71
74
  if (query.measures.length &&
72
75
  query.dimensions &&
73
76
  ((_a = query.dimensions) === null || _a === void 0 ? void 0 : _a.length) > 0) {
74
- node.group_expressions = (0, cube_group_by_transformer_1.cubeDimensionToGroupByAST)(query.dimensions, tableSchema);
77
+ node.group_expressions = (0, cube_group_by_transformer_1.cubeDimensionToGroupByAST)(query.dimensions, tableSchema, options.config);
75
78
  const groupSets = [];
76
79
  /**
77
80
  * We only support one group set for now.
@@ -83,7 +86,7 @@ const cubeToDuckdbAST = (query, tableSchema, options) => {
83
86
  }
84
87
  node.modifiers = [];
85
88
  if (query.order && Object.keys(query.order).length > 0) {
86
- node.modifiers.push((0, cube_order_by_transformer_1.cubeOrderByToAST)(query.order, tableSchema));
89
+ node.modifiers.push((0, cube_order_by_transformer_1.cubeOrderByToAST)(query.order, tableSchema, options.config));
87
90
  }
88
91
  if (query.limit || query.offset) {
89
92
  // Type assertion is needed here because the AST is not typed correctly.
@@ -1 +1 @@
1
- {"version":3,"file":"ast-builder.js","sourceRoot":"","sources":["../../../../meerkat-core/src/ast-builder/ast-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast-builder.js","sourceRoot":"","sources":["../../../../meerkat-core/src/ast-builder/ast-builder.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,42 @@
1
1
  import { Dimension, Measure } from '../../types/cube-types/index';
2
- import { ExpressionClass, ExpressionType, QueryNodeType, SubqueryType } from '../../types/duckdb-serialization-types/index';
3
- export declare const baseDuckdbCondition: (columnName: string, type: ExpressionType, value: string, memberInfo: Measure | Dimension) => {
2
+ import { ExpressionClass, ExpressionType, ParsedExpression, QueryNodeType, SubqueryType } from '../../types/duckdb-serialization-types/index';
3
+ /**
4
+ * Options for creating a column reference.
5
+ */
6
+ export interface CreateColumnRefOptions {
7
+ /**
8
+ * When true, the columnName is an alias (e.g., "orders.customer_id" as a single column name).
9
+ * When false, the columnName is a table.column reference to be split.
10
+ */
11
+ isAlias: boolean;
12
+ }
13
+ /**
14
+ * Creates a column reference AST node.
15
+ *
16
+ * @param columnName - The column name or member key
17
+ * @param options - Configuration options
18
+ * @returns A column reference expression for DuckDB AST
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * // Base table reference (isAlias: false)
23
+ * createColumnRef("orders.customer_id") // column_names: ["orders", "customer_id"]
24
+ *
25
+ * // Alias reference (isAlias: true, useDotNotation: true)
26
+ * createColumnRef("orders.customer_id", { isAlias: true, useDotNotation: true })
27
+ * // column_names: ["orders.customer_id"]
28
+ *
29
+ * // Alias reference (isAlias: true, useDotNotation: false - legacy)
30
+ * createColumnRef("orders__customer_id", { isAlias: true })
31
+ * // column_names: ["orders__customer_id"]
32
+ * ```
33
+ */
34
+ export declare const createColumnRef: (columnName: string, options: CreateColumnRefOptions) => ParsedExpression;
35
+ export declare const baseDuckdbCondition: (columnName: string, type: ExpressionType, value: string, memberInfo: Measure | Dimension, options: CreateColumnRefOptions) => {
4
36
  class: ExpressionClass;
5
37
  type: ExpressionType;
6
38
  alias: string;
7
- left: {
8
- class: ExpressionClass;
9
- type: ExpressionType;
10
- alias: string;
11
- column_names: string[];
12
- };
39
+ left: ParsedExpression;
13
40
  right: {
14
41
  class: ExpressionClass;
15
42
  type: ExpressionType;
@@ -43,7 +70,7 @@ export declare const baseDuckdbCondition: (columnName: string, type: ExpressionT
43
70
  };
44
71
  };
45
72
  };
46
- export declare const baseArrayDuckdbCondition: (columnName: string, type: ExpressionType, value: string, memberInfo: Measure | Dimension) => {
73
+ export declare const baseArrayDuckdbCondition: (columnName: string, type: ExpressionType, value: string, memberInfo: Measure | Dimension, options: CreateColumnRefOptions) => {
47
74
  class: ExpressionClass;
48
75
  type: ExpressionType;
49
76
  alias: string;
@@ -61,12 +88,7 @@ export declare const baseArrayDuckdbCondition: (columnName: string, type: Expres
61
88
  alias: string;
62
89
  function_name: string;
63
90
  schema: string;
64
- children: {
65
- class: ExpressionClass;
66
- type: ExpressionType;
67
- alias: string;
68
- column_names: string[];
69
- }[];
91
+ children: ParsedExpression[];
70
92
  filter: null;
71
93
  order_bys: {
72
94
  type: string;
@@ -1,22 +1,58 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.valueBuilder = exports.baseArrayDuckdbCondition = exports.baseDuckdbCondition = void 0;
3
+ exports.valueBuilder = exports.baseArrayDuckdbCondition = exports.baseDuckdbCondition = exports.createColumnRef = void 0;
4
4
  const constants_1 = require("../../member-formatters/constants");
5
5
  const sanitize_value_1 = require("../../member-formatters/sanitize-value");
6
6
  const index_1 = require("../../types/duckdb-serialization-types/index");
7
7
  const cube_type_to_duckdb_type_1 = require("../../utils/cube-type-to-duckdb-type");
8
8
  const get_type_info_1 = require("../../utils/get-type-info");
9
- const baseDuckdbCondition = (columnName, type, value, memberInfo) => {
9
+ /**
10
+ * Creates a column reference AST node.
11
+ *
12
+ * @param columnName - The column name or member key
13
+ * @param options - Configuration options
14
+ * @returns A column reference expression for DuckDB AST
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * // Base table reference (isAlias: false)
19
+ * createColumnRef("orders.customer_id") // column_names: ["orders", "customer_id"]
20
+ *
21
+ * // Alias reference (isAlias: true, useDotNotation: true)
22
+ * createColumnRef("orders.customer_id", { isAlias: true, useDotNotation: true })
23
+ * // column_names: ["orders.customer_id"]
24
+ *
25
+ * // Alias reference (isAlias: true, useDotNotation: false - legacy)
26
+ * createColumnRef("orders__customer_id", { isAlias: true })
27
+ * // column_names: ["orders__customer_id"]
28
+ * ```
29
+ */
30
+ const createColumnRef = (columnName, options) => {
31
+ let columnNames;
32
+ if (options.isAlias) {
33
+ // When it's an alias, don't split - use as single column name
34
+ // This is used for PROJECTION_FILTER where we reference projected aliases
35
+ columnNames = [columnName];
36
+ }
37
+ else {
38
+ // When it's a base table reference, split by delimiter
39
+ // This is used for BASE_FILTER where we reference table.column
40
+ columnNames = columnName.split(constants_1.COLUMN_NAME_DELIMITER);
41
+ }
42
+ return {
43
+ class: index_1.ExpressionClass.COLUMN_REF,
44
+ type: index_1.ExpressionType.COLUMN_REF,
45
+ alias: '',
46
+ column_names: columnNames,
47
+ };
48
+ };
49
+ exports.createColumnRef = createColumnRef;
50
+ const baseDuckdbCondition = (columnName, type, value, memberInfo, options) => {
10
51
  return {
11
52
  class: index_1.ExpressionClass.COMPARISON,
12
53
  type: type,
13
54
  alias: '',
14
- left: {
15
- class: index_1.ExpressionClass.COLUMN_REF,
16
- type: index_1.ExpressionType.COLUMN_REF,
17
- alias: '',
18
- column_names: columnName.split(constants_1.COLUMN_NAME_DELIMITER),
19
- },
55
+ left: (0, exports.createColumnRef)(columnName, options),
20
56
  right: {
21
57
  class: index_1.ExpressionClass.CONSTANT,
22
58
  type: index_1.ExpressionType.VALUE_CONSTANT,
@@ -26,7 +62,7 @@ const baseDuckdbCondition = (columnName, type, value, memberInfo) => {
26
62
  };
27
63
  };
28
64
  exports.baseDuckdbCondition = baseDuckdbCondition;
29
- const baseArrayDuckdbCondition = (columnName, type, value, memberInfo) => {
65
+ const baseArrayDuckdbCondition = (columnName, type, value, memberInfo, options) => {
30
66
  return {
31
67
  class: index_1.ExpressionClass.SUBQUERY,
32
68
  type: index_1.ExpressionType.SUBQUERY,
@@ -47,12 +83,9 @@ const baseArrayDuckdbCondition = (columnName, type, value, memberInfo) => {
47
83
  function_name: 'unnest',
48
84
  schema: '',
49
85
  children: [
50
- {
51
- class: index_1.ExpressionClass.COLUMN_REF,
52
- type: index_1.ExpressionType.COLUMN_REF,
53
- alias: '',
54
- column_names: columnName.split(constants_1.COLUMN_NAME_DELIMITER),
55
- },
86
+ (0, exports.createColumnRef)(columnName, {
87
+ isAlias: options.isAlias,
88
+ }),
56
89
  ],
57
90
  filter: null,
58
91
  order_bys: {
@@ -1 +1 @@
1
- {"version":3,"file":"base-condition-builder.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/base-condition-builder/base-condition-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-condition-builder.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/base-condition-builder/base-condition-builder.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,14 @@
1
1
  import { Dimension, Measure } from '../../types/cube-types/table';
2
2
  import { ExpressionClass, ExpressionType } from '../../types/duckdb-serialization-types/serialization/Expression';
3
+ import { CreateColumnRefOptions } from '../base-condition-builder/base-condition-builder';
3
4
  import { CubeToParseExpressionTransform } from '../factory';
4
- export declare const containsDuckdbCondition: (columnName: string, value: string, memberInfo: Measure | Dimension) => {
5
+ export declare const containsDuckdbCondition: (columnName: string, value: string, memberInfo: Measure | Dimension, options: CreateColumnRefOptions) => {
5
6
  class: ExpressionClass;
6
7
  type: ExpressionType;
7
8
  alias: string;
8
9
  function_name: string;
9
10
  schema: string;
10
- children: ({
11
- class: string;
12
- type: string;
13
- alias: string;
14
- column_names: string[];
15
- value?: undefined;
16
- } | {
11
+ children: (import("../..").BaseParsedExpression | {
17
12
  class: string;
18
13
  type: string;
19
14
  alias: string;
@@ -44,7 +39,6 @@ export declare const containsDuckdbCondition: (columnName: string, value: string
44
39
  is_null: boolean;
45
40
  value: boolean;
46
41
  };
47
- column_names?: undefined;
48
42
  })[];
49
43
  filter: null;
50
44
  order_bys: {
@@ -2,12 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.containsTransform = exports.containsDuckdbCondition = void 0;
4
4
  const cube_filter_to_duckdb_1 = require("../../cube-to-duckdb/cube-filter-to-duckdb");
5
- const constants_1 = require("../../member-formatters/constants");
6
5
  const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
7
6
  const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
8
7
  const or_1 = require("../or/or");
9
8
  const sql_expression_parser_1 = require("../sql-expression/sql-expression-parser");
10
- const containsDuckdbCondition = (columnName, value, memberInfo) => {
9
+ const containsDuckdbCondition = (columnName, value, memberInfo, options) => {
11
10
  return {
12
11
  class: Expression_1.ExpressionClass.FUNCTION,
13
12
  type: Expression_1.ExpressionType.FUNCTION,
@@ -15,12 +14,9 @@ const containsDuckdbCondition = (columnName, value, memberInfo) => {
15
14
  function_name: '~~*',
16
15
  schema: '',
17
16
  children: [
18
- {
19
- class: 'COLUMN_REF',
20
- type: 'COLUMN_REF',
21
- alias: '',
22
- column_names: columnName.split(constants_1.COLUMN_NAME_DELIMITER),
23
- },
17
+ (0, base_condition_builder_1.createColumnRef)(columnName, {
18
+ isAlias: options.isAlias,
19
+ }),
24
20
  {
25
21
  class: 'CONSTANT',
26
22
  type: 'VALUE_CONSTANT',
@@ -40,11 +36,11 @@ const containsDuckdbCondition = (columnName, value, memberInfo) => {
40
36
  };
41
37
  };
42
38
  exports.containsDuckdbCondition = containsDuckdbCondition;
43
- const containsTransform = (query) => {
39
+ const containsTransform = (query, options) => {
44
40
  const { member, memberInfo } = query;
45
41
  // SQL expressions not supported for contains operator
46
42
  if ((0, cube_filter_to_duckdb_1.isQueryOperatorsWithSQLInfo)(query)) {
47
- return (0, sql_expression_parser_1.getSQLExpressionAST)(member, query.sqlExpression, 'contains');
43
+ return (0, sql_expression_parser_1.getSQLExpressionAST)(member, query.sqlExpression, 'contains', options);
48
44
  }
49
45
  // Otherwise, use values
50
46
  if (!query.values || query.values.length === 0) {
@@ -55,14 +51,14 @@ const containsTransform = (query) => {
55
51
  * If there is only one value, we can create a simple Contains condition
56
52
  */
57
53
  if (values.length === 1) {
58
- return (0, exports.containsDuckdbCondition)(member, values[0], memberInfo);
54
+ return (0, exports.containsDuckdbCondition)(member, values[0], memberInfo, options);
59
55
  }
60
56
  /**
61
57
  * If there are multiple values, we need to create an OR condition
62
58
  */
63
59
  const orCondition = (0, or_1.orDuckdbCondition)();
64
60
  values.forEach((value) => {
65
- orCondition.children.push((0, exports.containsDuckdbCondition)(member, value, memberInfo));
61
+ orCondition.children.push((0, exports.containsDuckdbCondition)(member, value, memberInfo, options));
66
62
  });
67
63
  return orCondition;
68
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"contains.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/contains/contains.ts"],"names":[],"mappings":";;;AAAA,sFAAyF;AAGzF,iEAA0E;AAC1E,gGAGyE;AACzE,6FAAgF;AAEhF,iCAA6C;AAC7C,mFAA8E;AAEvE,MAAM,uBAAuB,GAAG,CACrC,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,uBAAuB,2BAmClC;AAEK,MAAM,iBAAiB,GAAmC,CAAC,KAAK,EAAE,EAAE;IACzE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAErC,sDAAsD;IACtD,IAAI,IAAA,mDAA2B,EAAC,KAAK,CAAC,EAAE;QACtC,OAAO,IAAA,2CAAmB,EAAC,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;KACrE;IAED,wBAAwB;IACxB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;KACjE;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAE5B;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,+BAAuB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;KAC/D;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,+BAAuB,EAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CACnD,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAhCW,QAAA,iBAAiB,qBAgC5B"}
1
+ {"version":3,"file":"contains.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/contains/contains.ts"],"names":[],"mappings":";;;AAAA,sFAAyF;AAGzF,gGAGyE;AACzE,6FAI0D;AAE1D,iCAA6C;AAC7C,mFAA8E;AAEvE,MAAM,uBAAuB,GAAG,CACrC,UAAkB,EAClB,KAAa,EACb,UAA+B,EAC/B,OAA+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,IAAA,wCAAe,EAAC,UAAU,EAAE;gBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC;YACF;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;AAjCW,QAAA,uBAAuB,2BAiClC;AAEK,MAAM,iBAAiB,GAAmC,CAC/D,KAAK,EACL,OAAO,EACP,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAErC,sDAAsD;IACtD,IAAI,IAAA,mDAA2B,EAAC,KAAK,CAAC,EAAE;QACtC,OAAO,IAAA,2CAAmB,EACxB,MAAM,EACN,KAAK,CAAC,aAAa,EACnB,UAAU,EACV,OAAO,CACR,CAAC;KACH;IAED,wBAAwB;IACxB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;KACjE;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAE5B;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,+BAAuB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;KACxE;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,+BAAuB,EAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAC5D,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAxCW,QAAA,iBAAiB,qBAwC5B"}
@@ -2,18 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.equalsArrayTransform = void 0;
4
4
  const cube_filter_to_duckdb_1 = require("../../cube-to-duckdb/cube-filter-to-duckdb");
5
- const constants_1 = require("../../member-formatters/constants");
6
5
  const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
7
6
  const ResultModifier_1 = require("../../types/duckdb-serialization-types/serialization/ResultModifier");
8
7
  const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
9
8
  const sql_expression_parser_1 = require("../sql-expression/sql-expression-parser");
10
- const equalsDuckDbCondition = (columnName, values, memberInfo) => {
11
- const columnRef = {
12
- class: Expression_1.ExpressionClass.COLUMN_REF,
13
- type: Expression_1.ExpressionType.COLUMN_REF,
14
- alias: '',
15
- column_names: columnName.split(constants_1.COLUMN_NAME_DELIMITER),
16
- };
9
+ const equalsDuckDbCondition = (columnName, values, memberInfo, options) => {
10
+ const columnRef = (0, base_condition_builder_1.createColumnRef)(columnName, {
11
+ isAlias: options.isAlias,
12
+ });
17
13
  const sqlTreeValues = values.map((value) => {
18
14
  const children = {
19
15
  class: Expression_1.ExpressionClass.CONSTANT,
@@ -59,11 +55,11 @@ const equalsDuckDbCondition = (columnName, values, memberInfo) => {
59
55
  };
60
56
  return sqlTree;
61
57
  };
62
- const equalsArrayTransform = (query) => {
58
+ const equalsArrayTransform = (query, options) => {
63
59
  const { member, memberInfo } = query;
64
60
  // SQL expressions not supported for equals operator
65
61
  if ((0, cube_filter_to_duckdb_1.isQueryOperatorsWithSQLInfo)(query)) {
66
- return (0, sql_expression_parser_1.getSQLExpressionAST)(member, query.sqlExpression, 'equals');
62
+ return (0, sql_expression_parser_1.getSQLExpressionAST)(member, query.sqlExpression, 'equals', options);
67
63
  }
68
64
  /**
69
65
  * If there is only one value, we can create a simple equals condition
@@ -71,7 +67,7 @@ const equalsArrayTransform = (query) => {
71
67
  if (!query.values) {
72
68
  throw new Error('In filter must have at least one value');
73
69
  }
74
- return equalsDuckDbCondition(member, query.values, memberInfo);
70
+ return equalsDuckDbCondition(member, query.values, memberInfo, options);
75
71
  };
76
72
  exports.equalsArrayTransform = equalsArrayTransform;
77
73
  //# sourceMappingURL=equals-array.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"equals-array.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/equals/equals-array.ts"],"names":[],"mappings":";;;AAAA,sFAAyF;AACzF,iEAA0E;AAE1E,gGAGyE;AACzE,wGAAyG;AACzG,6FAAgF;AAEhF,mFAA8E;AAE9E,MAAM,qBAAqB,GAAG,CAC5B,UAAkB,EAClB,MAAgB,EAChB,UAA+B,EAC/B,EAAE;IACF,MAAM,SAAS,GAAG;QAChB,KAAK,EAAE,4BAAe,CAAC,UAAU;QACjC,IAAI,EAAE,2BAAc,CAAC,UAAU;QAC/B,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,iCAAqB,CAAC;KACtD,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,QAAQ,GAAG;YACf,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;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG;QACxB,KAAK,EAAE,4BAAe,CAAC,QAAQ;QAC/B,IAAI,EAAE,2BAAc,CAAC,QAAQ;QAC7B,KAAK,EAAE,EAAE;QACT,aAAa,EAAE,YAAY;QAC3B,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,aAAa;QACvB,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,mCAAkB,CAAC,cAAc;YACvC,MAAM,EAAE,EAAE;SACX;QACD,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,4BAAe,CAAC,QAAQ;QAC/B,IAAI,EAAE,2BAAc,CAAC,QAAQ;QAC7B,KAAK,EAAE,EAAE;QACT,aAAa,EAAE,cAAc;QAC7B,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC;QACxC,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,mCAAkB,CAAC,cAAc;YACvC,MAAM,EAAE,EAAE;SACX;QACD,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,EAAE;KACZ,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEK,MAAM,oBAAoB,GAAmC,CAAC,KAAK,EAAE,EAAE;IAC5E,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAErC,oDAAoD;IACpD,IAAI,IAAA,mDAA2B,EAAC,KAAK,CAAC,EAAE;QACtC,OAAO,IAAA,2CAAmB,EAAC,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;KACnE;IAED;;OAEG;IACH,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IACD,OAAO,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACjE,CAAC,CAAC;AAfW,QAAA,oBAAoB,wBAe/B"}
1
+ {"version":3,"file":"equals-array.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/equals/equals-array.ts"],"names":[],"mappings":";;;AAAA,sFAAyF;AAEzF,gGAGyE;AACzE,wGAAyG;AACzG,6FAI0D;AAE1D,mFAA8E;AAE9E,MAAM,qBAAqB,GAAG,CAC5B,UAAkB,EAClB,MAAgB,EAChB,UAA+B,EAC/B,OAA+B,EAC/B,EAAE;IACF,MAAM,SAAS,GAAG,IAAA,wCAAe,EAAC,UAAU,EAAE;QAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,QAAQ,GAAG;YACf,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;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG;QACxB,KAAK,EAAE,4BAAe,CAAC,QAAQ;QAC/B,IAAI,EAAE,2BAAc,CAAC,QAAQ;QAC7B,KAAK,EAAE,EAAE;QACT,aAAa,EAAE,YAAY;QAC3B,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,aAAa;QACvB,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,mCAAkB,CAAC,cAAc;YACvC,MAAM,EAAE,EAAE;SACX;QACD,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,4BAAe,CAAC,QAAQ;QAC/B,IAAI,EAAE,2BAAc,CAAC,QAAQ;QAC7B,KAAK,EAAE,EAAE;QACT,aAAa,EAAE,cAAc;QAC7B,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC;QACxC,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE;YACT,IAAI,EAAE,mCAAkB,CAAC,cAAc;YACvC,MAAM,EAAE,EAAE;SACX;QACD,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,EAAE;KACZ,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEK,MAAM,oBAAoB,GAAmC,CAClE,KAAK,EACL,OAAO,EACP,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAErC,oDAAoD;IACpD,IAAI,IAAA,mDAA2B,EAAC,KAAK,CAAC,EAAE;QACtC,OAAO,IAAA,2CAAmB,EAAC,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC5E;IAED;;OAEG;IACH,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;KAC3D;IACD,OAAO,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC,CAAC;AAlBW,QAAA,oBAAoB,wBAkB/B"}
@@ -8,18 +8,18 @@ const and_1 = require("../and/and");
8
8
  const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
9
9
  const sql_expression_parser_1 = require("../sql-expression/sql-expression-parser");
10
10
  const equals_array_1 = require("./equals-array");
11
- const equalsTransform = (query) => {
11
+ const equalsTransform = (query, options) => {
12
12
  const { member, memberInfo } = query;
13
13
  // SQL expressions not supported for equals operator
14
14
  if ((0, cube_filter_to_duckdb_1.isQueryOperatorsWithSQLInfo)(query)) {
15
- return (0, sql_expression_parser_1.getSQLExpressionAST)(member, query.sqlExpression, 'equals');
15
+ return (0, sql_expression_parser_1.getSQLExpressionAST)(member, query.sqlExpression, 'equals', options);
16
16
  }
17
17
  const values = query.values;
18
18
  /**
19
19
  * If the member is an array, we need to use the array transform
20
20
  */
21
21
  if ((0, is_array_member_type_1.isArrayTypeMember)(memberInfo.type)) {
22
- return (0, equals_array_1.equalsArrayTransform)(query);
22
+ return (0, equals_array_1.equalsArrayTransform)(query, options);
23
23
  }
24
24
  if (!values || values.length === 0) {
25
25
  throw new Error('Equals filter must have at least one value');
@@ -28,14 +28,14 @@ const equalsTransform = (query) => {
28
28
  * If there is only one value, we can create a simple equals condition
29
29
  */
30
30
  if (values.length === 1) {
31
- return (0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_EQUAL, values[0], query.memberInfo);
31
+ return (0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_EQUAL, values[0], query.memberInfo, options);
32
32
  }
33
33
  /**
34
34
  * If there are multiple values, we need to create an AND condition
35
35
  */
36
36
  const andCondition = (0, and_1.andDuckdbCondition)();
37
37
  values.forEach((value) => {
38
- andCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_EQUAL, value, query.memberInfo));
38
+ andCondition.children.push((0, base_condition_builder_1.baseDuckdbCondition)(member, Expression_1.ExpressionType.COMPARE_EQUAL, value, query.memberInfo, options));
39
39
  });
40
40
  return andCondition;
41
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"equals.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/equals/equals.ts"],"names":[],"mappings":";;;AAAA,sFAAyF;AACzF,gGAAiG;AACjG,2EAAqE;AACrE,oCAAgD;AAChD,6FAAuF;AAEvF,mFAA8E;AAC9E,iDAAsD;AAE/C,MAAM,eAAe,GAAmC,CAAC,KAAK,EAAE,EAAE;IACvE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAErC,oDAAoD;IACpD,IAAI,IAAA,mDAA2B,EAAC,KAAK,CAAC,EAAE;QACtC,OAAO,IAAA,2CAAmB,EAAC,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;KACnE;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAE5B;;OAEG;IACH,IAAI,IAAA,wCAAiB,EAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACtC,OAAO,IAAA,mCAAoB,EAAC,KAAK,CAAC,CAAC;KACpC;IACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KAC/D;IACD;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,4CAAmB,EACxB,MAAM,EACN,2BAAc,CAAC,aAAa,EAC5B,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,CACjB,CAAC;KACH;IAED;;OAEG;IACH,MAAM,YAAY,GAAG,IAAA,wBAAkB,GAAE,CAAC;IAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,YAAY,CAAC,QAAQ,CAAC,IAAI,CACxB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,aAAa,EAC5B,KAAK,EACL,KAAK,CAAC,UAAU,CACjB,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AA9CW,QAAA,eAAe,mBA8C1B"}
1
+ {"version":3,"file":"equals.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/equals/equals.ts"],"names":[],"mappings":";;;AAAA,sFAAyF;AACzF,gGAAiG;AACjG,2EAAqE;AACrE,oCAAgD;AAChD,6FAAuF;AAEvF,mFAA8E;AAC9E,iDAAsD;AAE/C,MAAM,eAAe,GAAmC,CAC7D,KAAK,EACL,OAAO,EACP,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAErC,oDAAoD;IACpD,IAAI,IAAA,mDAA2B,EAAC,KAAK,CAAC,EAAE;QACtC,OAAO,IAAA,2CAAmB,EAAC,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC5E;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAE5B;;OAEG;IACH,IAAI,IAAA,wCAAiB,EAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACtC,OAAO,IAAA,mCAAoB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KAC7C;IACD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KAC/D;IACD;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAA,4CAAmB,EACxB,MAAM,EACN,2BAAc,CAAC,aAAa,EAC5B,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,UAAU,EAChB,OAAO,CACR,CAAC;KACH;IAED;;OAEG;IACH,MAAM,YAAY,GAAG,IAAA,wBAAkB,GAAE,CAAC;IAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,YAAY,CAAC,QAAQ,CAAC,IAAI,CACxB,IAAA,4CAAmB,EACjB,MAAM,EACN,2BAAc,CAAC,aAAa,EAC5B,KAAK,EACL,KAAK,CAAC,UAAU,EAChB,OAAO,CACR,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAnDW,QAAA,eAAe,mBAmD1B"}
@@ -1,5 +1,6 @@
1
1
  import { QueryFiltersWithInfo, QueryOperatorsWithInfo } from '../cube-to-duckdb/cube-filter-to-duckdb';
2
2
  import { ParsedExpression } from '../types/duckdb-serialization-types/serialization/ParsedExpression';
3
3
  import { SelectStatement } from '../types/duckdb-serialization-types/serialization/Statement';
4
- export type CubeToParseExpressionTransform = (query: QueryOperatorsWithInfo) => ParsedExpression;
5
- export declare const cubeFilterToDuckdbAST: (cubeFilter: QueryFiltersWithInfo, ast: SelectStatement) => ParsedExpression | null;
4
+ import { CreateColumnRefOptions } from './base-condition-builder/base-condition-builder';
5
+ export type CubeToParseExpressionTransform = (query: QueryOperatorsWithInfo, options: CreateColumnRefOptions) => ParsedExpression;
6
+ export declare const cubeFilterToDuckdbAST: (cubeFilter: QueryFiltersWithInfo, ast: SelectStatement, options: CreateColumnRefOptions) => ParsedExpression | null;