[ https://issues.apache.org/jira/browse/HIVE-22959?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17053552#comment-17053552 ]
Panagiotis Garefalakis commented on HIVE-22959: ----------------------------------------------- After a round of comments: latest patch exposes FilterContext as an immutable abstract class and instead there is a MutableFilterContext subclass that provides the needed setters with an extra copy method that does a deep copy of the class variables. MutableFilterContext does some extra checking to make sure that selected array contains correct values and size while it also exposes a borrowSelected array method for the consumers to reuse the allocated selected array. This approach makes is harder for API users to modify the context values when they shouldn't or set wrong filter values in the selected array. Any comments here? [~rbalamohan] [~gopalv] > Extend storage-api to expose FilterContext > ------------------------------------------ > > Key: HIVE-22959 > URL: https://issues.apache.org/jira/browse/HIVE-22959 > Project: Hive > Issue Type: Sub-task > Components: storage-api > Reporter: Panagiotis Garefalakis > Assignee: Panagiotis Garefalakis > Priority: Major > Labels: pull-request-available > Time Spent: 10m > Remaining Estimate: 0h > > To enable row-level filtering at the ORC level ORC-577, or as an extension > ProDecode MapJoin HIVE-22731 we need a common context class that will hold > all the needed information for the filter. > I propose this class to be part of the storage-api – similar to > VectorizedRowBatch class and hold the information below: > * A boolean variable showing if the filter is enabled > * A int array storing the row Ids that are actually selected (passing the > filter) > * An int variable storing the the number or rows that passed the filter > -- This message was sent by Atlassian Jira (v8.3.4#803005)