[ 
https://issues.apache.org/jira/browse/HIVE-9609?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14312876#comment-14312876
 ] 

Mithun Radhakrishnan commented on HIVE-9609:
--------------------------------------------

Hey, Sush. I heartily agree with the intention. It would be good to remove 
cases where all the partitions need to be loaded into memory at once. And for 
this, it makes sense to have AddPartitionEvent initializable only with an 
Iterator<Partition>. 

I like the idea of the Iterable<Partition>. Perhaps the PartitionSpecProxy 
should have implemented Iterable<Partition>. :/

I did run into a problem (that I can't completely recollect). You'll notice 
that {{PartitionSpecProxy.PartitionIterator}} has functionality that ideally 
belongs in {{Partition}}, such as {{setCreateTime()}}, {{putToParameters()}}, 
etc. The reason is that subclasses (such as {{PartitionSpecWithSharedSDProxy}}) 
construct Partition instances as needed, and won't be able to propagate 
setter-actions on Partitions to the underlying implementation. (At least, not 
without subclassing {{Partition}} itself.)

I'm fine with changing the MessageFactory interface, and AddPartitionEvent 
initializers, to eschew {{List<Partition>}} objects. We'll also need to change 
{{HiveMetaStore.fireMetaStoreAddPartitionEvent()}} to conform to this.

> AddPartitionMessage.getPartitions() can return null
> ---------------------------------------------------
>
>                 Key: HIVE-9609
>                 URL: https://issues.apache.org/jira/browse/HIVE-9609
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 1.2.0
>            Reporter: Sushanth Sowmyan
>            Assignee: Sushanth Sowmyan
>         Attachments: HIVE-9609.patch
>
>
> DbNotificationListener and NotificationListener both depend on 
> AddPartitionEvent.getPartitions() to get their partitions to trigger a 
> message, but this can be null if an AddPartitionEvent was initialized on a 
> PartitionSpec rather than a List<Partition>.
> Also, AddPartitionEvent seems to have a duality, where getPartitions() works 
> only if instantiated on a List<Partition>, and getPartitionIterator() works 
> only if instantiated on a PartitionSpec.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to