[
https://issues.apache.org/jira/browse/ORC-58?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15379664#comment-15379664
]
ASF GitHub Bot commented on ORC-58:
-----------------------------------
Github user swalkaus commented on a diff in the pull request:
https://github.com/apache/orc/pull/41#discussion_r71004296
--- Diff: c++/src/Reader.cc ---
@@ -1108,13 +1107,75 @@ namespace orc {
// internal methods
proto::StripeFooter getStripeFooter(const proto::StripeInformation&
info);
void startNextStripe();
- void checkOrcVersion();
void selectType(const Type& type);
- void readMetadata() const;
void updateSelected(const std::list<uint64_t>& fieldIds);
void updateSelected(const std::list<std::string>& fieldNames);
public:
+ /**
+ * Constructor that lets the user specify additional options.
+ * @param filereader the object to read from
+ * @param options options for reading
+ */
+ RowReaderImpl(const ReaderImpl* filereader,
+ std::shared_ptr<ReaderOptions> options);
+
+ uint64_t getMemoryUse(int stripeIx = -1) override;
+
+ const std::vector<bool> getSelectedColumns() const override;
+
+ const Type& getSelectedType() const override;
+
+ std::unique_ptr<ColumnVectorBatch> createRowBatch(uint64_t size
+ ) const override;
+
+ bool next(ColumnVectorBatch& data) override;
+
+ const ReaderOptions& getReaderOptions() const;
+
+ CompressionKind getCompression() const;
+
+ uint64_t getCompressionSize() const;
+
+ uint64_t getRowNumber() const override;
+
+ void seekToRow(uint64_t rowNumber) override;
+
+ MemoryPool* getMemoryPool() const ;
+
+ };
+
+ class ReaderImpl : public Reader {
+ friend class RowReaderImpl;
--- End diff --
Avoid using friend.
> Move code for reading rows from Reader to RowReader
> ---------------------------------------------------
>
> Key: ORC-58
> URL: https://issues.apache.org/jira/browse/ORC-58
> Project: Orc
> Issue Type: Improvement
> Components: C++
> Reporter: Deepak Majeti
>
> Existing ReaderImpl constructor can throw an exception. This prohibits the
> creation of the reader instance and subsequent access to the schema
> information.
> For instance, an exception can be thrown if the selected column ids do not
> agree with the number of schema columns. The downstream application might
> still want the schema information for logging purposes.
> The scope of this Jira is to move the code to read rows into a new RowReader
> class.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)