Skip to content

Commit

Permalink
branch-2.1: [fix](txn insert) txn insert show error url #45254 (#45381)
Browse files Browse the repository at this point in the history
Cherry-picked from #45254
  • Loading branch information
mymeiyi authored Dec 13, 2024
1 parent 384a1a4 commit 6dabdd6
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 3 deletions.
9 changes: 7 additions & 2 deletions be/src/runtime/stream_load/stream_load_executor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
15 changes: 14 additions & 1 deletion regression-test/suites/insert_p0/transaction/txn_insert.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand All @@ -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++) {
Expand Down

0 comments on commit 6dabdd6

Please sign in to comment.