[
https://issues.apache.org/jira/browse/CALCITE-2471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16582944#comment-16582944
]
Julian Hyde commented on CALCITE-2471:
--------------------------------------
Wow, I was thinking of just creating a LogicalProject and LogicalScan, then
calling recomputeDigest on them and make sure toString and getDescription were
something reasonable.
Could the {{AbstractRelNode.desc}} field be eliminated? getDescription and
toString can compute {{"rel#" + id + ": " + digest}} (or whatever) every time
they are called. If those methods are called less than once on average during
the lifetime of each RelNode (and that is my hunch), then we'd save both time
and memory.
> RelNode description includes all tree when recomputed
> -----------------------------------------------------
>
> Key: CALCITE-2471
> URL: https://issues.apache.org/jira/browse/CALCITE-2471
> Project: Calcite
> Issue Type: Bug
> Components: core
> Reporter: Laurent Goujon
> Assignee: Julian Hyde
> Priority: Major
>
> The initial AbstractRelNode description is `{{typeName#id}}` but when
> recomputed, it includes all its inputs (and other attributes).
> When creating the final plan, HepPlanner visits each node bottom up, and
> recomputes the node digest. This causes node description to grow in size, up
> to the top node which contains basically a string copy of the whole tree. On
> large trees, this may consume a non-significant amount of memory.
> See email thread:
> https://lists.apache.org/thread.html/5e71c9f2b4e83865805841708f53471cfab1b5de673e6f162b68edc9@%3Cdev.calcite.apache.org%3E
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)