On Mon, May 15, 2023 at 5:00 PM Thomas Kellerer <sham...@gmx.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.