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