@devrev/meerkat-node 0.0.92 → 0.0.94

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 (33) hide show
  1. package/__tests__/test-data.js +1279 -0
  2. package/__tests__/test-data.js.map +1 -0
  3. package/cube-to-sql/cube-to-sql.js.map +1 -0
  4. package/duckdb-exec.js.map +1 -0
  5. package/duckdb-manager/duckdb-manager.js.map +1 -0
  6. package/duckdb-singleton.js.map +1 -0
  7. package/file-manager/file-manager.js.map +1 -0
  8. package/index.js.map +1 -0
  9. package/node-sql-to-serialization.js.map +1 -0
  10. package/package.json +4 -3
  11. package/src/__tests__/test-data.d.ts +10 -28
  12. package/utils/duckdb-type-convertor.js.map +1 -0
  13. package/utils/hash-string.js.map +1 -0
  14. package/src/__tests__/test-data.js +0 -1228
  15. package/src/__tests__/test-data.js.map +0 -1
  16. package/src/cube-to-sql/cube-to-sql.js.map +0 -1
  17. package/src/duckdb-exec.js.map +0 -1
  18. package/src/duckdb-manager/duckdb-manager.js.map +0 -1
  19. package/src/duckdb-singleton.js.map +0 -1
  20. package/src/file-manager/file-manager.js.map +0 -1
  21. package/src/index.js.map +0 -1
  22. package/src/node-sql-to-serialization.js.map +0 -1
  23. package/src/utils/duckdb-type-convertor.js.map +0 -1
  24. package/src/utils/hash-string.js.map +0 -1
  25. /package/{src/cube-to-sql → cube-to-sql}/cube-to-sql.js +0 -0
  26. /package/{src/duckdb-exec.js → duckdb-exec.js} +0 -0
  27. /package/{src/duckdb-manager → duckdb-manager}/duckdb-manager.js +0 -0
  28. /package/{src/duckdb-singleton.js → duckdb-singleton.js} +0 -0
  29. /package/{src/file-manager → file-manager}/file-manager.js +0 -0
  30. /package/{src/index.js → index.js} +0 -0
  31. /package/{src/node-sql-to-serialization.js → node-sql-to-serialization.js} +0 -0
  32. /package/{src/utils → utils}/duckdb-type-convertor.js +0 -0
  33. /package/{src/utils → utils}/hash-string.js +0 -0
@@ -0,0 +1,1279 @@
1
+ "use strict";
2
+ function _export(target, all) {
3
+ for(var name in all)Object.defineProperty(target, name, {
4
+ enumerable: true,
5
+ get: all[name]
6
+ });
7
+ }
8
+ _export(exports, {
9
+ CREATE_TEST_TABLE: function() {
10
+ return CREATE_TEST_TABLE;
11
+ },
12
+ INPUT_DATA_QUERY: function() {
13
+ return INPUT_DATA_QUERY;
14
+ },
15
+ TABLE_SCHEMA: function() {
16
+ return TABLE_SCHEMA;
17
+ },
18
+ TEST_DATA: function() {
19
+ return TEST_DATA;
20
+ }
21
+ });
22
+ const CREATE_TEST_TABLE = `
23
+ CREATE TABLE orders (
24
+ order_id INTEGER,
25
+ customer_id VARCHAR,
26
+ product_id VARCHAR,
27
+ order_date DATE,
28
+ order_amount FLOAT,
29
+ vendors VARCHAR[]
30
+ );
31
+ `;
32
+ const INPUT_DATA_QUERY = `
33
+ INSERT INTO orders VALUES
34
+ (1, '1', '1', '2022-01-01', 50, ['myntra', 'amazon', 'flipkart']),
35
+ (2, '1', '2', '2022-01-02', 80, ['myntra']),
36
+ (3, '2', '3', '2022-02-01', 25, []),
37
+ (4, '2', '1', '2022-03-01', 75, ['flipkart']),
38
+ (5, '3', '1', '2022-03-02', 100, ['myntra', 'amazon', 'flipkart']),
39
+ (6, '4', '2', '2022-04-01', 45, []),
40
+ (7, '4', '3', '2022-05-01', 90, ['myntra', 'flipkart']),
41
+ (8, '5', '1', '2022-05-02', 65, ['amazon', 'flipkart']),
42
+ (9, '5', '2', '2022-05-05', 85, []),
43
+ (10, '6', '3', '2022-06-01', 120, ['myntra', 'amazon']),
44
+ (11, '6aa6', '3', '2024-06-01', 0, ['amazon']),
45
+ (12, NULL, '3', '2024-07-01', 100, ['flipkart']);
46
+ `;
47
+ const TABLE_SCHEMA = {
48
+ name: 'orders',
49
+ sql: 'select * from orders',
50
+ measures: [
51
+ {
52
+ name: 'order_amount',
53
+ sql: 'order_amount',
54
+ type: 'number'
55
+ },
56
+ {
57
+ name: 'total_order_amount',
58
+ sql: 'SUM(order_amount)',
59
+ type: 'number'
60
+ }
61
+ ],
62
+ dimensions: [
63
+ {
64
+ name: 'order_date',
65
+ sql: 'order_date',
66
+ type: 'time'
67
+ },
68
+ {
69
+ name: 'order_id',
70
+ sql: 'order_id',
71
+ type: 'number'
72
+ },
73
+ {
74
+ name: 'customer_id',
75
+ sql: 'customer_id',
76
+ type: 'string'
77
+ },
78
+ {
79
+ name: 'product_id',
80
+ sql: 'product_id',
81
+ type: 'string'
82
+ },
83
+ {
84
+ name: 'order_month',
85
+ sql: `DATE_TRUNC('month', order_date)`,
86
+ type: 'string'
87
+ },
88
+ {
89
+ name: 'vendors',
90
+ sql: 'vendors',
91
+ type: 'string_array'
92
+ }
93
+ ]
94
+ };
95
+ const TEST_DATA = [
96
+ [
97
+ {
98
+ testName: 'GroupBySQLInnerQuery',
99
+ expectedSQL: `SELECT SUM(order_amount) AS orders__total_order_amount , orders__order_month FROM (SELECT *, DATE_TRUNC('month', order_date) AS orders__order_month FROM (select * from orders) AS orders) AS orders GROUP BY orders__order_month LIMIT 1`,
100
+ cubeInput: {
101
+ measures: [
102
+ 'orders.total_order_amount'
103
+ ],
104
+ filters: [],
105
+ dimensions: [
106
+ 'orders.order_month'
107
+ ],
108
+ limit: 1
109
+ },
110
+ expectedOutput: [
111
+ {
112
+ orders__order_month: '2022-01-01T00:00:00.000Z',
113
+ orders__total_order_amount: 130
114
+ }
115
+ ]
116
+ }
117
+ ],
118
+ [
119
+ {
120
+ testName: 'GroupBy',
121
+ expectedSQL: `SELECT SUM(order_amount) AS orders__total_order_amount , orders__customer_id FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders GROUP BY orders__customer_id ORDER BY orders__total_order_amount ASC, orders__customer_id ASC`,
122
+ cubeInput: {
123
+ measures: [
124
+ 'orders.total_order_amount'
125
+ ],
126
+ filters: [],
127
+ dimensions: [
128
+ 'orders.customer_id'
129
+ ],
130
+ order: {
131
+ 'orders.total_order_amount': 'asc',
132
+ 'orders.customer_id': 'asc'
133
+ }
134
+ },
135
+ expectedOutput: [
136
+ {
137
+ orders__customer_id: '6aa6',
138
+ orders__total_order_amount: 0
139
+ },
140
+ {
141
+ orders__customer_id: '2',
142
+ orders__total_order_amount: 100
143
+ },
144
+ {
145
+ orders__customer_id: '3',
146
+ orders__total_order_amount: 100
147
+ },
148
+ {
149
+ orders__customer_id: null,
150
+ orders__total_order_amount: 100
151
+ },
152
+ {
153
+ orders__customer_id: '6',
154
+ orders__total_order_amount: 120
155
+ },
156
+ {
157
+ orders__customer_id: '1',
158
+ orders__total_order_amount: 130
159
+ },
160
+ {
161
+ orders__customer_id: '4',
162
+ orders__total_order_amount: 135
163
+ },
164
+ {
165
+ orders__customer_id: '5',
166
+ orders__total_order_amount: 150
167
+ }
168
+ ]
169
+ }
170
+ ],
171
+ [
172
+ {
173
+ testName: 'Equals',
174
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders WHERE (orders__customer_id = '1')`,
175
+ cubeInput: {
176
+ measures: [
177
+ '*'
178
+ ],
179
+ filters: [
180
+ {
181
+ member: 'orders.customer_id',
182
+ operator: 'equals',
183
+ values: [
184
+ '1'
185
+ ]
186
+ }
187
+ ],
188
+ dimensions: []
189
+ },
190
+ expectedOutput: [
191
+ {
192
+ order_id: 1,
193
+ customer_id: '1',
194
+ orders__customer_id: '1',
195
+ product_id: '1',
196
+ order_date: '2022-01-01',
197
+ order_amount: 50.0,
198
+ vendors: [
199
+ 'myntra',
200
+ 'amazon',
201
+ 'flipkart'
202
+ ]
203
+ },
204
+ {
205
+ order_id: 2,
206
+ customer_id: '1',
207
+ orders__customer_id: '1',
208
+ product_id: '2',
209
+ order_date: '2022-01-02',
210
+ order_amount: 80.0,
211
+ vendors: [
212
+ 'myntra'
213
+ ]
214
+ }
215
+ ]
216
+ },
217
+ {
218
+ testName: 'Equals for multiple values',
219
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders WHERE ((orders__customer_id = '1') AND (orders__customer_id = '2'))`,
220
+ cubeInput: {
221
+ measures: [
222
+ '*'
223
+ ],
224
+ filters: [
225
+ {
226
+ member: 'orders.customer_id',
227
+ operator: 'equals',
228
+ values: [
229
+ '1',
230
+ '2'
231
+ ]
232
+ }
233
+ ],
234
+ dimensions: []
235
+ },
236
+ expectedOutput: []
237
+ }
238
+ ],
239
+ [
240
+ {
241
+ testName: 'NotEquals',
242
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders WHERE (orders__customer_id != '1')`,
243
+ cubeInput: {
244
+ measures: [
245
+ '*'
246
+ ],
247
+ filters: [
248
+ {
249
+ member: 'orders.customer_id',
250
+ operator: 'notEquals',
251
+ values: [
252
+ '1'
253
+ ]
254
+ }
255
+ ],
256
+ dimensions: []
257
+ },
258
+ expectedOutput: [
259
+ {
260
+ order_id: 3,
261
+ customer_id: '2',
262
+ orders__customer_id: '2',
263
+ product_id: '3',
264
+ order_date: '2022-02-01',
265
+ order_amount: 25.0,
266
+ vendors: []
267
+ },
268
+ {
269
+ order_id: 4,
270
+ customer_id: '2',
271
+ orders__customer_id: '2',
272
+ product_id: '1',
273
+ order_date: '2022-03-01',
274
+ order_amount: 75.0,
275
+ vendors: [
276
+ 'flipkart'
277
+ ]
278
+ },
279
+ {
280
+ order_id: 5,
281
+ customer_id: '3',
282
+ orders__customer_id: '3',
283
+ product_id: '1',
284
+ order_date: '2022-03-02',
285
+ order_amount: 100.0,
286
+ vendors: [
287
+ 'myntra',
288
+ 'amazon',
289
+ 'flipkart'
290
+ ]
291
+ },
292
+ {
293
+ order_id: 6,
294
+ customer_id: '4',
295
+ orders__customer_id: '4',
296
+ product_id: '2',
297
+ order_date: '2022-04-01',
298
+ order_amount: 45.0,
299
+ vendors: []
300
+ },
301
+ {
302
+ order_id: 7,
303
+ customer_id: '4',
304
+ orders__customer_id: '4',
305
+ product_id: '3',
306
+ order_date: '2022-05-01',
307
+ order_amount: 90.0,
308
+ vendors: [
309
+ 'myntra',
310
+ 'flipkart'
311
+ ]
312
+ },
313
+ {
314
+ order_id: 8,
315
+ customer_id: '5',
316
+ orders__customer_id: '5',
317
+ product_id: '1',
318
+ order_date: '2022-05-02',
319
+ order_amount: 65.0,
320
+ vendors: [
321
+ 'amazon',
322
+ 'flipkart'
323
+ ]
324
+ },
325
+ {
326
+ order_id: 9,
327
+ customer_id: '5',
328
+ orders__customer_id: '5',
329
+ product_id: '2',
330
+ order_date: '2022-05-05',
331
+ order_amount: 85.0,
332
+ vendors: []
333
+ },
334
+ {
335
+ order_id: 10,
336
+ customer_id: '6',
337
+ orders__customer_id: '6',
338
+ product_id: '3',
339
+ order_date: '2022-06-01',
340
+ order_amount: 120.0,
341
+ vendors: [
342
+ 'myntra',
343
+ 'amazon'
344
+ ]
345
+ },
346
+ {
347
+ order_id: 11,
348
+ customer_id: '6aa6',
349
+ orders__customer_id: '6aa6',
350
+ product_id: '3',
351
+ order_date: '2024-06-01',
352
+ order_amount: 0.0,
353
+ vendors: [
354
+ 'amazon'
355
+ ]
356
+ }
357
+ ]
358
+ }
359
+ ],
360
+ [
361
+ {
362
+ testName: 'Contains',
363
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders WHERE (orders__customer_id ~~* '%aa%')`,
364
+ cubeInput: {
365
+ measures: [
366
+ '*'
367
+ ],
368
+ filters: [
369
+ {
370
+ member: 'orders.customer_id',
371
+ operator: 'contains',
372
+ values: [
373
+ 'aa'
374
+ ]
375
+ }
376
+ ],
377
+ dimensions: []
378
+ },
379
+ expectedOutput: [
380
+ {
381
+ order_id: 11,
382
+ customer_id: '6aa6',
383
+ orders__customer_id: '6aa6',
384
+ product_id: '3',
385
+ order_date: '2024-06-01',
386
+ order_amount: 0.0,
387
+ vendors: [
388
+ 'amazon'
389
+ ]
390
+ }
391
+ ]
392
+ }
393
+ ],
394
+ [
395
+ {
396
+ testName: 'NotContains',
397
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders WHERE ((orders__customer_id !~~ '%1%') AND (orders__customer_id !~~ '%2%') AND (orders__customer_id !~~ '%3%') AND (orders__customer_id !~~ '%4%') AND (orders__customer_id !~~ '%5%') AND (orders__customer_id !~~ '%aa%'))`,
398
+ cubeInput: {
399
+ measures: [
400
+ '*'
401
+ ],
402
+ filters: [
403
+ {
404
+ and: [
405
+ {
406
+ member: 'orders.customer_id',
407
+ operator: 'notContains',
408
+ values: [
409
+ '1'
410
+ ]
411
+ },
412
+ {
413
+ member: 'orders.customer_id',
414
+ operator: 'notContains',
415
+ values: [
416
+ '2'
417
+ ]
418
+ },
419
+ {
420
+ member: 'orders.customer_id',
421
+ operator: 'notContains',
422
+ values: [
423
+ '3'
424
+ ]
425
+ },
426
+ {
427
+ member: 'orders.customer_id',
428
+ operator: 'notContains',
429
+ values: [
430
+ '4'
431
+ ]
432
+ },
433
+ {
434
+ member: 'orders.customer_id',
435
+ operator: 'notContains',
436
+ values: [
437
+ '5'
438
+ ]
439
+ },
440
+ {
441
+ member: 'orders.customer_id',
442
+ operator: 'notContains',
443
+ values: [
444
+ 'aa'
445
+ ]
446
+ }
447
+ ]
448
+ }
449
+ ],
450
+ dimensions: []
451
+ },
452
+ expectedOutput: [
453
+ {
454
+ order_id: 10,
455
+ customer_id: '6',
456
+ orders__customer_id: '6',
457
+ product_id: '3',
458
+ order_date: '2022-06-01',
459
+ order_amount: 120,
460
+ vendors: [
461
+ 'myntra',
462
+ 'amazon'
463
+ ]
464
+ }
465
+ ]
466
+ }
467
+ ],
468
+ [
469
+ {
470
+ testName: 'GreaterThan',
471
+ expectedSQL: `SELECT orders.* FROM (SELECT *, orders.order_amount AS orders__order_amount FROM (select * from orders) AS orders) AS orders WHERE (orders__order_amount > 50)`,
472
+ cubeInput: {
473
+ measures: [
474
+ '*'
475
+ ],
476
+ filters: [
477
+ {
478
+ member: 'orders.order_amount',
479
+ operator: 'gt',
480
+ values: [
481
+ '50'
482
+ ]
483
+ }
484
+ ],
485
+ dimensions: []
486
+ },
487
+ expectedOutput: [
488
+ {
489
+ order_id: 2,
490
+ customer_id: '1',
491
+ product_id: '2',
492
+ order_date: '2022-01-02',
493
+ order_amount: 80.0,
494
+ orders__order_amount: 80.0,
495
+ vendors: [
496
+ 'myntra'
497
+ ]
498
+ },
499
+ {
500
+ order_id: 4,
501
+ customer_id: '2',
502
+ product_id: '1',
503
+ order_date: '2022-03-01',
504
+ order_amount: 75.0,
505
+ orders__order_amount: 75.0,
506
+ vendors: [
507
+ 'flipkart'
508
+ ]
509
+ },
510
+ {
511
+ order_id: 5,
512
+ customer_id: '3',
513
+ product_id: '1',
514
+ order_date: '2022-03-02',
515
+ order_amount: 100.0,
516
+ orders__order_amount: 100.0,
517
+ vendors: [
518
+ 'myntra',
519
+ 'amazon',
520
+ 'flipkart'
521
+ ]
522
+ },
523
+ {
524
+ order_id: 7,
525
+ customer_id: '4',
526
+ product_id: '3',
527
+ order_date: '2022-05-01',
528
+ order_amount: 90.0,
529
+ orders__order_amount: 90.0,
530
+ vendors: [
531
+ 'myntra',
532
+ 'flipkart'
533
+ ]
534
+ },
535
+ {
536
+ order_id: 8,
537
+ customer_id: '5',
538
+ product_id: '1',
539
+ order_date: '2022-05-02',
540
+ order_amount: 65.0,
541
+ orders__order_amount: 65.0,
542
+ vendors: [
543
+ 'amazon',
544
+ 'flipkart'
545
+ ]
546
+ },
547
+ {
548
+ order_id: 9,
549
+ customer_id: '5',
550
+ product_id: '2',
551
+ order_date: '2022-05-05',
552
+ order_amount: 85.0,
553
+ orders__order_amount: 85.0,
554
+ vendors: []
555
+ },
556
+ {
557
+ order_id: 10,
558
+ customer_id: '6',
559
+ product_id: '3',
560
+ order_date: '2022-06-01',
561
+ order_amount: 120.0,
562
+ orders__order_amount: 120.0,
563
+ vendors: [
564
+ 'myntra',
565
+ 'amazon'
566
+ ]
567
+ },
568
+ {
569
+ customer_id: null,
570
+ order_amount: 100,
571
+ order_date: '2024-07-01T00:00:00.000Z',
572
+ order_id: 12,
573
+ orders__order_amount: 100,
574
+ orders__order_date: undefined,
575
+ product_id: '3',
576
+ vendors: [
577
+ 'flipkart'
578
+ ]
579
+ }
580
+ ]
581
+ }
582
+ ],
583
+ [
584
+ {
585
+ testName: 'LessThan',
586
+ expectedSQL: `SELECT orders.* FROM (SELECT *, orders.order_amount AS orders__order_amount FROM (select * from orders) AS orders) AS orders WHERE (orders__order_amount < 50)`,
587
+ cubeInput: {
588
+ measures: [
589
+ '*'
590
+ ],
591
+ filters: [
592
+ {
593
+ member: 'orders.order_amount',
594
+ operator: 'lt',
595
+ values: [
596
+ '50'
597
+ ]
598
+ }
599
+ ],
600
+ dimensions: []
601
+ },
602
+ expectedOutput: [
603
+ {
604
+ order_id: 3,
605
+ customer_id: '2',
606
+ product_id: '3',
607
+ order_date: '2022-02-01',
608
+ order_amount: 25.0,
609
+ orders__order_amount: 25.0,
610
+ vendors: []
611
+ },
612
+ {
613
+ order_id: 6,
614
+ customer_id: '4',
615
+ product_id: '2',
616
+ order_date: '2022-04-01',
617
+ order_amount: 45.0,
618
+ orders__order_amount: 45.0,
619
+ vendors: []
620
+ },
621
+ {
622
+ order_id: 11,
623
+ customer_id: '6aa6',
624
+ product_id: '3',
625
+ order_date: '2024-06-01',
626
+ order_amount: 0.0,
627
+ orders__order_amount: 0.0,
628
+ vendors: [
629
+ 'amazon'
630
+ ]
631
+ }
632
+ ]
633
+ }
634
+ ],
635
+ [
636
+ {
637
+ testName: 'InDateRange',
638
+ expectedSQL: `SELECT orders.* FROM (SELECT *, order_date AS orders__order_date FROM (select * from orders) AS orders) AS orders WHERE ((orders__order_date >= '2022-02-01') AND (orders__order_date <= '2022-03-31'))`,
639
+ cubeInput: {
640
+ measures: [
641
+ '*'
642
+ ],
643
+ filters: [
644
+ {
645
+ member: 'orders.order_date',
646
+ operator: 'inDateRange',
647
+ values: [
648
+ '2022-02-01',
649
+ '2022-03-31'
650
+ ]
651
+ }
652
+ ],
653
+ dimensions: []
654
+ },
655
+ expectedOutput: [
656
+ {
657
+ order_id: 3,
658
+ customer_id: '2',
659
+ product_id: '3',
660
+ order_date: '2022-02-01',
661
+ orders__order_date: '2022-02-01',
662
+ order_amount: 25.0,
663
+ vendors: []
664
+ },
665
+ {
666
+ order_id: 4,
667
+ customer_id: '2',
668
+ product_id: '1',
669
+ order_date: '2022-03-01',
670
+ orders__order_date: '2022-03-01',
671
+ order_amount: 75.0,
672
+ vendors: [
673
+ 'flipkart'
674
+ ]
675
+ },
676
+ {
677
+ order_id: 5,
678
+ customer_id: '3',
679
+ product_id: '1',
680
+ order_date: '2022-03-02',
681
+ orders__order_date: '2022-03-02',
682
+ order_amount: 100.0,
683
+ vendors: [
684
+ 'myntra',
685
+ 'amazon',
686
+ 'flipkart'
687
+ ]
688
+ }
689
+ ]
690
+ }
691
+ ],
692
+ [
693
+ {
694
+ testName: 'NotInDateRange',
695
+ expectedSQL: `SELECT orders.* FROM (SELECT *, order_date AS orders__order_date FROM (select * from orders) AS orders) AS orders WHERE ((orders__order_date < '2022-02-01') OR (orders__order_date > '2022-03-31'))`,
696
+ cubeInput: {
697
+ measures: [
698
+ '*'
699
+ ],
700
+ filters: [
701
+ {
702
+ member: 'orders.order_date',
703
+ operator: 'notInDateRange',
704
+ values: [
705
+ '2022-02-01',
706
+ '2022-03-31'
707
+ ]
708
+ }
709
+ ],
710
+ dimensions: []
711
+ },
712
+ expectedOutput: [
713
+ {
714
+ order_id: 1,
715
+ customer_id: '1',
716
+ product_id: '1',
717
+ order_date: '2022-01-01',
718
+ order_amount: 50.0,
719
+ orders__order_date: '2022-01-01',
720
+ vendors: [
721
+ 'myntra',
722
+ 'amazon',
723
+ 'flipkart'
724
+ ]
725
+ },
726
+ {
727
+ order_id: 2,
728
+ customer_id: '1',
729
+ product_id: '2',
730
+ order_date: '2022-01-02',
731
+ order_amount: 80.0,
732
+ orders__order_date: '2022-01-02',
733
+ vendors: [
734
+ 'myntra'
735
+ ]
736
+ },
737
+ {
738
+ order_id: 6,
739
+ customer_id: '4',
740
+ product_id: '2',
741
+ order_date: '2022-04-01',
742
+ orders__order_date: '2022-04-01',
743
+ order_amount: 45.0,
744
+ vendors: []
745
+ },
746
+ {
747
+ order_id: 7,
748
+ customer_id: '4',
749
+ product_id: '3',
750
+ order_date: '2022-05-01',
751
+ orders__order_date: '2022-05-01',
752
+ order_amount: 90.0,
753
+ vendors: [
754
+ 'myntra',
755
+ 'flipkart'
756
+ ]
757
+ },
758
+ {
759
+ order_id: 8,
760
+ customer_id: '5',
761
+ product_id: '1',
762
+ order_date: '2022-05-02',
763
+ orders__order_date: '2022-05-02',
764
+ order_amount: 65.0,
765
+ vendors: [
766
+ 'amazon',
767
+ 'flipkart'
768
+ ]
769
+ },
770
+ {
771
+ order_id: 9,
772
+ customer_id: '5',
773
+ product_id: '2',
774
+ order_date: '2022-05-05',
775
+ orders__order_date: '2022-05-05',
776
+ order_amount: 85.0,
777
+ vendors: []
778
+ },
779
+ {
780
+ order_id: 10,
781
+ customer_id: '6',
782
+ product_id: '3',
783
+ order_date: '2022-06-01',
784
+ orders__order_date: '2022-06-01',
785
+ order_amount: 120.0,
786
+ vendors: [
787
+ 'myntra',
788
+ 'amazon'
789
+ ]
790
+ },
791
+ {
792
+ order_id: 11,
793
+ customer_id: '6aa6',
794
+ product_id: '3',
795
+ order_date: '2024-06-01',
796
+ orders__order_date: '2024-06-01',
797
+ order_amount: 0.0,
798
+ vendors: [
799
+ 'amazon'
800
+ ]
801
+ },
802
+ {
803
+ customer_id: null,
804
+ order_amount: 100,
805
+ order_date: '2024-07-01T00:00:00.000Z',
806
+ order_id: 12,
807
+ orders__order_date: '2024-07-01T00:00:00.000Z',
808
+ product_id: '3',
809
+ vendors: [
810
+ 'flipkart'
811
+ ]
812
+ }
813
+ ]
814
+ }
815
+ ],
816
+ // {
817
+ // testName: 'Or',
818
+ // expectedSQL: `SELECT orders.* FROM (select * from orders) AS orders WHERE ((orders.order_amount > 80) OR ((orders.order_date >= '2022-02-01') AND (orders.order_date <= '2022-03-01')))`,
819
+ // cubeInput: {
820
+ // measures: ['*'],
821
+ // filters: [
822
+ // {
823
+ // or: [
824
+ // {
825
+ // member: 'orders.order_amount',
826
+ // operator: 'gt',
827
+ // values: ['80'],
828
+ // },
829
+ // {
830
+ // member: 'orders.order_date',
831
+ // operator: 'inDateRange',
832
+ // values: ['2022-02-01', '2022-03-01'],
833
+ // },
834
+ // ],
835
+ // },
836
+ // ],
837
+ // dimensions: [],
838
+ // },
839
+ // expectedOutput: [
840
+ // {
841
+ // order_id: 3,
842
+ // customer_id: '2',
843
+ // product_id: '3',
844
+ // order_date: '2022-02-01',
845
+ // order_amount: 25.0,
846
+ // },
847
+ // {
848
+ // order_id: 4,
849
+ // customer_id: '2',
850
+ // product_id: '1',
851
+ // order_date: '2022-03-01',
852
+ // order_amount: 75.0,
853
+ // },
854
+ // {
855
+ // order_id: 5,
856
+ // customer_id: '3',
857
+ // product_id: '1',
858
+ // order_date: '2022-03-02',
859
+ // order_amount: 100.0,
860
+ // },
861
+ // {
862
+ // order_id: 7,
863
+ // customer_id: '4',
864
+ // product_id: '3',
865
+ // order_date: '2022-05-01',
866
+ // order_amount: 90.0,
867
+ // },
868
+ // {
869
+ // order_id: 9,
870
+ // customer_id: '5',
871
+ // product_id: '2',
872
+ // order_date: '2022-05-05',
873
+ // order_amount: 85.0,
874
+ // },
875
+ // {
876
+ // order_id: 10,
877
+ // customer_id: '6',
878
+ // product_id: '3',
879
+ // order_date: '2022-06-01',
880
+ // order_amount: 120.0,
881
+ // },
882
+ // ],
883
+ // },
884
+ [
885
+ {
886
+ testName: 'And',
887
+ expectedSQL: `SELECT orders.* FROM (SELECT *, orders.order_amount AS orders__order_amount, order_date AS orders__order_date FROM (select * from orders) AS orders) AS orders WHERE ((orders__order_amount > 50) AND ((orders__order_date >= '2022-02-01') AND (orders__order_date <= '2022-06-01')))`,
888
+ cubeInput: {
889
+ measures: [
890
+ '*'
891
+ ],
892
+ filters: [
893
+ {
894
+ and: [
895
+ {
896
+ member: 'orders.order_amount',
897
+ operator: 'gt',
898
+ values: [
899
+ '50'
900
+ ]
901
+ },
902
+ {
903
+ member: 'orders.order_date',
904
+ operator: 'inDateRange',
905
+ values: [
906
+ '2022-02-01',
907
+ '2022-06-01'
908
+ ]
909
+ }
910
+ ]
911
+ }
912
+ ],
913
+ dimensions: []
914
+ },
915
+ expectedOutput: [
916
+ {
917
+ order_id: 4,
918
+ customer_id: '2',
919
+ product_id: '1',
920
+ order_date: '2022-03-01',
921
+ order_amount: 75.0,
922
+ orders__order_amount: 75.0,
923
+ orders__order_date: '2022-03-01',
924
+ vendors: [
925
+ 'flipkart'
926
+ ]
927
+ },
928
+ {
929
+ order_id: 5,
930
+ customer_id: '3',
931
+ product_id: '1',
932
+ order_date: '2022-03-02',
933
+ orders__order_date: '2022-03-02',
934
+ order_amount: 100.0,
935
+ orders__order_amount: 100.0,
936
+ vendors: [
937
+ 'myntra',
938
+ 'amazon',
939
+ 'flipkart'
940
+ ]
941
+ },
942
+ {
943
+ order_id: 7,
944
+ customer_id: '4',
945
+ product_id: '3',
946
+ order_date: '2022-05-01',
947
+ orders__order_date: '2022-05-01',
948
+ order_amount: 90.0,
949
+ orders__order_amount: 90.0,
950
+ vendors: [
951
+ 'myntra',
952
+ 'flipkart'
953
+ ]
954
+ },
955
+ {
956
+ order_id: 8,
957
+ customer_id: '5',
958
+ product_id: '1',
959
+ order_date: '2022-05-02',
960
+ orders__order_date: '2022-05-02',
961
+ order_amount: 65,
962
+ orders__order_amount: 65,
963
+ vendors: [
964
+ 'amazon',
965
+ 'flipkart'
966
+ ]
967
+ },
968
+ {
969
+ order_id: 9,
970
+ customer_id: '5',
971
+ product_id: '2',
972
+ order_date: '2022-05-05',
973
+ orders__order_date: '2022-05-05',
974
+ order_amount: 85.0,
975
+ orders__order_amount: 85.0,
976
+ vendors: []
977
+ },
978
+ {
979
+ order_id: 10,
980
+ customer_id: '6',
981
+ product_id: '3',
982
+ order_date: '2022-06-01',
983
+ orders__order_date: '2022-06-01',
984
+ order_amount: 120.0,
985
+ orders__order_amount: 120.0,
986
+ vendors: [
987
+ 'myntra',
988
+ 'amazon'
989
+ ]
990
+ }
991
+ ]
992
+ }
993
+ ],
994
+ [
995
+ {
996
+ testName: 'Set',
997
+ expectedSQL: `SELECT orders.* FROM (SELECT *, orders.order_amount AS orders__order_amount, product_id AS orders__product_id FROM (select * from orders) AS orders) AS orders WHERE ((orders__order_amount IS NOT NULL) AND (orders__product_id = '3'))`,
998
+ cubeInput: {
999
+ measures: [
1000
+ '*'
1001
+ ],
1002
+ filters: [
1003
+ {
1004
+ and: [
1005
+ {
1006
+ member: 'orders.order_amount',
1007
+ operator: 'set'
1008
+ },
1009
+ {
1010
+ member: 'orders.product_id',
1011
+ operator: 'equals',
1012
+ values: [
1013
+ '3'
1014
+ ]
1015
+ }
1016
+ ]
1017
+ }
1018
+ ],
1019
+ dimensions: []
1020
+ },
1021
+ expectedOutput: [
1022
+ {
1023
+ customer_id: '2',
1024
+ order_amount: 25,
1025
+ order_date: '2022-02-01T00:00:00.000Z',
1026
+ order_id: 3,
1027
+ orders__order_amount: 25,
1028
+ orders__order_date: undefined,
1029
+ orders__product_id: '3',
1030
+ product_id: '3',
1031
+ vendors: []
1032
+ },
1033
+ {
1034
+ customer_id: '4',
1035
+ order_amount: 90,
1036
+ order_date: '2022-05-01T00:00:00.000Z',
1037
+ order_id: 7,
1038
+ orders__order_amount: 90,
1039
+ orders__order_date: undefined,
1040
+ orders__product_id: '3',
1041
+ product_id: '3',
1042
+ vendors: [
1043
+ 'myntra',
1044
+ 'flipkart'
1045
+ ]
1046
+ },
1047
+ {
1048
+ customer_id: '6',
1049
+ order_amount: 120,
1050
+ order_date: '2022-06-01T00:00:00.000Z',
1051
+ order_id: 10,
1052
+ orders__order_amount: 120,
1053
+ orders__order_date: undefined,
1054
+ orders__product_id: '3',
1055
+ product_id: '3',
1056
+ vendors: [
1057
+ 'myntra',
1058
+ 'amazon'
1059
+ ]
1060
+ },
1061
+ {
1062
+ customer_id: '6aa6',
1063
+ order_amount: 0,
1064
+ order_date: '2024-06-01T00:00:00.000Z',
1065
+ order_id: 11,
1066
+ orders__order_amount: 0,
1067
+ orders__order_date: undefined,
1068
+ orders__product_id: '3',
1069
+ product_id: '3',
1070
+ vendors: [
1071
+ 'amazon'
1072
+ ]
1073
+ },
1074
+ {
1075
+ customer_id: null,
1076
+ order_amount: 100,
1077
+ order_date: '2024-07-01T00:00:00.000Z',
1078
+ order_id: 12,
1079
+ orders__order_amount: 100,
1080
+ orders__order_date: undefined,
1081
+ orders__product_id: '3',
1082
+ product_id: '3',
1083
+ vendors: [
1084
+ 'flipkart'
1085
+ ]
1086
+ }
1087
+ ]
1088
+ }
1089
+ ],
1090
+ [
1091
+ {
1092
+ testName: 'Not Set',
1093
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id, product_id AS orders__product_id FROM (select * from orders) AS orders) AS orders WHERE ((orders__customer_id IS NULL) AND (orders__product_id = '3'))`,
1094
+ cubeInput: {
1095
+ measures: [
1096
+ '*'
1097
+ ],
1098
+ filters: [
1099
+ {
1100
+ and: [
1101
+ {
1102
+ member: 'orders.customer_id',
1103
+ operator: 'notSet'
1104
+ },
1105
+ {
1106
+ member: 'orders.product_id',
1107
+ operator: 'equals',
1108
+ values: [
1109
+ '3'
1110
+ ]
1111
+ }
1112
+ ]
1113
+ }
1114
+ ],
1115
+ dimensions: []
1116
+ },
1117
+ expectedOutput: [
1118
+ {
1119
+ orders__customer_id: null,
1120
+ customer_id: null,
1121
+ order_amount: 100,
1122
+ order_date: '2024-07-01T00:00:00.000Z',
1123
+ order_id: 12,
1124
+ orders__order_date: undefined,
1125
+ orders__product_id: '3',
1126
+ product_id: '3',
1127
+ vendors: [
1128
+ 'flipkart'
1129
+ ]
1130
+ }
1131
+ ]
1132
+ }
1133
+ ],
1134
+ [
1135
+ {
1136
+ testName: 'In',
1137
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id, vendors AS orders__vendors FROM (select * from orders) AS orders) AS orders WHERE ((orders__customer_id IN ('1', '2')) AND (orders__vendors && (ARRAY['myntra', 'amazon'])))`,
1138
+ cubeInput: {
1139
+ measures: [
1140
+ '*'
1141
+ ],
1142
+ filters: [
1143
+ {
1144
+ and: [
1145
+ {
1146
+ member: 'orders.customer_id',
1147
+ operator: 'in',
1148
+ values: [
1149
+ '1',
1150
+ '2'
1151
+ ]
1152
+ },
1153
+ {
1154
+ member: 'orders.vendors',
1155
+ operator: 'in',
1156
+ values: [
1157
+ 'myntra',
1158
+ 'amazon'
1159
+ ]
1160
+ }
1161
+ ]
1162
+ }
1163
+ ],
1164
+ dimensions: []
1165
+ },
1166
+ expectedOutput: [
1167
+ {
1168
+ customer_id: '1',
1169
+ order_amount: 50,
1170
+ order_date: '2022-01-01T00:00:00.000Z',
1171
+ order_id: 1,
1172
+ orders__customer_id: '1',
1173
+ orders__order_date: undefined,
1174
+ orders__vendors: [
1175
+ 'myntra',
1176
+ 'amazon',
1177
+ 'flipkart'
1178
+ ],
1179
+ product_id: '1',
1180
+ vendors: [
1181
+ 'myntra',
1182
+ 'amazon',
1183
+ 'flipkart'
1184
+ ]
1185
+ },
1186
+ {
1187
+ customer_id: '1',
1188
+ order_amount: 80,
1189
+ order_date: '2022-01-02T00:00:00.000Z',
1190
+ order_id: 2,
1191
+ orders__customer_id: '1',
1192
+ orders__order_date: undefined,
1193
+ orders__vendors: [
1194
+ 'myntra'
1195
+ ],
1196
+ product_id: '2',
1197
+ vendors: [
1198
+ 'myntra'
1199
+ ]
1200
+ }
1201
+ ]
1202
+ }
1203
+ ],
1204
+ [
1205
+ {
1206
+ testName: 'Not In',
1207
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id, vendors AS orders__vendors FROM (select * from orders) AS orders) AS orders WHERE ((orders__customer_id NOT IN ('1', '2')) AND (NOT (orders__vendors && (ARRAY['myntra', 'flipkart']))))`,
1208
+ cubeInput: {
1209
+ measures: [
1210
+ '*'
1211
+ ],
1212
+ filters: [
1213
+ {
1214
+ and: [
1215
+ {
1216
+ member: 'orders.customer_id',
1217
+ operator: 'notIn',
1218
+ values: [
1219
+ '1',
1220
+ '2'
1221
+ ]
1222
+ },
1223
+ {
1224
+ member: 'orders.vendors',
1225
+ operator: 'notIn',
1226
+ values: [
1227
+ 'myntra',
1228
+ 'flipkart'
1229
+ ]
1230
+ }
1231
+ ]
1232
+ }
1233
+ ],
1234
+ dimensions: []
1235
+ },
1236
+ expectedOutput: [
1237
+ {
1238
+ customer_id: '4',
1239
+ order_amount: 45,
1240
+ order_date: '2022-04-01T00:00:00.000Z',
1241
+ order_id: 6,
1242
+ orders__customer_id: '4',
1243
+ orders__order_date: undefined,
1244
+ orders__vendors: [],
1245
+ product_id: '2',
1246
+ vendors: []
1247
+ },
1248
+ {
1249
+ customer_id: '5',
1250
+ order_amount: 85,
1251
+ order_date: '2022-05-05T00:00:00.000Z',
1252
+ order_id: 9,
1253
+ orders__customer_id: '5',
1254
+ orders__order_date: undefined,
1255
+ orders__vendors: [],
1256
+ product_id: '2',
1257
+ vendors: []
1258
+ },
1259
+ {
1260
+ customer_id: '6aa6',
1261
+ order_amount: 0,
1262
+ order_date: '2024-06-01T00:00:00.000Z',
1263
+ order_id: 11,
1264
+ orders__customer_id: '6aa6',
1265
+ orders__order_date: undefined,
1266
+ orders__vendors: [
1267
+ 'amazon'
1268
+ ],
1269
+ product_id: '3',
1270
+ vendors: [
1271
+ 'amazon'
1272
+ ]
1273
+ }
1274
+ ]
1275
+ }
1276
+ ]
1277
+ ];
1278
+
1279
+ //# sourceMappingURL=test-data.js.map