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 87d36d0ffa5 [opt](Nereids)when both Nereids and old parsers report 
errors, prompt error messages for the Nereids (#28580)
87d36d0ffa5 is described below

commit 87d36d0ffa5026b8f5c5c654d32e8a840e3308cf
Author: zhangdong <493738...@qq.com>
AuthorDate: Tue Dec 19 12:04:08 2023 +0800

    [opt](Nereids)when both Nereids and old parsers report errors, prompt error 
messages for the Nereids (#28580)
---
 .../src/main/java/org/apache/doris/qe/ConnectProcessor.java      | 9 ++++++++-
 .../suites/correctness_p0/test_current_timestamp.groovy          | 2 +-
 regression-test/suites/datatype_p0/bitmap/test_bitmap_int.groovy | 2 +-
 .../query/test_nestedtypes_insert_into_select.groovy             | 2 +-
 regression-test/suites/demo_p0/test_action.groovy                | 2 +-
 .../insert_into_table/update_on_current_timestamp.groovy         | 2 +-
 regression-test/suites/query_p0/join/test_join2.groovy           | 2 +-
 7 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java
index ada19e407d3..3fe4457ba5a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java
@@ -182,7 +182,7 @@ public abstract class ConnectProcessor {
                 .setSqlHash(ctx.getSqlHash());
 
         List<StatementBase> stmts = null;
-
+        Exception nereidsParseException = null;
         // Nereids do not support prepare and execute now, so forbid prepare 
command, only process query command
         if (mysqlCommand == MysqlCommand.COM_QUERY && 
ctx.getSessionVariable().isEnableNereidsPlanner()) {
             try {
@@ -195,6 +195,7 @@ public abstract class ConnectProcessor {
                 // TODO: We should catch all exception here until we support 
all query syntax.
                 LOG.debug("Nereids parse sql failed. Reason: {}. Statement: 
\"{}\".",
                         e.getMessage(), convertedStmt);
+                nereidsParseException = e;
             }
         }
 
@@ -203,6 +204,12 @@ public abstract class ConnectProcessor {
             try {
                 stmts = parse(convertedStmt);
             } catch (Throwable throwable) {
+                // if NereidsParser and oldParser both failed,
+                // prove is a new feature implemented only on the nereids,
+                // so an error message for the new nereids is thrown
+                if (nereidsParseException != null) {
+                    throwable = nereidsParseException;
+                }
                 // Parse sql failed, audit it and return
                 handleQueryException(throwable, convertedStmt, null, null);
                 return;
diff --git 
a/regression-test/suites/correctness_p0/test_current_timestamp.groovy 
b/regression-test/suites/correctness_p0/test_current_timestamp.groovy
index 6471f866169..f1ec942356f 100644
--- a/regression-test/suites/correctness_p0/test_current_timestamp.groovy
+++ b/regression-test/suites/correctness_p0/test_current_timestamp.groovy
@@ -213,7 +213,7 @@ suite("test_current_timestamp") {
             DISTRIBUTED BY HASH(id)
             PROPERTIES("replication_num" = "1");
         """
-        exception "errCode = 2, detailMessage = Internal Error, maybe syntax 
error or this is a bug: column's default value current_timestamp precision must 
be between 0 and 6"
+        exception "between 0 and 6"
     }
 
     // user case
diff --git a/regression-test/suites/datatype_p0/bitmap/test_bitmap_int.groovy 
b/regression-test/suites/datatype_p0/bitmap/test_bitmap_int.groovy
index 0b0d577d197..0c620790e06 100644
--- a/regression-test/suites/datatype_p0/bitmap/test_bitmap_int.groovy
+++ b/regression-test/suites/datatype_p0/bitmap/test_bitmap_int.groovy
@@ -68,7 +68,7 @@ suite("test_bitmap_int") {
 
     test {
         sql """SELECT case id_bitmap when 1 then 1 else 0 FROM test_bitmap;"""
-        exception "errCode"
+        exception "ParseException"
     }
 
     qt_sql64_4 """SELECT id_bitmap  FROM test_bitmap  WHERE id_bitmap is null 
LIMIT 20;"""
diff --git 
a/regression-test/suites/datatype_p0/nested_types/query/test_nestedtypes_insert_into_select.groovy
 
b/regression-test/suites/datatype_p0/nested_types/query/test_nestedtypes_insert_into_select.groovy
index 3efb9d5b06f..a74687af64e 100644
--- 
a/regression-test/suites/datatype_p0/nested_types/query/test_nestedtypes_insert_into_select.groovy
+++ 
b/regression-test/suites/datatype_p0/nested_types/query/test_nestedtypes_insert_into_select.groovy
@@ -53,6 +53,6 @@ suite("test_nestedtypes_insert_into_select", "p0") {
 
     test {
         sql "insert into ast values ('text' , 
[named_struct('a',1,'b','home'),named_struct('a',2,'b','work')]);"
-        exception "errCode = 2, detailMessage = Sql parser can't convert the 
result to array, please check your sql."
+        exception "ParseException"
     }
 }
diff --git a/regression-test/suites/demo_p0/test_action.groovy 
b/regression-test/suites/demo_p0/test_action.groovy
index 8a2d415e7ff..db5de0229b8 100644
--- a/regression-test/suites/demo_p0/test_action.groovy
+++ b/regression-test/suites/demo_p0/test_action.groovy
@@ -19,7 +19,7 @@ suite("test_action") {
     test {
         sql "abcdefg"
         // check exception message contains
-        exception "errCode = 2, detailMessage = Syntax error"
+        exception "ParseException"
     }
 
     test {
diff --git 
a/regression-test/suites/nereids_p0/insert_into_table/update_on_current_timestamp.groovy
 
b/regression-test/suites/nereids_p0/insert_into_table/update_on_current_timestamp.groovy
index 35a68338835..db9529887dc 100644
--- 
a/regression-test/suites/nereids_p0/insert_into_table/update_on_current_timestamp.groovy
+++ 
b/regression-test/suites/nereids_p0/insert_into_table/update_on_current_timestamp.groovy
@@ -190,6 +190,6 @@ suite("nereids_update_on_current_timestamp") {
                 k int,
                 `update_time` datetime(6) default current_timestamp(4) on 
update current_timestamp(3)) replace,
             ) AGGREGATE KEY(k) DISTRIBUTED BY HASH(k) BUCKETS 1 
properties("replication_num" = "1");"""
-        exception "Syntax error"
+        exception "ParseException"
     }
 }
diff --git a/regression-test/suites/query_p0/join/test_join2.groovy 
b/regression-test/suites/query_p0/join/test_join2.groovy
index b64d40995a4..940a22bb912 100644
--- a/regression-test/suites/query_p0/join/test_join2.groovy
+++ b/regression-test/suites/query_p0/join/test_join2.groovy
@@ -84,7 +84,7 @@ suite("test_join2", "query,p0,arrow_flight_sql") {
             FROM ${TBname1} NATURAL JOIN ${TBname2}
             ORDER BY 1,2,3,4,5,6;
         """
-        exception "errCode = 2, detailMessage = natural join is not supported, 
please use inner join instead."
+        exception "ParseException"
     }
     
     qt_join4 """


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

Reply via email to