Ian Bertolacci created CALCITE-6499:
---------------------------------------

             Summary: Deep Clone SqlNodes
                 Key: CALCITE-6499
                 URL: https://issues.apache.org/jira/browse/CALCITE-6499
             Project: Calcite
          Issue Type: Improvement
            Reporter: Ian Bertolacci


SqlNode.clone is not guaranteed to produce a deep clone.
For example, [SqlBasicCall.clone 
|https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/sql/SqlBasicCall.java#L130-L132]
 does not clone the operands, so any in-place modifications of an node at or 
under the operands is observed in the "cloned" node.

There use to be 
[SqlValidatorUtil.DeepCopier|https://calcite.apache.org/javadocAggregate/org/apache/calcite/sql/validate/SqlValidatorUtil.DeepCopier.html]
 but that is now deprecated (and its constructor is inaccessible anyways)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to