DELETE/DROP on Columns

Started by Thomas Swanover 25 years ago3 messages
#1Thomas Swan
tswan@olemiss.edu

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?

#2Hiroshi Inoue
Inoue@tpf.co.jp
In reply to: Thomas Swan (#1)
RE: DELETE/DROP on Columns

-----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.

Comments ?

Regards.

Hiroshi Inoue
Inoue@tpf.co.jp

#3Hiroshi Inoue
Inoue@tpf.co.jp
In reply to: Hiroshi Inoue (#2)
RE: DELETE/DROP on Columns

-----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