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/07/28 07:33:01 UTC
[pinot] branch master updated: Refine isNullsLast and isAsc functions. (#11199)
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 d736307f8e Refine isNullsLast and isAsc functions. (#11199)
d736307f8e is described below
commit d736307f8ebad9e80de98affad5fe1c46f3607a0
Author: Shen Yu <sh...@startree.ai>
AuthorDate: Fri Jul 28 00:32:54 2023 -0700
Refine isNullsLast and isAsc functions. (#11199)
---
.../context/utils/QueryContextConverterUtils.java | 31 +++++++++-------------
1 file changed, 13 insertions(+), 18 deletions(-)
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 7d16ed1cc4..0395330850 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
@@ -116,8 +116,8 @@ public class QueryContextConverterUtils {
orderByExpressions = new ArrayList<>(orderByList.size());
Set<Expression> seen = new HashSet<>();
for (Expression orderBy : orderByList) {
- boolean isAsc = isAsc(orderBy);
Boolean isNullsLast = isNullsLast(orderBy);
+ boolean isAsc = isAsc(orderBy, isNullsLast);
Expression orderByFunctionsRemoved = CalciteSqlParser.removeOrderByFunctions(orderBy);
// Deduplicate the order-by expressions
if (seen.add(orderByFunctionsRemoved)) {
@@ -156,27 +156,22 @@ public class QueryContextConverterUtils {
.setExplain(pinotQuery.isExplain()).build();
}
- private static boolean isAsc(Expression expression) {
- while (expression != null && expression.isSetFunctionCall()) {
- if (expression.getFunctionCall().getOperator().equals(CalciteSqlParser.ASC)) {
- return true;
- }
- expression = expression.getFunctionCall().getOperands().get(0);
+ @Nullable
+ private static Boolean isNullsLast(Expression expression) {
+ String operator = expression.getFunctionCall().getOperator();
+ if (operator.equals(CalciteSqlParser.NULLS_LAST)) {
+ return true;
+ } else if (operator.equals(CalciteSqlParser.NULLS_FIRST)) {
+ return false;
+ } else {
+ return null;
}
- return false;
}
- @Nullable
- private static Boolean isNullsLast(Expression expression) {
- while (expression != null && expression.isSetFunctionCall()) {
- String operator = expression.getFunctionCall().getOperator();
- if (operator.equals(CalciteSqlParser.NULLS_LAST)) {
- return true;
- } else if (operator.equals(CalciteSqlParser.NULLS_FIRST)) {
- return false;
- }
+ private static boolean isAsc(Expression expression, Boolean isNullsLast) {
+ if (isNullsLast != null) {
expression = expression.getFunctionCall().getOperands().get(0);
}
- return null;
+ return expression.getFunctionCall().getOperator().equals(CalciteSqlParser.ASC);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org