On Tue, Apr 8, 2008 at 3:29 AM, Julius Tuskenis <[EMAIL PROTECTED]> wrote:

> Hello.
>
> What do you mean saying CONTEXT messages? Could you give an example what
> you get and what you want to get from your functions?
>
>
>
Sure. I have made a simple example to show this with 2 functions: f_outer
which loops through a recordset and calls f_inner for each record.

Context messages appear immediately after the f_inner function logs.
The output I'm getting when executing f_outer is:

NOTICE:  f_outer: 3
NOTICE:  f_inner: 3 = [HEVIA]
CONTEXT:  SQL statement "SELECT  f_inner( $1 )"
PL/pgSQL function "f_outer" line 9 at perform
NOTICE:  f_outer: 6
NOTICE:  f_inner: 6 = [GUIDARA]
CONTEXT:  SQL statement "SELECT  f_inner( $1 )"
PL/pgSQL function "f_outer" line 9 at perform
NOTICE:  f_outer: 7
NOTICE:  f_inner: 7 = [MASTROIANI]
CONTEXT:  SQL statement "SELECT  f_inner( $1 )"
PL/pgSQL function "f_outer" line 9 at perform  f_outer


I want to get rid of the CONTEXT messages:
  CONTEXT:  SQL statement "SELECT  f_inner( $1 )"
  PL/pgSQL function "f_outer" line 9 at perform  f_outer


--- Function declaration follows in case it helps ---
CREATE OR REPLACE FUNCTION f_inner(p_client numeric(10)) RETURNS void AS
$BODY$
DECLARE
  r_clients clientes%ROWTYPE;
BEGIN
  SELECT * INTO r_clients FROM clientes WHERE id_cliente = p_client;
  RAISE NOTICE 'f_inner: % = [%]', p_client, r_clients.apellido;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

CREATE OR REPLACE FUNCTION f_outer() RETURNS void AS
$BODY$
DECLARE
  r_clients clientes%ROWTYPE;
BEGIN
  FOR r_clients IN SELECT * FROM CLIENTES
  LOOP
    RAISE NOTICE 'f_outer: %', r_clients.id_cliente;
    PERFORM f_inner(r_clients.id_cliente);
  END LOOP;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

Regards,
Fernando.

Reply via email to