Re: column ordering, was Re: [PATCHES] Enums patch v2 - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: column ordering, was Re: [PATCHES] Enums patch v2
Date
Msg-id 200702020543.l125h4o10529@momjian.us
Whole thread Raw
In response to Re: column ordering, was Re: [PATCHES] Enums patch v2  ("Jim C. Nasby" <jim@nasby.net>)
List pgsql-hackers
Added to TODO:

>       o Allow column display reordering by recording a display,
>         storage, and permanent id for every column?
>
>         http://archives.postgresql.org/pgsql-hackers/2006-12/msg00782.php
>


---------------------------------------------------------------------------

Jim C. Nasby wrote:
> On Thu, Dec 21, 2006 at 11:43:27AM -0500, Tom Lane wrote:
> > Andrew Dunstan <andrew@dunslane.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@nasby.net
> EnterpriseDB      http://enterprisedb.com      512.569.9461 (cell)
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
> 
>                http://www.postgresql.org/docs/faq

--  Bruce Momjian   bruce@momjian.us EnterpriseDB    http://www.enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


pgsql-hackers by date:

Previous
From: David Fetter
Date:
Subject: Re: writing new regexp functions
Next
From: Jeremy Drake
Date:
Subject: Re: writing new regexp functions