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

dataroaring 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 1e304bda93b [fix](group commit) Fix prepare stmt setNull return too 
many filtered rows error (#38262)
1e304bda93b is described below

commit 1e304bda93b8ac280a126d1609c11189f4162cd9
Author: meiyi <myime...@gmail.com>
AuthorDate: Wed Jul 24 09:57:08 2024 +0800

    [fix](group commit) Fix prepare stmt setNull return too many filtered rows 
error (#38262)
    
    When use prepare statement and setNull to do group commit:
    ```
    stmt.setString(3, "WAGERNO");
    stmt.setNull(4, Types.INTEGER);
    ```
    we may get `too many rows filtered` rows.
---
 fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java        | 4 ++++
 .../suites/insert_p0/insert_group_commit_with_prepare_stmt.groovy     | 4 ----
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
index 840d9e18992..181a7d3c7bc 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
@@ -47,6 +47,7 @@ import org.apache.doris.analysis.NativeInsertStmt;
 import org.apache.doris.analysis.NullLiteral;
 import org.apache.doris.analysis.OutFileClause;
 import org.apache.doris.analysis.PartitionNames;
+import org.apache.doris.analysis.PlaceHolderExpr;
 import org.apache.doris.analysis.PrepareStmt;
 import org.apache.doris.analysis.PrepareStmt.PreparedType;
 import org.apache.doris.analysis.Queriable;
@@ -351,6 +352,9 @@ public class StmtExecutor {
         }
         InternalService.PDataRow.Builder row = 
InternalService.PDataRow.newBuilder();
         for (Expr expr : cols) {
+            if (expr instanceof PlaceHolderExpr) {
+                expr = ((PlaceHolderExpr) expr).getLiteral();
+            }
             if (!expr.isLiteralOrCastExpr()) {
                 throw new UserException(
                         "do not support non-literal expr in transactional 
insert operation: " + expr.toSql());
diff --git 
a/regression-test/suites/insert_p0/insert_group_commit_with_prepare_stmt.groovy 
b/regression-test/suites/insert_p0/insert_group_commit_with_prepare_stmt.groovy
index e686b752db5..6e05513a8d6 100644
--- 
a/regression-test/suites/insert_p0/insert_group_commit_with_prepare_stmt.groovy
+++ 
b/regression-test/suites/insert_p0/insert_group_commit_with_prepare_stmt.groovy
@@ -148,8 +148,6 @@ suite("insert_group_commit_with_prepare_stmt") {
             );
             """
 
-            sql """ set enable_insert_strict = false; """
-
             // 1. insert into
             def insert_stmt = prepareStatement """ INSERT INTO ${table} 
VALUES(?, ?, ?) """
             assertEquals(com.mysql.cj.jdbc.ServerPreparedStatement, 
insert_stmt.class)
@@ -212,8 +210,6 @@ suite("insert_group_commit_with_prepare_stmt") {
             );
             """
 
-            sql """ set enable_insert_strict = false; """
-
             // 1. insert into
             def insert_stmt = prepareStatement """ INSERT INTO ${table} 
VALUES(?, ?, ?) """
             assertEquals(com.mysql.cj.jdbc.ServerPreparedStatement, 
insert_stmt.class)


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

Reply via email to