diff --git a/be/src/olap/rowset/segment_v2/segment_iterator.cpp b/be/src/olap/rowset/segment_v2/segment_iterator.cpp index 88786b8b8e..bbacb8137b 100644 --- a/be/src/olap/rowset/segment_v2/segment_iterator.cpp +++ b/be/src/olap/rowset/segment_v2/segment_iterator.cpp @@ -1821,8 +1821,9 @@ Status SegmentIterator::_next_batch_internal(vectorized::Block* block) { auto cid = _schema->column_id(i); auto column_desc = _schema->column(cid); if (_is_pred_column[cid]) { - _current_return_columns[cid] = - Schema::get_predicate_column_ptr(*column_desc, _opts.io_ctx.reader_type); + RETURN_IF_CATCH_EXCEPTION(_current_return_columns[cid] = + Schema::get_predicate_column_ptr( + *column_desc, _opts.io_ctx.reader_type)); _current_return_columns[cid]->set_rowset_segment_id( {_segment->rowset_id(), _segment->id()}); _current_return_columns[cid]->reserve(_opts.block_row_max); diff --git a/be/src/olap/schema.cpp b/be/src/olap/schema.cpp index 8f08516384..8f786a81bf 100644 --- a/be/src/olap/schema.cpp +++ b/be/src/olap/schema.cpp @@ -209,7 +209,9 @@ vectorized::IColumn::MutablePtr Schema::get_predicate_column_ptr(const Field& fi ptr = doris::vectorized::PredicateColumnType::create(); break; default: - LOG(FATAL) << "Unexpected type when choosing predicate column, type=" << int(field.type()); + throw Exception(ErrorCode::SCHEMA_SCHEMA_FIELD_INVALID, + fmt::format("Unexpected type when choosing predicate column, type={}", + int(field.type()))); } if (field.is_nullable()) {