diff --git a/src/storage/blocksstable/cs_encoding/ob_micro_block_cs_decoder.cpp b/src/storage/blocksstable/cs_encoding/ob_micro_block_cs_decoder.cpp index e1472ab3c..8508faa41 100644 --- a/src/storage/blocksstable/cs_encoding/ob_micro_block_cs_decoder.cpp +++ b/src/storage/blocksstable/cs_encoding/ob_micro_block_cs_decoder.cpp @@ -2007,7 +2007,7 @@ int ObMicroBlockCSDecoder::get_rows( expr, eval_ctx))) { LOG_WARN("Failed pad on rich format columns", K(ret), K(expr)); - } else if (need_dispatch_collection + } else if (need_dispatch_collection && !has_lob_out_row() && OB_FAIL(storage::distribute_attrs_on_rich_format_columns(row_cap, vec_offset, expr, eval_ctx))) { LOG_WARN("failed to dispatch collection cells", K(ret), K(i), K(row_cap), K(vec_offset)); } diff --git a/src/storage/blocksstable/encoding/ob_micro_block_decoder.cpp b/src/storage/blocksstable/encoding/ob_micro_block_decoder.cpp index 4e607d2f6..e3555a3b2 100644 --- a/src/storage/blocksstable/encoding/ob_micro_block_decoder.cpp +++ b/src/storage/blocksstable/encoding/ob_micro_block_decoder.cpp @@ -2350,7 +2350,7 @@ int ObMicroBlockDecoder::get_rows( expr, eval_ctx))) { LOG_WARN("Failed pad on rich format columns", K(ret), K(expr)); - } else if (need_dispatch_collection + } else if (need_dispatch_collection && !has_lob_out_row() && OB_FAIL(storage::distribute_attrs_on_rich_format_columns(row_cap, vec_offset, expr, eval_ctx))) { LOG_WARN("failed to dispatch collection cells", K(ret), K(i), K(row_cap), K(vec_offset)); } diff --git a/src/storage/blocksstable/ob_micro_block_reader.cpp b/src/storage/blocksstable/ob_micro_block_reader.cpp index 7ba493503..b0b2973d5 100644 --- a/src/storage/blocksstable/ob_micro_block_reader.cpp +++ b/src/storage/blocksstable/ob_micro_block_reader.cpp @@ -999,7 +999,7 @@ int ObMicroBlockReader::get_rows( eval_ctx))) { LOG_WARN("Failed pad on rich format columns", K(ret), KPC(exprs.at(i))); } - } else if (need_dispatch_collection + } else if (need_dispatch_collection && !has_lob_out_row() && OB_FAIL(storage::distribute_attrs_on_rich_format_columns(row_cap, vector_offset, *(exprs.at(i)), eval_ctx))) { LOG_WARN("failed to dispatch collection cells", K(ret), K(i), K(row_cap), K(vector_offset)); } diff --git a/src/storage/ob_storage_util.cpp b/src/storage/ob_storage_util.cpp index 0e836ed2d..66da41d2d 100644 --- a/src/storage/ob_storage_util.cpp +++ b/src/storage/ob_storage_util.cpp @@ -478,6 +478,10 @@ int fill_exprs_lob_locator( } } } + if (OB_SUCC(ret) && col_param.get_meta_type().is_collection_sql_type() && + OB_FAIL(storage::distribute_attrs_on_rich_format_columns(row_cap, vector_offset, expr, eval_ctx))) { + STORAGE_LOG(WARN, "failed to dispatch collection cells", K(ret), K(row_cap), K(vector_offset)); + } } return ret; }