Re: can we mark upper/lower/textlike functions leakproof?

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Joe Conway <mail(at)joeconway(dot)com>
Cc: Jacob Champion <jacob(dot)champion(at)enterprisedb(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andrew Dunstan <andrew(at)dunslane(dot)net>, David Rowley <dgrowleyml(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: can we mark upper/lower/textlike functions leakproof?
Date: 2024-08-02 14:14:52
Message-ID: CAKFQuwYqDN8raLwaB6+VQ3sqO5mz94o0q5v7_6Dp=k6BCOp3KA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Aug 2, 2024 at 6:58 AM Joe Conway <mail(at)joeconway(dot)com> wrote:

> On 8/2/24 09:48, Jacob Champion wrote:
> > On Thu, Aug 1, 2024 at 6:03 PM Robert Haas <robertmhaas(at)gmail(dot)com>
> wrote:
> >>
> >> On Thu, Aug 1, 2024 at 4:45 PM Jacob Champion
> >> <jacob(dot)champion(at)enterprisedb(dot)com> wrote:
> >> > Would it provide enough value for effort to explicitly mark leaky
> >> > procedures as such? Maybe that could shrink the grey area enough to be
> >> > protective?
> >>
> >> You mean like proleakproof = true/false/maybe?
> >
> > Yeah, exactly.
>
> <dons flameproof suit>
> Hmmm, and then have "leakproof_mode" = strict/lax/off where 'strict' is
> current behavior, 'lax' allows the 'maybe's to get pushed down, and
> 'off' ignores the leakproof attribute entirely and pushes down anything
> that merits being pushed?
> </dons flameproof suit>
>
>
Another approach would be to do something like:

select "upper"!(column)

to demark within the query usage itself that this function with a maybe
leakproof attribute gets interpreted as yes.

or even something like:

select "upper"[leakproof](column)

This is both more readable and provides a way, not that we seem to need it,
to place more than one label (or just alternative labels using the same
syntax construct, like with explain (...)) inside the "array".

Discoverability of when to add such a marker would be left up to the query
author, with the safe default mode being a not leakproof interpretation.

David J.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2024-08-02 15:07:55 Re: can we mark upper/lower/textlike functions leakproof?
Previous Message David E. Wheeler 2024-08-02 14:11:10 Re: Why is citext/regress failing on hamerkop?