Skip to content

Commit b955f8c

Browse files
obdevob-robot
authored andcommitted
[CP] [vector index] fix bugs for multiget row get not equal issue
1 parent 77aad67 commit b955f8c

1 file changed

Lines changed: 14 additions & 29 deletions

File tree

src/sql/das/iter/ob_das_domain_id_merge_iter.cpp

Lines changed: 14 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1180,48 +1180,33 @@ int ObDASDomainIdMergeIter::multi_get_row()
11801180
{
11811181
int ret = OB_SUCCESS;
11821182
ObArenaAllocator allocator(ObMemAttr(MTL_ID(), "DomainIDMGR"));
1183+
common::ObRowkey data_table_rowkey;
11831184
if (OB_FAIL(data_table_iter_->get_next_row())) {
1184-
if (OB_ITER_END == ret && is_no_sample_) {
1185-
int tmp_ret = ret;
1186-
ret = OB_SUCCESS;
1187-
for (int64_t i = 0; OB_SUCC(ret) && i < rowkey_domain_iters_.count(); i++) {
1188-
if (OB_ISNULL(rowkey_domain_iters_.at(i))) {
1189-
ret = OB_ERR_UNEXPECTED;
1190-
LOG_WARN("get null domain iter", K(ret), K(i));
1191-
} else if (OB_FAIL(rowkey_domain_iters_.at(i)->get_next_row())) {
1192-
if (OB_UNLIKELY(OB_ITER_END != ret)) {
1193-
LOG_WARN("fail to get next rows", K(ret));
1194-
} else {
1195-
ret = OB_SUCCESS;
1185+
if (OB_ITER_END != ret) {
1186+
LOG_WARN("fail to get next data table row", K(ret));
1187+
} else if (OB_ITER_END == ret) {
1188+
if (is_no_sample_) {
1189+
for (int64_t i = 0; i < rowkey_domain_iters_.count(); i++) {
1190+
while (OB_SUCC(rowkey_domain_iters_.at(i)->get_next_row()))
1191+
{
1192+
// do nothing
11961193
}
1197-
} else {
1198-
common::ObRowkey rowkey;
1199-
if (OB_FAIL(get_rowkey(allocator, rowkey_domain_ctdefs_.at(i), rowkey_domain_rtdefs_.at(i), rowkey))) {
1200-
LOG_WARN("fail to process_data_table_rowkey", K(ret));
1201-
} else {
1202-
ret = OB_ERR_UNEXPECTED;
1203-
LOG_WARN("row count isn't equal between data table and rowkey domain", K(ret), K(rowkey),
1204-
K(rowkey_domain_iters_.at(i)->get_scan_param()), K(data_table_iter_->get_scan_param()));
1194+
if (OB_ITER_END != ret) {
1195+
LOG_WARN("fail to get next rowkey domain row", K(ret), K(i), KPC(rowkey_domain_iters_.at(i)));
12051196
}
12061197
}
12071198
}
1208-
if (OB_SUCC(ret)) {
1209-
ret = tmp_ret;
1210-
}
1211-
} else if (ret != OB_ITER_END) {
1212-
LOG_WARN("fail to get next row", K(ret));
12131199
}
1200+
} else if (is_no_sample_ && OB_FAIL(get_rowkey(allocator, data_table_ctdef_, data_table_rtdef_, data_table_rowkey))) {
1201+
LOG_WARN("fail to get data table rowkey", K(ret));
12141202
} else {
12151203
for (int64_t i = 0; OB_SUCC(ret) && i < rowkey_domain_iters_.count(); i++) {
12161204
if (is_no_sample_) {
12171205
if (OB_ISNULL(rowkey_domain_iters_.at(i))) {
12181206
ret = OB_ERR_UNEXPECTED;
12191207
LOG_WARN("get null domain iter", K(ret), K(i));
12201208
} else {
1221-
common::ObRowkey data_table_rowkey;
1222-
if (OB_FAIL(get_rowkey(allocator, data_table_ctdef_, data_table_rtdef_, data_table_rowkey))) {
1223-
LOG_WARN("fail to get data table rowkey", K(ret));
1224-
} else if (OB_FAIL(reset_rowkey_domain_iter_scan_range(i, data_table_rowkey))) {
1209+
if (OB_FAIL(reset_rowkey_domain_iter_scan_range(i, data_table_rowkey))) {
12251210
LOG_WARN("fail to reset rowkey domain iter scan range", K(ret), K(i));
12261211
} else {
12271212
bool is_found = false;

0 commit comments

Comments
 (0)