Manfred Koizar <mkoi-pg@aon.at> writes:
> An ALTER TABLE statement makes a new copy of the metadata describing
> the table, modifies the copy and gives it a unique (for this table)
> version number. It does not change or remove old metadata.
This has been discussed before --- in PG terms, it'd mean keeping the
OID of a rowtype in the tuple header. (No, I won't let you get away
with a 1-byte integer. But you could remove natts and hoff, thus
buying back 3 of the 4 bytes.)
I was actually going to suggest it again earlier in this thread; but
people weren't excited about the idea last time it was brought up,
so I decided not to bother. It'd be a *lot* of work and a lot of
breakage of existing clients (eg, pg_attribute would need to link
to pg_type not pg_class, pg_class.relnatts would move to pg_type,
etc etc). The flexibility looks cool, but people seem to feel that
the price is too high for the actual amount of usefulness.
regards, tom lane