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