private String generateJDOFilter(org.apache.hadoop.hive.metastore.api.Table table, ExpressionTree exprTree)
      throws MetaException {

    assert table != null;
    ExpressionTree.FilterBuilder filterBuilder = new ExpressionTree.FilterBuilder(true);
    Map<String, Object> params = new HashMap<>();
    exprTree.accept(new ExpressionTree.JDOFilterGenerator(conf,
        table.getPartitionKeys(), filterBuilder, params));
    StringBuilder stringBuilder = new StringBuilder(filterBuilder.getFilter());
    params.entrySet().stream().forEach(e -> {
      int index = stringBuilder.indexOf(e.getKey());
      stringBuilder.replace(index, index + e.getKey().length(), "\"" + e.getValue().toString() + "\"");
    });
    return stringBuilder.toString();
  }
@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