6

postgresql-9.0.15 auf CentOS 6.5. Ich habe eine plperlu -Funktion, die eine INFO-Nachricht ausgibt. Ich möchte es zu unterdrücken, während der Tests (unter Verwendung von psql, die auch als unten verhält), aber ich kann nicht einmal scheinen, um es von einem pgAdminIII zu tun (1.18.1 für Win2003) Abfragefenster:INFO-Ausgabe trotz "SET client_min_messages TO WARNING" kurz vor

SET client_min_messages TO WARNING; 
select my_info_outputting_function('lalala') 

Ich betreiben das und in der Registerkarte "Nachrichten" suchen, und es gibt meine INFO-Nachricht.

(Dies kann ähnlich scheinen How to suppress INFO messages when running psql scripts, aber ich will nicht INFO-Nachrichten für meine ganze Sitzung, nur einen Teil davon und legen Sie dann die Mindest zurück zu bemerken. Deaktivieren)

Was mache ich falsch mit dem obigen Code-Schnipsel? Gilt client_min_messages nicht für pl/perlu Funktionen?

UPDATE: auf weitere Untersuchungen, so scheint es auch mit plpgsql Funktionen geschehen, nicht nur plperlu Funktionen:

create or replace function my_info_outputting_function() returns void as $$ 
begin 
    raise INFO 'this should not appear...'; 
    return; 
end; 
$$ language plpgsql; 
SET client_min_messages TO WARNING; 
select my_info_outputting_function(); 

ich das obige Snippet in einem pgAdminIII Abfragefenster laufen und „dies sollte nicht angezeigt werden“ erscheint in die Registerkarte Nachrichten. Quoi?

Update 2: Ich habe auch versucht log_min_messages nur für den Fall. Gleiches Verhalten.

Antwort

12

fragte ich auf der postgresql-allgemeine Mailingliste und erhielt an informative answer: was INFO von NOTICE unterscheidet, ist, dass INFO kein Niveau hat: es immer beabsichtigt ist, durch zu gehen, egal, was client_min_messages oder irgendetwas anderes zu gesetzt ist, aus Funktionen, die Sie speziell für die Ausgabe von INFO aufrufen würden. Also in meinem Fall ist die passende Sache, nur NOTICE von meiner Funktion auszugeben.

+0

Ein Link zu dem Thread in Pgsql-General wäre nett. –

+2

@ErwinBrandstetter, fertig; danke für den Vorschlag. – Kev

Verwandte Themen