transactions in functions, possible bug or what I'm doing wrong?
От | Riccardo G. Facchini |
---|---|
Тема | transactions in functions, possible bug or what I'm doing wrong? |
Дата | |
Msg-id | 20041119115231.27648.qmail@web13924.mail.yahoo.com обсуждение исходный текст |
Ответы |
Re: transactions in functions, possible bug or what I'm doing
|
Список | pgsql-sql |
Hi All, PostgreSQL 7.4.5 assume this script: --- create table test_table (id serial,test_value text ) without oids; insert into test_table (test_value) values ('A'); insert into test_table (test_value) values ('B'); insert into test_table (test_value) values ('C'); insert into test_table (test_value) values ('D'); CREATE OR REPLACE FUNCTION test_with_transaction() RETURNS text AS 'declare my_test_record record; declare my_return_value text; begin my_return_value := ''''; start transaction; for my_test_record in select * from test_table loop my_return_value:= my_return_value || my_test_record.test_value; end loop; return my_return_value; commit; end;' LANGUAGE 'plpgsql' VOLATILE; CREATE OR REPLACE FUNCTION test_without_transaction() RETURNS text AS 'declare my_test_record record; declare my_return_value text; begin my_return_value := ''''; for my_test_record in select * from test_table loop my_return_value := my_return_value ||my_test_record.test_value; end loop; return my_return_value; end;' LANGUAGE 'plpgsql' VOLATILE; --- Why does select test_without_transaction(); return this info: "ABCD" (as should be) and select test_with_transaction(); returns this error? ERROR: SPI_prepare() failed on "start transaction" CONTEXT: PL/pgSQL function "test_with_transaction" line 6 at SQL statement I've been investigating the matter in the doc I have, but to no avail. google was not helpful either. any suggestion? is this a bug? or the bug resides in my head? regards, Riccardo
В списке pgsql-sql по дате отправления: