Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Here's the PartitionWrapper class in AuthorizationPreEventListener:
AuthorizationPreEventListener.java
public static class PartitionWrapper extends org.apache.hadoop.hive.ql.metadata.Partition { ... public PartitionWrapper(org.apache.hadoop.hive.metastore.api.Partition mapiPart, PreEventContext context) throws ... { Partition wrapperApiPart = mapiPart.deepCopy(); Table t = context.getHandler().get_table_core( mapiPart.getDbName(), mapiPart.getTableName()); ... }
PreAddPartitionEvent (and soon, PreDropPartitionEvent) correspond not just to a single partition, but an entire set of partitions added atomically. When the event is authorized, HMSHandler.get_table_core() will be called once for every partition in the Event instance.
Since we already make the assumption that the partition-sets correspond to a single table, we might as well make a single call.
I'll have a patch for this, shortly.