k�nnt Ihr mir sagen, wie ich mir im PGAdmin �ber das Messages-Tab einer Funktion oder eines Triggers eine NOTICE zum debuggen ausgeben lassen kann? Habe bereits die postgresql.conf auf client_min_messages NOTICE gestellt und auch im PGAdmin unter Optionen --> Logging “Errors and Notices” ausgew�hlt. Dennoch wird mir keinerlei Meldung � la
RAISE NOTICE ‘test’;
im PGAdmin-Fenster ausgegeben. Was mache ich falsch?
..Nat�rlich
Okay, es sieht im Ganzen so aus und ist eine Funktion zum erzeugen eines 1km� Kachelrasters �ber einer BoundingBox.
Das ganze funktioiert auch, ich w�rde halt nur gerne wissen, warum mein Raise Notice ‘blablub’ mir im Messages-Tab keine Ausgabe gibt - In der Kommandozeile funktioniert es doch auch..
CREATE OR REPLACE FUNCTION Kacheltest(character varying, integer)
RETURNS SETOF record AS
$BODY$
DECLARE
tablename ALIAS FOR $1;
tilesize ALIAS FOR $2;
sql text;
res record;
res2 record;
minx int;
maxx int;
miny int;
maxy int;
BEGIN
Raise Notcie ‘blablub’;
sql := ‘select minx,maxx,miny,maxy
from (select
(floor(min(x)/’||tilesize||‘)‘||tilesize||’)::int as minx,
(ceil(max(x)/‘||tilesize||’)’||tilesize||‘)::int as maxx,
(floor(min(y)/’||tilesize||‘)‘||tilesize||’)::int as miny,
(ceil(max(y)/‘||tilesize||’)’||tilesize||‘)::int as maxy
from ‘||tablename||’) a’;
FOR res IN EXECUTE(sql) LOOP
minx := res.minx;
maxx := res.maxx;
miny := res.miny;
maxy := res.maxy;
WHILE minx < maxx LOOP
WHILE miny < maxy LOOP
sql := ‘SELECT ’
||minx||’ as minx, ’
||minx + tilesize||’ as maxx, ’
||miny||’ as miny, ’
||miny + tilesize||’ as maxy’;
FOR res2 IN EXECUTE(sql) LOOP
RETURN NEXT res2;
END LOOP;
miny := miny + tilesize;
END LOOP;
minx := minx + tilesize;
miny := res.miny;
END LOOP;
END LOOP;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION import._fn_gettiledimension(character varying, integer)
OWNER TO postgres;
COMMENT ON FUNCTION import._fn_gettiledimension(character varying, integer) IS ‘Berechne Kachelausdehnung für volle 10er, 100er, 1000er, etc.
und einem Punktdatensatz’;
Es tritt bei mir halt nicht nur in dem Script auf, sondern generell im PGAdmin…
CREATE OR REPLACE FUNCTION import._fn_test()
RETURNS void AS
$BODY$
Declare
x int :=1;
y int :=7;
BEGIN
WHILE x<=y LOOP
Raise Notice ‘xwert=%’,x;
x := x+1;
END LOOP;
End;
$BODY$
Kurzes Script, wenig Sinn: In der Kommandozeile bekomme ich die x-Werte ausgegeben, im PGAdmin-Messeges-Tab aber nicht..
Die PG/PGA-Einstellungen wurden wie oben bereits beschrieben vorgenommen. Muss ich sonst noch etwas beachten? Kann man sich Notices überhaupt im PGA ausgeben lassen??
Okay, hat sich erledigt…
Natürlich muss man alles in eine SELECT-Abfrage hüllen, wie in der Kommandozeile. Dachte halt nur, das ein einfaches run/F5 der Funktion an sich auch schon eine eine Notice zurückgibt…thihi