Thread: [GENERAL] potential extension of psql's \df+ ?
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
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
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
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