[ 
https://issues.apache.org/jira/browse/PIG-1510?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12899498#action_12899498
 ] 

Daniel Dai commented on PIG-1510:
---------------------------------

You are right about fieldSchema and uidOnlyFieldSchema. For 
ConstantExpression.val etc, if you only copy the reference, you need to make 
sure they are readonly in your use case. If that is the case, +1 for the patch.

> Add `deepCopy` for LogicalExpressions
> -------------------------------------
>
>                 Key: PIG-1510
>                 URL: https://issues.apache.org/jira/browse/PIG-1510
>             Project: Pig
>          Issue Type: New Feature
>          Components: data
>    Affects Versions: 0.8.0
>            Reporter: Swati Jain
>            Assignee: Swati Jain
>             Fix For: 0.8.0
>
>         Attachments: deepCopy.patch, deepCopy.patch
>
>
> It would be useful to have a way to `deepCopy` an expression. `deepCopy` will 
> create a new object so that changes made to one object will not reflect in 
> the copy. There are 2 reasons why we don't override clone.
> * It may be better to use `deepCopy` since the copy semantics are explicit 
> (since deepCopy may be expensive).
> * A second important reason for defining `deepCopy` as a separate routine is 
> that it can be passed a plan as an argument which will be updated as the 
> expression is copied (through plan.add and plan.connect).
> The usage would look like the following:
> {noformat}
> LogicalExpressionPlan logicalPlan = new LogicalExpressionPlan();
> LogicalExpression copyExpression = origExpression.deepCopy( logicalPlan );
> {noformat}
> An immediate motivation for this would be for constructing the expressions 
> that constitute the CNF form of an expression.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to