[ https://issues.apache.org/jira/browse/PIG-1510?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12890899#action_12890899 ]
Swati Jain commented on PIG-1510: --------------------------------- I just attached my patch, please see if it is significantly different from what you are planning to add and let me know if it is so I can redesign if required. Also, if this is the same as what you did, and If it helps your work, I could add this as a separate change. > 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 > > > 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.