Re: Persistent changes in rolled-back transactions - Mailing list pgsql-admin

From Wael Khobalatte
Subject Re: Persistent changes in rolled-back transactions
Date
Msg-id CAJZ8yobSeSs8b28jzH5P4=OGvntPNxPyu_PsNWKm4De2E_WTjg@mail.gmail.com
Whole thread Raw
In response to Re: Persistent changes in rolled-back transactions  ("David G. Johnston" <david.g.johnston@gmail.com>)
Responses Re: Persistent changes in rolled-back transactions
List pgsql-admin
Why do you say truncate is non-transactional? Something simple proves that it's not?

Right, I meant 'non-transactional' in the sense that "persisted changes" as you quoted them will also appear in the case of Truncate (MVCC-safety is more correct here). As David mention I also thought it was not transactional at all, but it seems it is in recent version or I am seeing ghosts. Regardless, it's definitely fits the description of what you are trying to be aware of when it comes to transactional behavior. 

Consider starting a transaction in REPEATABLE READ, do a "begin", then nothing (because if you select you block the upcoming truncate). In a different session, do the truncation, commit it. Back to the 
REPEATABLE READ transaction, still open, you select, the data is gone. Therefore "persisted changes" is true. 

pgsql-admin by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: Persistent changes in rolled-back transactions
Next
From: Erik Wienhold
Date:
Subject: Re: Allowing users to create objects in version controlled schema