fix vtable __all_virtual_tenant_snapshot_ls_replica decode null column return unexpected error code
This commit is contained in:
@ -110,13 +110,14 @@ int ObAllVirtualTenantSnapshotLSReplica::process_curr_tenant(ObNewRow *&row)
|
|||||||
SERVER_LOG(WARN, "row is null or column count mismatch", KR(ret), KP(r), K(cur_row_.count_));
|
SERVER_LOG(WARN, "row is null or column count mismatch", KR(ret), KP(r), K(cur_row_.count_));
|
||||||
} else {
|
} else {
|
||||||
ObString ls_meta_package_str;
|
ObString ls_meta_package_str;
|
||||||
HEAP_VAR(ObLSMetaPackage, ls_meta_package) {
|
for (int64_t i = 0; OB_SUCC(ret) && i < cur_row_.count_; ++i) {
|
||||||
for (int64_t i = 0; OB_SUCC(ret) && i < cur_row_.count_; ++i) {
|
uint64_t col_id = output_column_ids_.at(i);
|
||||||
uint64_t col_id = output_column_ids_.at(i);
|
if (LS_META_PACKAGE == col_id) { // decode ls_meta_package column
|
||||||
if (LS_META_PACKAGE == col_id) { // decode ls_meta_package column
|
int64_t length = 0;
|
||||||
int64_t length = 0;
|
HEAP_VAR(ObLSMetaPackage, ls_meta_package) {
|
||||||
EXTRACT_VARCHAR_FIELD_MYSQL(*result_, "ls_meta_package", ls_meta_package_str);
|
EXTRACT_VARCHAR_FIELD_MYSQL_SKIP_RET(*result_, "ls_meta_package", ls_meta_package_str);
|
||||||
if (ls_meta_package_str.empty()) {
|
if (OB_FAIL(ret)) {
|
||||||
|
} else if (ls_meta_package_str.empty()) {
|
||||||
cur_row_.cells_[i].reset();
|
cur_row_.cells_[i].reset();
|
||||||
} else if (OB_ISNULL(ls_meta_buf_)) {
|
} else if (OB_ISNULL(ls_meta_buf_)) {
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
@ -128,17 +129,17 @@ int ObAllVirtualTenantSnapshotLSReplica::process_curr_tenant(ObNewRow *&row)
|
|||||||
SERVER_LOG(WARN, "fail to get ls_meta_package string", KR(ret), K(length));
|
SERVER_LOG(WARN, "fail to get ls_meta_package string", KR(ret), K(length));
|
||||||
} else {
|
} else {
|
||||||
cur_row_.cells_[i].set_lob_value(ObObjType::ObLongTextType, ls_meta_buf_,
|
cur_row_.cells_[i].set_lob_value(ObObjType::ObLongTextType, ls_meta_buf_,
|
||||||
static_cast<int32_t>(length));
|
static_cast<int32_t>(length));
|
||||||
cur_row_.cells_[i].set_collation_type(ObCharset::get_default_collation(
|
cur_row_.cells_[i].set_collation_type(ObCharset::get_default_collation(
|
||||||
ObCharset::get_default_charset()));
|
ObCharset::get_default_charset()));
|
||||||
}
|
}
|
||||||
} else if (col_id - OB_APP_MIN_COLUMN_ID >= 0 && col_id - OB_APP_MIN_COLUMN_ID < r->count_) {
|
|
||||||
// direct copy other columns
|
|
||||||
cur_row_.cells_[i] = r->get_cell(col_id - OB_APP_MIN_COLUMN_ID);
|
|
||||||
} else {
|
|
||||||
ret = OB_ERR_UNEXPECTED;
|
|
||||||
SERVER_LOG(WARN, "unexpected column id", KR(ret), K(col_id), K(output_column_ids_));
|
|
||||||
}
|
}
|
||||||
|
} else if (col_id - OB_APP_MIN_COLUMN_ID >= 0 && col_id - OB_APP_MIN_COLUMN_ID < r->count_) {
|
||||||
|
// direct copy other columns
|
||||||
|
cur_row_.cells_[i] = r->get_cell(col_id - OB_APP_MIN_COLUMN_ID);
|
||||||
|
} else {
|
||||||
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
SERVER_LOG(WARN, "unexpected column id", KR(ret), K(col_id), K(output_column_ids_));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -110,13 +110,14 @@ int ObAllVirtualTenantSnapshotLSReplicaHistory::process_curr_tenant(ObNewRow *&r
|
|||||||
SERVER_LOG(WARN, "row is null or column count mismatch", KR(ret), KP(r), K(cur_row_.count_));
|
SERVER_LOG(WARN, "row is null or column count mismatch", KR(ret), KP(r), K(cur_row_.count_));
|
||||||
} else {
|
} else {
|
||||||
ObString ls_meta_package_str;
|
ObString ls_meta_package_str;
|
||||||
HEAP_VAR(ObLSMetaPackage, ls_meta_package) {
|
for (int64_t i = 0; OB_SUCC(ret) && i < cur_row_.count_; ++i) {
|
||||||
for (int64_t i = 0; OB_SUCC(ret) && i < cur_row_.count_; ++i) {
|
uint64_t col_id = output_column_ids_.at(i);
|
||||||
uint64_t col_id = output_column_ids_.at(i);
|
if (LS_META_PACKAGE == col_id) { // decode ls_meta_package column
|
||||||
if (LS_META_PACKAGE == col_id) { // decode ls_meta_package column
|
int64_t length = 0;
|
||||||
int64_t length = 0;
|
HEAP_VAR(ObLSMetaPackage, ls_meta_package) {
|
||||||
EXTRACT_VARCHAR_FIELD_MYSQL(*result_, "ls_meta_package", ls_meta_package_str);
|
EXTRACT_VARCHAR_FIELD_MYSQL_SKIP_RET(*result_, "ls_meta_package", ls_meta_package_str);
|
||||||
if (ls_meta_package_str.empty()) {
|
if (OB_FAIL(ret)) {
|
||||||
|
} else if (ls_meta_package_str.empty()) {
|
||||||
cur_row_.cells_[i].reset();
|
cur_row_.cells_[i].reset();
|
||||||
} else if (OB_ISNULL(ls_meta_buf_)) {
|
} else if (OB_ISNULL(ls_meta_buf_)) {
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
@ -128,17 +129,17 @@ int ObAllVirtualTenantSnapshotLSReplicaHistory::process_curr_tenant(ObNewRow *&r
|
|||||||
SERVER_LOG(WARN, "fail to get ls_meta_package string", KR(ret), K(length));
|
SERVER_LOG(WARN, "fail to get ls_meta_package string", KR(ret), K(length));
|
||||||
} else {
|
} else {
|
||||||
cur_row_.cells_[i].set_lob_value(ObObjType::ObLongTextType, ls_meta_buf_,
|
cur_row_.cells_[i].set_lob_value(ObObjType::ObLongTextType, ls_meta_buf_,
|
||||||
static_cast<int32_t>(length));
|
static_cast<int32_t>(length));
|
||||||
cur_row_.cells_[i].set_collation_type(ObCharset::get_default_collation(
|
cur_row_.cells_[i].set_collation_type(ObCharset::get_default_collation(
|
||||||
ObCharset::get_default_charset()));
|
ObCharset::get_default_charset()));
|
||||||
}
|
}
|
||||||
} else if (col_id - OB_APP_MIN_COLUMN_ID >= 0 && col_id - OB_APP_MIN_COLUMN_ID < r->count_) {
|
|
||||||
// direct copy other columns
|
|
||||||
cur_row_.cells_[i] = r->get_cell(col_id - OB_APP_MIN_COLUMN_ID);
|
|
||||||
} else {
|
|
||||||
ret = OB_ERR_UNEXPECTED;
|
|
||||||
SERVER_LOG(WARN, "unexpected column id", KR(ret), K(col_id), K(output_column_ids_));
|
|
||||||
}
|
}
|
||||||
|
} else if (col_id - OB_APP_MIN_COLUMN_ID >= 0 && col_id - OB_APP_MIN_COLUMN_ID < r->count_) {
|
||||||
|
// direct copy other columns
|
||||||
|
cur_row_.cells_[i] = r->get_cell(col_id - OB_APP_MIN_COLUMN_ID);
|
||||||
|
} else {
|
||||||
|
ret = OB_ERR_UNEXPECTED;
|
||||||
|
SERVER_LOG(WARN, "unexpected column id", KR(ret), K(col_id), K(output_column_ids_));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user