diff --git a/dbms/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp b/dbms/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp index ed9c965a1f5..bcc5148deb9 100644 --- a/dbms/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp +++ b/dbms/src/Processors/Formats/Impl/ArrowColumnToCHColumn.cpp @@ -260,13 +260,6 @@ namespace DB throw Exception{"Error while reading " + format_name + " data: " + read_status.ToString(), ErrorCodes::CANNOT_READ_ALL_DATA}; - if (0 == table->num_rows()) - throw Exception{"Empty table in input data", ErrorCodes::EMPTY_DATA_PASSED}; - - if (header.columns() > static_cast(table->num_columns())) - // TODO: What if some columns were not presented? Insert NULLs? What if a column is not nullable? - throw Exception{"Number of columns is less than the table has", ErrorCodes::SIZES_OF_COLUMNS_DOESNT_MATCH}; - ++row_group_current; NameToColumnPtr name_to_column_ptr; diff --git a/dbms/src/Processors/Formats/Impl/ParquetBlockInputFormat.cpp b/dbms/src/Processors/Formats/Impl/ParquetBlockInputFormat.cpp index ecfb0b5ca5b..780815ff7b2 100644 --- a/dbms/src/Processors/Formats/Impl/ParquetBlockInputFormat.cpp +++ b/dbms/src/Processors/Formats/Impl/ParquetBlockInputFormat.cpp @@ -87,9 +87,9 @@ static std::shared_ptr as_arrow_file(ReadBuffer & if (auto fd_in = dynamic_cast(&in)) { struct stat stat; - ::fstat(fd_in->getFD(), &stat); + auto res = ::fstat(fd_in->getFD(), &stat); // if fd is a regular file i.e. not stdin - if (S_ISREG(stat.st_mode)) + if (res == 0 && S_ISREG(stat.st_mode)) { return std::make_shared(*fd_in, stat.st_size); } @@ -109,11 +109,11 @@ namespace ErrorCodes extern const int BAD_ARGUMENTS; } -#define THROW_ARROW_NOT_OK(status) \ - do { \ - ::arrow::Status __s = (status); \ - if(!__s.ok()) \ - throw Exception(__s.ToString(), ErrorCodes::BAD_ARGUMENTS);\ +#define THROW_ARROW_NOT_OK(status) \ + do \ + { \ + if (::arrow::Status _s = (status); !_s.ok()) \ + throw Exception(_s.ToString(), ErrorCodes::BAD_ARGUMENTS); \ } while (false) ParquetBlockInputFormat::ParquetBlockInputFormat(ReadBuffer & in_, Block header_) diff --git a/dbms/tests/queries/0_stateless/00900_parquet_load.reference b/dbms/tests/queries/0_stateless/00900_parquet_load.reference index 23627bf0f68..2930fcd3c14 100644 --- a/dbms/tests/queries/0_stateless/00900_parquet_load.reference +++ b/dbms/tests/queries/0_stateless/00900_parquet_load.reference @@ -174,16 +174,16 @@ Code: 8. DB::Ex---tion: Column "element" is not presented in input data Code: 33. DB::Ex---tion: Error while reading Parquet data: NotImplemented: Reading lists of structs from Parquet files not yet supported: key_value: list not null> not null>> not null> not null === Try load data from nonnullable.impala.parquet -Code: 33. DB::Ex---tion: Error while reading Parquet data: NotImplemented: Reading lists of structs from Parquet files not yet supported: map: list not null> not null +Code: 8. DB::Ex---tion: Column "element" is not presented in input data === Try load data from nullable.impala.parquet -Code: 33. DB::Ex---tion: Error while reading Parquet data: NotImplemented: Reading lists of structs from Parquet files not yet supported: map: list not null> not null +Code: 8. DB::Ex---tion: Column "element" is not presented in input data === Try load data from nulls.snappy.parquet Code: 8. DB::Ex---tion: Column "b_c_int" is not presented in input data === Try load data from repeated_no_annotation.parquet -Code: 33. DB::Ex---tion: Error while reading Parquet data: NotImplemented: Reading lists of structs from Parquet files not yet supported: phone: list not null> not null +Code: 8. DB::Ex---tion: Column "number" is not presented in input data === Try load data from userdata1.parquet 1454486129 1 Amanda Jordan ajordan0@com.com Female 1.197.201.2 6759521864920116 Indonesia 3/8/1971 49756.53 Internal Auditor 1E+02