@devrev/meerkat-core 0.0.85 → 0.0.87
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 +1 -1
- package/src/ast-validator/index.d.ts +1 -0
- package/src/ast-validator/index.js +4 -0
- package/src/ast-validator/index.js.map +1 -1
- package/src/ast-validator/tests/test-data.d.ts +18 -0
- package/src/ast-validator/tests/test-data.js +67 -6
- package/src/ast-validator/tests/test-data.js.map +1 -1
- package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js +3 -2
- package/src/cube-filter-transformer/base-condition-builder/base-condition-builder.js.map +1 -1
- package/src/cube-filter-transformer/constant.d.ts +1 -0
- package/src/cube-filter-transformer/constant.js +10 -0
- package/src/cube-filter-transformer/constant.js.map +1 -0
- package/src/cube-filter-transformer/contains/contains.js +2 -1
- package/src/cube-filter-transformer/contains/contains.js.map +1 -1
- package/src/cube-filter-transformer/in/in.d.ts +1 -1
- package/src/cube-filter-transformer/in/in.js +22 -21
- package/src/cube-filter-transformer/in/in.js.map +1 -1
- package/src/cube-filter-transformer/not-contains/not-contains.d.ts +1 -1
- package/src/cube-filter-transformer/not-contains/not-contains.js +2 -1
- package/src/cube-filter-transformer/not-contains/not-contains.js.map +1 -1
- package/src/cube-filter-transformer/not-in/not-in.d.ts +1 -1
- package/src/cube-filter-transformer/not-in/not-in.js +23 -22
- package/src/cube-filter-transformer/not-in/not-in.js.map +1 -1
- package/src/cube-filter-transformer/not-set/not-set.d.ts +1 -1
- package/src/cube-filter-transformer/not-set/not-set.js +6 -5
- package/src/cube-filter-transformer/not-set/not-set.js.map +1 -1
- package/src/cube-filter-transformer/set/set.d.ts +1 -1
- package/src/cube-filter-transformer/set/set.js +6 -5
- package/src/cube-filter-transformer/set/set.js.map +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/utils/get-column-names-from-ast.d.ts +2 -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/package.json
CHANGED
|
@@ -11,11 +11,15 @@ _export(exports, {
|
|
|
11
11
|
},
|
|
12
12
|
validateMeasure: function() {
|
|
13
13
|
return _measurevalidator.validateMeasure;
|
|
14
|
+
},
|
|
15
|
+
getSelectNode: function() {
|
|
16
|
+
return _utils.getSelectNode;
|
|
14
17
|
}
|
|
15
18
|
});
|
|
16
19
|
const _export_star = require("@swc/helpers/_/_export_star");
|
|
17
20
|
const _dimensionvalidator = require("./dimension-validator");
|
|
18
21
|
const _measurevalidator = require("./measure-validator");
|
|
19
22
|
_export_star._(require("./types"), exports);
|
|
23
|
+
const _utils = require("./utils");
|
|
20
24
|
|
|
21
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../meerkat-core/src/ast-validator/index.ts"],"sourcesContent":["export { validateDimension } from './dimension-validator';\nexport { validateMeasure } from './measure-validator';\nexport * from './types';\n"],"names":["validateDimension","validateMeasure"],"mappings":";;;;;;;;IAASA,iBAAiB;eAAjBA,qCAAiB;;IACjBC,eAAe;eAAfA,iCAAe;;;;
|
|
1
|
+
{"version":3,"sources":["../../../../meerkat-core/src/ast-validator/index.ts"],"sourcesContent":["export { validateDimension } from './dimension-validator';\nexport { validateMeasure } from './measure-validator';\nexport * from './types';\nexport { getSelectNode } from './utils';\n"],"names":["validateDimension","validateMeasure","getSelectNode"],"mappings":";;;;;;;;IAASA,iBAAiB;eAAjBA,qCAAiB;;IACjBC,eAAe;eAAfA,iCAAe;;IAEfC,aAAa;eAAbA,oBAAa;;;;oCAHY;kCACF;uBAClB;uBACgB"}
|
|
@@ -28,11 +28,13 @@ export declare const DIMENSION_TEST_CASES: ({
|
|
|
28
28
|
else_expr?: undefined;
|
|
29
29
|
};
|
|
30
30
|
validFunctions: Set<string>;
|
|
31
|
+
columnNames: string[];
|
|
31
32
|
expected: boolean;
|
|
32
33
|
} | {
|
|
33
34
|
description: string;
|
|
34
35
|
node: import("../../types/duckdb-serialization-types").ColumnRefExpression;
|
|
35
36
|
validFunctions: Set<string>;
|
|
37
|
+
columnNames: string[];
|
|
36
38
|
expected: boolean;
|
|
37
39
|
} | {
|
|
38
40
|
description: string;
|
|
@@ -57,6 +59,7 @@ export declare const DIMENSION_TEST_CASES: ({
|
|
|
57
59
|
case_checks?: undefined;
|
|
58
60
|
else_expr?: undefined;
|
|
59
61
|
};
|
|
62
|
+
columnNames: never[];
|
|
60
63
|
validFunctions: Set<string>;
|
|
61
64
|
expected: boolean;
|
|
62
65
|
} | {
|
|
@@ -91,6 +94,7 @@ export declare const DIMENSION_TEST_CASES: ({
|
|
|
91
94
|
else_expr?: undefined;
|
|
92
95
|
};
|
|
93
96
|
validFunctions: Set<string>;
|
|
97
|
+
columnNames: string[];
|
|
94
98
|
expected: boolean;
|
|
95
99
|
} | {
|
|
96
100
|
description: string;
|
|
@@ -137,9 +141,11 @@ export declare const DIMENSION_TEST_CASES: ({
|
|
|
137
141
|
else_expr?: undefined;
|
|
138
142
|
};
|
|
139
143
|
validFunctions: Set<string>;
|
|
144
|
+
columnNames: string[];
|
|
140
145
|
expected: boolean;
|
|
141
146
|
} | {
|
|
142
147
|
description: string;
|
|
148
|
+
columnNames: string[];
|
|
143
149
|
node: {
|
|
144
150
|
class: ExpressionClass;
|
|
145
151
|
type: ExpressionType;
|
|
@@ -189,6 +195,7 @@ export declare const DIMENSION_TEST_CASES: ({
|
|
|
189
195
|
expected: boolean;
|
|
190
196
|
} | {
|
|
191
197
|
description: string;
|
|
198
|
+
columnNames: string[];
|
|
192
199
|
node: {
|
|
193
200
|
class: ExpressionClass;
|
|
194
201
|
type: ExpressionType;
|
|
@@ -289,6 +296,7 @@ export declare const MEASURE_TEST_CASES: ({
|
|
|
289
296
|
};
|
|
290
297
|
validFunctions: Set<string>;
|
|
291
298
|
validScalarFunctions: Set<string>;
|
|
299
|
+
columnNames: never[];
|
|
292
300
|
expected: boolean;
|
|
293
301
|
error?: undefined;
|
|
294
302
|
} | {
|
|
@@ -335,6 +343,7 @@ export declare const MEASURE_TEST_CASES: ({
|
|
|
335
343
|
};
|
|
336
344
|
validFunctions: Set<string>;
|
|
337
345
|
validScalarFunctions: Set<string>;
|
|
346
|
+
columnNames: string[];
|
|
338
347
|
expected: boolean;
|
|
339
348
|
error?: undefined;
|
|
340
349
|
} | {
|
|
@@ -383,8 +392,10 @@ export declare const MEASURE_TEST_CASES: ({
|
|
|
383
392
|
validScalarFunctions: Set<string>;
|
|
384
393
|
error: string;
|
|
385
394
|
expected: string;
|
|
395
|
+
columnNames: string[];
|
|
386
396
|
} | {
|
|
387
397
|
description: string;
|
|
398
|
+
columnNames: string[];
|
|
388
399
|
query: string;
|
|
389
400
|
node: {
|
|
390
401
|
class: ExpressionClass;
|
|
@@ -473,6 +484,7 @@ export declare const MEASURE_TEST_CASES: ({
|
|
|
473
484
|
} | {
|
|
474
485
|
description: string;
|
|
475
486
|
query: string;
|
|
487
|
+
columnNames: string[];
|
|
476
488
|
node: {
|
|
477
489
|
class: ExpressionClass;
|
|
478
490
|
type: ExpressionType;
|
|
@@ -591,6 +603,7 @@ export declare const MEASURE_TEST_CASES: ({
|
|
|
591
603
|
error?: undefined;
|
|
592
604
|
} | {
|
|
593
605
|
description: string;
|
|
606
|
+
columnNames: string[];
|
|
594
607
|
node: {
|
|
595
608
|
class: ExpressionClass;
|
|
596
609
|
type: ExpressionType;
|
|
@@ -718,6 +731,7 @@ export declare const MEASURE_TEST_CASES: ({
|
|
|
718
731
|
error?: undefined;
|
|
719
732
|
} | {
|
|
720
733
|
description: string;
|
|
734
|
+
columnNames: string[];
|
|
721
735
|
node: {
|
|
722
736
|
class: ExpressionClass;
|
|
723
737
|
type: ExpressionType;
|
|
@@ -823,6 +837,7 @@ export declare const MEASURE_TEST_CASES: ({
|
|
|
823
837
|
} | {
|
|
824
838
|
description: string;
|
|
825
839
|
query: string;
|
|
840
|
+
columnNames: string[];
|
|
826
841
|
node: {
|
|
827
842
|
class: ExpressionClass;
|
|
828
843
|
type: ExpressionType;
|
|
@@ -1093,6 +1108,7 @@ export declare const MEASURE_TEST_CASES: ({
|
|
|
1093
1108
|
} | {
|
|
1094
1109
|
description: string;
|
|
1095
1110
|
query: string;
|
|
1111
|
+
columnNames: string[];
|
|
1096
1112
|
node: {
|
|
1097
1113
|
class: ExpressionClass;
|
|
1098
1114
|
type: ExpressionType;
|
|
@@ -1196,6 +1212,7 @@ export declare const MEASURE_TEST_CASES: ({
|
|
|
1196
1212
|
} | {
|
|
1197
1213
|
description: string;
|
|
1198
1214
|
query: string;
|
|
1215
|
+
columnNames: string[];
|
|
1199
1216
|
node: {
|
|
1200
1217
|
class: ExpressionClass;
|
|
1201
1218
|
type: ExpressionType;
|
|
@@ -1300,6 +1317,7 @@ export declare const MEASURE_TEST_CASES: ({
|
|
|
1300
1317
|
error?: undefined;
|
|
1301
1318
|
} | {
|
|
1302
1319
|
description: string;
|
|
1320
|
+
columnNames: string[];
|
|
1303
1321
|
query: string;
|
|
1304
1322
|
node: {
|
|
1305
1323
|
class: ExpressionClass;
|
|
@@ -61,12 +61,18 @@ const DIMENSION_TEST_CASES = [
|
|
|
61
61
|
]
|
|
62
62
|
},
|
|
63
63
|
validFunctions: EMPTY_VALID_FUNCTIONS,
|
|
64
|
+
columnNames: [
|
|
65
|
+
'column_name'
|
|
66
|
+
],
|
|
64
67
|
expected: true
|
|
65
68
|
},
|
|
66
69
|
{
|
|
67
70
|
description: 'node type COLUMN_REF with alias',
|
|
68
71
|
node: COLUMN_REF_NODE,
|
|
69
72
|
validFunctions: EMPTY_VALID_FUNCTIONS,
|
|
73
|
+
columnNames: [
|
|
74
|
+
'column_name'
|
|
75
|
+
],
|
|
70
76
|
expected: true
|
|
71
77
|
},
|
|
72
78
|
{
|
|
@@ -78,6 +84,7 @@ const DIMENSION_TEST_CASES = [
|
|
|
78
84
|
query_location: 0,
|
|
79
85
|
value: '1'
|
|
80
86
|
},
|
|
87
|
+
columnNames: [],
|
|
81
88
|
validFunctions: EMPTY_VALID_FUNCTIONS,
|
|
82
89
|
expected: true
|
|
83
90
|
},
|
|
@@ -94,7 +101,7 @@ const DIMENSION_TEST_CASES = [
|
|
|
94
101
|
alias: '',
|
|
95
102
|
query_location: 12,
|
|
96
103
|
column_names: [
|
|
97
|
-
'
|
|
104
|
+
'column_name1'
|
|
98
105
|
]
|
|
99
106
|
},
|
|
100
107
|
cast_type: {
|
|
@@ -103,6 +110,9 @@ const DIMENSION_TEST_CASES = [
|
|
|
103
110
|
try_cast: false
|
|
104
111
|
},
|
|
105
112
|
validFunctions: EMPTY_VALID_FUNCTIONS,
|
|
113
|
+
columnNames: [
|
|
114
|
+
'column_name1'
|
|
115
|
+
],
|
|
106
116
|
expected: true
|
|
107
117
|
},
|
|
108
118
|
{
|
|
@@ -119,7 +129,7 @@ const DIMENSION_TEST_CASES = [
|
|
|
119
129
|
alias: '',
|
|
120
130
|
query_location: 16,
|
|
121
131
|
column_names: [
|
|
122
|
-
'
|
|
132
|
+
'column_name2'
|
|
123
133
|
]
|
|
124
134
|
},
|
|
125
135
|
{
|
|
@@ -139,10 +149,16 @@ const DIMENSION_TEST_CASES = [
|
|
|
139
149
|
]
|
|
140
150
|
},
|
|
141
151
|
validFunctions: EMPTY_VALID_FUNCTIONS,
|
|
152
|
+
columnNames: [
|
|
153
|
+
'column_name2'
|
|
154
|
+
],
|
|
142
155
|
expected: true
|
|
143
156
|
},
|
|
144
157
|
{
|
|
145
158
|
description: 'node type FUNCTION with ROUND function and if it contains in validFunctions',
|
|
159
|
+
columnNames: [
|
|
160
|
+
'schema.column_name'
|
|
161
|
+
],
|
|
146
162
|
node: {
|
|
147
163
|
class: _Expression.ExpressionClass.FUNCTION,
|
|
148
164
|
type: _duckdbserializationtypes.ExpressionType.FUNCTION,
|
|
@@ -157,6 +173,7 @@ const DIMENSION_TEST_CASES = [
|
|
|
157
173
|
alias: '',
|
|
158
174
|
query_location: 13,
|
|
159
175
|
column_names: [
|
|
176
|
+
'schema',
|
|
160
177
|
'column_name'
|
|
161
178
|
]
|
|
162
179
|
},
|
|
@@ -189,6 +206,11 @@ const DIMENSION_TEST_CASES = [
|
|
|
189
206
|
},
|
|
190
207
|
{
|
|
191
208
|
description: 'node type CASE',
|
|
209
|
+
columnNames: [
|
|
210
|
+
'actual_close_date1',
|
|
211
|
+
'actual_close_date',
|
|
212
|
+
'created_date'
|
|
213
|
+
],
|
|
192
214
|
node: {
|
|
193
215
|
class: _Expression.ExpressionClass.CASE,
|
|
194
216
|
type: _duckdbserializationtypes.ExpressionType.CASE_EXPR,
|
|
@@ -226,7 +248,7 @@ const DIMENSION_TEST_CASES = [
|
|
|
226
248
|
alias: '',
|
|
227
249
|
query_location: 55,
|
|
228
250
|
column_names: [
|
|
229
|
-
'
|
|
251
|
+
'actual_close_date1'
|
|
230
252
|
]
|
|
231
253
|
}
|
|
232
254
|
}
|
|
@@ -266,6 +288,7 @@ const MEASURE_TEST_CASES = [
|
|
|
266
288
|
'count_star'
|
|
267
289
|
]),
|
|
268
290
|
validScalarFunctions: EMPTY_VALID_FUNCTIONS,
|
|
291
|
+
columnNames: [],
|
|
269
292
|
expected: true
|
|
270
293
|
},
|
|
271
294
|
{
|
|
@@ -301,6 +324,9 @@ const MEASURE_TEST_CASES = [
|
|
|
301
324
|
'sum'
|
|
302
325
|
]),
|
|
303
326
|
validScalarFunctions: EMPTY_VALID_FUNCTIONS,
|
|
327
|
+
columnNames: [
|
|
328
|
+
'column1'
|
|
329
|
+
],
|
|
304
330
|
expected: true
|
|
305
331
|
},
|
|
306
332
|
{
|
|
@@ -339,10 +365,16 @@ const MEASURE_TEST_CASES = [
|
|
|
339
365
|
'/'
|
|
340
366
|
]),
|
|
341
367
|
error: 'Invalid function type: sum',
|
|
342
|
-
expected: 'error'
|
|
368
|
+
expected: 'error',
|
|
369
|
+
columnNames: [
|
|
370
|
+
'column1'
|
|
371
|
+
]
|
|
343
372
|
},
|
|
344
373
|
{
|
|
345
374
|
description: 'node type FUNCTION with MAX and operator',
|
|
375
|
+
columnNames: [
|
|
376
|
+
'column1'
|
|
377
|
+
],
|
|
346
378
|
query: 'max(column1) / 1000',
|
|
347
379
|
node: {
|
|
348
380
|
class: _Expression.ExpressionClass.FUNCTION,
|
|
@@ -416,6 +448,10 @@ const MEASURE_TEST_CASES = [
|
|
|
416
448
|
{
|
|
417
449
|
description: 'node type CASE_EXPR',
|
|
418
450
|
query: 'CASE WHEN COUNT(id) > 1 THEN AVG(mtbf_hours) ELSE null END',
|
|
451
|
+
columnNames: [
|
|
452
|
+
'mtbf_hours',
|
|
453
|
+
'id'
|
|
454
|
+
],
|
|
419
455
|
node: {
|
|
420
456
|
class: _Expression.ExpressionClass.CASE,
|
|
421
457
|
type: _duckdbserializationtypes.ExpressionType.CASE_EXPR,
|
|
@@ -524,6 +560,10 @@ const MEASURE_TEST_CASES = [
|
|
|
524
560
|
},
|
|
525
561
|
{
|
|
526
562
|
description: 'node type FUNCTION with aggregation and case statement within',
|
|
563
|
+
columnNames: [
|
|
564
|
+
'modified_date',
|
|
565
|
+
'stage_json'
|
|
566
|
+
],
|
|
527
567
|
node: {
|
|
528
568
|
class: _Expression.ExpressionClass.FUNCTION,
|
|
529
569
|
type: _duckdbserializationtypes.ExpressionType.FUNCTION,
|
|
@@ -646,6 +686,10 @@ const MEASURE_TEST_CASES = [
|
|
|
646
686
|
},
|
|
647
687
|
{
|
|
648
688
|
description: 'node type FUNCTION two children of aggregation and operator operation on them',
|
|
689
|
+
columnNames: [
|
|
690
|
+
'mean_reciprocal_rank',
|
|
691
|
+
'total_queries'
|
|
692
|
+
],
|
|
649
693
|
node: {
|
|
650
694
|
class: _Expression.ExpressionClass.FUNCTION,
|
|
651
695
|
type: _duckdbserializationtypes.ExpressionType.FUNCTION,
|
|
@@ -762,6 +806,11 @@ const MEASURE_TEST_CASES = [
|
|
|
762
806
|
{
|
|
763
807
|
description: 'node type CAST',
|
|
764
808
|
query: "CAST(COUNT(DISTINCT(id)) AS FLOAT) / NULLIF(DATEDIFF('day', MIN(created_date), MAX(created_date)) / 7 + 1, 0)",
|
|
809
|
+
columnNames: [
|
|
810
|
+
'id',
|
|
811
|
+
'created_date',
|
|
812
|
+
'created_date1'
|
|
813
|
+
],
|
|
765
814
|
node: {
|
|
766
815
|
class: _Expression.ExpressionClass.FUNCTION,
|
|
767
816
|
type: _duckdbserializationtypes.ExpressionType.FUNCTION,
|
|
@@ -897,7 +946,7 @@ const MEASURE_TEST_CASES = [
|
|
|
897
946
|
alias: '',
|
|
898
947
|
query_location: 90,
|
|
899
948
|
column_names: [
|
|
900
|
-
'
|
|
949
|
+
'created_date1'
|
|
901
950
|
]
|
|
902
951
|
}
|
|
903
952
|
],
|
|
@@ -1023,6 +1072,9 @@ const MEASURE_TEST_CASES = [
|
|
|
1023
1072
|
{
|
|
1024
1073
|
description: 'node type COALESCE',
|
|
1025
1074
|
query: 'COALESCE(SUM(amount) FILTER(direction = "Income"), 0)',
|
|
1075
|
+
columnNames: [
|
|
1076
|
+
'amount'
|
|
1077
|
+
],
|
|
1026
1078
|
node: {
|
|
1027
1079
|
class: _Expression.ExpressionClass.OPERATOR,
|
|
1028
1080
|
type: _duckdbserializationtypes.ExpressionType.OPERATOR_COALESCE,
|
|
@@ -1107,6 +1159,9 @@ const MEASURE_TEST_CASES = [
|
|
|
1107
1159
|
{
|
|
1108
1160
|
description: 'node type WINDOW_AGGREGATE',
|
|
1109
1161
|
query: 'AVG(COUNT(column1)) OVER (ORDER BY (MEERKAT).record_date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW)',
|
|
1162
|
+
columnNames: [
|
|
1163
|
+
'column1'
|
|
1164
|
+
],
|
|
1110
1165
|
node: {
|
|
1111
1166
|
class: _Expression.ExpressionClass.WINDOW,
|
|
1112
1167
|
type: _duckdbserializationtypes.ExpressionType.WINDOW_AGGREGATE,
|
|
@@ -1130,7 +1185,7 @@ const MEASURE_TEST_CASES = [
|
|
|
1130
1185
|
alias: '',
|
|
1131
1186
|
query_location: 17,
|
|
1132
1187
|
column_names: [
|
|
1133
|
-
'
|
|
1188
|
+
'column1'
|
|
1134
1189
|
]
|
|
1135
1190
|
}
|
|
1136
1191
|
],
|
|
@@ -1218,6 +1273,12 @@ const MEASURE_TEST_CASES = [
|
|
|
1218
1273
|
},
|
|
1219
1274
|
{
|
|
1220
1275
|
description: 'node type SUBQUERY',
|
|
1276
|
+
columnNames: [
|
|
1277
|
+
'id',
|
|
1278
|
+
'sla_stage',
|
|
1279
|
+
'first_resp_time_arr',
|
|
1280
|
+
'total_first_resp_breaches_ever'
|
|
1281
|
+
],
|
|
1221
1282
|
query: "(SELECT CASE WHEN COUNT(DISTINCT CASE WHEN sla_stage = ''breached'' THEN id END) + COUNT(DISTINCT CASE WHEN sla_stage = ''completed'' AND ARRAY_LENGTH(first_resp_time_arr) > 0 AND (total_first_resp_breaches_ever = 0 OR total_first_resp_breaches_ever IS NULL) THEN id END) > 0 THEN 100 - (COUNT(DISTINCT CASE WHEN sla_stage = ''breached'' THEN id END) * 100.0 / (COUNT(DISTINCT CASE WHEN sla_stage = ''breached'' THEN id END) + COUNT(DISTINCT CASE WHEN sla_stage = ''completed'' AND ARRAY_LENGTH(first_resp_time_arr) > 0 AND (total_first_resp_breaches_ever = 0 OR total_first_resp_breaches_ever IS NULL) THEN id END))) ELSE NULL END AS result)",
|
|
1222
1283
|
node: {
|
|
1223
1284
|
class: _Expression.ExpressionClass.SUBQUERY,
|