Andreas Pflug kirjutas K, 19.11.2003 kell 20:45: > Dave Cramer wrote: > >>Why should ALTER COLUMN change the column number, i.e. position? > > > >Rod's current proposed patch does that if you do an alter column alter > >type. This is an artifact of the underlying mechanism. (ren old col, add > >new col, update newcol=oldcol::newtype). > > > I must have missed that, can't find it in hackers?!?
Was on [PATCHES] IIRC. > In this case the old attnum value should simply be reused, to retain the > original ordering. IMHO this is necessary to prevent problems with any > object referencing a column (index, view, ...) Actually these have to be recreaqted, especially when changing column type. Rod's patchs does that too ;) > The current proposal > invents the attpos for column ordering purpose only, That's the only place _user_ sees it. The other uses are taken care of inide database backend. > but > views/indexes/etc will reference attnum, and would need updates. they also "reference" column type, and thus need to be updated anyway when column type changes. > Actually, a column that changes its attnum is just like a table changing > its oid, i.e. it's not the same object any more. This will provoke > problems in administration tools (at least in pgAdmin3, which will try > to refresh its display with the formerly known oid/attnum af ter > executing a change), and maybe other places too. Sure. _any_ change to database structure could break a client not (designed to be) aware of that change. > To put it differently: a ALTER COLUMN command may never-ever change the > identifier of the column, i.e. attrelid/attnum. to be even more restirictive: ALTER COLUMN may never-ever change the type of the column, as this too may break some apps. Nah! ------------- Hannu ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org