@@ -467,7 +467,7 @@ Status VFileScanner::_cast_to_input_block(Block* block) {
467467
468468Status VFileScanner::_fill_columns_from_path (size_t rows) {
469469 DataTypeSerDe::FormatOptions _text_formatOptions;
470- for (auto & kv : *_partition_columns ) {
470+ for (auto & kv : _partition_col_descs ) {
471471 auto doris_column = _src_block_ptr->get_by_name (kv.first ).column ;
472472 IColumn* col_ptr = const_cast <IColumn*>(doris_column.get ());
473473 auto & [value, slot_desc] = kv.second ;
@@ -500,7 +500,7 @@ Status VFileScanner::_fill_missing_columns(size_t rows) {
500500 }
501501
502502 SCOPED_TIMER (_fill_missing_columns_timer);
503- for (auto & kv : *_missing_columns ) {
503+ for (auto & kv : _missing_col_descs ) {
504504 if (kv.second == nullptr ) {
505505 // no default column, fill with null
506506 auto nullable_column = reinterpret_cast <vectorized::ColumnNullable*>(
@@ -930,9 +930,8 @@ Status VFileScanner::_get_next_reader() {
930930}
931931
932932Status VFileScanner::_generate_fill_columns () {
933- _partition_columns.reset (
934- new std::unordered_map<std::string, std::tuple<std::string, const SlotDescriptor*>>());
935- _missing_columns.reset (new std::unordered_map<std::string, VExprContextSPtr>());
933+ _partition_col_descs.clear ();
934+ _missing_col_descs.clear ();
936935
937936 const TFileRangeDesc& range = _ranges.at (_next_range - 1 );
938937 if (range.__isset .columns_from_path && !_partition_slot_descs.empty ()) {
@@ -949,8 +948,8 @@ Status VFileScanner::_generate_fill_columns() {
949948 if (size == 4 && memcmp (data, " null" , 4 ) == 0 ) {
950949 data = const_cast <char *>(" \\ N" );
951950 }
952- _partition_columns-> emplace (slot_desc->col_name (),
953- std::make_tuple (data, slot_desc));
951+ _partition_col_descs. emplace (slot_desc->col_name (),
952+ std::make_tuple (data, slot_desc));
954953 }
955954 }
956955 }
@@ -969,16 +968,11 @@ Status VFileScanner::_generate_fill_columns() {
969968 return Status::InternalError (" failed to find default value expr for slot: {}" ,
970969 slot_desc->col_name ());
971970 }
972- _missing_columns-> emplace (slot_desc->col_name (), it->second );
971+ _missing_col_descs. emplace (slot_desc->col_name (), it->second );
973972 }
974973 }
975974
976- RETURN_IF_ERROR (_cur_reader->set_fill_columns (*_partition_columns, *_missing_columns));
977- if (_cur_reader->fill_all_columns ()) {
978- _partition_columns.reset (nullptr );
979- _missing_columns.reset (nullptr );
980- }
981- return Status::OK ();
975+ return _cur_reader->set_fill_columns (_partition_col_descs, _missing_col_descs);
982976}
983977
984978Status VFileScanner::_init_expr_ctxes () {
0 commit comments