orc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From wgtmac <...@git.apache.org>
Subject [GitHub] orc issue #120: ORC-184: Refactor ColumnStatistics classes for writer
Date Thu, 11 May 2017 22:32:38 GMT
Github user wgtmac commented on the issue:

    On Java side, ColumnStatistics and [Type]ColumnStatistics are very simple interfaces with
minimum getter functions. It is the duty of ColumnStatisticsImpl class to define/implement
most common interfaces and act as the base class in most writer implementations. Other [Type]ColumnStatisticsImpls
just extend ColumnStatisticsImpl and implement [Type]ColumnStatistics to add their own logic
to remove duplicate code. However, on C++ side, ColumnStatisticsImpl and [Type]ColumnStatisticsImpl
have no inheritance relation like Java side. We cannot simply make [Type]ColumnStatisticsImpl
inherit ColumnStatisticsImpl as it may introduce virtual inheritance issue because they have
a common base class. Templates do not solve this issue as there is still no base class defining
all common interfaces. In this case, we can expect that we need to use dynamic_cast almost
everywhere if we want to use ColumnStatistcis abstraction; otherwise, we need to bind each
[Type]ColumnStatistics to [Type]ColumnWr
 iter leading to another place with huge amount of duplicate code.

If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.

View raw message