Thread: RAISE function misuse ?

RAISE function misuse ?

From
Patrick Refondini
Date:
Hi,
I obtain the following output:

idns_target=# select test();
INFO:  hello !
CONTEXT:  SQL statement "SELECT  hello()"
PL/pgSQL function "test" line 2 at perform

Using the two following functions:

CREATE OR REPLACE FUNCTION hello() RETURNS void AS $$
BEGIN
    RAISE INFO 'hello !';
RETURN;
END;
$$ LANGUAGE plpgsql;

CREATE OR REPLACE FUNCTION test() RETURNS void AS $$
BEGIN
    PERFORM hello();
RETURN;
END;
$$ LANGUAGE plpgsql;

I would like to know:
1. Is there anything wrong using RAISE this way.
2. Is there a way to get rid of the output:
CONTEXT:  SQL statement "SELECT  hello()"
PL/pgSQL function "test" line 2 at perform

I use PostgreSQL/psql 8.1.0

Thanks,

Patrick

Re: RAISE function misuse ?

From
Michael Fuhr
Date:
On Mon, Apr 03, 2006 at 05:44:18PM +0200, Patrick Refondini wrote:
> idns_target=# select test();
> INFO:  hello !
> CONTEXT:  SQL statement "SELECT  hello()"
> PL/pgSQL function "test" line 2 at perform

[...]

> 1. Is there anything wrong using RAISE this way.

Not in the sense of the code doing something it shouldn't.

> 2. Is there a way to get rid of the output:
> CONTEXT:  SQL statement "SELECT  hello()"
> PL/pgSQL function "test" line 2 at perform

test=> \set VERBOSITY terse
test=> select test();
INFO:  hello !
 test
------

(1 row)

--
Michael Fuhr

Re: RAISE function misuse ?

From
Patrick Refondini
Date:
Michael Fuhr wrote:
> On Mon, Apr 03, 2006 at 05:44:18PM +0200, Patrick Refondini wrote:
>
>>idns_target=# select test();
>>INFO:  hello !
>>CONTEXT:  SQL statement "SELECT  hello()"
>>PL/pgSQL function "test" line 2 at perform
>
>
> [...]
>
>
>>1. Is there anything wrong using RAISE this way.
>
>
> Not in the sense of the code doing something it shouldn't.
Is there a better way to output text from within a function ?
>
>
>>2. Is there a way to get rid of the output:
>>CONTEXT:  SQL statement "SELECT  hello()"
>>PL/pgSQL function "test" line 2 at perform
>
>
> test=> \set VERBOSITY terse
Great ! Exactely what I was looking for.

Thanks,

Patrick

> test=> select test();
> INFO:  hello !
>  test
> ------
>
> (1 row)
>