@devrev/meerkat-core 0.0.103 → 0.0.105

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devrev/meerkat-core",
3
- "version": "0.0.103",
3
+ "version": "0.0.105",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0"
6
6
  },
@@ -2,26 +2,27 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.inTransform = void 0;
4
4
  const constants_1 = require("../../member-formatters/constants");
5
+ const duckdb_serialization_types_1 = require("../../types/duckdb-serialization-types");
5
6
  const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
6
7
  const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
7
8
  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
9
  const columnRef = {
17
- class: 'COLUMN_REF',
18
- type: 'COLUMN_REF',
10
+ class: Expression_1.ExpressionClass.COLUMN_REF,
11
+ type: Expression_1.ExpressionType.COLUMN_REF,
19
12
  alias: '',
20
13
  column_names: columnName.split(constants_1.COLUMN_NAME_DELIMITER),
21
14
  };
22
15
  switch (memberInfo.type) {
23
16
  case 'number_array':
24
17
  case 'string_array': {
18
+ const sqlTreeValues = values.map((value) => {
19
+ return {
20
+ class: Expression_1.ExpressionClass.CONSTANT,
21
+ type: Expression_1.ExpressionType.VALUE_CONSTANT,
22
+ alias: '',
23
+ value: (0, base_condition_builder_1.valueBuilder)(value, memberInfo),
24
+ };
25
+ });
25
26
  return {
26
27
  class: Expression_1.ExpressionClass.FUNCTION,
27
28
  type: Expression_1.ExpressionType.FUNCTION,
@@ -48,7 +49,177 @@ const inDuckDbCondition = (columnName, values, memberInfo) => {
48
49
  catalog: '',
49
50
  };
50
51
  }
52
+ case 'string':
53
+ case 'number': {
54
+ /**
55
+ * Doing the string split optimization here because as the number of nodes in the AST increase,
56
+ * the time take to parse the AST increases, thereby increasing the time to generate the SQL.
57
+ */
58
+ const joinedValues = values.join(constants_1.STRING_ARRAY_DELIMITER);
59
+ return {
60
+ class: Expression_1.ExpressionClass.SUBQUERY,
61
+ type: Expression_1.ExpressionType.SUBQUERY,
62
+ alias: '',
63
+ subquery_type: duckdb_serialization_types_1.SubqueryType.ANY,
64
+ subquery: {
65
+ node: {
66
+ type: duckdb_serialization_types_1.QueryNodeType.SELECT_NODE,
67
+ modifiers: [],
68
+ cte_map: { map: [] },
69
+ select_list: [
70
+ // For numeric types, we need to CAST the string result to the appropriate type
71
+ memberInfo.type === 'number'
72
+ ? {
73
+ class: Expression_1.ExpressionClass.CAST,
74
+ type: Expression_1.ExpressionType.OPERATOR_CAST,
75
+ alias: '',
76
+ child: {
77
+ class: Expression_1.ExpressionClass.FUNCTION,
78
+ type: Expression_1.ExpressionType.FUNCTION,
79
+ alias: '',
80
+ function_name: 'unnest',
81
+ schema: '',
82
+ children: [
83
+ {
84
+ class: Expression_1.ExpressionClass.FUNCTION,
85
+ type: Expression_1.ExpressionType.FUNCTION,
86
+ alias: '',
87
+ function_name: 'string_split',
88
+ schema: '',
89
+ children: [
90
+ {
91
+ class: Expression_1.ExpressionClass.CONSTANT,
92
+ type: Expression_1.ExpressionType.VALUE_CONSTANT,
93
+ alias: '',
94
+ value: {
95
+ type: { id: 'VARCHAR', type_info: null },
96
+ is_null: false,
97
+ value: joinedValues,
98
+ },
99
+ },
100
+ {
101
+ class: Expression_1.ExpressionClass.CONSTANT,
102
+ type: Expression_1.ExpressionType.VALUE_CONSTANT,
103
+ alias: '',
104
+ value: {
105
+ type: { id: 'VARCHAR', type_info: null },
106
+ is_null: false,
107
+ value: constants_1.STRING_ARRAY_DELIMITER,
108
+ },
109
+ },
110
+ ],
111
+ filter: null,
112
+ order_bys: {
113
+ type: duckdb_serialization_types_1.ResultModifierType.ORDER_MODIFIER,
114
+ orders: [],
115
+ },
116
+ distinct: false,
117
+ is_operator: false,
118
+ export_state: false,
119
+ catalog: '',
120
+ },
121
+ ],
122
+ filter: null,
123
+ order_bys: {
124
+ type: duckdb_serialization_types_1.ResultModifierType.ORDER_MODIFIER,
125
+ orders: [],
126
+ },
127
+ distinct: false,
128
+ is_operator: false,
129
+ export_state: false,
130
+ catalog: '',
131
+ },
132
+ cast_type: {
133
+ id: 'DOUBLE',
134
+ type_info: null,
135
+ },
136
+ try_cast: false,
137
+ }
138
+ : {
139
+ class: Expression_1.ExpressionClass.FUNCTION,
140
+ type: Expression_1.ExpressionType.FUNCTION,
141
+ alias: '',
142
+ function_name: 'unnest',
143
+ schema: '',
144
+ children: [
145
+ {
146
+ class: Expression_1.ExpressionClass.FUNCTION,
147
+ type: Expression_1.ExpressionType.FUNCTION,
148
+ alias: '',
149
+ function_name: 'string_split',
150
+ schema: '',
151
+ children: [
152
+ {
153
+ class: Expression_1.ExpressionClass.CONSTANT,
154
+ type: Expression_1.ExpressionType.VALUE_CONSTANT,
155
+ alias: '',
156
+ value: {
157
+ type: { id: 'VARCHAR', type_info: null },
158
+ is_null: false,
159
+ value: joinedValues,
160
+ },
161
+ },
162
+ {
163
+ class: Expression_1.ExpressionClass.CONSTANT,
164
+ type: Expression_1.ExpressionType.VALUE_CONSTANT,
165
+ alias: '',
166
+ value: {
167
+ type: { id: 'VARCHAR', type_info: null },
168
+ is_null: false,
169
+ value: constants_1.STRING_ARRAY_DELIMITER,
170
+ },
171
+ },
172
+ ],
173
+ filter: null,
174
+ order_bys: {
175
+ type: duckdb_serialization_types_1.ResultModifierType.ORDER_MODIFIER,
176
+ orders: [],
177
+ },
178
+ distinct: false,
179
+ is_operator: false,
180
+ export_state: false,
181
+ catalog: '',
182
+ },
183
+ ],
184
+ filter: null,
185
+ order_bys: {
186
+ type: duckdb_serialization_types_1.ResultModifierType.ORDER_MODIFIER,
187
+ orders: [],
188
+ },
189
+ distinct: false,
190
+ is_operator: false,
191
+ export_state: false,
192
+ catalog: '',
193
+ },
194
+ ],
195
+ from_table: {
196
+ type: duckdb_serialization_types_1.TableReferenceType.EMPTY,
197
+ alias: '',
198
+ sample: null,
199
+ },
200
+ where_clause: null,
201
+ group_expressions: [],
202
+ group_sets: [],
203
+ aggregate_handling: duckdb_serialization_types_1.AggregateHandling.STANDARD_HANDLING,
204
+ having: null,
205
+ sample: null,
206
+ qualify: null,
207
+ },
208
+ },
209
+ child: columnRef,
210
+ comparison_type: Expression_1.ExpressionType.COMPARE_EQUAL,
211
+ };
212
+ }
51
213
  default: {
214
+ // For other types, use the standard COMPARE_IN approach
215
+ const sqlTreeValues = values.map((value) => {
216
+ return {
217
+ class: Expression_1.ExpressionClass.CONSTANT,
218
+ type: Expression_1.ExpressionType.VALUE_CONSTANT,
219
+ alias: '',
220
+ value: (0, base_condition_builder_1.valueBuilder)(value, memberInfo),
221
+ };
222
+ });
52
223
  return {
53
224
  class: Expression_1.ExpressionClass.OPERATOR,
54
225
  type: Expression_1.ExpressionType.COMPARE_IN,
@@ -60,7 +231,7 @@ const inDuckDbCondition = (columnName, values, memberInfo) => {
60
231
  };
61
232
  const inTransform = (query) => {
62
233
  const { member, values, memberInfo } = query;
63
- if (!values) {
234
+ if (!values || values.length === 0) {
64
235
  throw new Error('In filter must have at least one value');
65
236
  }
66
237
  return inDuckDbCondition(member, values, memberInfo);
@@ -1 +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"}
1
+ {"version":3,"file":"in.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/in/in.ts"],"names":[],"mappings":"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"}
@@ -2,26 +2,27 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.notInTransform = void 0;
4
4
  const constants_1 = require("../../member-formatters/constants");
5
+ const duckdb_serialization_types_1 = require("../../types/duckdb-serialization-types");
5
6
  const Expression_1 = require("../../types/duckdb-serialization-types/serialization/Expression");
6
7
  const base_condition_builder_1 = require("../base-condition-builder/base-condition-builder");
7
8
  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
9
  const columnRef = {
17
- class: 'COLUMN_REF',
18
- type: 'COLUMN_REF',
10
+ class: Expression_1.ExpressionClass.COLUMN_REF,
11
+ type: Expression_1.ExpressionType.COLUMN_REF,
19
12
  alias: '',
20
13
  column_names: columnName.split(constants_1.COLUMN_NAME_DELIMITER),
21
14
  };
22
15
  switch (memberInfo.type) {
23
16
  case 'number_array':
24
17
  case 'string_array': {
18
+ const sqlTreeValues = values.map((value) => {
19
+ return {
20
+ class: Expression_1.ExpressionClass.CONSTANT,
21
+ type: Expression_1.ExpressionType.VALUE_CONSTANT,
22
+ alias: '',
23
+ value: (0, base_condition_builder_1.valueBuilder)(value, memberInfo),
24
+ };
25
+ });
25
26
  return {
26
27
  class: Expression_1.ExpressionClass.OPERATOR,
27
28
  type: Expression_1.ExpressionType.OPERATOR_NOT,
@@ -44,7 +45,7 @@ const notInDuckDbCondition = (columnName, values, memberInfo) => {
44
45
  ],
45
46
  filter: null,
46
47
  order_bys: {
47
- type: 'ORDER_MODIFIER',
48
+ type: duckdb_serialization_types_1.ResultModifierType.ORDER_MODIFIER,
48
49
  orders: [],
49
50
  },
50
51
  distinct: false,
@@ -55,7 +56,184 @@ const notInDuckDbCondition = (columnName, values, memberInfo) => {
55
56
  ],
56
57
  };
57
58
  }
59
+ case 'string':
60
+ case 'number': {
61
+ /**
62
+ * Doing the string split optimization here because as the number of nodes in the AST increase,
63
+ * the time take to parse the AST increases, thereby increasing the time to generate the SQL.
64
+ */
65
+ const joinedValues = values.join(constants_1.STRING_ARRAY_DELIMITER);
66
+ return {
67
+ class: Expression_1.ExpressionClass.OPERATOR,
68
+ type: Expression_1.ExpressionType.OPERATOR_NOT,
69
+ alias: '',
70
+ children: [
71
+ {
72
+ class: Expression_1.ExpressionClass.SUBQUERY,
73
+ type: Expression_1.ExpressionType.SUBQUERY,
74
+ alias: '',
75
+ subquery_type: duckdb_serialization_types_1.SubqueryType.ANY,
76
+ subquery: {
77
+ node: {
78
+ type: duckdb_serialization_types_1.QueryNodeType.SELECT_NODE,
79
+ modifiers: [],
80
+ cte_map: { map: [] },
81
+ select_list: [
82
+ // For numeric types, we need to CAST the string result to the appropriate type
83
+ memberInfo.type === 'number'
84
+ ? {
85
+ class: Expression_1.ExpressionClass.CAST,
86
+ type: Expression_1.ExpressionType.OPERATOR_CAST,
87
+ alias: '',
88
+ child: {
89
+ class: Expression_1.ExpressionClass.FUNCTION,
90
+ type: Expression_1.ExpressionType.FUNCTION,
91
+ alias: '',
92
+ function_name: 'unnest',
93
+ schema: '',
94
+ children: [
95
+ {
96
+ class: Expression_1.ExpressionClass.FUNCTION,
97
+ type: Expression_1.ExpressionType.FUNCTION,
98
+ alias: '',
99
+ function_name: 'string_split',
100
+ schema: '',
101
+ children: [
102
+ {
103
+ class: Expression_1.ExpressionClass.CONSTANT,
104
+ type: Expression_1.ExpressionType.VALUE_CONSTANT,
105
+ alias: '',
106
+ value: {
107
+ type: { id: 'VARCHAR', type_info: null },
108
+ is_null: false,
109
+ value: joinedValues,
110
+ },
111
+ },
112
+ {
113
+ class: Expression_1.ExpressionClass.CONSTANT,
114
+ type: Expression_1.ExpressionType.VALUE_CONSTANT,
115
+ alias: '',
116
+ value: {
117
+ type: { id: 'VARCHAR', type_info: null },
118
+ is_null: false,
119
+ value: constants_1.STRING_ARRAY_DELIMITER,
120
+ },
121
+ },
122
+ ],
123
+ filter: null,
124
+ order_bys: {
125
+ type: duckdb_serialization_types_1.ResultModifierType.ORDER_MODIFIER,
126
+ orders: [],
127
+ },
128
+ distinct: false,
129
+ is_operator: false,
130
+ export_state: false,
131
+ catalog: '',
132
+ },
133
+ ],
134
+ filter: null,
135
+ order_bys: {
136
+ type: duckdb_serialization_types_1.ResultModifierType.ORDER_MODIFIER,
137
+ orders: [],
138
+ },
139
+ distinct: false,
140
+ is_operator: false,
141
+ export_state: false,
142
+ catalog: '',
143
+ },
144
+ cast_type: {
145
+ id: 'DOUBLE',
146
+ type_info: null,
147
+ },
148
+ try_cast: false,
149
+ }
150
+ : {
151
+ class: Expression_1.ExpressionClass.FUNCTION,
152
+ type: Expression_1.ExpressionType.FUNCTION,
153
+ alias: '',
154
+ function_name: 'unnest',
155
+ schema: '',
156
+ children: [
157
+ {
158
+ class: Expression_1.ExpressionClass.FUNCTION,
159
+ type: Expression_1.ExpressionType.FUNCTION,
160
+ alias: '',
161
+ function_name: 'string_split',
162
+ schema: '',
163
+ children: [
164
+ {
165
+ class: Expression_1.ExpressionClass.CONSTANT,
166
+ type: Expression_1.ExpressionType.VALUE_CONSTANT,
167
+ alias: '',
168
+ value: {
169
+ type: { id: 'VARCHAR', type_info: null },
170
+ is_null: false,
171
+ value: joinedValues,
172
+ },
173
+ },
174
+ {
175
+ class: Expression_1.ExpressionClass.CONSTANT,
176
+ type: Expression_1.ExpressionType.VALUE_CONSTANT,
177
+ alias: '',
178
+ value: {
179
+ type: { id: 'VARCHAR', type_info: null },
180
+ is_null: false,
181
+ value: constants_1.STRING_ARRAY_DELIMITER,
182
+ },
183
+ },
184
+ ],
185
+ filter: null,
186
+ order_bys: {
187
+ type: duckdb_serialization_types_1.ResultModifierType.ORDER_MODIFIER,
188
+ orders: [],
189
+ },
190
+ distinct: false,
191
+ is_operator: false,
192
+ export_state: false,
193
+ catalog: '',
194
+ },
195
+ ],
196
+ filter: null,
197
+ order_bys: {
198
+ type: duckdb_serialization_types_1.ResultModifierType.ORDER_MODIFIER,
199
+ orders: [],
200
+ },
201
+ distinct: false,
202
+ is_operator: false,
203
+ export_state: false,
204
+ catalog: '',
205
+ },
206
+ ],
207
+ from_table: {
208
+ type: duckdb_serialization_types_1.TableReferenceType.EMPTY,
209
+ alias: '',
210
+ sample: null,
211
+ },
212
+ where_clause: null,
213
+ group_expressions: [],
214
+ group_sets: [],
215
+ aggregate_handling: duckdb_serialization_types_1.AggregateHandling.STANDARD_HANDLING,
216
+ having: null,
217
+ sample: null,
218
+ qualify: null,
219
+ },
220
+ },
221
+ child: columnRef,
222
+ comparison_type: Expression_1.ExpressionType.COMPARE_EQUAL,
223
+ },
224
+ ],
225
+ };
226
+ }
58
227
  default: {
228
+ // For other types, use the standard COMPARE_NOT_IN approach
229
+ const sqlTreeValues = values.map((value) => {
230
+ return {
231
+ class: Expression_1.ExpressionClass.CONSTANT,
232
+ type: Expression_1.ExpressionType.VALUE_CONSTANT,
233
+ alias: '',
234
+ value: (0, base_condition_builder_1.valueBuilder)(value, memberInfo),
235
+ };
236
+ });
59
237
  return {
60
238
  class: Expression_1.ExpressionClass.OPERATOR,
61
239
  type: Expression_1.ExpressionType.COMPARE_NOT_IN,
@@ -67,7 +245,7 @@ const notInDuckDbCondition = (columnName, values, memberInfo) => {
67
245
  };
68
246
  const notInTransform = (query) => {
69
247
  const { member, values, memberInfo } = query;
70
- if (!values) {
248
+ if (!values || values.length === 0) {
71
249
  throw new Error('Not in filter must have at least one value');
72
250
  }
73
251
  return notInDuckDbCondition(member, values, memberInfo);
@@ -1 +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"}
1
+ {"version":3,"file":"not-in.js","sourceRoot":"","sources":["../../../../../meerkat-core/src/cube-filter-transformer/not-in/not-in.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { FilterType, MeerkatQueryFilter, Query, QueryFilter, TableSchema } from '../types/cube-types';
2
2
  import { SelectStatement } from '../types/duckdb-serialization-types/serialization/Statement';
3
+ export declare const traverseMeerkatQueryFilter: (filters: MeerkatQueryFilter[], callback: (value: QueryFilter) => void) => void;
3
4
  /**
4
5
  * Get the query filter with only where filterKey matches
5
6
  */
@@ -1,7 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.applyFilterParamsToBaseSQL = exports.getFilterParamsAST = exports.detectAllFilterParamsFromSQL = exports.getFilterByMemberKey = exports.traverseAndFilter = void 0;
3
+ exports.applyFilterParamsToBaseSQL = exports.getFilterParamsAST = exports.detectAllFilterParamsFromSQL = exports.getFilterByMemberKey = exports.traverseAndFilter = exports.traverseMeerkatQueryFilter = void 0;
4
4
  const ast_builder_1 = require("../ast-builder/ast-builder");
5
+ /*
6
+ ** This function traverse the MeerkatQueryFilter JSON, and calls the callback for each leaf type.
7
+ ** This way we need no rewrite the traversal logic again and again.
8
+ */
9
+ const traverseMeerkatQueryFilter = (filters, callback) => {
10
+ filters.forEach((filter) => {
11
+ if ('member' in filter) {
12
+ callback(filter);
13
+ return;
14
+ }
15
+ if ('and' in filter) {
16
+ filter.and.forEach((subFilter) => (0, exports.traverseMeerkatQueryFilter)([subFilter], callback));
17
+ }
18
+ if ('or' in filter) {
19
+ filter.or.forEach((subFilter) => (0, exports.traverseMeerkatQueryFilter)([subFilter], callback));
20
+ }
21
+ });
22
+ };
23
+ exports.traverseMeerkatQueryFilter = traverseMeerkatQueryFilter;
5
24
  /**
6
25
  * Get the query filter with only where filterKey matches
7
26
  */
@@ -67,7 +86,7 @@ const getFilterParamsAST = (query, tableSchema, filterType = 'PROJECTION_FILTER'
67
86
  memberKey: filterParamKey.memberKey,
68
87
  matchKey: filterParamKey.matchKey,
69
88
  ast: (0, ast_builder_1.cubeToDuckdbAST)({ filters, measures: [], dimensions: [] }, tableSchema, {
70
- filterType
89
+ filterType,
71
90
  }),
72
91
  });
73
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filter-params-ast.js","sourceRoot":"","sources":["../../../../meerkat-core/src/filter-params/filter-params-ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter-params-ast.js","sourceRoot":"","sources":["../../../../meerkat-core/src/filter-params/filter-params-ast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Query, TableSchema } from '../types/cube-types';
2
+ export declare const getUsedTableSchema: (tableSchema: TableSchema[], cubeQuery: Query) => TableSchema[];
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUsedTableSchema = void 0;
4
+ const filter_params_ast_1 = require("../filter-params/filter-params-ast");
5
+ const split_into_data_source_and_fields_1 = require("../member-formatters/split-into-data-source-and-fields");
6
+ const getUsedTableSchema = (tableSchema, cubeQuery) => {
7
+ var _a;
8
+ if ((_a = cubeQuery.joinPaths) === null || _a === void 0 ? void 0 : _a.length) {
9
+ return tableSchema;
10
+ }
11
+ const getTableFromMember = (member) => {
12
+ return (0, split_into_data_source_and_fields_1.splitIntoDataSourceAndFields)(member)[0];
13
+ };
14
+ // Get all tables mentioned in filters
15
+ const usedTables = new Set();
16
+ (0, filter_params_ast_1.traverseMeerkatQueryFilter)(cubeQuery.filters || [], (filter) => {
17
+ usedTables.add(getTableFromMember(filter.member));
18
+ });
19
+ // Add tables from measures
20
+ if (cubeQuery.measures && cubeQuery.measures.length > 0) {
21
+ cubeQuery.measures.forEach((measure) => {
22
+ if (measure === '*') {
23
+ tableSchema.forEach((schema) => {
24
+ usedTables.add(schema.name);
25
+ });
26
+ }
27
+ else {
28
+ usedTables.add(getTableFromMember(measure));
29
+ }
30
+ });
31
+ }
32
+ // Add tables from dimensions
33
+ if (cubeQuery.dimensions && cubeQuery.dimensions.length > 0) {
34
+ cubeQuery.dimensions.forEach((dimension) => {
35
+ usedTables.add(getTableFromMember(dimension));
36
+ });
37
+ }
38
+ // Add tables from order
39
+ if (cubeQuery.order) {
40
+ Object.keys(cubeQuery.order).forEach((orderKey) => {
41
+ usedTables.add(getTableFromMember(orderKey));
42
+ });
43
+ }
44
+ // Filter table schema to only include used tables
45
+ const filteredSchema = tableSchema.filter((schema) => usedTables.has(schema.name));
46
+ return filteredSchema;
47
+ };
48
+ exports.getUsedTableSchema = getUsedTableSchema;
49
+ //# sourceMappingURL=get-used-table-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-used-table-schema.js","sourceRoot":"","sources":["../../../../meerkat-core/src/get-used-table-schema/get-used-table-schema.ts"],"names":[],"mappings":";;;AAAA,0EAAgF;AAChF,8GAAsG;AAG/F,MAAM,kBAAkB,GAAG,CAChC,WAA0B,EAC1B,SAAgB,EACD,EAAE;;IACjB,IAAI,MAAA,SAAS,CAAC,SAAS,0CAAE,MAAM,EAAE;QAC/B,OAAO,WAAW,CAAC;KACpB;IAED,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAU,EAAE;QACpD,OAAO,IAAA,gEAA4B,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,sCAAsC;IACtC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAErC,IAAA,8CAA0B,EAAC,SAAS,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,MAAmB,EAAE,EAAE;QAC1E,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACvD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACrC,IAAI,OAAO,KAAK,GAAG,EAAE;gBACnB,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC7B,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;aAC7C;QACH,CAAC,CAAC,CAAC;KACJ;IAED,6BAA6B;IAC7B,IAAI,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3D,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACzC,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;KACJ;IAED,wBAAwB;IACxB,IAAI,SAAS,CAAC,KAAK,EAAE;QACnB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChD,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;KACJ;IAED,kDAAkD;IAClD,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACnD,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAC5B,CAAC;IACF,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAnDW,QAAA,kBAAkB,sBAmD7B"}
@@ -19,4 +19,4 @@ export declare const createDirectedGraph: (tableSchema: TableSchema[], tableSche
19
19
  };
20
20
  };
21
21
  export declare const checkLoopInJoinPath: (joinPath: JoinPath[]) => boolean;
22
- export declare const getCombinedTableSchema: (tableSchema: TableSchema[], cubeQuery: Query) => Promise<TableSchema>;
22
+ export declare const getCombinedTableSchema: (tableSchema: TableSchema[], cubeQuery: Query) => TableSchema;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCombinedTableSchema = exports.checkLoopInJoinPath = exports.createDirectedGraph = exports.generateSqlQuery = void 0;
4
- const tslib_1 = require("tslib");
4
+ const get_used_table_schema_1 = require("../get-used-table-schema/get-used-table-schema");
5
5
  const cube_types_1 = require("../types/cube-types");
6
6
  function generateSqlQuery(path, tableSchemaSqlMap, directedGraph) {
7
7
  if (path.length === 0) {
@@ -128,20 +128,24 @@ const checkLoopInJoinPath = (joinPath) => {
128
128
  return false;
129
129
  };
130
130
  exports.checkLoopInJoinPath = checkLoopInJoinPath;
131
- const getCombinedTableSchema = (tableSchema, cubeQuery) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
131
+ const getCombinedTableSchema = (tableSchema, cubeQuery) => {
132
132
  if (tableSchema.length === 1) {
133
133
  return tableSchema[0];
134
134
  }
135
- const tableSchemaSqlMap = tableSchema.reduce((acc, schema) => {
135
+ const newTableSchema = (0, get_used_table_schema_1.getUsedTableSchema)(tableSchema, cubeQuery);
136
+ if (newTableSchema.length === 1) {
137
+ return newTableSchema[0];
138
+ }
139
+ const tableSchemaSqlMap = newTableSchema.reduce((acc, schema) => {
136
140
  return Object.assign(Object.assign({}, acc), { [schema.name]: schema.sql });
137
141
  }, {});
138
- const directedGraph = (0, exports.createDirectedGraph)(tableSchema, tableSchemaSqlMap);
142
+ const directedGraph = (0, exports.createDirectedGraph)(newTableSchema, tableSchemaSqlMap);
139
143
  const hasLoop = (0, exports.checkLoopInJoinPath)(cubeQuery.joinPaths || []);
140
144
  if (hasLoop) {
141
145
  throw new Error(`A loop was detected in the joins. ${JSON.stringify(cubeQuery.joinPaths || [])}`);
142
146
  }
143
147
  const baseSql = generateSqlQuery(cubeQuery.joinPaths || [], tableSchemaSqlMap, directedGraph);
144
- const combinedTableSchema = tableSchema.reduce((acc, schema) => {
148
+ const combinedTableSchema = newTableSchema.reduce((acc, schema) => {
145
149
  return {
146
150
  name: 'MEERKAT_GENERATED_TABLE',
147
151
  sql: baseSql,
@@ -157,6 +161,6 @@ const getCombinedTableSchema = (tableSchema, cubeQuery) => tslib_1.__awaiter(voi
157
161
  joins: [],
158
162
  });
159
163
  return combinedTableSchema;
160
- });
164
+ };
161
165
  exports.getCombinedTableSchema = getCombinedTableSchema;
162
166
  //# sourceMappingURL=joins.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"joins.js","sourceRoot":"","sources":["../../../../meerkat-core/src/joins/joins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"joins.js","sourceRoot":"","sources":["../../../../meerkat-core/src/joins/joins.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export declare const COLUMN_NAME_DELIMITER = ".";
2
2
  export declare const MEERKAT_OUTPUT_DELIMITER = "__";
3
+ export declare const STRING_ARRAY_DELIMITER = "\u00A7\u2021\u00B6";
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MEERKAT_OUTPUT_DELIMITER = exports.COLUMN_NAME_DELIMITER = void 0;
3
+ exports.STRING_ARRAY_DELIMITER = exports.MEERKAT_OUTPUT_DELIMITER = exports.COLUMN_NAME_DELIMITER = void 0;
4
4
  exports.COLUMN_NAME_DELIMITER = '.';
5
5
  exports.MEERKAT_OUTPUT_DELIMITER = '__';
6
+ // Multi-character delimiter using three different uncommon characters
7
+ // to minimize the chance of collision with real data
8
+ exports.STRING_ARRAY_DELIMITER = '§‡¶';
6
9
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../meerkat-core/src/member-formatters/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,GAAG,CAAC;AAC5B,QAAA,wBAAwB,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../meerkat-core/src/member-formatters/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,GAAG,CAAC;AAC5B,QAAA,wBAAwB,GAAG,IAAI,CAAC;AAE7C,sEAAsE;AACtE,qDAAqD;AACxC,QAAA,sBAAsB,GAAG,KAAK,CAAC"}