Обсуждение: [GENERAL] potential extension of psql's \df+ ?

Поиск
Список
Период
Сортировка

[GENERAL] potential extension of psql's \df+ ?

От
Karsten Hilbert
Дата:
Hi all !

Every so often, when working with functions, errors get
reported with context information similar to this:

    Context: PL/pgSQL function "test_function" line 5 at SQL statement

Often, the function source is kept under version control (or
in a file annotated, commented, etc in certain ways) such
that the file line number does not correspond to the function
source line number.

In such cases, a typical approach would be to go and do

    \df+ test_function

which nicely produces function metadata and source as
contained in the database. For non-trivial functions it is,
however, slightly cumbersome to count the line numbers
onscreen (let alone line break settings).

Hence I wonder whether an approach along these lines:

    select
        row_number() over ()
        || src_line
    from (
        select
            unnest(string_to_array(prosrc, E'\n')) as src_line
        from
            pg_proc
        where
            proname = 'FUNC_NAME'
    ) as func_src;

would be a worthwhile change to the query "\df+" uses ?

(Resorting to "\ef" won't align temp file lines with function
source line numbers either, because pgsql boilerplate is
needed for function definition etc.)

Thanks for considering,
Karsten
--
GPG key ID E4071346 @ eu.pool.sks-keyservers.net
E167 67FD A291 2BEA 73BD  4537 78B9 A9F9 E407 1346


Re: [GENERAL] potential extension of psql's \df+ ?

От
Pavel Stehule
Дата:
Hi

2017-04-19 11:55 GMT+02:00 Karsten Hilbert <Karsten.Hilbert@gmx.net>:
Hi all !

Every so often, when working with functions, errors get
reported with context information similar to this:

        Context: PL/pgSQL function "test_function" line 5 at SQL statement

Often, the function source is kept under version control (or
in a file annotated, commented, etc in certain ways) such
that the file line number does not correspond to the function
source line number.

In such cases, a typical approach would be to go and do

        \df+ test_function

which nicely produces function metadata and source as
contained in the database. For non-trivial functions it is,
however, slightly cumbersome to count the line numbers
onscreen (let alone line break settings).

Hence I wonder whether an approach along these lines:

        select
                row_number() over ()
                || src_line
        from (
                select
                        unnest(string_to_array(prosrc, E'\n')) as src_line
                from
                        pg_proc
                where
                        proname = 'FUNC_NAME'
        ) as func_src;

would be a worthwhile change to the query "\df+" uses ?


do you know \sf+ fce command?

Regards

Pavel

 
(Resorting to "\ef" won't align temp file lines with function
source line numbers either, because pgsql boilerplate is
needed for function definition etc.)

Thanks for considering,
Karsten
--
GPG key ID E4071346 @ eu.pool.sks-keyservers.net
E167 67FD A291 2BEA 73BD  4537 78B9 A9F9 E407 1346


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Re: [GENERAL] potential extension of psql's \df+ ?

От
Karsten Hilbert
Дата:
On Wed, Apr 19, 2017 at 12:00:04PM +0200, Pavel Stehule wrote:

> > Hence I wonder whether an approach along these lines:
> >
> >         select
> >                 row_number() over ()
> >                 || src_line
...
> >         ) as func_src;
> >
> > would be a worthwhile change to the query "\df+" uses ?
> >
> >
> do you know \sf+ fce command?

Sorry for the noise :-)

Thanks,
Karsten
--
GPG key ID E4071346 @ eu.pool.sks-keyservers.net
E167 67FD A291 2BEA 73BD  4537 78B9 A9F9 E407 1346


Re: [GENERAL] potential extension of psql's \df+ ?

От
Pavel Stehule
Дата:


2017-04-19 12:14 GMT+02:00 Karsten Hilbert <Karsten.Hilbert@gmx.net>:
On Wed, Apr 19, 2017 at 12:00:04PM +0200, Pavel Stehule wrote:

> > Hence I wonder whether an approach along these lines:
> >
> >         select
> >                 row_number() over ()
> >                 || src_line
...
> >         ) as func_src;
> >
> > would be a worthwhile change to the query "\df+" uses ?
> >
> >
> do you know \sf+ fce command?

Sorry for the noise :-)

no problem :)

Pavel
 

Thanks,
Karsten
--
GPG key ID E4071346 @ eu.pool.sks-keyservers.net
E167 67FD A291 2BEA 73BD  4537 78B9 A9F9 E407 1346


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general