This is an automated email from the ASF dual-hosted git repository.
morrysnow 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 fba3ae96b9 Revert "[Fix](planner) Set inline view output as non
constant after analyze (#21212)" (#21581)
fba3ae96b9 is described below
commit fba3ae96b9c6534fd22351849c459aa88086a62b
Author: starocean999 <[email protected]>
AuthorDate: Thu Jul 6 20:30:27 2023 +0800
Revert "[Fix](planner) Set inline view output as non constant after analyze
(#21212)" (#21581)
This reverts commit 0c3acfdb7c744decb7b60e372007707a55d14e00.
---
.../main/java/org/apache/doris/analysis/Expr.java | 7 -----
.../java/org/apache/doris/analysis/SelectStmt.java | 4 ---
.../org/apache/doris/analysis/QueryStmtTest.java | 17 ++++++++--
.../conditional_functions/test_nullif.out | 4 ---
.../conditional_functions/test_nullif.groovy | 36 ----------------------
5 files changed, 14 insertions(+), 54 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java
index fa21b49419..d56c398836 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java
@@ -466,13 +466,6 @@ public abstract class Expr extends TreeNode<Expr>
implements ParseNode, Cloneabl
isAnalyzed = true;
}
- /**
- * Set the expr isConstant parameter, when select list return it can not
be constant
- */
- public void setIsConstant(boolean isConstant) {
- this.isConstant = isConstant;
- }
-
protected void computeNumDistinctValues() {
if (isConstant()) {
numDistinctValues = 1;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
index 86dfe2dcff..9720300ab2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
@@ -524,10 +524,6 @@ public class SelectStmt extends QueryStmt {
// Analyze the resultExpr before generating a label to
ensure enforcement
// of expr child and depth limits (toColumn() label may
call toSql()).
item.getExpr().analyze(analyzer);
- // select list output must not be constant because it is
not scalar expression.
- if (!fromClause.isEmpty()) {
- item.getExpr().setIsConstant(false);
- }
if (!(item.getExpr() instanceof CaseExpr)
&&
item.getExpr().contains(Predicates.instanceOf(Subquery.class))) {
throw new AnalysisException("Subquery is not supported
in the select list.");
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/analysis/QueryStmtTest.java
b/fe/fe-core/src/test/java/org/apache/doris/analysis/QueryStmtTest.java
index 7a86b12f20..3f1b3725b4 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/analysis/QueryStmtTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/QueryStmtTest.java
@@ -211,7 +211,7 @@ public class QueryStmtTest {
Assert.assertEquals(5, exprsMap.size());
constMap.clear();
constMap = getConstantExprMap(exprsMap, analyzer);
- Assert.assertEquals(1, constMap.size());
+ Assert.assertEquals(2, constMap.size());
// expr in subquery associate with column in grandparent level
sql = "WITH aa AS\n"
@@ -252,9 +252,20 @@ public class QueryStmtTest {
@Test
public void testPutBackExprs() throws Exception {
ConnectContext ctx = UtFrameUtils.createDefaultCtx();
- String sql = "SELECT @@license, @@time_zone\n"
+ String sql = "SELECT username, @@license, @@time_zone\n"
+ + "FROM db1.table1\n"
+ + "WHERE siteid in\n"
+ + " (SELECT abs(5+abs(0))+1)\n"
+ "UNION\n"
- + "SELECT @@language, @@storage_engine;";
+ + "SELECT CASE\n"
+ + " WHEN\n"
+ + " (SELECT count(*)+abs(8)\n"
+ + " FROM db1.table1\n"
+ + " WHERE username='helen')>1 THEN 888\n"
+ + " ELSE 999\n"
+ + " END AS ccc, @@language, @@storage_engine\n"
+ + "FROM\n"
+ + " (SELECT curdate()) a;";
StatementBase stmt = UtFrameUtils.parseAndAnalyzeStmt(sql, ctx);
SessionVariable sessionVariable = new SessionVariable();
TQueryOptions queryOptions = sessionVariable.getQueryOptionVariables();
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 12fcd68da3..f0746996f0 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,7 +570,3 @@ 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 14485b4ffd..fb305884cc 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,40 +151,4 @@ 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]