@@ -866,7 +866,8 @@ Status FieldFromFlatbuffer(const flatbuf::Field* field, FieldPosition field_pos,
866866 std::shared_ptr<DataType> type;
867867
868868 std::shared_ptr<KeyValueMetadata> metadata;
869- RETURN_NOT_OK (internal::GetKeyValueMetadata (field->custom_metadata (), &metadata));
869+ ARROW_ASSIGN_OR_RAISE (metadata,
870+ internal::GetKeyValueMetadata (field->custom_metadata ()));
870871
871872 // Reconstruct the data type
872873 // 1. Data type children
@@ -1279,11 +1280,10 @@ Status MakeSparseTensor(FBB& fbb, const SparseTensor& sparse_tensor, int64_t bod
12791280
12801281} // namespace
12811282
1282- Status GetKeyValueMetadata (const KVVector* fb_metadata,
1283- std::shared_ptr<KeyValueMetadata>* out ) {
1283+ Result<std::shared_ptr<KeyValueMetadata>> GetKeyValueMetadata (
1284+ const KVVector* fb_metadata ) {
12841285 if (fb_metadata == nullptr ) {
1285- *out = nullptr ;
1286- return Status::OK ();
1286+ return nullptr ;
12871287 }
12881288
12891289 auto metadata = std::make_shared<KeyValueMetadata>();
@@ -1295,36 +1295,33 @@ Status GetKeyValueMetadata(const KVVector* fb_metadata,
12951295 metadata->Append (pair->key ()->str (), pair->value ()->str ());
12961296 }
12971297
1298- *out = std::move (metadata);
1299- return Status::OK ();
1298+ return metadata;
13001299}
13011300
1302- Status WriteSchemaMessage (const Schema& schema, const DictionaryFieldMapper& mapper,
1303- const IpcWriteOptions& options, std::shared_ptr<Buffer>* out) {
1301+ Result<std::shared_ptr<Buffer>> WriteSchemaMessage (const Schema& schema,
1302+ const DictionaryFieldMapper& mapper,
1303+ const IpcWriteOptions& options) {
13041304 FBB fbb;
13051305 flatbuffers::Offset<flatbuf::Schema> fb_schema;
13061306 RETURN_NOT_OK (SchemaToFlatbuffer (fbb, schema, mapper, &fb_schema));
13071307 return WriteFBMessage (fbb, flatbuf::MessageHeader::MessageHeader_Schema,
13081308 fb_schema.Union (),
13091309 /* body_length=*/ 0 , options.metadata_version ,
1310- /* custom_metadata=*/ nullptr , options.memory_pool )
1311- .Value (out);
1310+ /* custom_metadata=*/ nullptr , options.memory_pool );
13121311}
13131312
1314- Status WriteRecordBatchMessage (
1313+ Result<std::shared_ptr<Buffer>> WriteRecordBatchMessage (
13151314 int64_t length, int64_t body_length,
13161315 const std::shared_ptr<const KeyValueMetadata>& custom_metadata,
13171316 const std::vector<FieldMetadata>& nodes, const std::vector<BufferMetadata>& buffers,
1318- const std::vector<int64_t >& variadic_buffer_counts, const IpcWriteOptions& options,
1319- std::shared_ptr<Buffer>* out) {
1317+ const std::vector<int64_t >& variadic_buffer_counts, const IpcWriteOptions& options) {
13201318 FBB fbb;
13211319 RecordBatchOffset record_batch;
13221320 RETURN_NOT_OK (MakeRecordBatch (fbb, length, body_length, nodes, buffers,
13231321 variadic_buffer_counts, options, &record_batch));
13241322 return WriteFBMessage (fbb, flatbuf::MessageHeader::MessageHeader_RecordBatch,
13251323 record_batch.Union (), body_length, options.metadata_version ,
1326- custom_metadata, options.memory_pool )
1327- .Value (out);
1324+ custom_metadata, options.memory_pool );
13281325}
13291326
13301327Result<std::shared_ptr<Buffer>> WriteTensorMessage (const Tensor& tensor,
@@ -1373,12 +1370,11 @@ Result<std::shared_ptr<Buffer>> WriteSparseTensorMessage(
13731370 /* custom_metadata=*/ nullptr , options.memory_pool );
13741371}
13751372
1376- Status WriteDictionaryMessage (
1373+ Result<std::shared_ptr<Buffer>> WriteDictionaryMessage (
13771374 int64_t id, bool is_delta, int64_t length, int64_t body_length,
13781375 const std::shared_ptr<const KeyValueMetadata>& custom_metadata,
13791376 const std::vector<FieldMetadata>& nodes, const std::vector<BufferMetadata>& buffers,
1380- const std::vector<int64_t >& variadic_buffer_counts, const IpcWriteOptions& options,
1381- std::shared_ptr<Buffer>* out) {
1377+ const std::vector<int64_t >& variadic_buffer_counts, const IpcWriteOptions& options) {
13821378 FBB fbb;
13831379 RecordBatchOffset record_batch;
13841380 RETURN_NOT_OK (MakeRecordBatch (fbb, length, body_length, nodes, buffers,
@@ -1387,8 +1383,7 @@ Status WriteDictionaryMessage(
13871383 flatbuf::CreateDictionaryBatch (fbb, id, record_batch, is_delta).Union ();
13881384 return WriteFBMessage (fbb, flatbuf::MessageHeader::MessageHeader_DictionaryBatch,
13891385 dictionary_batch, body_length, options.metadata_version ,
1390- custom_metadata, options.memory_pool )
1391- .Value (out);
1386+ custom_metadata, options.memory_pool );
13921387}
13931388
13941389static flatbuffers::Offset<flatbuffers::Vector<const flatbuf::Block*>>
@@ -1462,7 +1457,8 @@ Status GetSchema(const void* opaque_schema, DictionaryMemo* dictionary_memo,
14621457 }
14631458
14641459 std::shared_ptr<KeyValueMetadata> metadata;
1465- RETURN_NOT_OK (internal::GetKeyValueMetadata (schema->custom_metadata (), &metadata));
1460+ ARROW_ASSIGN_OR_RAISE (metadata,
1461+ internal::GetKeyValueMetadata (schema->custom_metadata ()));
14661462 // set endianness using the value in flatbuf schema
14671463 auto endianness = schema->endianness () == flatbuf::Endianness::Endianness_Little
14681464 ? Endianness::Little
0 commit comments