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

dataroaring 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 6dabdd6a8ce branch-2.1: [fix](txn insert) txn insert show error url 
#45254 (#45381)
6dabdd6a8ce is described below

commit 6dabdd6a8ce38aeed2033b65cfa7a2181c7569ef
Author: meiyi <me...@selectdb.com>
AuthorDate: Fri Dec 13 17:36:02 2024 +0800

    branch-2.1: [fix](txn insert) txn insert show error url #45254 (#45381)
    
    Cherry-picked from https://github.com/apache/doris/pull/45254
---
 be/src/runtime/stream_load/stream_load_executor.cpp       |  9 +++++++--
 .../suites/insert_p0/transaction/txn_insert.groovy        | 15 ++++++++++++++-
 2 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/be/src/runtime/stream_load/stream_load_executor.cpp 
b/be/src/runtime/stream_load/stream_load_executor.cpp
index e285d38208e..cb165a51f3d 100644
--- a/be/src/runtime/stream_load/stream_load_executor.cpp
+++ b/be/src/runtime/stream_load/stream_load_executor.cpp
@@ -85,13 +85,18 @@ Status 
StreamLoadExecutor::execute_plan_fragment(std::shared_ptr<StreamLoadConte
         ctx->number_unselected_rows = state->num_rows_load_unselected();
         ctx->loaded_bytes = state->num_bytes_load_total();
         int64_t num_selected_rows = ctx->number_total_rows - 
ctx->number_unselected_rows;
+        ctx->error_url = 
to_load_error_http_path(state->get_error_log_file_path());
         if (!ctx->group_commit && num_selected_rows > 0 &&
             (double)ctx->number_filtered_rows / num_selected_rows > 
ctx->max_filter_ratio) {
             // NOTE: Do not modify the error message here, for historical 
reasons,
             // some users may rely on this error message.
-            *status = Status::DataQualityError("too many filtered rows");
+            if (ctx->need_commit_self) {
+                *status =
+                        Status::DataQualityError("too many filtered rows, url: 
" + ctx->error_url);
+            } else {
+                *status = Status::DataQualityError("too many filtered rows");
+            }
         }
-        ctx->error_url = 
to_load_error_http_path(state->get_error_log_file_path());
 
         if (status->ok()) {
             
DorisMetrics::instance()->stream_receive_bytes_total->increment(ctx->receive_bytes);
diff --git a/regression-test/suites/insert_p0/transaction/txn_insert.groovy 
b/regression-test/suites/insert_p0/transaction/txn_insert.groovy
index ef3d46141a7..b98dd51e0cd 100644
--- a/regression-test/suites/insert_p0/transaction/txn_insert.groovy
+++ b/regression-test/suites/insert_p0/transaction/txn_insert.groovy
@@ -82,7 +82,7 @@ suite("txn_insert") {
             sql """ DROP TABLE IF EXISTS $tableMV """
             sql """
                 create table $tableMV (
-                    id int default '10', 
+                    id int not null, 
                     c1 int default '10'
                 ) distributed by hash(id, c1) 
                 properties('replication_num'="1");
@@ -97,6 +97,19 @@ suite("txn_insert") {
             order_qt_select5 """select * from $tableMV"""
             order_qt_select6 """select c1 from $tableMV"""
         } while (0);
+        do {
+            try {
+                sql "begin"
+                sql """insert into $tableMV values(9, 2), (10, 4)"""
+                sql """insert into $tableMV values(null, 6)"""
+                sql "commit"
+            } catch (Exception e) {
+                sql "rollback"
+                logger.info("insert into $tableMV failed: " + e.getMessage())
+                assertTrue(e.getMessage().contains("too many filtered rows"))
+                assertTrue(e.getMessage().contains("url"))
+            }
+        } while (0);
 
         // ------------------- insert into select -------------------
         for (int j = 0; j < 3; j++) {


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

Reply via email to