[
https://issues.apache.org/jira/browse/CALCITE-5715?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17726880#comment-17726880
]
Benchao Li commented on CALCITE-5715:
-------------------------------------
{quote}The one skill I think you can improve is writing clear, concise
specifications.
{quote}
[~julianhyde] Thank you so much to point it out. I'm sorry about these
confusions I brought to you.
I'm not a native English speaker, and I've never lived or worked in an English
environment, so sometimes I cannot distinguish the nuances for some
words/sentences. I won't take this as an excuse, and I'll try my best to do
this better.
About the word 'prune', there are places in Calcite we are using it, such as
{{{}PruneEmptyRules{}}}, {{{}RelOptPlanner#prune{}}}, I guess that's where I
learnt the word. Then my confusion is, these usages all mean 'remove a
RelNode', are these bad practices or the word itself could express this meaning?
Again, I would thank you for mentoring me in this project, I've learnt a lot by
now, and I believe I'll learn more in the future. Don't hesitate to remind me
whenever I'm not doing good, this is the chance I'll learn new things. And this
is one of my motivations being part of Calcite.
> Prune old nodes after projection merging in ProjectMergeRule
> ------------------------------------------------------------
>
> Key: CALCITE-5715
> URL: https://issues.apache.org/jira/browse/CALCITE-5715
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Affects Versions: 1.34.0
> Reporter: Benchao Li
> Priority: Major
> Fix For: 1.35.0
>
>
> We already have many similar usages (prune old nodes when the new one is
> obviously better, e.g. in
> [CalcMergeRule|https://github.com/apache/calcite/blob/c56d5564628de6b3265f960764a6f6fc43935a75/core/src/main/java/org/apache/calcite/rel/rules/CalcMergeRule.java#L85-L90]
> to reduce the search scope, I propose to also add this for
> {{ProjectMergeRule}}. Do you have any concerns about this?
> In {{ProjectMergeRule}}, there is a case that after merging the two
> {{Project}}, we'll find the new Project is trivial and we'll transform to the
> bottomProject's
> input(https://github.com/apache/calcite/blob/c56d5564628de6b3265f960764a6f6fc43935a75/core/src/main/java/org/apache/calcite/rel/rules/ProjectMergeRule.java#L132-L139).
> In this case, both topProject and bottomProject could be pruned?
> The reason I propose to do this optimization for {{ProjectMergeRule}} is that
> I met a problem that two sets will point to each other after projection
> merging, and the planner will run into dead loop. (It's hard to show the
> details, I haven't got a simple reproducible demo yet)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)