Skip site navigation (1) Skip section navigation (2)

Re: column ordering, was Re: [PATCHES] Enums patch v2

From: "Jim C(dot) Nasby" <jim(at)nasby(dot)net>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Andrew Dunstan <andrew(at)dunslane(dot)net>,Martijn van Oosterhout <kleptog(at)svana(dot)org>,Zeugswetter Andreas ADI SD <ZeugswetterA(at)spardat(dot)at>,Robert Treat <xzilla(at)users(dot)sourceforge(dot)net>,pgsql-hackers(at)postgresql(dot)org,Gregory Stark <stark(at)enterprisedb(dot)com>
Subject: Re: column ordering, was Re: [PATCHES] Enums patch v2
Date: 2006-12-30 04:46:27
Message-ID: 20061230044626.GF71246@nasby.net (view raw or flat)
Thread:
Lists: pgsql-hackerspgsql-patches
On Thu, Dec 21, 2006 at 11:43:27AM -0500, Tom Lane wrote:
> Andrew Dunstan <andrew(at)dunslane(dot)net> writes:
> > Tom Lane wrote:
> >> You could make a case that we need *three* numbers: a permanent column
> >> ID, a display position, and a storage position.
> 
> > Could this not be handled by some catalog fixup after an add/drop? If we 
> > get the having 3 numbers you will almost have me convinced that this 
> > might be too complicated after all.
> 
> Actually, the more I think about it the more I think that 3 numbers
> might be the answer.  99% of the code would use only the permanent ID.
> Display position would be used in *exactly* one place, namely while
> expanding "SELECT foo.*" --- I can't think of any other part of the
> backend that would care about it.  (Obviously, client-side code such
> as psql's \d would use it too.)  Use of storage position could be
> localized into a few low-level tuple access functions, probably.
> 
> The problems we've been having with the concept stem precisely from
> trying to misuse either display or storage position as a permanent ID.
> That's fine as long as it actually is permanent, but as soon as you
> want to change it then you have problems.  We should all understand
> this perfectly well from a database theory standpoint: pg_attribute
> has to have a persistent primary key.  (attrelid, attnum) is that key,
> and we can't go around altering a column's attnum without creating
> problems for ourselves.

Is there enough consensus on this to add it to the TODO?
-- 
Jim Nasby                                            jim(at)nasby(dot)net
EnterpriseDB      http://enterprisedb.com      512.569.9461 (cell)

In response to

Responses

pgsql-hackers by date

Next:From: Jonah H. HarrisDate: 2006-12-30 05:49:19
Subject: Re: WITH support
Previous:From: Andrew DunstanDate: 2006-12-30 04:39:40
Subject: Re: TODO: GNU TLS

pgsql-patches by date

Next:From: Bruce MomjianDate: 2006-12-30 18:53:25
Subject: Re: [HACKERS] [BUGS] BUG #2846: inconsistent and
Previous:From: Jim C. NasbyDate: 2006-12-30 04:08:04
Subject: Re: Load distributed checkpoint

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group