Re: TODO: Add a GUC to control whether BEGIN inside
От | Lukas Kahwe Smith |
---|---|
Тема | Re: TODO: Add a GUC to control whether BEGIN inside |
Дата | |
Msg-id | 459A8CCF.1090408@pooteeweet.org обсуждение исходный текст |
Ответ на | Re: TODO: Add a GUC to control whether BEGIN inside (Alvaro Herrera <alvherre@commandprompt.com>) |
Список | pgsql-hackers |
Alvaro Herrera wrote: > news.postgresql.org wrote: > >> While we are on the topic, I have implemented a poor mans nested >> transaction feature into my database access layer. essentially >> subsequent calls to begin a transaction after the initial begin simply >> increase an internal counter and set a savepoint. as you commit the >> transactions the counter is decreased and the savepoints are released. >> maybe this could be implemented inside postgresql to make the life of >> modular programmers easier? > > Yeah, it's called "SAVEPOINT foo" and "RELEASE foo". Err, I think you misunderstood what I said. My implementation uses SAVEPOINTs already. The point is having some API where you do not have to care of you are already in a transaction or not. Depending on if you are it will either open a new transaction or simply place a savepoint. with the following invented commands: MBEGIN FOO1 // open transaction; set counter to 1 MBEGIN FOO2 // set savepoint FOO2; set counter to 2 MBEGIN FOO3 // set savepoint FOO3; set counter to 3 MROLLBACK FOO3 // rollback to FOO3; set counter to 2 MCOMMIT FOO2 // release FOO2; set counter to 1 MCOMMIT FOO1 // commit regards, Lukas regards, Lukas
В списке pgsql-hackers по дате отправления: