@@ -1343,14 +1343,35 @@ Status FileReader::Make(::arrow::MemoryPool* pool,
13431343 std::unique_ptr<ParquetFileReader> reader,
13441344 const ArrowReaderProperties& properties,
13451345 std::unique_ptr<FileReader>* out) {
1346- *out = std::make_unique<FileReaderImpl>(pool, std::move (reader), properties);
1347- return static_cast <FileReaderImpl*>(out->get ())->Init ();
1346+ ARROW_ASSIGN_OR_RAISE (auto result, Make (pool, std::move (reader), properties));
1347+ *out = std::move (result);
1348+ return Status::OK ();
13481349}
13491350
13501351Status FileReader::Make (::arrow::MemoryPool* pool,
13511352 std::unique_ptr<ParquetFileReader> reader,
13521353 std::unique_ptr<FileReader>* out) {
1353- return Make (pool, std::move (reader), default_arrow_reader_properties (), out);
1354+ ARROW_ASSIGN_OR_RAISE (auto result,
1355+ Make (pool, std::move (reader), default_arrow_reader_properties ()));
1356+ *out = std::move (result);
1357+ return Status::OK ();
1358+ }
1359+
1360+ Result<std::unique_ptr<FileReader>> FileReader::Make (
1361+ ::arrow::MemoryPool* pool, std::unique_ptr<ParquetFileReader> parquet_reader,
1362+ const ArrowReaderProperties& properties) {
1363+ std::unique_ptr<FileReader> reader =
1364+ std::make_unique<FileReaderImpl>(pool, std::move (parquet_reader), properties);
1365+ RETURN_NOT_OK (static_cast <FileReaderImpl*>(reader.get ())->Init ());
1366+ return reader;
1367+ }
1368+
1369+ Result<std::unique_ptr<FileReader>> FileReader::Make (
1370+ ::arrow::MemoryPool* pool, std::unique_ptr<ParquetFileReader> parquet_reader) {
1371+ std::unique_ptr<FileReader> reader = std::make_unique<FileReaderImpl>(
1372+ pool, std::move (parquet_reader), default_arrow_reader_properties ());
1373+ RETURN_NOT_OK (static_cast <FileReaderImpl*>(reader.get ())->Init ());
1374+ return reader;
13541375}
13551376
13561377FileReaderBuilder::FileReaderBuilder ()
0 commit comments