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]

Reply via email to