You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ja...@apache.org on 2023/05/25 20:29:06 UTC

[pinot] branch master updated: Add a comment to and a unit test for the group by expressions deduplication logic (#10803)

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 434d9733c3 Add a comment to and a unit test for the group by expressions deduplication logic (#10803)
434d9733c3 is described below

commit 434d9733c3f7d6fdbae256895d8322bd4266b964
Author: Shen Yu <sh...@startree.ai>
AuthorDate: Thu May 25 13:28:57 2023 -0700

    Add a comment to and a unit test for the group by expressions deduplication logic (#10803)
---
 .../request/context/utils/QueryContextConverterUtils.java      |  1 +
 .../utils/BrokerRequestToQueryContextConverterTest.java        | 10 ++++++++++
 2 files changed, 11 insertions(+)

diff --git a/pinot-core/src/main/java/org/apache/pinot/core/query/request/context/utils/QueryContextConverterUtils.java b/pinot-core/src/main/java/org/apache/pinot/core/query/request/context/utils/QueryContextConverterUtils.java
index c04e0f7b42..eccc584bbb 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/query/request/context/utils/QueryContextConverterUtils.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/query/request/context/utils/QueryContextConverterUtils.java
@@ -131,6 +131,7 @@ public class QueryContextConverterUtils {
         // NOTE: Order-by is always a Function with the ordering of the Expression
         Function thriftFunction = orderBy.getFunctionCall();
         ExpressionContext expression = RequestContextUtils.getExpression(thriftFunction.getOperands().get(0));
+        // Skip duplicate order by expressions, e.g.: SELECT name FROM employees ORDER BY name, name
         if (expressionSet.add(expression)) {
           boolean isAsc = thriftFunction.getOperator().equalsIgnoreCase("ASC");
           orderByExpressions.add(new OrderByExpressionContext(expression, isAsc));
diff --git a/pinot-core/src/test/java/org/apache/pinot/core/query/request/context/utils/BrokerRequestToQueryContextConverterTest.java b/pinot-core/src/test/java/org/apache/pinot/core/query/request/context/utils/BrokerRequestToQueryContextConverterTest.java
index 018bb275f4..ca67b1fbc4 100644
--- a/pinot-core/src/test/java/org/apache/pinot/core/query/request/context/utils/BrokerRequestToQueryContextConverterTest.java
+++ b/pinot-core/src/test/java/org/apache/pinot/core/query/request/context/utils/BrokerRequestToQueryContextConverterTest.java
@@ -649,4 +649,14 @@ public class BrokerRequestToQueryContextConverterTest {
       }
     }
   }
+
+  @Test
+  void testSkipDuplicateOrderByExpressions() {
+    String query = "SELECT name FROM employees ORDER BY name, name";
+
+    QueryContext queryContext = QueryContextConverterUtils.getQueryContext(query);
+
+    assertNotNull(queryContext.getOrderByExpressions());
+    assertEquals(queryContext.getOrderByExpressions().size(), 1);
+  }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org