public inbox for [email protected]  
help / color / mirror / Atom feed
From: Tom Lane <[email protected]>
To: Victor Dobrovolsky <[email protected]>
Cc: [email protected]
Subject: Re: scalar plpgsql functions and their stability flags
Date: Sun, 26 May 2024 10:27:14 -0400
Message-ID: <[email protected]> (raw)
In-Reply-To: <CAJFsatN_5EkCuk8GqUG_1iOD0ON6x4BTeMWU08Jierr5m+GD7Q@mail.gmail.com>
References: <CAJFsatN_5EkCuk8GqUG_1iOD0ON6x4BTeMWU08Jierr5m+GD7Q@mail.gmail.com>

Victor Dobrovolsky <[email protected]> writes:
> It is clear that for immutable/stable functions with constant parameters,
>  query planner could/should calculate value in a parse time and use it
> directly in query, or at least once per query.

Immutable, yes, stable, no.

Awhile back there was a draft patch to cache outputs of stable functions
after running them once in a query, but I don't think anyone's still
working on that.  IIRC we were having a hard time convincing ourselves
that the extra bookkeeping would pay for itself.

> But it is unclear for me what exactly should/can happens when parameters
> are bounded not to constant values but to query fields.
> In such a case there could be some caching mechanics involved for
> parameters combinations and result values.
> Like building a hash table for that or something similar.

No such mechanism exists.  Again, there would be a lot of tradeoffs
involved and it's difficult to say if it'd be a win.

			regards, tom lane






view thread (2+ messages)

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: scalar plpgsql functions and their stability flags
  In-Reply-To: <[email protected]>

* 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