[ https://issues.apache.org/jira/browse/HIVE-11230?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Elliot West updated HIVE-11230: ------------------------------- Description: 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}}. was: 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}}. > 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 > Labels: metastore > Attachments: HIVE-11230.1.patch > > > 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)