@devrev/meerkat-core 0.0.104 → 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.104",
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,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"}