Re: PG_TRY(), PG_CATCH()....
От | Alvaro Herrera |
---|---|
Тема | Re: PG_TRY(), PG_CATCH().... |
Дата | |
Msg-id | 20071009135913.GA16160@alvh.no-ip.org обсуждение исходный текст |
Ответ на | PG_TRY(), PG_CATCH().... (Alex Vinogradovs <AVinogradovs@Clearpathnet.com>) |
Ответы |
Re: PG_TRY(), PG_CATCH()....
|
Список | pgsql-general |
Alex Vinogradovs wrote: > Which works fine with successful queries, but for each > unsuccessful query it complains about reference leaks > and not properly closed relations. > Later on I've solved that with use of subtransactions, which > provide some proper cleanup mechanisms, but I was wondering > if it is possible to bypass that layer, and make the code > above work fine just by doing some cleanup within the catch > block. The only code that knows how to cleanup completely after transaction failure is the subtransaction code. If you need to do something that may cause a transaction abort, then you must use subtransactions. (You could of course write "your own layer" but it would duplicate subtransaction start/abort so there wouldn't be any point.) It's expensive, yes, but there are good reasons for that. If you are worried about that, I'm sure there are optimizations possible. -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support
В списке pgsql-general по дате отправления: