3636
3737#include " arrow/buffer.h"
3838#include " arrow/ipc/dictionary.h"
39+ #include " arrow/ipc/options.h"
3940#include " arrow/ipc/reader.h"
4041#include " arrow/ipc/writer.h"
4142#include " arrow/memory_pool.h"
@@ -640,13 +641,13 @@ class RecordBatchStream::RecordBatchStreamImpl {
640641
641642 RecordBatchStreamImpl (const std::shared_ptr<RecordBatchReader>& reader,
642643 MemoryPool* pool)
643- : pool_(pool), reader_(reader) {}
644+ : pool_(pool), reader_(reader), ipc_options_(ipc::IpcOptions::Defaults()) {}
644645
645646 std::shared_ptr<Schema> schema () { return reader_->schema (); }
646647
647648 Status GetSchemaPayload (FlightPayload* payload) {
648- return ipc::internal::GetSchemaPayload (*reader_->schema (), &dictionary_memo_ ,
649- &payload->ipc_message );
649+ return ipc::internal::GetSchemaPayload (*reader_->schema (), ipc_options_ ,
650+ &dictionary_memo_, & payload->ipc_message );
650651 }
651652
652653 Status Next (FlightPayload* payload) {
@@ -664,7 +665,7 @@ class RecordBatchStream::RecordBatchStreamImpl {
664665 if (stage_ == Stage::DICTIONARY) {
665666 if (dictionary_index_ == static_cast <int >(dictionaries_.size ())) {
666667 stage_ = Stage::RECORD_BATCH;
667- return ipc::internal::GetRecordBatchPayload (*current_batch_, pool_,
668+ return ipc::internal::GetRecordBatchPayload (*current_batch_, ipc_options_, pool_,
668669 &payload->ipc_message );
669670 } else {
670671 return GetNextDictionary (payload);
@@ -679,15 +680,15 @@ class RecordBatchStream::RecordBatchStreamImpl {
679680 payload->ipc_message .metadata = nullptr ;
680681 return Status::OK ();
681682 } else {
682- return ipc::internal::GetRecordBatchPayload (*current_batch_, pool_,
683+ return ipc::internal::GetRecordBatchPayload (*current_batch_, ipc_options_, pool_,
683684 &payload->ipc_message );
684685 }
685686 }
686687
687688 private:
688689 Status GetNextDictionary (FlightPayload* payload) {
689690 const auto & it = dictionaries_[dictionary_index_++];
690- return ipc::internal::GetDictionaryPayload (it.first , it.second , pool_,
691+ return ipc::internal::GetDictionaryPayload (it.first , it.second , ipc_options_, pool_,
691692 &payload->ipc_message );
692693 }
693694
@@ -703,6 +704,7 @@ class RecordBatchStream::RecordBatchStreamImpl {
703704 MemoryPool* pool_;
704705 std::shared_ptr<RecordBatchReader> reader_;
705706 ipc::DictionaryMemo dictionary_memo_;
707+ ipc::IpcOptions ipc_options_;
706708 std::shared_ptr<RecordBatch> current_batch_;
707709 std::vector<std::pair<int64_t , std::shared_ptr<Array>>> dictionaries_;
708710
0 commit comments