| From: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Allow specifying NULL default in pg_proc.dat for "any" arguments |
| Date: | 2026-03-06 16:41:03 |
| Message-ID: | f11dc6f6-e461-45a1-a7de-781273fcc21d@dunslane.net |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 2026-03-06 Fr 11:01 AM, Tom Lane wrote:
> Andrew Dunstan<andrew(at)dunslane(dot)net> writes:
>> I noticed a small gap in our recent addition of default arguments for
>> functions in pg_proc.dat - it chokes if you try to set the default for a
>> VARIADIC "any" argument. But there's no need if the default argument us
>> NULL, as it often is. We don't need the argument's type_io_data etc. in
>> such a case. So this patch just handles NULL without fetching any type info.
> I'm not very convinced by this: the Const it produces may have
> the wrong typlen, typbyval, typcollation for the declared data type.
> It's possible that the incorrect typlen and typbyval markings can
> never matter considering that Const.constisnull will be true, but
> I'm not 100% sure of that. More to the point, I'm pretty sure
> that the incorrect typcollation *does* matter: it could lead to
> invalid conclusions about the overall collation of a function call,
> or bogus "inconsistent collation" errors.
>
> If we need a TypInfo[] entry for ANY, let's just add it.
> But I haven't seen any use cases?
>
>
Well, I guess that raises the question of what we get if we now do
CREATE OR REPLACE FUNCTION foo(x int, VARIADIC y "any" DEFAULT NULL);
which is the use case I was trying to avoid :-)
Turns out it sets the type to "unknown" and the constlen to -2.
cheers
andrew
--
Andrew Dunstan
EDB:https://www.enterprisedb.com
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Robert Haas | 2026-03-06 16:49:20 | Re: Why clearing the VM doesn't require registering vm buffer in wal record |
| Previous Message | Heikki Linnakangas | 2026-03-06 16:38:26 | Re: Rework SLRU I/O errors handle |