From: | jian he <jian(dot)universality(at)gmail(dot)com> |
---|---|
To: | Thomas Kellerer <shammat(at)gmx(dot)net> |
Cc: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: function signature allow "default" keyword |
Date: | 2023-05-16 03:11:30 |
Message-ID: | CACJufxEcuwE5oRq4ZA3Spuf8_LCtK=Wh607J_SShLb+Ki9gnyg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Mon, May 15, 2023 at 5:00 PM Thomas Kellerer <shammat(at)gmx(dot)net> wrote:
> jian he schrieb am 15.05.2023 um 10:33:
> >
> > function idea.
> > allow function calling using the default keyword for any of the input
> arguments.
> >
> > example: https://dbfiddle.uk/FQwnfdmm
> > So something like this "SELECT * FROM customer_orders(2579927,
> 'order_placed_on DESC', default, 2);"
> > should work.
>
>
> You can use named parameters when calling the function, that will use the
> default value for those not mentioned:
>
> SELECT *
> FROM customer_orders(_customer_id => 2579927,
> _sort_field_and_direction => 'order_placed_on DESC',
> _offset => 2);
>
>
>
>
select proname
,proargtypes
,pg_get_expr(pp.proargdefaults,0,true)
,pronargdefaults
from pg_proc pp
where pp.proname = 'customer_orders';
----------return-------------
proname | customer_orders
proargtypes | 23 25 23 23 1082 1082
pg_get_expr | 10, 0, CURRENT_DATE - 30, CURRENT_DATE
pronargdefaults | 4
table insert works, i guess because pg_attribute has column ordinal number
(left to right).
but pg_proc only counts the number of arguments that have a default value.
From | Date | Subject | |
---|---|---|---|
Next Message | Kirk Wolak | 2023-05-16 03:24:39 | Re: |
Previous Message | Kirk Wolak | 2023-05-16 01:26:16 | Re: Adding SHOW CREATE TABLE |