@Override
    public ScalarOperator visitCompoundPredicate(CompoundPredicateOperator predicate, Void context) {
        return shuttleIfUpdate(predicate);
    }
@Test
    void testCompoundPredicate() {
        BinaryPredicateOperator binary1 = new BinaryPredicateOperator(BinaryType.EQ,
                new ColumnRefOperator(1, INT, "id", true), ConstantOperator.createInt(1));
        BinaryPredicateOperator binary2 = new BinaryPredicateOperator(BinaryType.EQ,
                new ColumnRefOperator(2, INT, "id2", true), ConstantOperator.createInt(1));
        CompoundPredicateOperator compound =
                new CompoundPredicateOperator(CompoundPredicateOperator.CompoundType.AND, binary1, binary2);
        {
            ScalarOperator newOperator = shuttle.visitCompoundPredicate(compound, null);
            assertEquals(compound, newOperator);
        }
        {
            ScalarOperator newOperator = shuttle2.visitCompoundPredicate(compound, null);
            assertEquals(compound, newOperator);
        }
    }