public inbox for [email protected]  
help / color / mirror / Atom feed
From: Renan Alves Fonseca <[email protected]>
To: David Rowley <[email protected]>
Cc: Evgeny Morozov <[email protected]>
Cc: pgsql-general <[email protected]>
Subject: Re: Querying one partition in a function takes locks on all partitions
Date: Mon, 31 Mar 2025 18:41:54 +0200
Message-ID: <CAN_p2QjXkBzyx55QAEGLfvWF0_UdusvxNmTykq_6jQsaaqjwTw@mail.gmail.com> (raw)
In-Reply-To: <CAApHDvp3EDrVhGjmb21bceJ5-Y7iXKOn2UGG3-ngp_9ob_mpLw@mail.gmail.com>
References: <01020195b987abd3-a008b77d-8c63-4931-80a4-be36a351c8b2-000000@eu-west-1.amazonses.com>
	<CAN_p2Qi_zie4aZqMcYuT-Y5CxyvUJ+nBAomQNJSPbBjrCPEXJw@mail.gmail.com>
	<01020195dd9e8337-c912f36d-54ef-4d3c-a00d-5e697b308d33-000000@eu-west-1.amazonses.com>
	<CAN_p2QghEHKeyTvb6Gc8F3y6wNm+dJXaCdrAnrV7TEq15Oh-pg@mail.gmail.com>
	<CAApHDvp3EDrVhGjmb21bceJ5-Y7iXKOn2UGG3-ngp_9ob_mpLw@mail.gmail.com>

On Mon, Mar 31, 2025 at 5:10 AM David Rowley <[email protected]> wrote:
>
> On Sat, 29 Mar 2025 at 10:30, Renan Alves Fonseca
> <[email protected]> wrote:
> > Currently, in the SQL function path the plan is always generic. The
> > planner ignores the function arguments. The plan_cache_mode setting
> > has no effect in this path.
> >
> > I agree that the docs should be more explicit about this. There is a
> > high penalty for using generic plans in complex functions.
>
> If you have any suggestions about where you think those should be
> added or wording for that, please feel free to suggest.
>

There is a specific chapter about functions written in SQL: [1]. It is
in an advanced section of the docs, so I think it is a suitable place
to address this level of detail.

There is a Note that says: "The entire body of an SQL function is
parsed before any of it is executed. While an SQL function can contain
commands that alter ..."
I would add another Note below like:
"Except when inlined, an SQL function is always executed with a
generic plan. This behavior may not be desired in some situations, and
it will be fixed in future versions."

I'm not sure if we should mention the fix or if we should mention a
workaround...

If I understood well [2], then both notes may be discarded together in
the next version.

Renan

[1] https://www.postgresql.org/docs/17/xfunc-sql.html
[2] https://www.postgresql.org/message-id/db42573039cc66815e80a48589eebea8%40postgrespro.ru






view thread (6+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected]
  Subject: Re: Querying one partition in a function takes locks on all partitions
  In-Reply-To: <CAN_p2QjXkBzyx55QAEGLfvWF0_UdusvxNmTykq_6jQsaaqjwTw@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox