2929#include " iceberg/schema.h"
3030#include " iceberg/schema_internal.h"
3131#include " iceberg/type.h"
32+ #include " iceberg/util/macros.h"
3233
3334namespace iceberg {
3435
3536#define ARROW_RETURN_IF_NOT_OK (status, error ) \
36- if (status != NANOARROW_OK) { \
37- return InvalidArrowData (" NanoArrow error: {}" , error.message ); \
37+ if (status != NANOARROW_OK) [[unlikely]] { \
38+ return InvalidArrowData (" Nanoarrow error: {}" , error.message ); \
3839 }
3940
4041Result<std::vector<std::unique_ptr<ManifestFile>>> ParseManifestListEntry (
@@ -206,16 +207,8 @@ Result<std::vector<std::unique_ptr<ManifestEntry>>> ManifestReaderImpl::Entries(
206207
207208Result<std::vector<std::unique_ptr<ManifestFile>>> ManifestListReaderImpl::Files () const {
208209 std::vector<std::unique_ptr<ManifestFile>> manifest_files;
209- auto arrow_schema = reader_->Schema ();
210- if (!arrow_schema.has_value ()) {
211- return InvalidArgument (" Get schema failed in reader:{}" ,
212- arrow_schema.error ().message );
213- }
214- internal::ArrowSchemaGuard schema_guard (&arrow_schema.value ());
215- auto schema = FromArrowSchema (arrow_schema.value (), std::nullopt );
216- if (!schema.has_value ()) {
217- return InvalidArgument (" Parse iceberg schema failed:{}" , schema.error ().message );
218- }
210+ ICEBERG_ASSIGN_OR_RAISE (auto arrow_schema, reader_->Schema ());
211+ internal::ArrowSchemaGuard schema_guard (&arrow_schema);
219212 while (true ) {
220213 auto result = reader_->Next ();
221214 if (!result.has_value ()) {
@@ -224,8 +217,8 @@ Result<std::vector<std::unique_ptr<ManifestFile>>> ManifestListReaderImpl::Files
224217 }
225218 if (result.value ().has_value ()) {
226219 internal::ArrowArrayGuard array_guard (&result.value ().value ());
227- auto parse_result = ParseManifestListEntry (
228- &arrow_schema. value () , &result.value ().value (), *schema. value () );
220+ auto parse_result =
221+ ParseManifestListEntry ( &arrow_schema, &result.value ().value (), *schema_ );
229222 if (!parse_result.has_value ()) {
230223 return InvalidArgument (" Failed to parse manifest list entry:{}" ,
231224 parse_result.error ().message );
0 commit comments