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]