suppress notices from inside a stored a plpgqsl function

Started by David Gauthierover 2 years ago2 messagesgeneral
Jump to latest
#1David Gauthier
dfgpostgres@gmail.com

Hi:

I have a plpgsql function that has this...

drop table if exists tmp_diff_blkviews;

Even with the "if exists", I still get...

NOTICE: table "tmp_diff_blkviews" does not exist, skipping
CONTEXT: SQL statement "drop table if exists tmp_diff_blkviews"
PL/pgSQL function dvm.blkview_diffs(character varying,character varying)
line 6 at SQL statement

I want to suppress that. Even if the temp table exists, I don't want to
hear about how it had to delete the table. Just delete it if it exists and
be quiet about it.

This function is being called through perl/dbi. So client side command line
set options, or anything like that, is no good. Is there way to control
messaging from inside the function ?

#2Adrian Klaver
adrian.klaver@aklaver.com
In reply to: David Gauthier (#1)
Re: suppress notices from inside a stored a plpgqsl function

On 11/27/23 12:51, David Gauthier wrote:

Hi:

I have a plpgsql function that has this...

    drop table if exists tmp_diff_blkviews;

Even with the "if exists", I still get...

NOTICE:  table "tmp_diff_blkviews" does not exist, skipping
CONTEXT:  SQL statement "drop table if exists tmp_diff_blkviews"
PL/pgSQL function dvm.blkview_diffs(character varying,character varying)
line 6 at SQL statement

I want to suppress that.   Even if the temp table exists, I don't want
to hear about how it had to delete the table.  Just delete it if it
exists and be quiet about it.

This function is being called through perl/dbi. So client side command
line set options, or anything like that, is no good.  Is there  way to
control messaging from inside the function ?

Per here:

https://www.postgresql.org/docs/current/plpgsql-errors-and-messages.html#PLPGSQL-STATEMENTS-RAISE

"Whether messages of a particular priority are reported to the client,
written to the server log, or both is controlled by the log_min_messages
and client_min_messages configuration variables. See Chapter 20 for more
information."

I have not tried it but maybe SET client_min_messages to something above
NOTICE in the function.

Or as part of the function creation:

https://www.postgresql.org/docs/current/sql-createfunction.html

SET configuration_parameter { TO value | = value | FROM CURRENT }

--
Adrian Klaver
adrian.klaver@aklaver.com