hadoop-pig-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Swati Jain <swat...@aggiemail.usu.edu>
Subject Add "deepCopy" in LogicalExpression
Date Tue, 13 Jul 2010 06:19:37 GMT

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.


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message