Re: Disconnect from SPI manager on error
От | Robert Haas |
---|---|
Тема | Re: Disconnect from SPI manager on error |
Дата | |
Msg-id | CA+Tgmobgzbeks7GhJm_YNnE+JZ0aBfL+P8do-URi-MzhKS8JQg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Disconnect from SPI manager on error (RekGRpth <rekgrpth@gmail.com>) |
Список | pgsql-hackers |
On Fri, Jun 21, 2019 at 3:45 AM RekGRpth <rekgrpth@gmail.com> wrote: > >It is not plpgsql's job to clean up after other backend subsystems > during a transaction abort. > But plpgsql do clean up on success! I suggest only do cleanup and on exception. Except that's wrong, because when an error happens, cleanup is - in most cases - the job of (sub)transaction abort, not something that should be done by individual bits of code. PostgreSQL has a centralized system for processing exception cleanup for a very good reason: there are LOTS of places where errors can be thrown, and if each of those places has to have its own error cleanup logic, you end up with a real mess. Instead we've gone the other way: you can throw an error from anywhere without doing any cleanup, and it's the job of the error-handling machinery to invoke subtransaction abort logic, which is responsible for cleaning up whatever mess has been left behind. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: