@devrev/meerkat-node 0.0.112 → 0.0.116

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