| From: | Jelte Fennema-Nio <postgres(at)jeltef(dot)nl> |
|---|---|
| To: | Euler Taveira <euler(at)eulerto(dot)com> |
| Cc: | Andrew Dunstan <andrew(at)dunslane(dot)net>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, japin <japinli(at)hotmail(dot)com>, Zsolt Parragi <zsolt(dot)parragi(at)percona(dot)com>, Álvaro Herrera <alvherre(at)kurilemu(dot)de>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: pg_get__*_ddl consolidation |
| Date: | 2026-04-06 20:24:32 |
| Message-ID: | CAGECzQTjKgAF1rRG446aP0yoAnXHP8-KrunZW_roZWj5H6Xxdw@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Mon, 6 Apr 2026 at 19:10, Euler Taveira <euler(at)eulerto(dot)com> wrote:
> although we already use this style
> in some of the backend functions -- e.g. pg_logical_slot_*_changes()).
Thanks for the additional context. I didn't know about
pg_logical_slot_*_changes using this style. I searched the docs
locally and cannot find any other functions that use this style. I
think what makes pg_logical_slot_*_changes special, is that it passes
these options to the plugin. The plugin can define any valid options,
and postgres core cannot know what they are. I think this approach
makes sense for those functions because of that, but the ddl functions
don't pass the options to a plugin, so that argument does not apply
here.
> I also consider your approach but decided not to use it. The argument against
> named arguments is that you cannot add new argument *without* a DEFAULT value;
> if you do, all existing functions will fail.
I'm not sure what kind of change you're referring to here. I don't
understand how variadic options allow you to add a required argument
to an existing function without breaking existing callers. Could you
give a concrete example of a change that the VARIADIC allows, but the
named arguments don't?
> You also need to create another
> function with a different list of arguments to support a new option.
I don't understand this either. We often add new optional arguments to
existing functions in a new major release. e.g. pg_start_backup got
the exclusive argument in PG9.6. Or do you mean something else here?
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Melanie Plageman | 2026-04-06 20:33:16 | Re: EXPLAIN: showing ReadStream / prefetch stats |
| Previous Message | Robert Haas | 2026-04-06 20:15:21 | Re: pg_plan_advice |