@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()); } }
@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())); }