diff --git a/internal/core/src/storage/Util.cpp b/internal/core/src/storage/Util.cpp index 785516d7af..3dc74b7022 100644 --- a/internal/core/src/storage/Util.cpp +++ b/internal/core/src/storage/Util.cpp @@ -1504,7 +1504,21 @@ GetFieldDatasFromManifest( std::optional element_type) { auto column_groups = GetColumnGroups(manifest_path, loon_ffi_properties); - // ReaderHandle reader_handler = 0; + // TODO remove manual check after loon support read null for non-exists field + bool field_exists = false; + const auto field_id_to_find = std::to_string(field_meta.field_id); + for (size_t i = 0; i < column_groups->size() && !field_exists; i++) { + auto column_group = column_groups->get_column_group(i); + for (const auto& column : column_group->columns) { + if (column == field_id_to_find) { + field_exists = true; + break; + } + } + } + if (!field_exists) { + return {}; + } std::string field_id_str = std::to_string(field_meta.field_id); std::vector needed_columns = {field_id_str};