On Thu, Sep 8, 2022 at 7:24 AM Peter Eisentraut
<peter.eisentraut@enterprisedb.com> wrote:
> On 03.09.22 03:58, Bruce Momjian wrote:
> > doc: clarify recursion internal behavior
>
> - Strictly speaking, this process is iteration not recursion, but
> - <literal>RECURSIVE</literal> is the terminology chosen by the SQL
> standards
> - committee.
> + While <literal>RECURSIVE</literal> allows queries to be specified
> + recursively, internally all queries are evaluated iteratively.
>
> Is that true? Surely there is some recursive behavior in the executor.
I haven't read the patch, but I think the claim shown here is correct.
The executor does recurse in general in that ExecProcNode() is reached
over and over again at different levels of the call stack, but I don't
think that recursive queries cause that to happen any more than it
would otherwise. I think we allocate the first branch of the recursive
query once and then the second one over and over in a loop until we're
done.
--
Robert Haas
EDB: http://www.enterprisedb.com