You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by xi...@apache.org on 2020/10/21 22:53:21 UTC
[incubator-pinot] branch master updated: Fixing the issue of
applying ordinals in order by for distinct queries (#6171)
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 <fx...@gmail.com>
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: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org