fix check_old_row_legitimacy

This commit is contained in:
z404289981
2023-08-18 07:40:34 +00:00
committed by ob-robot
parent 80c9e58e7f
commit e842fa11c7
2 changed files with 4 additions and 7 deletions

View File

@ -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;
} }
} }

View File

@ -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),