Skip to content

Commit 6e18a15

Browse files
committed
[PINOT-2094] Fix StarColumnListAst to have a modifieble list instead of an unmodifiable one.
Added a test to include this case. RB=569226 BUG=PINOT-2094 G=pinot-dev-reviewers R=kgopalak,jfim A=dpatel
1 parent 9e9c63e commit 6e18a15

File tree

4 files changed

+48
-5
lines changed

4 files changed

+48
-5
lines changed

pinot-common/src/main/java/com/linkedin/pinot/pql/parsers/pql2/ast/StarColumnListAstNode.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717

1818
import com.linkedin.pinot.common.request.BrokerRequest;
1919
import com.linkedin.pinot.common.request.Selection;
20-
import java.util.Collections;
20+
import java.util.ArrayList;
21+
import java.util.List;
2122

2223

2324
/**
@@ -27,7 +28,9 @@ public class StarColumnListAstNode extends BaseAstNode {
2728
@Override
2829
public void updateBrokerRequest(BrokerRequest brokerRequest) {
2930
Selection selection = new Selection();
30-
selection.setSelectionColumns(Collections.singletonList("*"));
31-
brokerRequest.setSelections(selection);
31+
List<String> modifiableList = new ArrayList<>(1);
32+
modifiableList.add("*");
33+
selection.setSelectionColumns(modifiableList);
34+
brokerRequest.setSelections(selection);
3235
}
3336
}

pinot-integration-tests/src/test/java/com/linkedin/pinot/integration/tests/BaseClusterIntegrationTest.java

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,41 @@ protected JSONArray getGroupByArrayFromJSONAggregationResults(JSONObject jsonObj
625625

626626
protected String[] getHardCodedQuerySet() {
627627
String[] queries =
628-
new String[] { "SELECT AirTime, avg(TotalAddGTime) FROM 'mytable' WHERE DivAirportLandings BETWEEN 0 AND 0 OR Quarter IN (2, 2, 4, 2, 3, 1, 1, 1) GROUP BY AirTime LIMIT 10000", "SELECT count(*) FROM 'mytable' WHERE DayofMonth IN ('19', '10', '28', '1', '25', '2') ", "SELECT count(*) FROM 'mytable' WHERE TaxiOut IN ('35', '70', '29', '74', '126', '106', '70', '134', '118', '43') OR DayofMonth IN ('19', '10', '28', '1', '25') ", "SELECT ArrDelay, avg(DestCityMarketID) FROM 'mytable' WHERE TaxiOut IN ('35', '70', '29', '74', '126', '106', '70', '134', '118', '43') OR DayofMonth IN ('19', '10', '28', '1', '25') GROUP BY ArrDelay LIMIT 10000", "SELECT OriginAirportSeqID, min(CRSArrTime) FROM 'mytable' WHERE TaxiOut BETWEEN 140 AND 26 OR DestCityName >= 'Gainesville, FL' GROUP BY OriginAirportSeqID LIMIT 10000", "SELECT NASDelay, DestAirportSeqID, min(DayOfWeek) FROM 'mytable' WHERE DaysSinceEpoch IN ('16426', '16176', '16314', '16321') GROUP BY NASDelay, DestAirportSeqID LIMIT 10000", "SELECT DestState, avg(DistanceGroup) FROM 'mytable' GROUP BY DestState LIMIT 10000", "SELECT ActualElapsedTime, DestCityMarketID, sum(OriginAirportSeqID) FROM 'mytable' WHERE DestStateName > 'Oklahoma' GROUP BY ActualElapsedTime, DestCityMarketID LIMIT 10000", "SELECT sum(CarrierDelay) FROM 'mytable' WHERE CRSDepTime < '1047' OR DestWac = '84' LIMIT 16", "SELECT Year, sum(CarrierDelay) FROM 'mytable' WHERE DestWac BETWEEN '84' AND '37' OR CRSDepTime < '1047' GROUP BY Year LIMIT 10000", "select count(*) from 'mytable'", "select sum(DepDelay) from 'mytable'", "select count(DepDelay) from 'mytable'", "select min(DepDelay) from 'mytable'", "select max(DepDelay) from 'mytable'", "select avg(DepDelay) from 'mytable'", "select Carrier, count(*) from 'mytable' group by Carrier ", "select Carrier, count(*) from 'mytable' where ArrDelay > 15 group by Carrier ", "select Carrier, count(*) from 'mytable' where Cancelled = 1 group by Carrier ", "select Carrier, count(*) from 'mytable' where DepDelay >= 15 group by Carrier ", "select Carrier, count(*) from 'mytable' where DepDelay < 15 group by Carrier ", "select Carrier, count(*) from 'mytable' where ArrDelay <= 15 group by Carrier ", "select Carrier, count(*) from 'mytable' where DepDelay >= 15 or ArrDelay >= 15 group by Carrier ", "select Carrier, count(*) from 'mytable' where DepDelay < 15 and ArrDelay <= 15 group by Carrier ", "select Carrier, count(*) from 'mytable' where DepDelay between 5 and 15 group by Carrier ", "select Carrier, count(*) from 'mytable' where DepDelay in (2, 8, 42) group by Carrier ", "select Carrier, count(*) from 'mytable' where DepDelay not in (4, 16) group by Carrier ", "select Carrier, count(*) from 'mytable' where Cancelled <> 1 group by Carrier ", "select Carrier, min(ArrDelay) from 'mytable' group by Carrier ", "select Carrier, max(ArrDelay) from 'mytable' group by Carrier ", "select Carrier, sum(ArrDelay) from 'mytable' group by Carrier ", "select TailNum, avg(ArrDelay) from 'mytable' group by TailNum ", "select FlightNum, avg(ArrDelay) from 'mytable' group by FlightNum ", "select distinctCount(Carrier) from 'mytable' where TailNum = 'D942DN' ", "SELECT count(*) FROM 'mytable' WHERE OriginStateName BETWEEN 'U.S. Pacific Trust Territories and Possessions' AND 'Maryland' " };
628+
new String[] { "SELECT AirTime, avg(TotalAddGTime) FROM 'mytable' WHERE DivAirportLandings BETWEEN 0 AND 0 OR Quarter IN (2, 2, 4, 2, 3, 1, 1, 1) GROUP BY AirTime LIMIT 10000",
629+
"SELECT count(*) FROM 'mytable' WHERE DayofMonth IN ('19', '10', '28', '1', '25', '2') ",
630+
"SELECT count(*) FROM 'mytable' WHERE TaxiOut IN ('35', '70', '29', '74', '126', '106', '70', '134', '118', '43') OR DayofMonth IN ('19', '10', '28', '1', '25') ",
631+
"SELECT ArrDelay, avg(DestCityMarketID) FROM 'mytable' WHERE TaxiOut IN ('35', '70', '29', '74', '126', '106', '70', '134', '118', '43') OR DayofMonth IN ('19', '10', '28', '1', '25') GROUP BY ArrDelay LIMIT 10000",
632+
"SELECT OriginAirportSeqID, min(CRSArrTime) FROM 'mytable' WHERE TaxiOut BETWEEN 140 AND 26 OR DestCityName >= 'Gainesville, FL' GROUP BY OriginAirportSeqID LIMIT 10000",
633+
"SELECT NASDelay, DestAirportSeqID, min(DayOfWeek) FROM 'mytable' WHERE DaysSinceEpoch IN ('16426', '16176', '16314', '16321') GROUP BY NASDelay, DestAirportSeqID LIMIT 10000",
634+
"SELECT DestState, avg(DistanceGroup) FROM 'mytable' GROUP BY DestState LIMIT 10000",
635+
"SELECT ActualElapsedTime, DestCityMarketID, sum(OriginAirportSeqID) FROM 'mytable' WHERE DestStateName > 'Oklahoma' GROUP BY ActualElapsedTime, DestCityMarketID LIMIT 10000",
636+
"SELECT sum(CarrierDelay) FROM 'mytable' WHERE CRSDepTime < '1047' OR DestWac = '84' LIMIT 16",
637+
"SELECT Year, sum(CarrierDelay) FROM 'mytable' WHERE DestWac BETWEEN '84' AND '37' OR CRSDepTime < '1047' GROUP BY Year LIMIT 10000",
638+
"select count(*) from 'mytable'", "select sum(DepDelay) from 'mytable'",
639+
"select count(DepDelay) from 'mytable'",
640+
"select min(DepDelay) from 'mytable'",
641+
"select max(DepDelay) from 'mytable'",
642+
"select avg(DepDelay) from 'mytable'",
643+
"select Carrier, count(*) from 'mytable' group by Carrier ",
644+
"select Carrier, count(*) from 'mytable' where ArrDelay > 15 group by Carrier ",
645+
"select Carrier, count(*) from 'mytable' where Cancelled = 1 group by Carrier ",
646+
"select Carrier, count(*) from 'mytable' where DepDelay >= 15 group by Carrier ",
647+
"select Carrier, count(*) from 'mytable' where DepDelay < 15 group by Carrier ",
648+
"select Carrier, count(*) from 'mytable' where ArrDelay <= 15 group by Carrier ",
649+
"select Carrier, count(*) from 'mytable' where DepDelay >= 15 or ArrDelay >= 15 group by Carrier ",
650+
"select Carrier, count(*) from 'mytable' where DepDelay < 15 and ArrDelay <= 15 group by Carrier ",
651+
"select Carrier, count(*) from 'mytable' where DepDelay between 5 and 15 group by Carrier ",
652+
"select Carrier, count(*) from 'mytable' where DepDelay in (2, 8, 42) group by Carrier ",
653+
"select Carrier, count(*) from 'mytable' where DepDelay not in (4, 16) group by Carrier ",
654+
"select Carrier, count(*) from 'mytable' where Cancelled <> 1 group by Carrier ",
655+
"select Carrier, min(ArrDelay) from 'mytable' group by Carrier ",
656+
"select Carrier, max(ArrDelay) from 'mytable' group by Carrier ",
657+
"select Carrier, sum(ArrDelay) from 'mytable' group by Carrier ",
658+
"select TailNum, avg(ArrDelay) from 'mytable' group by TailNum ",
659+
"select FlightNum, avg(ArrDelay) from 'mytable' group by FlightNum ",
660+
"select distinctCount(Carrier) from 'mytable' where TailNum = 'D942DN' ",
661+
"SELECT count(*) FROM 'mytable' WHERE OriginStateName BETWEEN 'U.S. Pacific Trust Territories and Possessions' AND 'Maryland' ",
662+
};
629663
return queries;
630664
}
631665

pinot-integration-tests/src/test/java/com/linkedin/pinot/integration/tests/OfflineClusterIntegrationTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,8 @@ public void testSingleQuery() throws Exception {
221221
super.runQuery(query, Collections.singletonList(query.replace("'mytable'", "mytable")));
222222
query = "select count(*) from 'mytable' where DaysSinceEpoch > 16312";
223223
super.runQuery(query, Collections.singletonList(query.replace("'mytable'", "mytable")));
224+
query = "select * from 'mytable' limit 5";
225+
super.runQuery(query, Collections.singletonList(query.replace("'mytable'", "mytable")));
224226

225227
}
226228

pinot-perf/pom.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,11 @@
6565
<programs>
6666
<program>
6767
<mainClass>com.linkedin.pinot.perf.PerfBenchmarkTest</mainClass>
68-
<name>pinot-perfBenchmark</name>
68+
<name>pinot-perfBenchmarkTest</name>
69+
</program>
70+
<program>
71+
<mainClass>com.linkedin.pinot.perf.PerfBenchmarkRunner</mainClass>
72+
<name>pinot-perfBenchmarkRunner</name>
6973
</program>
7074
</programs>
7175
<binFileExtensions>

0 commit comments

Comments
 (0)