problem with FOUND and EXECUTE in pl/pgsql
От | Oleg Bartunov |
---|---|
Тема | problem with FOUND and EXECUTE in pl/pgsql |
Дата | |
Msg-id | Pine.LNX.4.64.0906032146160.17118@sn.sai.msu.ru обсуждение исходный текст |
Ответы |
Re: problem with FOUND and EXECUTE in pl/pgsql
Re: problem with FOUND and EXECUTE in pl/pgsql |
Список | pgsql-general |
Hi there, seems I don't understand how FOUND variable in pl/pgsql function defined, when I use EXECUTE of PERFORM. There is no problem when I use plain SQL. Below is a test I did for 8.4beta2. This is simplified script and I can use plain SQL, but in my project I need EXECUTE. CREATE TABLE db (a INT, b TEXT); INSERTYTT INTO db VALUES(1,'one'); CREATE OR REPLACE FUNCTION merge_db(key INT, data TEXT) RETURNS VOID AS $$ BEGIN EXECUTE 'UPDATE db SET b='||quote_literal(data)||' WHERE a='||key; RAISE NOTICE 'found:%',FOUND; END; $$ LANGUAGE plpgsql; After successfull update I expected TRUE, as with plain INSERT (instead of EXECUTE), but FOUND is FALSE ! =# SELECT merge_db(1, 'two'); NOTICE: found:f merge_db ---------- (1 row) =# select * from db; a | b ---+----- 1 | two (1 row) Regards, Oleg _____________________________________________________________ Oleg Bartunov, Research Scientist, Head of AstroNet (www.astronet.ru), Sternberg Astronomical Institute, Moscow University, Russia Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(495)939-16-83, +007(495)939-23-83
В списке pgsql-general по дате отправления: