From 1a9c1681ebf4d460f007b76fdb0e100822adb11e Mon Sep 17 00:00:00 2001 From: taiyang-li <654010905@qq.com> Date: Wed, 16 Feb 2022 12:35:40 +0800 Subject: [PATCH] add interface to get raw orc reader from adapters --- cpp/src/arrow/adapters/orc/adapter.cc | 9 +++++++++ cpp/src/arrow/adapters/orc/adapter.h | 3 +++ 2 files changed, 12 insertions(+) diff --git a/cpp/src/arrow/adapters/orc/adapter.cc b/cpp/src/arrow/adapters/orc/adapter.cc index 9bb4abfd0f05..2ce4356dffa4 100644 --- a/cpp/src/arrow/adapters/orc/adapter.cc +++ b/cpp/src/arrow/adapters/orc/adapter.cc @@ -199,6 +199,11 @@ class ORCFileReader::Impl { return Init(); } + virtual liborc::Reader* GetRawORCReader() { + return reader_.get(); + } + + Status Init() { int64_t nstripes = reader_->getNumberOfStripes(); stripes_.resize(nstripes); @@ -439,6 +444,10 @@ class ORCFileReader::Impl { return Status::OK(); } + liborc::Reader* ORCFileReader::GetRawORCReader() { + return impl_->GetRawORCReader(); + } + Status NextStripeReader(int64_t batch_size, std::shared_ptr* out) { return NextStripeReader(batch_size, {}, out); } diff --git a/cpp/src/arrow/adapters/orc/adapter.h b/cpp/src/arrow/adapters/orc/adapter.h index e053eab435b2..a38683776bbe 100644 --- a/cpp/src/arrow/adapters/orc/adapter.h +++ b/cpp/src/arrow/adapters/orc/adapter.h @@ -49,6 +49,9 @@ class ARROW_EXPORT ORCFileReader { ARROW_DEPRECATED("Deprecated in 6.0.0. Use Result-returning overload instead.") static Status Open(const std::shared_ptr& file, MemoryPool* pool, std::unique_ptr* reader); + + /// \brief Get ORC reader from inside. + liborc::Reader* GetRawORCReader(); /// \brief Creates a new ORC reader ///