Nilson wrote:
Quoting "wiki.postgresql.org/wiki/Alter_column_position <http://wiki.postgresql.org/wiki/Alter_column_position>" :

"The idea of allowing re-ordering of column position is not one the postgresql developers are against, it is more a case where no one has stepped forward to do the work."

Well, a hard journey starts with a single step.

Why not, in the next release that requires to run initdb, add a *attraw* column (a better name is welcome) in the catalog that stores the physical position of column forever, i.e., the same semantics of *attnum*?

Then, in a future release - 9.1 for example - the postgres team can make *attnum* changeable using something like ALTER COLUMN POSITION?

Pros:

- Requires only a couple of changes in main postgreSQL code. It seems to be very simple.

- Allows a smooth and decentralized rewrite of the whole code that may needs the *attraw *attribute - postgreSQL, contribs, pgAdmin, drivers, tools etc. This will give time to developers of that code to detect the impact of semantics change, make the arrangements necessary and also allow the release of production level software using the new feature before *attnum *becomes changeable.
So, when *attnum *becomes read/write, all that software will be ready.

Cons

- More 4 bytes in each row of the catalog.

Nilson


Please review the previous discussions on this. In particular, see this proposal from Tom Lane that I believe represents the consensus way we want to go on this: <http://archives.postgresql.org/pgsql-hackers/2006-12/msg00983.php>

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to