fix check_old_row_legitimacy
This commit is contained in:
@ -582,12 +582,7 @@ OB_INLINE int ObStorageDatum::from_buf_enhance(const char *buf, const int64_t bu
|
|||||||
} else {
|
} else {
|
||||||
reuse();
|
reuse();
|
||||||
len_ = static_cast<uint32_t>(buf_len);
|
len_ = static_cast<uint32_t>(buf_len);
|
||||||
if (sizeof(uint64_t) == buf_len) {
|
if (buf_len > 0) {
|
||||||
// To maintain the same processing method as other micro-block formats,
|
|
||||||
// we perform a deep copy on columns with a length of 8 bytes in flat micro-block format.
|
|
||||||
// see ObClusterColumnReader::read_column_from_buf
|
|
||||||
MEMCPY(no_cv(ptr_), buf, sizeof(uint64_t));
|
|
||||||
} else if (buf_len > 0) {
|
|
||||||
ptr_ = buf;
|
ptr_ = buf;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -671,6 +671,8 @@ int ObMicroBlockReader::get_rows(
|
|||||||
if (col_idx >= read_info_->get_request_count()) {
|
if (col_idx >= read_info_->get_request_count()) {
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
LOG_WARN("Unexpected col idx", K(ret), K(i), K(col_idx), K(read_info_->get_request_count()));
|
LOG_WARN("Unexpected col idx", K(ret), K(i), K(col_idx), K(read_info_->get_request_count()));
|
||||||
|
} else if (row_buf.storage_datums_[col_idx].is_null()) {
|
||||||
|
datum.set_null();
|
||||||
} else if (row_buf.storage_datums_[col_idx].is_nop()) {
|
} else if (row_buf.storage_datums_[col_idx].is_nop()) {
|
||||||
if (default_row.storage_datums_[i].is_nop()) {
|
if (default_row.storage_datums_[i].is_nop()) {
|
||||||
// virtual columns will be calculated in sql
|
// virtual columns will be calculated in sql
|
||||||
@ -682,8 +684,8 @@ int ObMicroBlockReader::get_rows(
|
|||||||
} else {
|
} else {
|
||||||
bool need_copy = false;
|
bool need_copy = false;
|
||||||
if (row_buf.storage_datums_[col_idx].need_copy_for_encoding_column_with_flat_format(map_types.at(i))) {
|
if (row_buf.storage_datums_[col_idx].need_copy_for_encoding_column_with_flat_format(map_types.at(i))) {
|
||||||
exprs[i]->reset_ptr_in_datum(eval_ctx, idx);
|
|
||||||
need_copy = true;
|
need_copy = true;
|
||||||
|
datum.ptr_ = exprs[i]->get_str_res_mem(eval_ctx, row_buf.storage_datums_[col_idx].len_, idx);
|
||||||
}
|
}
|
||||||
if (OB_FAIL(datum.from_storage_datum(row_buf.storage_datums_[col_idx], map_types.at(i), need_copy))) {
|
if (OB_FAIL(datum.from_storage_datum(row_buf.storage_datums_[col_idx], map_types.at(i), need_copy))) {
|
||||||
LOG_WARN("Failed to from storage datum", K(ret), K(idx), K(row_idx), K(col_idx), K(need_copy),
|
LOG_WARN("Failed to from storage datum", K(ret), K(idx), K(row_idx), K(col_idx), K(need_copy),
|
||||||
|
|||||||
Reference in New Issue
Block a user