Re: [HACKERS] Happy column dropping

Chris Bitmead <chris@bitmead.com>

From: Chris Bitmead <chris@bitmead.com>
To: PostgreSQL Development <pgsql-hackers@postgreSQL.org>
Date: 2000-01-25T02:50:30Z
Lists: pgsql-hackers
Tom Lane wrote:
> 
> "Hiroshi Inoue" <Inoue@tpf.co.jp> writes:
> > But I'm now inclined to generate unique relation file name each time
> > in order to have different file names for different versions of a same
> > relation oid.  Without chainging relation oids,we would be to do
> > nothing about their attributes/constraints etc.
> 
> I was thinking about adding a "version number" to the pg_class entry
> for a relation, and then having its actual filename look like

Well, if you are going to re-write the files in place on update, a
version  number seems like overkill. All you need is version "a" and
"b". Every time you do a change it swaps from version RELATIONOID_a to
RELATIONOID_b , or RELATIONOID_b to RELATIONOID_a. Or you could just go
for RELATIONOID and RELATIONOID_new and do a rename (although I guess
you're trying to avoid that).


> 
>         RELATIONOID_vVERSION.SEGMENT
> 
> Then we have:
> 
>         * Table rename: doesn't change the filename at all
> 
>         * VACUUM with rebuild or ADD/DROP COLUMN: write new data into
>           files with an incremented version number.  Also heap_update
>           the pg_class tuple with new version number.  At instant of
>           commit, voila: the new files are valid, the old ones aren't.
>           Works for indexes, too.
> 
> > Anyway this must be decided after sufficient discussion.
> > It's not the time to do it now.
> 
> Agreed.  I think we are too close to 7.0 beta to consider doing this.
> We can start thinking about it for 7.1 though.
> 
>                         regards, tom lane
> 
> ************