Hi, Mario, Mario Splivalo wrote: > Is it possible to change the transaction level within the procedure?
No, currently not, the PostgreSQL "stored procedures" really are "stored functions" that are called inside a query, and thus cannot contain inner transactions. > I'm using Postgres 8.1.2 default isolation level. But, I would like one > stored procedure to execute as in serializable isolation level. I have > created my stored procedure like this: [...] > One thread (thread A) does this: > > 1. java got the message via http (whatever) > 2. java does: begin; > 3. java does: select * from create_message(...) > 4. java does some checking > 5. java does: select * from set_message_status(...) > 6. java does some more checing > 7. java does commit; (under rare circumstances java does rollback). So you even want to change the transaction serialization level within a running transaction? I'm sorry, this will not work, and I cannot think of a sane way to make it work. It is locically not possible to raise the isolation level when the transaction was started with a lower level and thus may already have irreversibly violated the constraits that the higher level wants to guarantee. HTH, Markus -- Markus Schaber | Logical Tracking&Tracing International AG Dipl. Inf. | Software Development GIS Fight against software patents in EU! www.ffii.org www.nosoftwarepatents.org ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match