Re: ALTER TABLE DROP COLUMN
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: "Hiroshi Inoue" <Inoue@tpf.co.jp>
Cc: "Chris Bitmead" <chrisb@nimrod.itg.telstra.com.au>, "Bruce Momjian" <pgman@candle.pha.pa.us>, "Peter Eisentraut" <peter_e@gmx.net>, "PostgreSQL Development" <pgsql-hackers@postgresql.org>
Date: 2000-06-13T03:54:06Z
Lists: pgsql-hackers
"Hiroshi Inoue" <Inoue@tpf.co.jp> writes: > create table t1 (i1 int4); > create table t2 (i2 int4) inherits t1; > create table t3 (i3 int4) inherits t2; > alter table t1 add column i4 int4; > For each table,the list of (column, logical number, physical number) > would be as follows. > t1 (i1, 1, 1) (i4, 2, 2) > t2 (i1, 1, 1) (i4, 2, 3) (i2, 3, 2) > t3 (i1, 1, 1) (i4, 2, 4) (i2, 3, 2) (i3, 4, 3) > At this point the compilation of 'select * from t1(*?)' would mean > select (physical #1),(physical #2) from t1 + > select (physical #1),(physical #3) from t2 + > select (physical #1),(physical #4) from t3 > Note that physical # aren't common for column i4. That's no different from the current situation: the planner already must (and does) adjust column numbers for each derived table while expanding an inherited query. It's kind of a pain but hardly an insurmountable problem. Currently the matching is done by column name. We could possibly match on logical column position instead --- not sure if that's better or worse. regards, tom lane