@Override
  public PartitionValuesResponse listPartitionValues(PartitionValuesRequest request) throws TException {
    if (request == null || request.getPartitionKeys() == null || request.getPartitionKeys().isEmpty()) {
      return super.listPartitionValues(request);
    }
    org.apache.hadoop.hive.metastore.api.Table table = getTempTable(request.getDbName(), request.getTblName());
    if (table == null) {
      return super.listPartitionValues(request);
    }
    TempTable tt = getPartitionedTempTable(table);
    List<Partition> partitions = request.isSetFilter() ?
        tt.listPartitionsByFilter(generateJDOFilter(table, request.getFilter())) :
        tt.listPartitions();
    List<String> partitionNames = new ArrayList<>();
    for (Partition p : partitions) {
      partitionNames.add(makePartName(table.getPartitionKeys(), p.getValues()));
    }
    if (partitionNames.isEmpty() && partitions.isEmpty()) {
      throw new MetaException("Cannot obtain list of partition by filter:\"" + request.getFilter() +
          "\" for " + getCatalogQualifiedTableName(table));
    }
    if (request.isSetAscending()) {
      if (request.isAscending()) {
        Collections.sort(partitionNames);
      } else {
        Collections.sort(partitionNames, Collections.reverseOrder());
      }
    }
    PartitionValuesResponse response = new PartitionValuesResponse();
    response.setPartitionValues(new ArrayList<>(partitionNames.size()));
    for (String partName : partitionNames) {
      ArrayList<String> vals = new ArrayList<>(Collections.nCopies(table.getPartitionKeysSize(), null));
      PartitionValuesRow row = new PartitionValuesRow();
      makeValsFromName(partName, vals);
      vals.forEach(row::addToRow);
      response.addToPartitionValues(row);
    }
    return response;
  }
@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