Thread: CONTEXT on PL/pgSQL

CONTEXT on PL/pgSQL

From
Martin Marques
Date:
I have a simple function made with PL/pgSQL and when I call it I get this in
the logs:

2004-04-23 10:15:32 [30669] LOG:  statement: SELECT nodoSuperior(22) AS sup
2004-04-23 10:15:32 [30669] LOG:  statement: SELECT  $1
CONTEXT:  PL/pgSQL function "nodosuperior" line 7 at assignment
2004-04-23 10:15:32 [30669] LOG:  statement: SELECT  codigo,padre,nombre FROM
procesos WHERE codigo= $1
CONTEXT:  PL/pgSQL function "nodosuperior" line 10 at select into variables
2004-04-23 10:15:32 [30669] LOG:  statement: SELECT   $1  IS NULL
CONTEXT:  PL/pgSQL function "nodosuperior" line 12 at exit
2004-04-23 10:15:32 [30669] LOG:  statement: SELECT   $1
CONTEXT:  PL/pgSQL function "nodosuperior" line 16 at return

What does CONTEXT mean, and is everything ok?

The function is this:

CREATE OR REPLACE FUNCTION nodoSuperior(INT) RETURNS VARCHAR AS '
DECLARE
COD INT;
SUP RECORD;

BEGIN

COD:=$1;

LOOPSELECT INTO SUP codigo,padre,nombre     FROM procesos WHERE codigo=COD;EXIT WHEN SUP.padre IS NULL;COD:=SUP.padre;
END LOOP;

RETURN SUP.nombre;
END;
' LANGUAGE 'plpgsql';

-- 10:16:01 up 45 days, 14:40,  3 users,  load average: 0.54, 0.61, 0.63
-----------------------------------------------------------------
Martín Marqués        | select 'mmarques' || '@' || 'unl.edu.ar'
Centro de Telematica  |  DBA, Programador, Administrador            Universidad Nacional                 del Litoral
-----------------------------------------------------------------



Re: CONTEXT on PL/pgSQL

From
Tom Lane
Date:
Martin Marques <martin@bugs.unl.edu.ar> writes:
> I have a simple function made with PL/pgSQL and when I call it I get this in 
> the logs:

> 2004-04-23 10:15:32 [30669] LOG:  statement: SELECT nodoSuperior(22) AS sup
> 2004-04-23 10:15:32 [30669] LOG:  statement: SELECT  $1
> CONTEXT:  PL/pgSQL function "nodosuperior" line 7 at assignment

log_statement currently logs everything the parser sees, which includes
SQL commands generated by plpgsql.

Arguably these facilities should be separated, but until someone
makes a serious effort to provide plpgsql debugging features,
it's likely that nothing will be done about it.  Right now this is
almost the only technique available for seeing what's going on inside
a plpgsql function, and crummy as it is, it's better than nothing...
        regards, tom lane


Re: CONTEXT on PL/pgSQL

From
Martin Marques
Date:
El Vie 23 Abr 2004 11:18, Tom Lane escribió:
> Martin Marques <martin@bugs.unl.edu.ar> writes:
> > I have a simple function made with PL/pgSQL and when I call it I get this
> > in the logs:
> >
> > 2004-04-23 10:15:32 [30669] LOG:  statement: SELECT nodoSuperior(22) AS
> > sup 2004-04-23 10:15:32 [30669] LOG:  statement: SELECT  $1
> > CONTEXT:  PL/pgSQL function "nodosuperior" line 7 at assignment
>
> log_statement currently logs everything the parser sees, which includes
> SQL commands generated by plpgsql.
>
> Arguably these facilities should be separated, but until someone
> makes a serious effort to provide plpgsql debugging features,
> it's likely that nothing will be done about it.  Right now this is
> almost the only technique available for seeing what's going on inside
> a plpgsql function, and crummy as it is, it's better than nothing...

So the CONTEXT line just tells where the statement was made?

-- 12:06:01 up 45 days, 16:30,  2 users,  load average: 0.50, 0.46, 0.45
-----------------------------------------------------------------
Martín Marqués        | select 'mmarques' || '@' || 'unl.edu.ar'
Centro de Telematica  |  DBA, Programador, Administrador            Universidad Nacional                 del Litoral
-----------------------------------------------------------------



Re: CONTEXT on PL/pgSQL

From
Gaetano Mendola
Date:
Martin Marques wrote:
> El Vie 23 Abr 2004 11:18, Tom Lane escribió:>>>Martin Marques <martin@bugs.unl.edu.ar> writes:>>>>>I have a simple
functionmade with PL/pgSQL and when I call it I get this>>>in the logs:>>>>>>2004-04-23 10:15:32 [30669] LOG:
statement:SELECT nodoSuperior(22) AS>>>sup 2004-04-23 10:15:32 [30669] LOG:  statement: SELECT  $1>>>CONTEXT:  PL/pgSQL
function"nodosuperior" line 7 at assignment>>>>log_statement currently logs everything the parser sees, which
includes>>SQLcommands generated by plpgsql.>>>>Arguably these facilities should be separated, but until someone>>makes
aserious effort to provide plpgsql debugging features,>>it's likely that nothing will be done about it.  Right now this
is>>almostthe only technique available for seeing what's going on inside>>a plpgsql function, and crummy as it is, it's
betterthan nothing...>>> So the CONTEXT line just tells where the statement was made?
 

U'r right, you can get rid of that CONTEXT configuring postgresql
with
   log_error_verbosity = terse





Regards
Gaetano Mendola