[ 
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)

Reply via email to