How does deepCopy differ from clone?

Alan.

On Jul 12, 2010, at 11:19 PM, Swati Jain wrote:

Hi,

I am working on ticket PIG -1494 (
https://issues.apache.org/jira/browse/PIG-1494 ).

While implementing this functionality (conversion of logical expression into CNF), I need to construct the OperatorPlan for the base expressions of the CNF. For example, given an expression "(c1 < 10) AND (c3+b3 > 10)", the CNF form will result in expressions "(c1 < 10)" and "(c3+b3 > 10)". However, each of these expressions would be referencing the original OperatorPlan
(that of expression "(c1 < 10) AND (c3+b3 > 10)" ) whereas they should
really be referencing their local OperatorPlan post CNF conversion.

To ensure correctness of the above approach, I am planning to add a
"deepCopy" method to LogicalExpression to create a copy of expressions. In my opinion, "deepCopy" will be a useful construct to have in general. It
would be used as follows:

LogicalExpressionPlan logPlan = new LogicalExpressionPlan();
LogicalExpression copyExpression = origExpression- >deepcopy( logPlan );

Please provide feedback if any on the above approach.

Note that I considered writing a deepCopy visitor but found that approach flawed because a valid plan is required for a visitor to work correctly, and
in this case we need to construct that plan as we copy the expression.

Thanks
Swati

Reply via email to