Hi Ayaka,
I agree with Benchao, you can look at this article to get a sense on why a
data structure allowing node substitution is useful in query planning:
https://www.querifylabs.com/blog/memoization-in-cost-based-optimizers

Best regards,
Alessandro

On Wed, 21 Feb 2024 at 05:55, Benchao Li <libenc...@apache.org> wrote:

> Ayaka,
>
> Per my understanding, HepRelVertex is used to make RelNode changeable
> easily, you can see more about HepRelVertex#replaceRel, it is used to
> change one RelNode to another after some rules applied and new equal
> node produced. In this way, we can easily change subgraphs of the
> original DAG after performing some RBO rules.
>
>
> Ayaka Kamisato <cyborgz1...@gmail.com> 于2024年2月19日周一 19:29写道:
> >
> > I'm studying Calcite recently and I found that RelNode Tree would be
> > converted to a DAG composed by HepRelVertex and Edge before the RBO rules
> > execution, and I don't understand why this step is necessary since
> RelNode
> > tree is a DAG essentially.
>
>
>
> --
>
> Best,
> Benchao Li
>

Reply via email to