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