This is an automated email from the ASF dual-hosted git repository.
starocean999 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 5b043a980e [fix](planner)only forbid literal value in AnalyticExpr's
order by list (#21819)
5b043a980e is described below
commit 5b043a980ee97790d1ac14e5b28067ba91bfbe63
Author: starocean999 <[email protected]>
AuthorDate: Wed Jul 19 09:40:55 2023 +0800
[fix](planner)only forbid literal value in AnalyticExpr's order by list
(#21819)
* [fix](planner)only forbid literal value in AnalyticExpr's order by list
---
.../org/apache/doris/analysis/AnalyticExpr.java | 4 +--
.../conditional_functions/test_nullif.out | 4 +++
.../conditional_functions/test_nullif.groovy | 35 ++++++++++++++++++++++
3 files changed, 41 insertions(+), 2 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyticExpr.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyticExpr.java
index 04ab5d0fa3..2a9e9a9c88 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyticExpr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyticExpr.java
@@ -465,7 +465,7 @@ public class AnalyticExpr extends Expr {
type = getFnCall().getType();
for (Expr e : partitionExprs) {
- if (e.isConstant()) {
+ if (e.isLiteral()) {
throw new AnalysisException(
"Expressions in the PARTITION BY clause must not be
constant: "
+ e.toSql() + " (in " + toSql() + ")");
@@ -473,7 +473,7 @@ public class AnalyticExpr extends Expr {
}
for (OrderByElement e : orderByElements) {
- if (e.getExpr().isConstant()) {
+ if (e.getExpr().isLiteral()) {
throw new AnalysisException(
"Expressions in the ORDER BY clause must not be constant: "
+ e.getExpr().toSql() + " (in " + toSql() + ")");
diff --git
a/regression-test/data/query_p0/sql_functions/conditional_functions/test_nullif.out
b/regression-test/data/query_p0/sql_functions/conditional_functions/test_nullif.out
index f0746996f0..12fcd68da3 100644
---
a/regression-test/data/query_p0/sql_functions/conditional_functions/test_nullif.out
+++
b/regression-test/data/query_p0/sql_functions/conditional_functions/test_nullif.out
@@ -570,3 +570,7 @@ null 12 1 true
-- !if_nullif28 --
2020-02-09
+-- !if_nullif29 --
+1 1
+2 2
+
diff --git
a/regression-test/suites/query_p0/sql_functions/conditional_functions/test_nullif.groovy
b/regression-test/suites/query_p0/sql_functions/conditional_functions/test_nullif.groovy
index fb305884cc..6d1a5948a4 100644
---
a/regression-test/suites/query_p0/sql_functions/conditional_functions/test_nullif.groovy
+++
b/regression-test/suites/query_p0/sql_functions/conditional_functions/test_nullif.groovy
@@ -151,4 +151,39 @@ suite("test_nullif") {
qt_if_nullif27 """select ifnull(2+3, 2), ifnull((3*1 > 1 || 1>0), 2),
ifnull((3*1 > 1 or 1>0), 2),
ifnull(upper("null"), concat("NUL", "LL"))"""
qt_if_nullif28 """select ifnull(date(substring("2020-02-09", 1, 1024)),
null)"""
+
+ def tableName2 = "testsort"
+
+ sql """ DROP TABLE IF EXISTS ${tableName2}; """
+ sql """
+ CREATE TABLE IF NOT EXISTS ${tableName2} (
+ c_int int NULL COMMENT "",
+ c_pv bitmap BITMAP_UNION NULL COMMENT ""
+ )
+ AGGREGATE KEY(c_int)
+ DISTRIBUTED BY HASH(c_int) BUCKETS 1
+ PROPERTIES (
+ "replication_num" = "1"
+ );
+ """
+ sql """ INSERT INTO ${tableName2} VALUES(1, to_bitmap(1)), (2,
to_bitmap(2));"""
+
+ qt_if_nullif29 """
+ select
+ sortNum,
+ BITMAP_UNION_COUNT (c.pv) over (ORDER BY sortNum ) totalNum
+ from(
+ select
+ ifnull(a.sortNum, b.sortNum) sortNum,
+ BITMAP_UNION (ifnull(a.c_pv, b.c_pv)) pv
+ from
+ (select 1 sortNum, c_pv from ${tableName2} t where t.c_int =
1) a
+ full join
+ (select 2 sortNum, c_pv from ${tableName2} t where t.c_int =
2) b
+ on a.sortNum = b.sortNum
+ GROUP BY
+ sortNum
+ ORDER BY
+ sortNum
+ ) c;"""
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]