Re: ALTER TABLE DROP COLUMN - Mailing list pgsql-hackers

From Tom Lane
Subject Re: ALTER TABLE DROP COLUMN
Date
Msg-id 10290.960868446@sss.pgh.pa.us
Whole thread Raw
In response to RE: ALTER TABLE DROP COLUMN  ("Hiroshi Inoue" <Inoue@tpf.co.jp>)
Responses RE: ALTER TABLE DROP COLUMN
List 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


pgsql-hackers by date:

Previous
From: Chris Bitmead
Date:
Subject: Re: ALTER TABLE DROP COLUMN
Next
From: JanWieck@t-online.de (Jan Wieck)
Date:
Subject: Re: Patch for 'Not to stuff everything as files in a single directory, hash dirs''