Elliot West created HIVE-11230:
----------------------------------
Summary: IMetaStoreClient getPartition method arguments
incorrectly named
Key: HIVE-11230
URL: https://issues.apache.org/jira/browse/HIVE-11230
Project: Hive
Issue Type: Bug
Affects Versions: 2.0.0
Reporter: Elliot West
Assignee: Elliot West
Priority: Minor
The interface {{org.apache.hadoop.hive.metastore.IMetaStoreClient}} declares a
method {{getPartition}} as:
{code}
Partition getPartition(String tblName, String dbName, List<String> partVals)
throws NoSuchObjectException, MetaException, TException;
{code}
This is implemented in {{org.apache.hadoop.hive.metastore.HiveMetaStoreClient}}
as:
{code}
public Partition getPartition(String db_name, String tbl_name, List<String>
part_vals) throws NoSuchObjectException, MetaException, TException {
return deepCopy(filterHook.filterPartition(client.get_partition(db_name,
tbl_name, part_vals)));
}
{code}
Note that in the above code the param named {{db_name}} occupies the
{{tbl_name}} equivalent in the {{IMetaStoreClient}} method and vice-versa.
The method called in {{HiveMetaStoreClient}} also seemingly expects {{db_name}}
to appear first (see {{ThriftHiveMetastore.Iface.get_partition}}):
{code}
public Partition get_partition(String db_name, String tbl_name,
List<String> part_vals) throws MetaException, NoSuchObjectException,
org.apache.thrift.TException;
{code}
And following this all the way through to the implementation of
{{org.apache.hadoop.hive.metastore.ObjectStore.getMTable(String, String)}}
shows that the database name is ultimately taken from the first argument.
Therefore I propose that the order needs to be corrected on
{{IMetaStoreClient}}.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)