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