public List<String> getPartitionNames(Table tbl, short max)
      throws HiveException {
    List<String> names = null;
    try {
      if (tbl.hasNonNativePartitionSupport()) {
        return tbl.getStorageHandler().getPartitionNames(tbl);
      }
      names = getMSC().listPartitionNames(tbl.getDbName(), tbl.getTableName(), max);
    } catch (NoSuchObjectException nsoe) {
      // this means no partition exists for the given dbName and tblName
      // key value pairs - thrift cannot handle null return values, hence
      // listPartitionNames() throws NoSuchObjectException to indicate null partitions
      return Lists.newArrayList();
    } 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