public static Map<String, PartitionColumnFilter> convertColumnFilter(List<ScalarOperator> predicates) {
        return convertColumnFilter(predicates, null);
    }
@Test
    public void convertColumnFilterNormal() {
        ScalarOperator root1 = new BinaryPredicateOperator(BinaryType.EQ,
                new ColumnRefOperator(1, Type.INT, "age", true),
                ConstantOperator.createInt(1));

        ScalarOperator root2 = new InPredicateOperator(new ColumnRefOperator(2, Type.INT, "name", true),
                ConstantOperator.createVarchar("1"),
                ConstantOperator.createVarchar("2"),
                ConstantOperator.createVarchar("3"),
                ConstantOperator.createVarchar("4"));

        ScalarOperator root3 = new IsNullPredicateOperator(new ColumnRefOperator(3, Type.BOOLEAN, "sex", true));

        ScalarOperator root4 = ConstantOperator.createBoolean(true);

        ScalarOperator root5 = new BinaryPredicateOperator(BinaryType.EQ,
                ConstantOperator.createInt(2),
                ConstantOperator.createInt(1));

        ScalarOperator root6 = new BinaryPredicateOperator(BinaryType.EQ,
                new ColumnRefOperator(4, Type.INT, "value1", true),
                new ColumnRefOperator(5, Type.INT, "value2", true));

        List<ScalarOperator> list = Lists.newArrayList(root1, root2, root3, root4, root5, root6);

        Map<String, PartitionColumnFilter> result = ColumnFilterConverter.convertColumnFilter(list);

        assertEquals(3, result.size());

        assertTrue(result.containsKey("age"));
        assertTrue(result.containsKey("name"));
        assertTrue(result.containsKey("sex"));

        assertEquals(new IntLiteral(1), result.get("age").getLowerBound());
        assertEquals(new IntLiteral(1), result.get("age").getUpperBound());

        assertEquals(4, result.get("name").getInPredicateLiterals().size());
        assertEquals(new StringLiteral("1"), result.get("name").getInPredicateLiterals().get(0));
        assertEquals(new StringLiteral("2"), result.get("name").getInPredicateLiterals().get(1));
        assertEquals(new StringLiteral("3"), result.get("name").getInPredicateLiterals().get(2));
        assertEquals(new StringLiteral("4"), result.get("name").getInPredicateLiterals().get(3));

        assertEquals(new NullLiteral(), result.get("sex").getLowerBound());
        assertEquals(new NullLiteral(), result.get("sex").getUpperBound());
    }