Search Postgresql Archives

Re: problem with FOUND and EXECUTE in pl/pgsql

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Are you not confused somewhere??

First you insert INSERT INTO db VALUES(1,'one');

Then you do this :

SELECT merge_db(1, 'two');

But for some reason this SQL select * from db; selects two for your text field...


Ries

On Jun 3, 2009, at 2:42 PM, Oleg Bartunov wrote:

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@xxxxxxxxxx, http://www.sai.msu.su/~megera/
phone: +007(495)939-16-83, +007(495)939-23-83

--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



			regards, Ries van Twisk


-------------------------------------------------------------------------------------------------
Ries van Twisk
tags: Freelance TYPO3 Glassfish JasperReports JasperETL Flex Blaze-DS WebORB PostgreSQL DB-Architect
email: ries@xxxxxxxxxxx
web:   http://www.rvantwisk.nl/
skype: callto://r.vantwisk
Phone: +1-810-476-4196
SIP: +1-747-690-5133







--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux