Hi All, The purpose of this email is to understand the impact, the following API changes will have on users of the C++ ORC library.
I have been working on a patch to split the ORC Reader into two components: 1) Reader for reading the file metadata 2) RowReader to read the actual rows. This will also require splitting the corresponding ReaderOptions into two. JIRA: https://issues.apache.org/jira/browse/ORC-58 Patch: https://github.com/apache/orc/pull/41 The motivation is that the current orc::Reader design makes it impossible to just read the file metadata, plan and later read rows. Proposed changes with an example: *Old:* orc::ReaderOptions opts; opts.include(columns); std::unique_ptr<orc::Reader> reader = createReader(readLocalFile(getFilename()), opts); // cannot plan and select columns *New*: orc::ReaderOptions readerOpts; std::unique_ptr<orc::Reader> reader = createReader(readLocalFile(getFilename()), readerOpts); // read metadata, plan and select columns orc::RowReaderOptions rowReaderOpts; rowReaderOpts.include(columns); std::unique_ptr<orc::RowReader> rowReader = reader->getRowReader(rowReaderOpts); Please provide your feedback on these changes. Thanks! -- regards, Deepak Majeti
