This is an automated email from the ASF dual-hosted git repository.

jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 9ccd1be542 Enable more integration tests to run on the v2 multi-stage 
query engine (#13467)
9ccd1be542 is described below

commit 9ccd1be5420cec0843eef76d39d9546e155cb592
Author: Yash Mayya <[email protected]>
AuthorDate: Mon Jun 24 22:28:26 2024 +0530

    Enable more integration tests to run on the v2 multi-stage query engine 
(#13467)
---
 .../tests/BaseClusterIntegrationTestSet.java       |  12 +-
 .../tests/BaseRealtimeClusterIntegrationTest.java  |   5 +-
 .../tests/HybridClusterIntegrationTest.java        |   9 +-
 .../tests/OfflineClusterIntegrationTest.java       | 153 ++++++++++++++++-----
 ...flineClusterMemBasedServerQueryKillingTest.java |   4 +-
 ...fflineClusterServerCPUTimeQueryKillingTest.java |   2 +
 6 files changed, 143 insertions(+), 42 deletions(-)

diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTestSet.java
 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTestSet.java
index 6bc1f0cbda..09310cb243 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTestSet.java
+++ 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTestSet.java
@@ -507,8 +507,16 @@ public abstract class BaseClusterIntegrationTestSet 
extends BaseClusterIntegrati
   public void testQueryExceptions()
       throws Exception {
     testQueryException("POTATO", QueryException.SQL_PARSING_ERROR_CODE);
-    testQueryException("SELECT COUNT(*) FROM potato", 
QueryException.TABLE_DOES_NOT_EXIST_ERROR_CODE);
-    testQueryException("SELECT POTATO(ArrTime) FROM mytable", 
QueryException.QUERY_EXECUTION_ERROR_CODE);
+
+    // Ideally, we should attempt to unify the error codes returned by the two 
query engines if possible
+    testQueryException("SELECT COUNT(*) FROM potato",
+        useMultiStageQueryEngine()
+            ? QueryException.QUERY_PLANNING_ERROR_CODE : 
QueryException.TABLE_DOES_NOT_EXIST_ERROR_CODE);
+
+    testQueryException("SELECT POTATO(ArrTime) FROM mytable",
+        useMultiStageQueryEngine()
+            ? QueryException.QUERY_PLANNING_ERROR_CODE : 
QueryException.QUERY_EXECUTION_ERROR_CODE);
+
     testQueryException("SELECT COUNT(*) FROM mytable where ArrTime = 'potato'",
         QueryException.QUERY_EXECUTION_ERROR_CODE);
   }
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseRealtimeClusterIntegrationTest.java
 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseRealtimeClusterIntegrationTest.java
index 6774dc52ab..44ef674438 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseRealtimeClusterIntegrationTest.java
+++ 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseRealtimeClusterIntegrationTest.java
@@ -153,7 +153,6 @@ public abstract class BaseRealtimeClusterIntegrationTest 
extends BaseClusterInte
   public void testHardcodedQueries(boolean useMultiStageQueryEngine)
       throws Exception {
     setUseMultiStageQueryEngine(useMultiStageQueryEngine);
-    notSupportedInV2();
     super.testHardcodedQueries();
   }
 
@@ -161,6 +160,8 @@ public abstract class BaseRealtimeClusterIntegrationTest 
extends BaseClusterInte
   public void testQueriesFromQueryFile(boolean useMultiStageQueryEngine)
       throws Exception {
     setUseMultiStageQueryEngine(useMultiStageQueryEngine);
+    // Some of the hardcoded queries in the query file need to be adapted for 
v2 (for instance, using the arrayToMV
+    // with multi-value columns in filters / aggregations)
     notSupportedInV2();
     super.testQueriesFromQueryFile();
   }
@@ -169,7 +170,6 @@ public abstract class BaseRealtimeClusterIntegrationTest 
extends BaseClusterInte
   public void testGeneratedQueries(boolean useMultiStageQueryEngine)
       throws Exception {
     setUseMultiStageQueryEngine(useMultiStageQueryEngine);
-    notSupportedInV2();
     testGeneratedQueries(true, useMultiStageQueryEngine);
   }
 
@@ -177,7 +177,6 @@ public abstract class BaseRealtimeClusterIntegrationTest 
extends BaseClusterInte
   public void testQueryExceptions(boolean useMultiStageQueryEngine)
       throws Exception {
     setUseMultiStageQueryEngine(useMultiStageQueryEngine);
-    notSupportedInV2();
     super.testQueryExceptions();
   }
 
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/HybridClusterIntegrationTest.java
 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/HybridClusterIntegrationTest.java
index fd7d65035a..c7a4afc51a 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/HybridClusterIntegrationTest.java
+++ 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/HybridClusterIntegrationTest.java
@@ -278,6 +278,7 @@ public class HybridClusterIntegrationTest extends 
BaseClusterIntegrationTestSet
   public void testQueryTracing(boolean useMultiStageQueryEngine)
       throws Exception {
     setUseMultiStageQueryEngine(useMultiStageQueryEngine);
+    // Tracing is a v1 only concept and the v2 query engine has separate 
multi-stage stats that are enabled by default
     notSupportedInV2();
     JsonNode jsonNode = postQuery("SET trace = true; SELECT COUNT(*) FROM " + 
getTableName());
     
Assert.assertEquals(jsonNode.get("resultTable").get("rows").get(0).get(0).asLong(),
 getCountStarResult());
@@ -292,6 +293,7 @@ public class HybridClusterIntegrationTest extends 
BaseClusterIntegrationTestSet
   public void testQueryTracingWithLiteral(boolean useMultiStageQueryEngine)
       throws Exception {
     setUseMultiStageQueryEngine(useMultiStageQueryEngine);
+    // Tracing is a v1 only concept and the v2 query engine has separate 
multi-stage stats that are enabled by default
     notSupportedInV2();
     JsonNode jsonNode =
         postQuery("SET trace = true; SELECT 1, \'test\', ArrDelay FROM " + 
getTableName() + " LIMIT 10");
@@ -330,7 +332,6 @@ public class HybridClusterIntegrationTest extends 
BaseClusterIntegrationTestSet
   public void testHardcodedQueries(boolean useMultiStageQueryEngine)
       throws Exception {
     setUseMultiStageQueryEngine(useMultiStageQueryEngine);
-    notSupportedInV2();
     super.testHardcodedQueries();
   }
 
@@ -338,6 +339,8 @@ public class HybridClusterIntegrationTest extends 
BaseClusterIntegrationTestSet
   public void testQueriesFromQueryFile(boolean useMultiStageQueryEngine)
       throws Exception {
     setUseMultiStageQueryEngine(useMultiStageQueryEngine);
+    // Some of the hardcoded queries in the query file need to be adapted for 
v2 (for instance, using the arrayToMV
+    // with multi-value columns in filters / aggregations)
     notSupportedInV2();
     super.testQueriesFromQueryFile();
   }
@@ -346,15 +349,13 @@ public class HybridClusterIntegrationTest extends 
BaseClusterIntegrationTestSet
   public void testGeneratedQueries(boolean useMultiStageQueryEngine)
       throws Exception {
     setUseMultiStageQueryEngine(useMultiStageQueryEngine);
-    notSupportedInV2();
-    super.testGeneratedQueries();
+    super.testGeneratedQueries(true, useMultiStageQueryEngine);
   }
 
   @Test(dataProvider = "useBothQueryEngines")
   public void testQueryExceptions(boolean useMultiStageQueryEngine)
       throws Exception {
     setUseMultiStageQueryEngine(useMultiStageQueryEngine);
-    notSupportedInV2();
     super.testQueryExceptions();
   }
 
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterIntegrationTest.java
 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterIntegrationTest.java
index 0ba2d68542..ca1ea0b1f9 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterIntegrationTest.java
+++ 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterIntegrationTest.java
@@ -1491,7 +1491,6 @@ public class OfflineClusterIntegrationTest extends 
BaseClusterIntegrationTestSet
   public void testDefaultColumns(boolean useMultiStageQueryEngine)
       throws Exception {
     setUseMultiStageQueryEngine(useMultiStageQueryEngine);
-    notSupportedInV2();
     long numTotalDocs = getCountStarResult();
 
     reloadWithExtraColumns();
@@ -1500,7 +1499,11 @@ public class OfflineClusterIntegrationTest extends 
BaseClusterIntegrationTestSet
     
assertEquals(queryResponse.get("resultTable").get("dataSchema").get("columnNames").size(),
 103);
 
     testNewAddedColumns();
-    testExpressionOverride();
+
+    // The multi-stage query engine doesn't support expression overrides 
currently
+    if (!useMultiStageQueryEngine()) {
+      testExpressionOverride();
+    }
 
     reloadWithMissingColumns();
     queryResponse = postQuery(SELECT_STAR_QUERY);
@@ -1692,66 +1695,126 @@ public class OfflineClusterIntegrationTest extends 
BaseClusterIntegrationTestSet
     String h2Query = "SELECT COUNT(*) FROM mytable";
     String pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedIntMetric 
= 1";
     testQuery(pinotQuery, h2Query);
+
     pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedLongMetric = 1";
     testQuery(pinotQuery, h2Query);
+
     pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedFloatMetric = 0";
     testQuery(pinotQuery, h2Query);
+
     pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedDoubleMetric = 0";
     testQuery(pinotQuery, h2Query);
+
     pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedBigDecimalMetric 
= 0";
     testQuery(pinotQuery, h2Query);
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedBytesMetric = ''";
+
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedBytesMetric = "
+        + (useMultiStageQueryEngine() ? "X''" : "''");
     testQuery(pinotQuery, h2Query);
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedMVIntDimension < 
0";
+
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE "
+        + (useMultiStageQueryEngine() ? "arrayToMV(NewAddedMVIntDimension)" : 
"NewAddedMVIntDimension") + " < 0";
     testQuery(pinotQuery, h2Query);
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedMVLongDimension < 
0";
+
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE "
+        + (useMultiStageQueryEngine() ? "arrayToMV(NewAddedMVLongDimension)" : 
"NewAddedMVLongDimension") + " < 0";
     testQuery(pinotQuery, h2Query);
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedMVFloatDimension 
< 0.0";
+
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE "
+        + (useMultiStageQueryEngine() ? "arrayToMV(NewAddedMVFloatDimension)" 
: "NewAddedMVFloatDimension") + " < 0.0";
     testQuery(pinotQuery, h2Query);
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedMVDoubleDimension 
< 0.0";
+
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE "
+        + (useMultiStageQueryEngine() ? "arrayToMV(NewAddedMVDoubleDimension)" 
: "NewAddedMVDoubleDimension")
+        + " < 0.0";
     testQuery(pinotQuery, h2Query);
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE 
NewAddedMVBooleanDimension = false";
+
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE "
+        + (useMultiStageQueryEngine() ? 
"arrayToMV(NewAddedMVBooleanDimension)" : "NewAddedMVBooleanDimension")
+        + " = false";
     testQuery(pinotQuery, h2Query);
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE 
NewAddedMVTimestampDimension = 0";
+
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE "
+        + (useMultiStageQueryEngine()
+        ? "arrayToMV(CAST(NewAddedMVTimestampDimension AS BIGINT ARRAY))"
+        : "NewAddedMVTimestampDimension")
+        + " = 0";
     testQuery(pinotQuery, h2Query);
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedMVStringDimension 
= 'null'";
+
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE "
+        + (useMultiStageQueryEngine() ? "arrayToMV(NewAddedMVStringDimension)" 
: "NewAddedMVStringDimension")
+        + " = 'null'";
     testQuery(pinotQuery, h2Query);
+
     pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedSVJSONDimension = 
'null'";
     testQuery(pinotQuery, h2Query);
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedSVBytesDimension 
= ''";
+
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedSVBytesDimension 
= "
+        + (useMultiStageQueryEngine() ? "X''" : "''");
     testQuery(pinotQuery, h2Query);
 
     pinotQuery = "SELECT COUNT(*) FROM mytable WHERE 
NewAddedDerivedHoursSinceEpoch = 392232";
     h2Query = "SELECT COUNT(*) FROM mytable WHERE DaysSinceEpoch = 16343";
     testQuery(pinotQuery, h2Query);
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE NewAddedDerivedTimestamp 
= 1411862400000";
+
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE "
+        + (useMultiStageQueryEngine() ? "CAST(NewAddedDerivedTimestamp AS 
BIGINT)" : "NewAddedDerivedTimestamp")
+        + " = 1411862400000";
     h2Query = "SELECT COUNT(*) FROM mytable WHERE DaysSinceEpoch = 16341";
     testQuery(pinotQuery, h2Query);
+
     pinotQuery = "SELECT COUNT(*) FROM mytable WHERE 
NewAddedDerivedSVBooleanDimension = true";
     h2Query = "SELECT COUNT(*) FROM mytable WHERE ActualElapsedTime > 0";
     testQuery(pinotQuery, h2Query);
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE 
NewAddedDerivedMVStringDimension = 'CA'";
+
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE "
+        + (useMultiStageQueryEngine()
+        ? "arrayToMV(NewAddedDerivedMVStringDimension)"
+        : "NewAddedDerivedMVStringDimension")
+        + " = 'CA'";
     h2Query = "SELECT COUNT(*) FROM mytable WHERE DestState = 'CA'";
     testQuery(pinotQuery, h2Query);
+
     pinotQuery = "SELECT COUNT(*) FROM mytable WHERE 
NewAddedRawDerivedStringDimension = 'Washington, DC'";
     h2Query = "SELECT COUNT(*) FROM mytable WHERE DestCityName = 'CD 
,notgnihsaW'";
     testQuery(pinotQuery, h2Query);
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE 
NewAddedRawDerivedMVIntDimension = 332";
+
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE "
+        + (useMultiStageQueryEngine()
+        ? "arrayToMV(NewAddedRawDerivedMVIntDimension)"
+        : "NewAddedRawDerivedMVIntDimension")
+        + " = 332";
     h2Query = "SELECT COUNT(*) FROM mytable WHERE ActualElapsedTime = 332";
     testQuery(pinotQuery, h2Query);
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE 
NewAddedDerivedMVDoubleDimension = 110.0";
+
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE "
+        + (useMultiStageQueryEngine()
+        ? "arrayToMV(NewAddedDerivedMVDoubleDimension)"
+        : "NewAddedDerivedMVDoubleDimension")
+        + " = 110.0";
     h2Query = "SELECT COUNT(*) FROM mytable WHERE ArrDelayMinutes = 110.0";
     testQuery(pinotQuery, h2Query);
 
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE DivAirportSeqIDs > 
1100000";
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE "
+        + (useMultiStageQueryEngine() ? "arrayToMV(DivAirportSeqIDs)" : 
"DivAirportSeqIDs")
+        + " > 1100000";
     JsonNode response = postQuery(pinotQuery);
     JsonNode rows = response.get("resultTable").get("rows");
     long count = rows.get(0).get(0).asLong();
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE 
NewAddedDerivedDivAirportSeqIDs > 1100000";
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE "
+        + (useMultiStageQueryEngine()
+        ? "arrayToMV(NewAddedDerivedDivAirportSeqIDs)"
+        : "NewAddedDerivedDivAirportSeqIDs")
+        + " > 1100000";
     response = postQuery(pinotQuery);
     rows = response.get("resultTable").get("rows");
     assertEquals(rows.get(0).get(0).asLong(), count);
-    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE 
CAST(NewAddedDerivedDivAirportSeqIDsString AS INT) > 1100000";
+
+    pinotQuery = "SELECT COUNT(*) FROM mytable WHERE "
+        + (useMultiStageQueryEngine()
+        ? "arrayToMV(NewAddedDerivedDivAirportSeqIDsString)"
+        : "CAST(NewAddedDerivedDivAirportSeqIDsString AS INT)")
+        + " > 1100000";
     response = postQuery(pinotQuery);
     rows = response.get("resultTable").get("rows");
     assertEquals(rows.get(0).get(0).asLong(), count);
@@ -1760,19 +1823,25 @@ public class OfflineClusterIntegrationTest extends 
BaseClusterIntegrationTestSet
     pinotQuery = "SELECT SUM(NewAddedIntMetric) FROM mytable WHERE 
DaysSinceEpoch <= 16312";
     h2Query = "SELECT COUNT(*) FROM mytable WHERE DaysSinceEpoch <= 16312";
     testQuery(pinotQuery, h2Query);
+
     pinotQuery = "SELECT SUM(NewAddedIntMetric) FROM mytable WHERE 
DaysSinceEpoch > 16312";
     h2Query = "SELECT COUNT(*) FROM mytable WHERE DaysSinceEpoch > 16312";
     testQuery(pinotQuery, h2Query);
+
     pinotQuery = "SELECT SUM(NewAddedLongMetric) FROM mytable WHERE 
DaysSinceEpoch <= 16312";
     h2Query = "SELECT COUNT(*) FROM mytable WHERE DaysSinceEpoch <= 16312";
     testQuery(pinotQuery, h2Query);
+
     pinotQuery = "SELECT SUM(NewAddedLongMetric) FROM mytable WHERE 
DaysSinceEpoch > 16312";
     h2Query = "SELECT COUNT(*) FROM mytable WHERE DaysSinceEpoch > 16312";
     testQuery(pinotQuery, h2Query);
 
     // Test other query forms with new added columns
     pinotQuery =
-        "SELECT NewAddedMVStringDimension, SUM(NewAddedFloatMetric) FROM 
mytable GROUP BY NewAddedMVStringDimension";
+        "SELECT "
+            + (useMultiStageQueryEngine() ? 
"arrayToMV(NewAddedMVStringDimension)" : "NewAddedMVStringDimension")
+            + ", SUM(NewAddedFloatMetric) FROM mytable GROUP BY "
+            + (useMultiStageQueryEngine() ? 
"arrayToMV(NewAddedMVStringDimension)" : "NewAddedMVStringDimension");
     response = postQuery(pinotQuery);
     rows = response.get("resultTable").get("rows");
     assertEquals(rows.size(), 1);
@@ -1780,16 +1849,26 @@ public class OfflineClusterIntegrationTest extends 
BaseClusterIntegrationTestSet
     assertEquals(row.size(), 2);
     assertEquals(row.get(0).asText(), "null");
     assertEquals(row.get(1).asDouble(), 0.0);
+
+    // The multi-stage query engine doesn't support BIG_DECIMAL data type 
currently.
+    if (!useMultiStageQueryEngine()) {
+      pinotQuery =
+          "SELECT NewAddedSVBytesDimension, SUM(NewAddedBigDecimalMetric) FROM 
mytable "
+              + "GROUP BY NewAddedSVBytesDimension";
+      response = postQuery(pinotQuery);
+      rows = response.get("resultTable").get("rows");
+      assertEquals(rows.size(), 1);
+      row = rows.get(0);
+      assertEquals(row.size(), 2);
+      assertEquals(row.get(0).asText(), "");
+      assertEquals(row.get(1).asDouble(), 0.0);
+    }
+
     pinotQuery =
-        "SELECT NewAddedSVBytesDimension, SUM(NewAddedBigDecimalMetric) FROM 
mytable GROUP BY NewAddedSVBytesDimension";
-    response = postQuery(pinotQuery);
-    rows = response.get("resultTable").get("rows");
-    assertEquals(rows.size(), 1);
-    row = rows.get(0);
-    assertEquals(row.size(), 2);
-    assertEquals(row.get(0).asText(), "");
-    assertEquals(row.get(1).asDouble(), 0.0);
-    pinotQuery = "SELECT NewAddedMVLongDimension, SUM(NewAddedIntMetric) FROM 
mytable GROUP BY NewAddedMVLongDimension";
+        "SELECT "
+            + (useMultiStageQueryEngine() ? 
"arrayToMV(NewAddedMVLongDimension)" : "NewAddedMVLongDimension")
+            + ", SUM(NewAddedIntMetric) FROM mytable GROUP BY "
+            + (useMultiStageQueryEngine() ? 
"arrayToMV(NewAddedMVLongDimension)" : "NewAddedMVLongDimension");
     response = postQuery(pinotQuery);
     rows = response.get("resultTable").get("rows");
     assertEquals(rows.size(), 1);
@@ -1797,7 +1876,13 @@ public class OfflineClusterIntegrationTest extends 
BaseClusterIntegrationTestSet
     assertEquals(row.size(), 2);
     assertEquals(row.get(0).asLong(), Long.MIN_VALUE);
     assertEquals(row.get(1).asDouble(), numTotalDocsInDouble);
-    String newAddedDimensions =
+
+    String newAddedDimensions = useMultiStageQueryEngine()
+        ? "arrayToMV(NewAddedMVIntDimension), 
arrayToMV(NewAddedMVLongDimension), arrayToMV(NewAddedMVFloatDimension), "
+            + "arrayToMV(NewAddedMVDoubleDimension), 
arrayToMV(NewAddedMVBooleanDimension), "
+            + "arrayToMV(NewAddedMVTimestampDimension), 
arrayToMV(NewAddedMVStringDimension), "
+            + "NewAddedSVJSONDimension, NewAddedSVBytesDimension"
+        :
         "NewAddedMVIntDimension, NewAddedMVLongDimension, 
NewAddedMVFloatDimension, NewAddedMVDoubleDimension, "
             + "NewAddedMVBooleanDimension, NewAddedMVTimestampDimension, 
NewAddedMVStringDimension, "
             + "NewAddedSVJSONDimension, NewAddedSVBytesDimension";
@@ -1917,7 +2002,6 @@ public class OfflineClusterIntegrationTest extends 
BaseClusterIntegrationTestSet
   public void testGroupByUDF(boolean useMultiStageQueryEngine)
       throws Exception {
     setUseMultiStageQueryEngine(useMultiStageQueryEngine);
-    notSupportedInV2();
     String query = "SELECT timeConvert(DaysSinceEpoch,'DAYS','SECONDS'), 
COUNT(*) FROM mytable "
         + "GROUP BY timeConvert(DaysSinceEpoch,'DAYS','SECONDS') ORDER BY 
COUNT(*) DESC";
     JsonNode response = postQuery(query);
@@ -2040,8 +2124,13 @@ public class OfflineClusterIntegrationTest extends 
BaseClusterIntegrationTestSet
     assertEquals(row.get(0).asInt(), 2);
     assertEquals(row.get(1).asLong(), 2);
 
-    query = "SELECT valueIn(DivAirports,'DFW','ORD'), COUNT(*) FROM mytable "
-        + "GROUP BY valueIn(DivAirports,'DFW','ORD') ORDER BY COUNT(*) DESC";
+    if (useMultiStageQueryEngine()) {
+      query = "SELECT arrayToMV(valueIn(DivAirports,'DFW','ORD')), COUNT(*) 
FROM mytable "
+          + "GROUP BY arrayToMV(valueIn(DivAirports,'DFW','ORD')) ORDER BY 
COUNT(*) DESC";
+    } else {
+      query = "SELECT valueIn(DivAirports,'DFW','ORD'), COUNT(*) FROM mytable "
+          + "GROUP BY valueIn(DivAirports,'DFW','ORD') ORDER BY COUNT(*) DESC";
+    }
     response = postQuery(query);
     resultTable = response.get("resultTable");
     dataSchema = resultTable.get("dataSchema");
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterMemBasedServerQueryKillingTest.java
 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterMemBasedServerQueryKillingTest.java
index c8a70ae031..ae32cc01e4 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterMemBasedServerQueryKillingTest.java
+++ 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterMemBasedServerQueryKillingTest.java
@@ -55,7 +55,9 @@ import org.testng.annotations.Test;
 
 
 /**
- * Integration test for heap size based server query killing, this works only 
for xmx4G
+ * Integration test for heap size based server query killing, this works only 
for xmx4G.
+ * <p>
+ * Query killing isn't currently supported in the v2 multi-stage query engine 
so these tests only run on the v1 engine.
  */
 public class OfflineClusterMemBasedServerQueryKillingTest extends 
BaseClusterIntegrationTestSet {
   public static final String STRING_DIM_SV1 = "stringDimSV1";
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterServerCPUTimeQueryKillingTest.java
 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterServerCPUTimeQueryKillingTest.java
index f88450b7de..ddafce7098 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterServerCPUTimeQueryKillingTest.java
+++ 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/OfflineClusterServerCPUTimeQueryKillingTest.java
@@ -55,6 +55,8 @@ import org.testng.annotations.Test;
 
 /**
  * Integration test for heap size based server query killing, this works only 
for xmx4G
+ * <p>
+ * Query killing isn't currently supported in the v2 multi-stage query engine 
so these tests only run on the v1 engine.
  */
 public class OfflineClusterServerCPUTimeQueryKillingTest extends 
BaseClusterIntegrationTestSet {
   public static final String STRING_DIM_SV1 = "stringDimSV1";


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to