JackieTien97 commented on code in PR #14511:
URL: https://github.com/apache/iotdb/pull/14511#discussion_r1899959344


##########
integration-test/src/test/java/org/apache/iotdb/relational/it/query/recent/IoTDBTableAggregationIT.java:
##########
@@ -433,6 +434,335 @@ public void countTest() {
     tableResultSetEqualTest("select count(*) from table1", expectedHeader, 
retArray, DATABASE_NAME);
   }
 
+  @Test
+  public void countIfTest() {
+    String[] expectedHeader = new String[] {"_col0"};
+    String[] retArray =
+        new String[] {
+          "5,",
+        };
+    tableResultSetEqualTest(
+        "select count_if(device_id = 'd01') from table1", expectedHeader, 
retArray, DATABASE_NAME);
+
+    expectedHeader = new String[] {"_col0"};
+    retArray =
+        new String[] {
+          "64,",
+        };
+    tableResultSetEqualTest(
+        "select count_if(true) from table1", expectedHeader, retArray, 
DATABASE_NAME);
+
+    expectedHeader = new String[] {"_col0", "end_time", "device_id", "_col3"};
+    retArray =
+        new String[] {
+          "2024-09-24T06:15:30.000Z,2024-09-24T06:15:35.000Z,d01,1,",
+          "2024-09-24T06:15:35.000Z,2024-09-24T06:15:40.000Z,d01,1,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d01,1,",
+          "2024-09-24T06:15:50.000Z,2024-09-24T06:15:55.000Z,d01,1,",
+          "2024-09-24T06:15:55.000Z,2024-09-24T06:16:00.000Z,d01,1,",
+          "2024-09-24T06:15:35.000Z,2024-09-24T06:15:40.000Z,d02,0,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d02,0,",
+          "2024-09-24T06:15:50.000Z,2024-09-24T06:15:55.000Z,d02,0,",
+          "2024-09-24T06:15:30.000Z,2024-09-24T06:15:35.000Z,d03,0,",
+          "2024-09-24T06:15:35.000Z,2024-09-24T06:15:40.000Z,d03,0,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d03,0,",
+          "2024-09-24T06:15:45.000Z,2024-09-24T06:15:50.000Z,d03,0,",
+          "2024-09-24T06:15:50.000Z,2024-09-24T06:15:55.000Z,d03,0,",
+          "2024-09-24T06:15:30.000Z,2024-09-24T06:15:35.000Z,d04,0,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d04,0,",
+          "2024-09-24T06:15:55.000Z,2024-09-24T06:16:00.000Z,d04,0,",
+          "2024-09-24T06:15:30.000Z,2024-09-24T06:15:35.000Z,d05,0,",
+          "2024-09-24T06:15:35.000Z,2024-09-24T06:15:40.000Z,d05,0,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d05,0,",
+          "2024-09-24T06:15:50.000Z,2024-09-24T06:15:55.000Z,d05,0,",
+          "2024-09-24T06:15:55.000Z,2024-09-24T06:16:00.000Z,d05,0,",
+          "2024-09-24T06:15:35.000Z,2024-09-24T06:15:40.000Z,d06,0,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d06,0,",
+          "2024-09-24T06:15:50.000Z,2024-09-24T06:15:55.000Z,d06,0,",
+          "2024-09-24T06:15:30.000Z,2024-09-24T06:15:35.000Z,d07,0,",
+          "2024-09-24T06:15:35.000Z,2024-09-24T06:15:40.000Z,d07,0,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d07,0,",
+          "2024-09-24T06:15:45.000Z,2024-09-24T06:15:50.000Z,d07,0,",
+          "2024-09-24T06:15:50.000Z,2024-09-24T06:15:55.000Z,d07,0,",
+          "2024-09-24T06:15:30.000Z,2024-09-24T06:15:35.000Z,d08,0,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d08,0,",
+          "2024-09-24T06:15:55.000Z,2024-09-24T06:16:00.000Z,d08,0,",
+          "2024-09-24T06:15:30.000Z,2024-09-24T06:15:35.000Z,d09,0,",
+          "2024-09-24T06:15:35.000Z,2024-09-24T06:15:40.000Z,d09,0,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d09,0,",
+          "2024-09-24T06:15:50.000Z,2024-09-24T06:15:55.000Z,d09,0,",
+          "2024-09-24T06:15:55.000Z,2024-09-24T06:16:00.000Z,d09,0,",
+          "2024-09-24T06:15:35.000Z,2024-09-24T06:15:40.000Z,d10,0,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d10,0,",
+          "2024-09-24T06:15:50.000Z,2024-09-24T06:15:55.000Z,d10,0,",
+          "2024-09-24T06:15:30.000Z,2024-09-24T06:15:35.000Z,d11,0,",
+          "2024-09-24T06:15:35.000Z,2024-09-24T06:15:40.000Z,d11,0,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d11,0,",
+          "2024-09-24T06:15:45.000Z,2024-09-24T06:15:50.000Z,d11,0,",
+          "2024-09-24T06:15:50.000Z,2024-09-24T06:15:55.000Z,d11,0,",
+          "2024-09-24T06:15:30.000Z,2024-09-24T06:15:35.000Z,d12,0,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d12,0,",
+          "2024-09-24T06:15:55.000Z,2024-09-24T06:16:00.000Z,d12,0,",
+          "2024-09-24T06:15:30.000Z,2024-09-24T06:15:35.000Z,d13,0,",
+          "2024-09-24T06:15:35.000Z,2024-09-24T06:15:40.000Z,d13,0,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d13,0,",
+          "2024-09-24T06:15:50.000Z,2024-09-24T06:15:55.000Z,d13,0,",
+          "2024-09-24T06:15:55.000Z,2024-09-24T06:16:00.000Z,d13,0,",
+          "2024-09-24T06:15:35.000Z,2024-09-24T06:15:40.000Z,d14,0,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d14,0,",
+          "2024-09-24T06:15:50.000Z,2024-09-24T06:15:55.000Z,d14,0,",
+          "2024-09-24T06:15:30.000Z,2024-09-24T06:15:35.000Z,d15,0,",
+          "2024-09-24T06:15:35.000Z,2024-09-24T06:15:40.000Z,d15,0,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d15,0,",
+          "2024-09-24T06:15:45.000Z,2024-09-24T06:15:50.000Z,d15,0,",
+          "2024-09-24T06:15:50.000Z,2024-09-24T06:15:55.000Z,d15,0,",
+          "2024-09-24T06:15:30.000Z,2024-09-24T06:15:35.000Z,d16,0,",
+          "2024-09-24T06:15:40.000Z,2024-09-24T06:15:45.000Z,d16,0,",
+          "2024-09-24T06:15:55.000Z,2024-09-24T06:16:00.000Z,d16,0,",
+        };
+    tableResultSetEqualTest(
+        "select date_bin(5s, time), (date_bin(5s, time) + 5000) as end_time, 
device_id, count_if(device_id = 'd01') from table1 group by 1,device_id",
+        expectedHeader,
+        retArray,
+        DATABASE_NAME);
+
+    expectedHeader = new String[] {"_col0", "province", "city", "region", 
"device_id", "_col5"};
+    retArray =
+        new String[] {
+          "2024-09-24T06:15:30.000Z,beijing,beijing,chaoyang,d09,0,",
+          "2024-09-24T06:15:35.000Z,beijing,beijing,chaoyang,d09,0,",
+          "2024-09-24T06:15:40.000Z,beijing,beijing,chaoyang,d09,0,",
+          "2024-09-24T06:15:50.000Z,beijing,beijing,chaoyang,d09,0,",
+          "2024-09-24T06:15:55.000Z,beijing,beijing,chaoyang,d09,0,",
+          "2024-09-24T06:15:35.000Z,beijing,beijing,chaoyang,d10,0,",
+          "2024-09-24T06:15:40.000Z,beijing,beijing,chaoyang,d10,0,",
+          "2024-09-24T06:15:50.000Z,beijing,beijing,chaoyang,d10,0,",
+          "2024-09-24T06:15:30.000Z,beijing,beijing,chaoyang,d11,1,",
+          "2024-09-24T06:15:35.000Z,beijing,beijing,chaoyang,d11,1,",
+          "2024-09-24T06:15:40.000Z,beijing,beijing,chaoyang,d11,1,",
+          "2024-09-24T06:15:45.000Z,beijing,beijing,chaoyang,d11,1,",
+          "2024-09-24T06:15:50.000Z,beijing,beijing,chaoyang,d11,1,",
+          "2024-09-24T06:15:30.000Z,beijing,beijing,chaoyang,d12,1,",
+          "2024-09-24T06:15:40.000Z,beijing,beijing,chaoyang,d12,1,",
+          "2024-09-24T06:15:55.000Z,beijing,beijing,chaoyang,d12,1,",
+          "2024-09-24T06:15:30.000Z,beijing,beijing,haidian,d13,0,",
+          "2024-09-24T06:15:35.000Z,beijing,beijing,haidian,d13,0,",
+          "2024-09-24T06:15:40.000Z,beijing,beijing,haidian,d13,0,",
+          "2024-09-24T06:15:50.000Z,beijing,beijing,haidian,d13,0,",
+          "2024-09-24T06:15:55.000Z,beijing,beijing,haidian,d13,0,",
+          "2024-09-24T06:15:35.000Z,beijing,beijing,haidian,d14,0,",
+          "2024-09-24T06:15:40.000Z,beijing,beijing,haidian,d14,0,",
+          "2024-09-24T06:15:50.000Z,beijing,beijing,haidian,d14,0,",
+          "2024-09-24T06:15:30.000Z,beijing,beijing,haidian,d15,1,",
+          "2024-09-24T06:15:35.000Z,beijing,beijing,haidian,d15,1,",
+          "2024-09-24T06:15:40.000Z,beijing,beijing,haidian,d15,1,",
+          "2024-09-24T06:15:45.000Z,beijing,beijing,haidian,d15,1,",
+          "2024-09-24T06:15:50.000Z,beijing,beijing,haidian,d15,1,",
+          "2024-09-24T06:15:30.000Z,beijing,beijing,haidian,d16,1,",
+          "2024-09-24T06:15:40.000Z,beijing,beijing,haidian,d16,1,",
+          "2024-09-24T06:15:55.000Z,beijing,beijing,haidian,d16,1,",
+          "2024-09-24T06:15:30.000Z,shanghai,shanghai,huangpu,d01,0,",
+          "2024-09-24T06:15:35.000Z,shanghai,shanghai,huangpu,d01,0,",
+          "2024-09-24T06:15:40.000Z,shanghai,shanghai,huangpu,d01,0,",
+          "2024-09-24T06:15:50.000Z,shanghai,shanghai,huangpu,d01,0,",
+          "2024-09-24T06:15:55.000Z,shanghai,shanghai,huangpu,d01,0,",
+          "2024-09-24T06:15:35.000Z,shanghai,shanghai,huangpu,d02,0,",
+          "2024-09-24T06:15:40.000Z,shanghai,shanghai,huangpu,d02,0,",
+          "2024-09-24T06:15:50.000Z,shanghai,shanghai,huangpu,d02,0,",
+          "2024-09-24T06:15:30.000Z,shanghai,shanghai,huangpu,d03,1,",
+          "2024-09-24T06:15:35.000Z,shanghai,shanghai,huangpu,d03,1,",
+          "2024-09-24T06:15:40.000Z,shanghai,shanghai,huangpu,d03,1,",
+          "2024-09-24T06:15:45.000Z,shanghai,shanghai,huangpu,d03,1,",
+          "2024-09-24T06:15:50.000Z,shanghai,shanghai,huangpu,d03,1,",
+          "2024-09-24T06:15:30.000Z,shanghai,shanghai,huangpu,d04,1,",
+          "2024-09-24T06:15:40.000Z,shanghai,shanghai,huangpu,d04,1,",
+          "2024-09-24T06:15:55.000Z,shanghai,shanghai,huangpu,d04,1,",
+          "2024-09-24T06:15:30.000Z,shanghai,shanghai,pudong,d05,0,",
+          "2024-09-24T06:15:35.000Z,shanghai,shanghai,pudong,d05,0,",
+          "2024-09-24T06:15:40.000Z,shanghai,shanghai,pudong,d05,0,",
+          "2024-09-24T06:15:50.000Z,shanghai,shanghai,pudong,d05,0,",
+          "2024-09-24T06:15:55.000Z,shanghai,shanghai,pudong,d05,0,",
+          "2024-09-24T06:15:35.000Z,shanghai,shanghai,pudong,d06,0,",
+          "2024-09-24T06:15:40.000Z,shanghai,shanghai,pudong,d06,0,",
+          "2024-09-24T06:15:50.000Z,shanghai,shanghai,pudong,d06,0,",
+          "2024-09-24T06:15:30.000Z,shanghai,shanghai,pudong,d07,1,",
+          "2024-09-24T06:15:35.000Z,shanghai,shanghai,pudong,d07,1,",
+          "2024-09-24T06:15:40.000Z,shanghai,shanghai,pudong,d07,1,",
+          "2024-09-24T06:15:45.000Z,shanghai,shanghai,pudong,d07,1,",
+          "2024-09-24T06:15:50.000Z,shanghai,shanghai,pudong,d07,1,",
+          "2024-09-24T06:15:30.000Z,shanghai,shanghai,pudong,d08,1,",
+          "2024-09-24T06:15:40.000Z,shanghai,shanghai,pudong,d08,1,",
+          "2024-09-24T06:15:55.000Z,shanghai,shanghai,pudong,d08,1,",
+        };
+    tableResultSetEqualTest(
+        "select date_bin(5s, 
time),province,city,region,device_id,count_if(color != 'red') from table1 group 
by 1,2,3,4,5 order by 2,3,4,5,1",
+        expectedHeader,
+        retArray,
+        DATABASE_NAME);
+
+    expectedHeader =
+        new String[] {
+          "_col0",
+          "province",
+          "city",
+          "region",
+          "device_id",
+          "_col5",
+          "_col6",
+          "_col7",
+          "_col8",
+          "_col9",
+          "_col10",
+          "_col11",
+          "_col12",
+          "_col13",
+          "_col14"
+        };
+    retArray =
+        new String[] {
+          
"2024-09-24T06:15:30.000Z,beijing,beijing,chaoyang,d09,0,0,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:35.000Z,beijing,beijing,chaoyang,d09,1,1,1,1,0,0,0,1,1,1,",
+          
"2024-09-24T06:15:40.000Z,beijing,beijing,chaoyang,d09,0,0,1,0,1,0,0,1,1,0,",
+          
"2024-09-24T06:15:50.000Z,beijing,beijing,chaoyang,d09,1,0,0,0,0,0,0,1,1,1,",
+          
"2024-09-24T06:15:55.000Z,beijing,beijing,chaoyang,d09,0,0,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:35.000Z,beijing,beijing,chaoyang,d10,0,0,0,0,1,0,0,1,1,0,",
+          
"2024-09-24T06:15:40.000Z,beijing,beijing,chaoyang,d10,0,0,0,1,0,0,0,1,1,1,",
+          
"2024-09-24T06:15:50.000Z,beijing,beijing,chaoyang,d10,1,0,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:30.000Z,beijing,beijing,chaoyang,d11,1,1,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:35.000Z,beijing,beijing,chaoyang,d11,0,0,0,1,0,0,0,1,1,1,",
+          
"2024-09-24T06:15:40.000Z,beijing,beijing,chaoyang,d11,0,0,1,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:45.000Z,beijing,beijing,chaoyang,d11,1,1,0,1,0,0,0,1,1,0,",
+          
"2024-09-24T06:15:50.000Z,beijing,beijing,chaoyang,d11,1,0,1,0,0,0,0,1,1,0,",
+          
"2024-09-24T06:15:30.000Z,beijing,beijing,chaoyang,d12,1,0,0,0,1,0,0,1,1,1,",
+          
"2024-09-24T06:15:40.000Z,beijing,beijing,chaoyang,d12,1,1,0,0,0,0,0,1,1,0,",
+          
"2024-09-24T06:15:55.000Z,beijing,beijing,chaoyang,d12,0,0,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:30.000Z,beijing,beijing,haidian,d13,0,0,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:35.000Z,beijing,beijing,haidian,d13,1,1,1,1,0,0,0,1,1,1,",
+          
"2024-09-24T06:15:40.000Z,beijing,beijing,haidian,d13,0,0,1,0,1,0,0,1,1,0,",
+          
"2024-09-24T06:15:50.000Z,beijing,beijing,haidian,d13,1,0,0,0,0,0,0,1,1,1,",
+          
"2024-09-24T06:15:55.000Z,beijing,beijing,haidian,d13,0,0,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:35.000Z,beijing,beijing,haidian,d14,0,0,0,0,1,0,0,1,1,0,",
+          
"2024-09-24T06:15:40.000Z,beijing,beijing,haidian,d14,0,0,0,1,0,0,0,1,1,1,",
+          
"2024-09-24T06:15:50.000Z,beijing,beijing,haidian,d14,1,0,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:30.000Z,beijing,beijing,haidian,d15,1,1,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:35.000Z,beijing,beijing,haidian,d15,0,0,0,1,0,0,0,1,1,1,",
+          
"2024-09-24T06:15:40.000Z,beijing,beijing,haidian,d15,0,0,1,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:45.000Z,beijing,beijing,haidian,d15,1,1,0,1,0,0,0,1,1,0,",
+          
"2024-09-24T06:15:50.000Z,beijing,beijing,haidian,d15,1,0,1,0,0,0,0,1,1,0,",
+          
"2024-09-24T06:15:30.000Z,beijing,beijing,haidian,d16,1,0,0,0,1,0,0,1,1,1,",
+          
"2024-09-24T06:15:40.000Z,beijing,beijing,haidian,d16,1,1,0,0,0,0,0,1,1,0,",
+          
"2024-09-24T06:15:55.000Z,beijing,beijing,haidian,d16,0,0,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:30.000Z,shanghai,shanghai,huangpu,d01,0,0,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:35.000Z,shanghai,shanghai,huangpu,d01,1,1,1,1,0,0,0,1,1,1,",
+          
"2024-09-24T06:15:40.000Z,shanghai,shanghai,huangpu,d01,0,0,1,0,1,0,0,1,1,0,",
+          
"2024-09-24T06:15:50.000Z,shanghai,shanghai,huangpu,d01,1,0,0,0,0,0,0,1,1,1,",
+          
"2024-09-24T06:15:55.000Z,shanghai,shanghai,huangpu,d01,0,0,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:35.000Z,shanghai,shanghai,huangpu,d02,0,0,0,0,1,0,0,1,1,0,",
+          
"2024-09-24T06:15:40.000Z,shanghai,shanghai,huangpu,d02,0,0,0,1,0,0,0,1,1,1,",
+          
"2024-09-24T06:15:50.000Z,shanghai,shanghai,huangpu,d02,1,0,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:30.000Z,shanghai,shanghai,huangpu,d03,1,1,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:35.000Z,shanghai,shanghai,huangpu,d03,0,0,0,1,0,0,0,1,1,1,",
+          
"2024-09-24T06:15:40.000Z,shanghai,shanghai,huangpu,d03,0,0,1,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:45.000Z,shanghai,shanghai,huangpu,d03,1,1,0,1,0,0,0,1,1,0,",
+          
"2024-09-24T06:15:50.000Z,shanghai,shanghai,huangpu,d03,1,0,1,0,0,0,0,1,1,0,",
+          
"2024-09-24T06:15:30.000Z,shanghai,shanghai,huangpu,d04,1,0,0,0,1,0,0,1,1,1,",
+          
"2024-09-24T06:15:40.000Z,shanghai,shanghai,huangpu,d04,1,1,0,0,0,0,0,1,1,0,",
+          
"2024-09-24T06:15:55.000Z,shanghai,shanghai,huangpu,d04,0,0,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:30.000Z,shanghai,shanghai,pudong,d05,0,0,0,0,0,1,0,0,1,0,",
+          
"2024-09-24T06:15:35.000Z,shanghai,shanghai,pudong,d05,1,1,1,1,0,1,0,1,1,1,",
+          
"2024-09-24T06:15:40.000Z,shanghai,shanghai,pudong,d05,0,0,1,0,1,0,0,1,1,0,",
+          
"2024-09-24T06:15:50.000Z,shanghai,shanghai,pudong,d05,1,0,0,0,0,0,0,1,1,1,",
+          
"2024-09-24T06:15:55.000Z,shanghai,shanghai,pudong,d05,0,0,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:35.000Z,shanghai,shanghai,pudong,d06,0,0,0,0,1,1,1,1,1,0,",
+          
"2024-09-24T06:15:40.000Z,shanghai,shanghai,pudong,d06,0,0,0,1,0,0,0,1,1,1,",
+          
"2024-09-24T06:15:50.000Z,shanghai,shanghai,pudong,d06,1,0,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:30.000Z,shanghai,shanghai,pudong,d07,1,1,0,0,0,0,0,0,1,0,",
+          
"2024-09-24T06:15:35.000Z,shanghai,shanghai,pudong,d07,0,0,0,1,0,0,0,1,1,1,",
+          
"2024-09-24T06:15:40.000Z,shanghai,shanghai,pudong,d07,0,0,1,0,0,1,0,0,1,0,",
+          
"2024-09-24T06:15:45.000Z,shanghai,shanghai,pudong,d07,1,1,0,1,0,0,0,1,1,0,",
+          
"2024-09-24T06:15:50.000Z,shanghai,shanghai,pudong,d07,1,0,1,0,0,1,0,1,1,0,",
+          
"2024-09-24T06:15:30.000Z,shanghai,shanghai,pudong,d08,1,0,0,0,1,0,0,1,1,1,",
+          
"2024-09-24T06:15:40.000Z,shanghai,shanghai,pudong,d08,1,1,0,0,0,0,0,1,1,0,",
+          
"2024-09-24T06:15:55.000Z,shanghai,shanghai,pudong,d08,0,0,0,0,0,1,0,0,1,0,",
+        };
+    tableResultSetEqualTest(
+        "select date_bin(5s, time),province,city,region,device_id, count_if(s1 
is null), count_if(s2 < 50000), count_if(s3 > 30), count_if(s4 < 55), 
count_if(s5), count_if(s6 like '%pudong%'), count_if(s7 = 
'shanghai_pudong_red_B_d06_36'), count_if(s8 is null), count(s9 is null), 
count_if(s10 is not null) from table1 group by 1,2,3,4,5 order by 2,3,4,5,1",
+        expectedHeader, retArray, DATABASE_NAME);
+
+    expectedHeader =
+        new String[] {
+          "province",
+          "city",
+          "region",
+          "device_id",
+          "_col4",
+          "_col5",
+          "_col6",
+          "_col7",
+          "_col8",
+          "_col9",
+          "_col10",
+          "_col11",
+          "_col12",
+          "_col13"
+        };
+    retArray =
+        new String[] {
+          "beijing,beijing,chaoyang,d09,2,1,2,1,1,0,0,3,5,2,",
+          "beijing,beijing,chaoyang,d10,1,0,0,1,1,0,0,2,3,1,",
+          "beijing,beijing,chaoyang,d11,3,2,2,2,0,0,0,3,5,1,",
+          "beijing,beijing,chaoyang,d12,2,1,0,0,1,0,0,2,3,1,",
+          "beijing,beijing,haidian,d13,2,1,2,1,1,0,0,3,5,2,",
+          "beijing,beijing,haidian,d14,1,0,0,1,1,0,0,2,3,1,",
+          "beijing,beijing,haidian,d15,3,2,2,2,0,0,0,3,5,1,",
+          "beijing,beijing,haidian,d16,2,1,0,0,1,0,0,2,3,1,",
+          "shanghai,shanghai,huangpu,d01,2,1,2,1,1,0,0,3,5,2,",
+          "shanghai,shanghai,huangpu,d02,1,0,0,1,1,0,0,2,3,1,",
+          "shanghai,shanghai,huangpu,d03,3,2,2,2,0,0,0,3,5,1,",
+          "shanghai,shanghai,huangpu,d04,2,1,0,0,1,0,0,2,3,1,",
+          "shanghai,shanghai,pudong,d05,2,1,2,1,1,2,0,3,5,2,",
+          "shanghai,shanghai,pudong,d06,1,0,0,1,1,1,1,2,3,1,",
+          "shanghai,shanghai,pudong,d07,3,2,2,2,0,2,0,3,5,1,",
+          "shanghai,shanghai,pudong,d08,2,1,0,0,1,1,0,2,3,1,",
+        };
+    tableResultSetEqualTest(
+        "select province,city,region,device_id, count_if(s1 is null), 
count_if(s2 < 50000), count_if(s3 > 30), count_if(s4 < 55), count_if(s5), 
count_if(s6 like '%pudong%'), count_if(s7 = 'shanghai_pudong_red_B_d06_36'), 
count_if(s8 is null), count(s9 is null), count_if(s10 is not null) from table1 
group by 1,2,3,4 order by 1,2,3,4",
+        expectedHeader, retArray, DATABASE_NAME);
+
+    expectedHeader = new String[] {"province", "city", "region", "_col3"};
+    retArray =
+        new String[] {
+          "beijing,beijing,chaoyang,5,",
+          "beijing,beijing,haidian,5,",
+          "shanghai,shanghai,huangpu,5,",
+          "shanghai,shanghai,pudong,5,",
+        };
+    tableResultSetEqualTest(
+        "select province,city,region,count(s3 > 30 and s4 < 55) from table1 
group by 1,2,3 order by 1,2,3",
+        expectedHeader,
+        retArray,
+        DATABASE_NAME);
+
+    expectedHeader = new String[] {"province", "_col1"};
+    retArray =
+        new String[] {
+          "beijing,6,", "shanghai,6,",
+        };
+    tableResultSetEqualTest(
+        "select province,count_if(s5) from table1 group by 1 order by 1",
+        expectedHeader,
+        retArray,
+        DATABASE_NAME);
+
+    assertTestFail(
+        "select count_if(device_id) from table1",
+        "700: Error occurred while parsing SQL to physical plan: line 1:32 no 
viable alternative at input 'select count_if(device_id) from table1");
+
+    assertTestFail(
+        "select count_if(s5, device_id != 'd01') from table1",
+        "700: Error occurred while parsing SQL to physical plan: line 1:45 no 
viable alternative at input 'select count_if(s5, device_id != 'd01') from 
table1'");
+  }

Review Comment:
   the error msg should be actually what you throw in `TableMetadataImpl`, the 
reason that you got this is that you use the `tree` model function, so this 
will fail in the very early stage(antlr throw that).
   
   Instead you should use `tableAssertTestFail`.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to