/** * Provided values for the 1st N partition columns, will return all matching PartitionS * The list is a partial list of partition values in the same order as partition columns. * Missing values should be represented as "" (empty strings). May provide fewer values. * So if part cols are a,b,c, {"",2} is a valid list * {@link MetaStoreUtils#getPvals(List, Map)} * */ private List<Partition> getPartitions(List<String> partialPartVals) throws MetaException { String partNameMatcher = MetaStoreUtils.makePartNameMatcher(tTable, partialPartVals, ".*"); List<Partition> matchedPartitions = new ArrayList<>(); for(String key : parts.keySet()) { if(key.matches(partNameMatcher)) { matchedPartitions.add(parts.get(key)); } } return matchedPartitions; } }
private String getJDOFilterStrForPartitionVals(Table table, List<String> vals, Map params) throws MetaException { String partNameMatcher = MetaStoreUtils.makePartNameMatcher(table, vals, ".*"); StringBuilder queryFilter = new StringBuilder("table.database.name == dbName"); queryFilter.append(" && table.database.catalogName == catName"); queryFilter.append(" && table.tableName == tableName"); queryFilter.append(" && partitionName.matches(partialRegex)"); params.put("dbName", table.getDbName()); params.put("catName", table.getCatName()); params.put("tableName", table.getTableName()); params.put("partialRegex", partNameMatcher); return queryFilter.toString(); }
String partNameMatcher = MetaStoreUtils.makePartNameMatcher(tbl, filters, "_%"); String partNamesLikeFilter = "" + PARTITIONS + ".\"PART_NAME\" LIKE (?)";
+ " table not found"); String partNameMatcher = MetaStoreUtils.makePartNameMatcher(table, part_vals); Query query = queryWrapper.query = pm.newQuery(MPartition.class); StringBuilder queryFilter = new StringBuilder("table.database.name == dbName");