Fix the issue with inaccurate error messages for duplicate rowkey

This commit is contained in:
wudidapaopao
2024-01-02 09:26:51 +00:00
committed by ob-robot
parent cba9180f18
commit 61b472c37a
2 changed files with 8 additions and 3 deletions

View File

@ -205,10 +205,12 @@ int ObRowsInfo::check_duplicate(ObStoreRow *rows, const int64_t row_count, ObRel
RowsCompare rows_cmp(*datum_utils_, min_key_, true, ret);
std::sort(rowkeys_.begin(), rowkeys_.end(), rows_cmp);
}
for (int64_t i = 0; i < row_count; i++) {
permutation_[rowkeys_[i].row_idx_] = i;
if (OB_SUCC(ret)) {
for (int64_t i = 0; i < row_count; i++) {
permutation_[rowkeys_[i].row_idx_] = i;
}
min_key_ = rowkeys_.at(0).marked_rowkey_.get_rowkey();
}
min_key_ = rowkeys_.at(0).marked_rowkey_.get_rowkey();
}
}

View File

@ -3920,9 +3920,12 @@ int ObLSTabletService::insert_rows_to_tablet(
run_ctx.dml_param_.tz_info_)) {
LOG_WARN("extract rowkey failed");
} else {
int tmp_ret = OB_SUCCESS;
ObString index_name = "PRIMARY";
if (data_table.is_index_table()) {
data_table.get_index_name(index_name);
} else if (lib::is_oracle_mode() && OB_TMP_FAIL(data_table.get_primary_key_name(index_name))) {
LOG_WARN("Failed to get pk name", K(ret), K(tmp_ret));
}
LOG_USER_ERROR(OB_ERR_PRIMARY_KEY_DUPLICATE,
rowkey_buffer, index_name.length(), index_name.ptr());