Re: pgsql: doc: clarify recursion internal behavior - Mailing list pgsql-committers

From Robert Haas
Subject Re: pgsql: doc: clarify recursion internal behavior
Date
Msg-id CA+TgmoYHkORN2LtHUW3Sp3=aGYiJE3m8ExSL_FOU3LUHb9BjRQ@mail.gmail.com
Whole thread Raw
In response to Re: pgsql: doc: clarify recursion internal behavior  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
Responses Re: pgsql: doc: clarify recursion internal behavior  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-committers
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



pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: Re: pgsql: Raise a warning if there is a possibility of data from multiple
Next
From: Tom Lane
Date:
Subject: Re: pgsql: doc: clarify recursion internal behavior