@Override
    public PGTypeCastExpr clone() {
        PGTypeCastExpr x = new PGTypeCastExpr();
        x.isTry = isTry;
        if (expr != null) {
            x.setExpr(expr.clone());
        }
        if (dataType != null) {
            x.setDataType(dataType.clone());
        }
        return x;
    }
@Test
    public void testClone() {
        // '100'::INT
        SQLExpr sqlCharExpr = new SQLCharExpr("100");
        SQLDataType sqlDataType = new SQLDataTypeImpl(SQLDataType.Constants.INT);

        PGTypeCastExpr pgTypeCastExpr = new PGTypeCastExpr(sqlCharExpr, sqlDataType);
        PGTypeCastExpr pgTypeCastExprClone = pgTypeCastExpr.clone();
        assertNotNull(pgTypeCastExprClone);
        assertEquals(pgTypeCastExpr, pgTypeCastExprClone);
        assertEquals(pgTypeCastExpr.getExpr(), pgTypeCastExprClone.getExpr());
        assertEquals(pgTypeCastExpr.getDataType(), pgTypeCastExprClone.getDataType());
    }