use of org.apache.parquet.filter2.recordlevel.IncrementallyUpdatedFilterPredicate.Or in project parquet-mr by apache.
the class TestIncrementallyUpdatedFilterPredicateResetter method testReset.
@Test
public void testReset() {
ValueInspector intIsNull = intIsNull();
ValueInspector intIsEven = intIsEven();
ValueInspector doubleMoreThan10 = doubleMoreThan10();
IncrementallyUpdatedFilterPredicate pred = new Or(intIsNull, new And(intIsEven, doubleMoreThan10));
intIsNull.updateNull();
intIsEven.update(11);
doubleMoreThan10.update(20.0D);
assertTrue(intIsNull.isKnown());
assertTrue(intIsEven.isKnown());
assertTrue(doubleMoreThan10.isKnown());
IncrementallyUpdatedFilterPredicateResetter.reset(pred);
assertFalse(intIsNull.isKnown());
assertFalse(intIsEven.isKnown());
assertFalse(doubleMoreThan10.isKnown());
intIsNull.updateNull();
assertTrue(intIsNull.isKnown());
assertFalse(intIsEven.isKnown());
assertFalse(doubleMoreThan10.isKnown());
IncrementallyUpdatedFilterPredicateResetter.reset(pred);
assertFalse(intIsNull.isKnown());
assertFalse(intIsEven.isKnown());
assertFalse(doubleMoreThan10.isKnown());
}
use of org.apache.parquet.filter2.recordlevel.IncrementallyUpdatedFilterPredicate.Or in project parquet-mr by apache.
the class TestFilterApiMethods method testSerializable.
@Test
public void testSerializable() throws Exception {
BinaryColumn binary = binaryColumn("foo");
FilterPredicate p = and(or(and(userDefined(intColumn, DummyUdp.class), predicate), eq(binary, Binary.fromString("hi"))), userDefined(longColumn, new IsMultipleOf(7)));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(p);
oos.close();
ObjectInputStream is = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
FilterPredicate read = (FilterPredicate) is.readObject();
assertEquals(p, read);
}
use of org.apache.parquet.filter2.recordlevel.IncrementallyUpdatedFilterPredicate.Or in project parquet-mr by apache.
the class DictionaryFilterTest method testOr.
@Test
public void testOr() throws Exception {
BinaryColumn col = binaryColumn("binary_field");
// both evaluate to false (no upper-case letters are in the dictionary)
FilterPredicate B = eq(col, Binary.fromString("B"));
FilterPredicate C = eq(col, Binary.fromString("C"));
// both evaluate to true (all lower-case letters are in the dictionary)
FilterPredicate x = eq(col, Binary.fromString("x"));
FilterPredicate y = eq(col, Binary.fromString("y"));
assertFalse("Should not drop when one predicate could be true", canDrop(or(B, y), ccmd, dictionaries));
assertFalse("Should not drop when one predicate could be true", canDrop(or(x, C), ccmd, dictionaries));
assertTrue("Should drop when both predicates must be false", canDrop(or(B, C), ccmd, dictionaries));
assertFalse("Should not drop when one predicate could be true", canDrop(or(x, y), ccmd, dictionaries));
}
use of org.apache.parquet.filter2.recordlevel.IncrementallyUpdatedFilterPredicate.Or in project parquet-mr by apache.
the class TestInputFormat method testGetFilter.
@Test
public void testGetFilter() throws IOException {
IntColumn intColumn = intColumn("foo");
FilterPredicate p = or(eq(intColumn, 7), eq(intColumn, 12));
Configuration conf = new Configuration();
ParquetInputFormat.setFilterPredicate(conf, p);
Filter read = ParquetInputFormat.getFilter(conf);
assertTrue(read instanceof FilterPredicateCompat);
assertEquals(p, ((FilterPredicateCompat) read).getFilterPredicate());
conf = new Configuration();
ParquetInputFormat.setFilterPredicate(conf, not(p));
read = ParquetInputFormat.getFilter(conf);
assertTrue(read instanceof FilterPredicateCompat);
assertEquals(and(notEq(intColumn, 7), notEq(intColumn, 12)), ((FilterPredicateCompat) read).getFilterPredicate());
assertEquals(FilterCompat.NOOP, ParquetInputFormat.getFilter(new Configuration()));
}
use of org.apache.parquet.filter2.recordlevel.IncrementallyUpdatedFilterPredicate.Or in project parquet-mr by apache.
the class TestInputFormat method testOnlyOneKindOfFilterSupported.
@Test
public void testOnlyOneKindOfFilterSupported() throws Exception {
IntColumn foo = intColumn("foo");
FilterPredicate p = or(eq(foo, 10), eq(foo, 11));
Job job = new Job();
Configuration conf = job.getConfiguration();
ParquetInputFormat.setUnboundRecordFilter(job, DummyUnboundRecordFilter.class);
try {
ParquetInputFormat.setFilterPredicate(conf, p);
fail("this should throw");
} catch (IllegalArgumentException e) {
assertEquals("You cannot provide a FilterPredicate after providing an UnboundRecordFilter", e.getMessage());
}
job = new Job();
conf = job.getConfiguration();
ParquetInputFormat.setFilterPredicate(conf, p);
try {
ParquetInputFormat.setUnboundRecordFilter(job, DummyUnboundRecordFilter.class);
fail("this should throw");
} catch (IllegalArgumentException e) {
assertEquals("You cannot provide an UnboundRecordFilter after providing a FilterPredicate", e.getMessage());
}
}
Aggregations