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;
|
||||||
EXTRACT_VARCHAR_FIELD_MYSQL(*result_, "ls_meta_package", ls_meta_package_str);
|
HEAP_VAR(ObLSMetaPackage, ls_meta_package) {
|
||||||
if (ls_meta_package_str.empty()) {
|
EXTRACT_VARCHAR_FIELD_MYSQL_SKIP_RET(*result_, "ls_meta_package", ls_meta_package_str);
|
||||||
|
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;
|
||||||
@ -132,6 +133,7 @@ int ObAllVirtualTenantSnapshotLSReplica::process_curr_tenant(ObNewRow *&row)
|
|||||||
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_) {
|
} else if (col_id - OB_APP_MIN_COLUMN_ID >= 0 && col_id - OB_APP_MIN_COLUMN_ID < r->count_) {
|
||||||
// direct copy other columns
|
// direct copy other columns
|
||||||
cur_row_.cells_[i] = r->get_cell(col_id - OB_APP_MIN_COLUMN_ID);
|
cur_row_.cells_[i] = r->get_cell(col_id - OB_APP_MIN_COLUMN_ID);
|
||||||
@ -142,7 +144,6 @@ int ObAllVirtualTenantSnapshotLSReplica::process_curr_tenant(ObNewRow *&row)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
row = &cur_row_;
|
row = &cur_row_;
|
||||||
|
|||||||
@ -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;
|
||||||
EXTRACT_VARCHAR_FIELD_MYSQL(*result_, "ls_meta_package", ls_meta_package_str);
|
HEAP_VAR(ObLSMetaPackage, ls_meta_package) {
|
||||||
if (ls_meta_package_str.empty()) {
|
EXTRACT_VARCHAR_FIELD_MYSQL_SKIP_RET(*result_, "ls_meta_package", ls_meta_package_str);
|
||||||
|
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;
|
||||||
@ -132,6 +133,7 @@ int ObAllVirtualTenantSnapshotLSReplicaHistory::process_curr_tenant(ObNewRow *&r
|
|||||||
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_) {
|
} else if (col_id - OB_APP_MIN_COLUMN_ID >= 0 && col_id - OB_APP_MIN_COLUMN_ID < r->count_) {
|
||||||
// direct copy other columns
|
// direct copy other columns
|
||||||
cur_row_.cells_[i] = r->get_cell(col_id - OB_APP_MIN_COLUMN_ID);
|
cur_row_.cells_[i] = r->get_cell(col_id - OB_APP_MIN_COLUMN_ID);
|
||||||
@ -142,7 +144,6 @@ int ObAllVirtualTenantSnapshotLSReplicaHistory::process_curr_tenant(ObNewRow *&r
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
row = &cur_row_;
|
row = &cur_row_;
|
||||||
|
|||||||
Reference in New Issue
Block a user