RE: DELETE/DROP on Columns

Hiroshi Inoue <inoue@tpf.co.jp>

From: "Hiroshi Inoue" <Inoue@tpf.co.jp>
To: <pgsql-hackers@postgresql.org>
Date: 2000-07-27T05:26:20Z
Lists: pgsql-hackers
> -----Original Message-----
> From: Hiroshi Inoue
> 
> > -----Original Message-----
> > From: Thomas Swan
> > 	
> > I know as far as 7.0.x and back you cannot delete/drop columns from a 
> > table.   Is this expected to be in the 7.x series?
> >
> 
> Recently there has been a discussion about this issue.
> Tom proposed a soltution which uses 2(logical/physical)
> attribute numbers. It seems the most reasonable solution
> at present.
> If there's no objection,I would try to implement it according
> to his proposal before 7.1.  
>

Oops,there remains some problems however.
They seems to be pretty serious.

1)  Which(logical or physical) attribute number should other
     system tables have ?
     e.g. pg_index,pg_relcheck,pg_attrdef etc ...
     For backend modules,physical attrbiute number is sufficeint
     but client programs which handle metadata would need 
     logical attribute numbers. 

2) How do we handle logical/physical tuple format ?
    For example,there's a function in test/tegress/sql/
    create_function_2.sql which takes a table type input
    parameter and returns setof a table type.

    CREATE FUNCTION equipment(hobbies_r)
        RETURNS setof equipment_r
        AS 'select * from equipment_r where hobby = $1.name'
        LANGUAGE 'sql';

    This function returns equipment_r tuples of logical format
    which may be different from the physical format which
    is used to store heap tuples once a column is dropped.
    Should input hobbies_r be of logical format also ?

Any comments & suggestions would be appreciated...
 
Regards.

Hiroshi Inoue
Inoue@tpf.co.jp