@Override public PartitionFilter.Builder get() { return PartitionFilter.builder(); } };
@Override public PartitionFilter.Builder get() { return PartitionFilter.builder(); } };
private static <T extends Comparable<T>> void addSingleConditionFilters(List<PartitionFilter> filters, String field, T[][] conditions) { for (T[] condition : conditions) { filters.add(addCondition(PartitionFilter.builder(), field, condition).build()); } }
public void deleteMatchingPartitionsByTime(long upperLimit) throws IOException { if (upperLimit > 0 && upperLimit < Long.MAX_VALUE) { PartitionFilter filter = PartitionFilter.builder().addRangeCondition(SNAPSHOT_FIELD, null, upperLimit).build(); Set<PartitionDetail> partitions = files.getPartitions(filter); for (PartitionDetail partition : partitions) { files.dropPartition(partition.getPartitionKey()); } } }
@Test(expected = IllegalStateException.class) public void testBuilderEmpty() { PartitionFilter.builder().build(); }
private static <T1 extends Comparable<T1>, T2 extends Comparable<T2>> void addTwoConditionFilters(List<PartitionFilter> filters, String field1, T1[][] conditions1, String field2, T2[][] conditions2) { for (T1[] cond1 : conditions1) { for (T2[] cond2 : conditions2) { filters.add(addCondition(addCondition(PartitionFilter.builder(), field1, cond1), field2, cond2).build()); } } }
@Test(expected = IllegalArgumentException.class) public void testBuilderNullField() { PartitionFilter.builder().addValueCondition(null, 1).build(); }
@Test(expected = IllegalArgumentException.class) public void testBuilderNullField2() { PartitionFilter.builder().addRangeCondition(null, 1, 2).build(); }
@Test(expected = IllegalArgumentException.class) public void testBuilderEmptyField() { PartitionFilter.builder().addValueCondition("", 1).build(); }
@Test(expected = IllegalArgumentException.class) public void testBuilderEmptyField2() { PartitionFilter.builder().addRangeCondition("", 1, 2).build(); }
@Test(expected = IllegalArgumentException.class) public void testBuilderNullValue() { PartitionFilter.builder().<Long>addValueCondition("x", null).build(); }
private static <T1 extends Comparable<T1>, T2 extends Comparable<T2>, T3 extends Comparable<T3>> void addThreeConditionFilters(List<PartitionFilter> filters, String field1, T1[][] conditions1, String field2, T2[][] conditions2, String field3, T3[][] conditions3) { for (T1[] cond1 : conditions1) { for (T2[] cond2 : conditions2) { for (T3[] cond3 : conditions3) { filters.add(addCondition(addCondition(addCondition( PartitionFilter.builder(), field1, cond1), field2, cond2), field3, cond3).build()); } } } }
@Override public void apply() throws Exception { // this should succeed without error (but log a warning) Assert.assertEquals(Collections.EMPTY_SET, pfs.getPartitions(PartitionFilter.builder().addValueCondition("me-not-there", 42).build())); } });
List<Partition> consumedPartitions = Lists.newArrayList(); final PartitionFilter partitionFilter = PartitionFilter.builder().addRangeCondition("i", 1, 7).build(); final Predicate<PartitionDetail> predicate = new Predicate<PartitionDetail>() { @Override
@Test(expected = IllegalArgumentException.class) public void testBuilderDuplicateField() { PartitionFilter.builder() .addValueCondition("x", 10) .addValueCondition("y", 10L) .addRangeCondition("x", 14, 15).build(); }
@Test public void testBuilderNullRange() { PartitionFilter filter = PartitionFilter.builder() .addValueCondition("a", 1) .<Long>addRangeCondition("x", null, null) .build(); Assert.assertEquals(1, filter.getConditions().size()); // only the one for "a" Assert.assertNull(filter.getCondition("x")); }
final PartitionFilter partitionFilter = PartitionFilter.builder().addRangeCondition("i", 1, 7).build(); final Predicate<PartitionDetail> predicate = new Predicate<PartitionDetail>() { @Override
@Test public void testSetGetInputPartitionFilter() throws Exception { Map<String, String> arguments = new HashMap<>(); PartitionFilter filter = PartitionFilter.builder() .addRangeCondition("i", 30, 40) .addValueCondition("l", 17L) .addValueCondition("s", "x") .build(); PartitionedFileSetArguments.setInputPartitionFilter(arguments, filter); Assert.assertEquals(filter, PartitionedFileSetArguments.getInputPartitionFilter(arguments)); arguments = new HashMap<>(); filter = PartitionFilter.builder() .addRangeCondition("i", 30, 40) .addValueCondition("s", "x") .build(); PartitionedFileSetArguments.setInputPartitionFilter(arguments, filter); Assert.assertEquals(filter, PartitionedFileSetArguments.getInputPartitionFilter(arguments)); arguments = new HashMap<>(); filter = PartitionFilter.ALWAYS_MATCH; PartitionedFileSetArguments.setInputPartitionFilter(arguments, filter); Assert.assertEquals(filter, PartitionedFileSetArguments.getInputPartitionFilter(arguments)); }
inputArgs, PartitionFilter.builder().addRangeCondition("x", "na", "nx").build()); Map<String, String> outputArgs = new HashMap<>(); PartitionKey outputKey = PartitionKey.builder().addStringField("x", "xx").build();
@Test(expected = IllegalArgumentException.class) public void testIncompatibleMatch() { PartitionFilter filter = PartitionFilter.builder() .addValueCondition("year", 2012) .addRangeCondition("month", 4, 7) .addValueCondition("market", "asia") .build(); // field of incompatible type filter.match(PartitionKey .builder() .addField("month", "january") .addField("market", "latin") .addField("year", 2012) .build()); }