public List<String> getPartitionNamesByPartitionVals(Table tbl, List<String> pVals, short max) 
      throws HiveException {
    List<String> names = null;

    try {
      GetPartitionNamesPsRequest req = new GetPartitionNamesPsRequest();
      req.setDbName(tbl.getDbName());
      req.setTblName(tbl.getTableName());
      req.setPartValues(pVals);
      req.setMaxParts(max);
      if (AcidUtils.isTransactionalTable(tbl)) {
        ValidWriteIdList validWriteIdList = getValidWriteIdList(tbl.getDbName(), tbl.getTableName());
        req.setValidWriteIdList(validWriteIdList != null ? validWriteIdList.toString() : null);
        req.setId(tbl.getTTable().getId());
      }
      GetPartitionNamesPsResponse res = getMSC().listPartitionNamesRequest(req);
      names = res.getNames();
    } catch (NoSuchObjectException nsoe) {
      // this means the catName/dbName/tblName are invalid or the table does not exist for the given partition spec
      // key value pairs - thrift cannot handle null return values, hence
      // listPartitionNames() throws NoSuchObjectException
      throw new HiveException("Invalid catName/dbName/tableName or table doesn't exist.", nsoe);
    } catch (Exception e) {
      LOG.error("Failed getPartitionNames", e);
      throw new HiveException(e);
    }
    return names;
  }
This method helps callers trigger an INSERT event for DML queries without having to deal with
HMS objects. This takes java object types as arguments.
@param dbName Name of the hive database this table belongs to.
@param tblName Name of the hive table this event is for.
@param partitionSpec Map containing key/values for each partition column. Can be null if the event is for a table
@param replace boolean to indicate whether the filelist is replacement of existing files. Treated as additions otherwise
@param newFiles List of file paths affected (added/replaced) by this DML query. Can be null
@throws HiveException if the table or partition does not exist or other internal errors in fetching them
ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java