On 08/18/2012 05:19 PM, Nicolas Barbier wrote:
> 2012/8/7 Kevin Grittner <Kevin.Grittner@wicourts.gov>:
>
>> I also think it's a problem that one can get through the entire
>> "Concurrency Control" chapter (mvcc.sgml) without a clue that
>> sequences aren't transactional.
>
> It is possible to say that they *are* transactional when considering
> the following definition: nextval() doesn’t always give you “the” next
> value, but “some” next value that is higher than the one gotten by any
> preceding transactions.
>
> I personally like it better to introduce this minor complexity in the
> definition of sequences, rather than messing with the definition of
> transactionality.
I guess they're semi-transactional. You don't get dirty reads unless you
actually `SELECT ... FROM some_transaction` which isn't really official
API. OTOH, one transaction affects another, and they aren't subject to
rollbacks.
--
Craig Ringer