Re: builtin functions, parameter names and psql's \df

From: Oleksandr Shulgin <oleksandr(dot)shulgin(at)zalando(dot)de>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: builtin functions, parameter names and psql's \df
Date: 2020-09-02 07:13:00
Message-ID: CACACo5SP8c+0C1VkfqeGyyTqWtEpifvEnom-23Pb6EHxrg+pRg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Sep 2, 2020 at 7:35 AM Andres Freund <andres(at)anarazel(dot)de> wrote:

> Hi,
>
> on a regular basis I remember a builtin function's name, or can figure it
> out
> using \df etc, but can't remember the argument order. A typical example is
> regexp_*, where I never remember whether the pattern or the input string
> comes
> first.
>
> Unfortunatly \df does not really help with that:
>
> =# \df regexp_split_to_table
>
> ┌────────────┬───────────────────────┬──────────────────┬─────────────────────┬──────┐
> │ Schema │ Name │ Result data type │ Argument data
> types │ Type │
>
> ├────────────┼───────────────────────┼──────────────────┼─────────────────────┼──────┤
> │ pg_catalog │ regexp_split_to_table │ SETOF text │ text, text
> │ func │
> │ pg_catalog │ regexp_split_to_table │ SETOF text │ text, text,
> text │ func │
>
> └────────────┴───────────────────────┴──────────────────┴─────────────────────┴──────┘
>
> If the parameters were named however, it'd be clear:
>
> =# CREATE OR REPLACE FUNCTION pg_catalog.regexp_split_to_table(string
> text, pattern text)
> RETURNS SETOF text
> LANGUAGE internal
> IMMUTABLE PARALLEL SAFE STRICT
> AS $function$regexp_split_to_table_no_flags$function$
>
> =# \df regexp_split_to_table
>
> ┌────────────┬───────────────────────┬──────────────────┬──────────────────────────┬──────┐
> │ Schema │ Name │ Result data type │ Argument data
> types │ Type │
>
> ├────────────┼───────────────────────┼──────────────────┼──────────────────────────┼──────┤
> │ pg_catalog │ regexp_split_to_table │ SETOF text │ string text,
> pattern text │ func │
> │ pg_catalog │ regexp_split_to_table │ SETOF text │ text, text,
> text │ func │
>
> └────────────┴───────────────────────┴──────────────────┴──────────────────────────┴──────┘
>
> (I intentionally left the three parameter version unchanged, to show the
> difference)
>
>
> In the docs we already name the parameters using SQL like syntax, see [1].
> How
> about we actually do so for at least the more common / complicated
> functions?
>

+many

I find myself in the same situation a lot.
I've never realized that's an implementation detail and not something
fundamental preventing the parameters from being named in the built-in
functions.

--
Alex

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Julien Rouhaud 2020-09-02 07:15:12 Re: builtin functions, parameter names and psql's \df
Previous Message Jürgen Purtz 2020-09-02 07:04:38 Re: Additional Chapter for Tutorial