@Override
  public List<Partition> dropPartitions(String catName, String dbName, String tblName,
      List<Pair<Integer, byte[]>> partExprs, PartitionDropOptions options) throws TException {
    org.apache.hadoop.hive.metastore.api.Table table = getTempTable(dbName, tblName);
    if (table == null) {
      return super.dropPartitions(catName, dbName, tblName, partExprs, options);
    }
    TempTable tt = getPartitionedTempTable(table);
    List<Partition> result = new ArrayList<>();
    for (Pair<Integer, byte[]> pair : partExprs) {
      byte[] expr = pair.getRight();
      String filter = generateJDOFilter(table, expr, conf.get(HiveConf.ConfVars.DEFAULT_PARTITION_NAME.varname));
      List<Partition> partitions = tt.listPartitionsByFilter(filter);
      for (Partition p : partitions) {
        Partition droppedPartition = tt.dropPartition(p.getValues());
        if (droppedPartition != null) {
          result.add(droppedPartition);
          boolean purgeData = options != null ? options.purgeData : true;
          boolean deleteData = options != null ? options.deleteData : true;
          if (deleteData && !tt.isExternal()) {
            deletePartitionLocation(droppedPartition, purgeData);
          }
        }
      }
    }
    return result;
  }
@param partialPvals partition values, can be partial.  This really means that missing values
                   are represented by empty str.
@param maxParts maximum number of partitions to fetch, or -1 for all
ql/src/java/org/apache/hadoop/hive/ql/metadata/SessionHiveMetaStoreClient.java