[
https://issues.apache.org/jira/browse/PARQUET-710?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15466092#comment-15466092
]
Wes McKinney commented on PARQUET-710:
--------------------------------------
Generating test cases at the level of the file or row group is significantly
more complex because many parts of the writing process are not necessarily
under the control of a user of the public API. By comparison, FileMetaData is a
reasonably self-contained dependency (it doesn't really benefit from any
DI-decoupling because the Thrift struct is the lowest level).
The idea was to use a dependency injection sort of pattern to define the
coupling between the business logic of the file reader and row group reader and
the underlying machinery (the column readers, etc.) that it interacts with. If
the only thing you have at your disposal to manipulate the workings of each
public API (to isolate and test edge cases) is real Parquet files this makes
things much less flexible.
> Modify ParquetFileReader/RowGroupReader design with pure PIMPL pattern
> ----------------------------------------------------------------------
>
> Key: PARQUET-710
> URL: https://issues.apache.org/jira/browse/PARQUET-710
> Project: Parquet
> Issue Type: Bug
> Components: parquet-cpp
> Reporter: Deepak Majeti
> Assignee: Deepak Majeti
>
> The current PIMPL idiom exposes private metadata members in its header. With
> the metadata implementation, this can be removed.
> This also helps simplify the design and remove virtual functions.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)