@@ -104,6 +104,12 @@ public static void setUp() throws Exception {
104
104
populate (database .getCollection ("warehouse" ),
105
105
requireNonNull (FoodmartJson .class .getResource ("/warehouse.json" ),
106
106
"url" ));
107
+ populate (database .getCollection ("sales_fact_1997" ),
108
+ requireNonNull (FoodmartJson .class .getResource ("/sales_fact_1997.json" ),
109
+ "url" ));
110
+ populate (database .getCollection ("sales_fact_1998" ),
111
+ requireNonNull (FoodmartJson .class .getResource ("/sales_fact_1998.json" ),
112
+ "url" ));
107
113
108
114
// Manually insert data for data-time test.
109
115
MongoCollection <BsonDocument > datatypes = database .getCollection ("datatypes" )
@@ -284,7 +290,6 @@ private CalciteAssert.AssertThat assertModel(URL url) {
284
290
"CITY=LAWTON; LONGITUDE=null; LATITUDE=null; POP=45542; STATE=OK; ID=73505" );
285
291
}
286
292
287
- @ Disabled ("broken; [CALCITE-2115] is logged to fix it" )
288
293
@ Test void testUnionPlan () {
289
294
assertModel (MODEL )
290
295
.query ("select * from \" sales_fact_1997\" \n "
@@ -303,8 +308,6 @@ private CalciteAssert.AssertThat assertModel(URL url) {
303
308
"product_id=337" , "product_id=1512" ));
304
309
}
305
310
306
- @ Disabled (
307
- "java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double" )
308
311
@ Test void testFilterUnionPlan () {
309
312
assertModel (MODEL )
310
313
.query ("select * from (\n "
@@ -584,13 +587,19 @@ private CalciteAssert.AssertThat assertModel(URL url) {
584
587
"{$project: {C: 1, STATE: 1, CITY: 1}}" ));
585
588
}
586
589
587
- @ Disabled ("broken; [CALCITE-2115] is logged to fix it" )
588
590
@ Test void testDistinctCount () {
589
591
assertModel (MODEL )
590
592
.query ("select state, count(distinct city) as cdc from zips\n "
591
593
+ "where state in ('CA', 'TX') group by state order by state" )
592
- .returns ("STATE=CA; CDC=1072\n "
593
- + "STATE=TX; CDC=1233\n " )
594
+ .returns ("STATE=CA; CDC=3\n "
595
+ + "STATE=TX; CDC=3\n " )
596
+ .explainContains ("PLAN=EnumerableSort(sort0=[$0], dir0=[ASC])\n "
597
+ + " EnumerableAggregate(group=[{0}], CDC=[COUNT($1)])\n "
598
+ + " EnumerableAggregate(group=[{0, 1}])\n "
599
+ + " MongoToEnumerableConverter\n "
600
+ + " MongoProject(STATE=[CAST(ITEM($0, 'state')):VARCHAR(2)], CITY=[CAST(ITEM($0, 'city')):VARCHAR(20)])\n "
601
+ + " MongoFilter(condition=[SEARCH(CAST(CAST(ITEM($0, 'state')):VARCHAR(2)):CHAR(2), Sarg['CA', 'TX']:CHAR(2))])\n "
602
+ + " MongoTableScan(table=[[mongo_raw, zips]])\n \n " )
594
603
.queryContains (
595
604
mongoChecker (
596
605
"{\n "
@@ -605,12 +614,7 @@ private CalciteAssert.AssertThat assertModel(URL url) {
605
614
+ " ]\n "
606
615
+ " }\n "
607
616
+ "}" ,
608
- "{$project: {CITY: '$city', STATE: '$state'}}" ,
609
- "{$group: {_id: {CITY: '$CITY', STATE: '$STATE'}}}" ,
610
- "{$project: {_id: 0, CITY: '$_id.CITY', STATE: '$_id.STATE'}}" ,
611
- "{$group: {_id: '$STATE', CDC: {$sum: {$cond: [ {$eq: ['CITY', null]}, 0, 1]}}}}" ,
612
- "{$project: {STATE: '$_id', CDC: '$CDC'}}" ,
613
- "{$sort: {STATE: 1}}" ));
617
+ "{$project: {STATE: '$state', CITY: '$city'}}" ));
614
618
}
615
619
616
620
@ Test void testDistinctCountOrderBy () {
@@ -636,18 +640,16 @@ private CalciteAssert.AssertThat assertModel(URL url) {
636
640
"{$limit: 5}" ));
637
641
}
638
642
639
- @ Disabled ("broken; [CALCITE-2115] is logged to fix it" )
640
643
@ Test void testProject () {
641
644
assertModel (MODEL )
642
645
.query ("select state, city, 0 as zero from zips order by state, city" )
643
646
.limit (2 )
644
- .returns ("STATE=AK; CITY=AKHIOK ; ZERO=0\n "
645
- + "STATE=AK; CITY=AKIACHAK ; ZERO=0\n " )
647
+ .returns ("STATE=AK; CITY=ANCHORAGE ; ZERO=0\n "
648
+ + "STATE=AK; CITY=FAIRBANKS ; ZERO=0\n " )
646
649
.queryContains (
647
650
mongoChecker (
648
- "{$project: {CITY: '$city', STATE: '$state'}}" ,
649
- "{$sort: {STATE: 1, CITY: 1}}" ,
650
- "{$project: {STATE: 1, CITY: 1, ZERO: {$literal: 0}}}" ));
651
+ "{$project: {STATE: '$state', CITY: '$city', 'ZERO': {$literal: 0}}}" ,
652
+ "{$sort: {STATE: 1, CITY: 1}}" ));
651
653
}
652
654
653
655
@ Test void testFilter () {
0 commit comments