Re: Vote totals for SET in aborted transaction

Поиск
Список
Период
Сортировка
От Scott Marlowe
Тема Re: Vote totals for SET in aborted transaction
Дата
Msg-id Pine.LNX.4.33.0204290855570.19728-100000@css120.ihs.com
обсуждение исходный текст
Ответ на Re: Vote totals for SET in aborted transaction  (Philip Warner <pjw@rhyme.com.au>)
Ответы Re: Vote totals for SET in aborted transaction
Re: Vote totals for SET in aborted transaction
Re: Vote totals for SET in aborted transaction
Список pgsql-hackers
I've been thinking this over and over, and it seems to me, that the way 
SETS in transactions SHOULD work is that they are all rolled back, period, 
whether the transaction successfully completes OR NOT.

Transactions ensure that either all or none of the DATA in the database is 
changed.  That nature is good.  But does it make sense to apply 
transactional mechanics to SETtings?  I don't think it does.

SETtings aren't data operators, so they don't need to be rolled back / 
committed so to speak.  Their purpose is to affect the way things like the 
database works in a more overreaching sense, not the data underneath it.

For this reason, I propose that a transaction should "inherit" its 
environment, and that all changes EXCEPT for those affecting tuples should 
be rolled back after completion, leaving the environment the way we found 
it.  If you need the environment changed, do it OUTSIDE the transaction.

I would argue that the rollback on failure / don't rollback on completion 
is actually the worse possible way to handle this, because, again, this 
isn't about data, it's about environment.  And I don't think things inside 
a transaction should be mucking with the environment around them when 
they're done.

But that's just my opinion, I could be wrong.  Scott Marlowe



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: MetaData (size of datatype)
Следующее
От: Olivier PRENANT
Дата:
Сообщение: clarification of timestamp