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

eldenmoon pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new 720a4c9f309 [Fix](Branch-2.1) fix fallback to original planer when 
enable_server_side_prepared_statement = false (#42156)
720a4c9f309 is described below

commit 720a4c9f3094c5b54a94964e8878f70f34a53115
Author: lihangyu <15605149...@163.com>
AuthorDate: Mon Oct 21 17:46:24 2024 +0800

    [Fix](Branch-2.1) fix fallback to original planer when 
enable_server_side_prepared_statement = false (#42156)
---
 .../src/main/java/org/apache/doris/analysis/PrepareStmt.java | 12 ++++++------
 regression-test/suites/prepared_stmt_p0/prepared_stmt.groovy |  4 ++++
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/PrepareStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/PrepareStmt.java
index 1c7b5459979..d0637417a8d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/PrepareStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/PrepareStmt.java
@@ -187,12 +187,6 @@ public class PrepareStmt extends StatementBase {
                 // will be reanalyzed
                 selectStmt.reset();
             }
-            // use session var to decide whether to use full prepared or let 
user client handle to do fail over
-            if (preparedType != PreparedType.FULL_PREPARED
-                    && 
!ConnectContext.get().getSessionVariable().enableServeSidePreparedStatement) {
-                throw new UserException("Failed to prepare statement"
-                                + "try to set 
enable_server_side_prepared_statement = true");
-            }
         } else if (inner instanceof NativeInsertStmt) {
             LabelName label = ((NativeInsertStmt) inner).getLoadLabel();
             if (label == null || Strings.isNullOrEmpty(label.getLabelName())) {
@@ -202,6 +196,12 @@ public class PrepareStmt extends StatementBase {
                 throw new UserException("Only support prepare InsertStmt 
without label now");
             }
         }
+        // use session var to decide whether to use full prepared or let user 
client handle to do fail over
+        if (preparedType != PreparedType.FULL_PREPARED
+                && 
!ConnectContext.get().getSessionVariable().enableServeSidePreparedStatement) {
+            throw new UserException("Failed to prepare statement"
+                            + " try to set 
enable_server_side_prepared_statement = true");
+        }
         preparedType = PreparedType.STATEMENT;
         LOG.debug("using STATEMENT prepared");
     }
diff --git a/regression-test/suites/prepared_stmt_p0/prepared_stmt.groovy 
b/regression-test/suites/prepared_stmt_p0/prepared_stmt.groovy
index 7e3732fd69a..5c8c60479a6 100644
--- a/regression-test/suites/prepared_stmt_p0/prepared_stmt.groovy
+++ b/regression-test/suites/prepared_stmt_p0/prepared_stmt.groovy
@@ -246,5 +246,9 @@ suite("test_prepared_stmt", "nonConcurrent") {
         result = stmt_read.execute()
         logger.info("connection_id: ${result}")
         // qe_select16 stmt_read
+
+        sql """set enable_server_side_prepared_statement = false"""
+        def stmt_insert = prepareStatement "insert into mytable1 values(?, ?, 
?, ?)"  
+        assertEquals(stmt_insert.class, 
com.mysql.cj.jdbc.ClientPreparedStatement);
     }
 }


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

Reply via email to