@Override public PartitionFilter.Builder get() { return supplier.get().addValueCondition(field, value); } };
@Override public PartitionFilter.Builder get() { return supplier.get().addValueCondition(field, value); } };
filters.add(supplier.get().addValueCondition(fieldName, lower).build()); } else { filters.add(supplier.get().addRangeCondition(fieldName, lower, upper).build()); filters.add(supplier.get().addValueCondition(fieldName, lower + 1).build()); } else if (lower + 2 < upper) { filters.add(supplier.get().addRangeCondition(fieldName, lower + 1, upper).build());
.addValueCondition("type", "x") .addRangeCondition("time", null, 160000L) .build(); .addValueCondition("type", "nosuchthing") .build();
boolean success = testFilter(dataset, allPartitionDetails, PartitionFilter.builder() .addValueCondition("l", key.getField("l")) .addValueCondition("s", key.getField("s")) .addValueCondition("i", key.getField("i")) .build());
filters.add(supplier.get().addValueCondition(fieldName, lower).build()); } else { filters.add(supplier.get().addRangeCondition(fieldName, lower, upper).build()); filters.add(supplier.get().addValueCondition(fieldName, lower + 1).build()); } else if (lower + 2 < upper) { filters.add(supplier.get().addRangeCondition(fieldName, lower + 1, upper).build());
.addValueCondition("year", 2012) .addRangeCondition("month", 4, 7) .addValueCondition("market", "asia") .addRangeCondition("duration", 60 * minute, 90 * minute) .build();
@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)); }
@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()); }
@Test(expected = IllegalArgumentException.class) public void testBuilderNullValue() { PartitionFilter.builder().<Long>addValueCondition("x", null).build(); }
@Test(expected = IllegalArgumentException.class) public void testBuilderEmptyField() { PartitionFilter.builder().addValueCondition("", 1).build(); }
@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")); }
private static <T extends Comparable<T>> PartitionFilter.Builder addCondition(PartitionFilter.Builder builder, String field, T[] condition) { return condition.length == 1 ? builder.addValueCondition(field, condition[0]) : builder.addRangeCondition(field, condition[0], condition[1]); }
@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())); } });
@Test(expected = IllegalArgumentException.class) public void testBuilderNullField() { PartitionFilter.builder().addValueCondition(null, 1).build(); }