This is an automated email from the ASF dual-hosted git repository.
xiangfu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 59c188d Fixing the issue of applying ordinals in order by for
distinct queries (#6171)
59c188d is described below
commit 59c188dc7b9e25abcdf9b869c2b30cf77360979b
Author: Xiang Fu <[email protected]>
AuthorDate: Wed Oct 21 15:52:57 2020 -0700
Fixing the issue of applying ordinals in order by for distinct queries
(#6171)
---
.../main/java/org/apache/pinot/sql/parsers/CalciteSqlParser.java | 6 +++---
.../org/apache/pinot/sql/parsers/CalciteSqlCompilerTest.java | 9 +++++++++
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git
a/pinot-common/src/main/java/org/apache/pinot/sql/parsers/CalciteSqlParser.java
b/pinot-common/src/main/java/org/apache/pinot/sql/parsers/CalciteSqlParser.java
index 7b41053..a3bd018 100644
---
a/pinot-common/src/main/java/org/apache/pinot/sql/parsers/CalciteSqlParser.java
+++
b/pinot-common/src/main/java/org/apache/pinot/sql/parsers/CalciteSqlParser.java
@@ -353,12 +353,12 @@ public class CalciteSqlParser {
pinotQuery.setHavingExpression(updateComparisonPredicate(havingExpression));
}
- // Rewrite GroupBy to Distinct
- rewriteNonAggregationGroupByToDistinct(pinotQuery);
-
// Update Ordinals
applyOrdinals(pinotQuery);
+ // Rewrite GroupBy to Distinct
+ rewriteNonAggregationGroupByToDistinct(pinotQuery);
+
// Update alias
Map<Identifier, Expression> aliasMap =
extractAlias(pinotQuery.getSelectList());
applyAlias(aliasMap, pinotQuery);
diff --git
a/pinot-common/src/test/java/org/apache/pinot/sql/parsers/CalciteSqlCompilerTest.java
b/pinot-common/src/test/java/org/apache/pinot/sql/parsers/CalciteSqlCompilerTest.java
index e9f37ce..7578b30 100644
---
a/pinot-common/src/test/java/org/apache/pinot/sql/parsers/CalciteSqlCompilerTest.java
+++
b/pinot-common/src/test/java/org/apache/pinot/sql/parsers/CalciteSqlCompilerTest.java
@@ -1611,6 +1611,15 @@ public class CalciteSqlCompilerTest {
}
@Test
+ public void testOrdinalsQueryRewriteWithDistinctOrderby() {
+ String query = "SELECT baseballStats.playerName AS playerName FROM
baseballStats GROUP BY baseballStats.playerName ORDER BY 1 ASC";
+ PinotQuery pinotQuery = CalciteSqlParser.compileToPinotQuery(query);
+
Assert.assertEquals(pinotQuery.getSelectList().get(0).getFunctionCall().getOperands().get(0).getIdentifier().getName(),
"baseballStats.playerName");
+ Assert.assertTrue(pinotQuery.getGroupByList().isEmpty());
+
Assert.assertEquals(pinotQuery.getOrderByList().get(0).getFunctionCall().getOperands().get(0).getIdentifier().getName(),
"baseballStats.playerName");
+ }
+
+ @Test
public void testNoArgFunction() {
String query = "SELECT noArgFunc() FROM foo ";
PinotQuery pinotQuery = CalciteSqlParser.compileToPinotQuery(query);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]