This is an automated email from the ASF dual-hosted git repository.

yiguolei 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 8a5021c235 [Fix](Sql)NPE when the Delete statement does not specify a 
where condition (#22766)
8a5021c235 is described below

commit 8a5021c235e44e1d89640f9d0a70e9481f92614b
Author: Calvin Kirs <acm_mas...@163.com>
AuthorDate: Thu Aug 10 10:15:49 2023 +0800

    [Fix](Sql)NPE when the Delete statement does not specify a where condition 
(#22766)
    
    Execute Sql
    
    delete from test_table.
    2023-08-09 11:51:46,586 WARN (mysql-nio-pool-7|540) 
[StmtExecutor.analyze():987] Analyze failed. stmt[25, 
519f916eeb94a8b-afe8e1094fb39fc1]
    java.lang.NullPointerException: null
            at 
org.apache.doris.rewrite.ExprRewriter.applyRuleBottomUp(ExprRewriter.java:236) 
~[classes/:?]
            at 
org.apache.doris.rewrite.ExprRewriter.applyRule(ExprRewriter.java:226) 
~[classes/:?]
            at 
org.apache.doris.rewrite.ExprRewriter.applyRuleRepeatedly(ExprRewriter.java:216)
 ~[classes/:?]
            at 
org.apache.doris.rewrite.ExprRewriter.rewrite(ExprRewriter.java:166) 
~[classes/:?]
            at 
org.apache.doris.rewrite.ExprRewriter.rewrite(ExprRewriter.java:151) 
~[classes/:?]
            at 
org.apache.doris.analysis.DeleteStmt.analyze(DeleteStmt.java:127) ~[classes/:?]
            at org.apache.doris.qe.StmtExecutor.analyze(StmtExecutor.java:983) 
~[classes/:?]
            at 
org.apache.doris.qe.StmtExecutor.executeByLegacy(StmtExecutor.java:660) 
~[classes/:?]
            at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:448) 
~[classes/:?]
            at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:419) 
~[classes/:?]
            at 
org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:441) 
~[classes/:?]
            at 
org.apache.doris.qe.ConnectProcessor.dispatch(ConnectProcessor.java:589) 
~[classes/:?]
            at 
org.apache.doris.qe.ConnectProcessor.processOnce(ConnectProcessor.java:826) 
~[classes/:?]
            at 
org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) 
~[classes/:?]
            at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 
~[?:?]
            at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 
~[?:?]
            at java.lang.Thread.run(Thread.java:829) ~[?:?]
    Fix Result
    
    [HY000][1105] errCode = 2, detailMessage = Where clause is not set
    Affected version
    
    2.0-Alpha +
---
 fe/fe-core/src/main/java/org/apache/doris/analysis/DeleteStmt.java | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DeleteStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/DeleteStmt.java
index 4e8e4ad2dd..ac28d5850e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DeleteStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DeleteStmt.java
@@ -123,6 +123,9 @@ public class DeleteStmt extends DdlStmt {
 
         // analyze predicate
         if (fromClause == null) {
+            if (wherePredicate == null) {
+                throw new AnalysisException("Where clause is not set");
+            }
             ExprRewriter exprRewriter = new ExprRewriter(EXPR_NORMALIZE_RULES);
             wherePredicate = exprRewriter.rewrite(wherePredicate, analyzer);
             try {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to