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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]