You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by xx...@apache.org on 2022/11/11 02:01:30 UTC
[kylin] branch kylin5 updated: KYLIN-5279 Add default null collation configuration with CalciteExtrasProperties for Kylin5.0 (#2001)
This is an automated email from the ASF dual-hosted git repository.
xxyu pushed a commit to branch kylin5
in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/kylin5 by this push:
new 1fa73daee7 KYLIN-5279 Add default null collation configuration with CalciteExtrasProperties for Kylin5.0 (#2001)
1fa73daee7 is described below
commit 1fa73daee7fff8e912bcff9aaf859b66f5ebf94a
Author: zznlime <68...@users.noreply.github.com>
AuthorDate: Fri Nov 11 10:01:23 2022 +0800
KYLIN-5279 Add default null collation configuration with CalciteExtrasProperties for Kylin5.0 (#2001)
* KYLIN-5279 Default null collation for Kylin5.0 sqls should be null-last for ASC order and null-first for DESC order.
* KYLIN-5279 add a config for default null collation for Kylin5.0.
* reuse KylinConfigBase#getCalciteExtrasProperties for get default null collation.
---
.../org/apache/kylin/query/engine/KECalciteConfig.java | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/src/query-common/src/main/java/org/apache/kylin/query/engine/KECalciteConfig.java b/src/query-common/src/main/java/org/apache/kylin/query/engine/KECalciteConfig.java
index 0ddd0d05b3..96f33ec9d1 100644
--- a/src/query-common/src/main/java/org/apache/kylin/query/engine/KECalciteConfig.java
+++ b/src/query-common/src/main/java/org/apache/kylin/query/engine/KECalciteConfig.java
@@ -53,7 +53,22 @@ public class KECalciteConfig extends CalciteConnectionConfigImpl {
@Override
public NullCollation defaultNullCollation() {
- return NullCollation.LOW;
+ String nullCollation = kylinConfig.getCalciteExtrasProperties.get("defaultNullCollation");
+ if (null == nullCollation) {
+ return NullCollation.HIGH;
+ }
+ switch (nullCollation.toLowerCase(Locale.ROOT)) {
+ case "low":
+ return NullCollation.LOW;
+ case "high":
+ return NullCollation.HIGH;
+ case "first":
+ return NullCollation.FIRST;
+ case "last":
+ return NullCollation.LAST;
+ default:
+ throw new UnsupportedOperationException("unsupported null collation type: " + nullCollation);
+ }
}
@Override