Re: Documenting inlining SQL functions

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: Paul Jungwirth <pj(at)illuminatedcomputing(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Documenting inlining SQL functions
Date: 2025-07-19 03:08:14
Message-ID: 2228148.1752894494@sss.pgh.pa.us
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

"David G. Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> writes:
> On Sunday, July 6, 2025, Paul Jungwirth <pj(at)illuminatedcomputing(dot)com> wrote:
>> The second patch adds a new <sect2> explaining how we inline SQL
>> functions: both single-result and set-returning. Since this happens
>> automatically, it makes a nice progression with the (easy) declarative
>> annotations and the (hard) support functions.

> The fact that attaching a set clause to the function definition (i.e.,
> proconfig) prevents inlining is missing from this description.

TBH, I think trying to document this behavior at this level of detail
will be a disaster. Our track record for keeping documentation in
sync with code is awful, and what exactly will make this area better
than average? Even if this text is 100% accurate today, I'll bet a
good lunch that it will be wrong in two or three releases.

Our attitude for questions at the level of detail that this is
trying to cover has mostly been "someone who cares can go read
the code". I grant that that's not a great answer, but it's
largely stood the test of time.

I think it's reasonable to document the fact that we can do SQL
function inlining in some cases, but not to try to specify which
cases those are in exhaustive detail.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Geoghegan 2025-07-19 03:25:38 Re: index prefetching
Previous Message David G. Johnston 2025-07-19 02:51:49 Re: Documenting inlining SQL functions