On Tue, Nov 2, 2010 at 9:15 AM, Peter Eisentraut <pete...@gmx.net> wrote: > I'm working on propagating ALTER TYPE commands to typed tables. This is > currently prohibited. For example, take these regression test cases: > > CREATE TYPE test_type2 AS (a int, b text); > CREATE TABLE test_tbl2 OF test_type2; > ALTER TYPE test_type2 ADD ATTRIBUTE c text; -- fails > ALTER TYPE test_type2 ALTER ATTRIBUTE b TYPE varchar; -- fails > ALTER TYPE test_type2 DROP ATTRIBUTE b; -- fails > ALTER TYPE test_type2 RENAME ATTRIBUTE b TO bb; -- fails > > The actual implementation isn't very difficult, because the ALTER TABLE > code already knows everything about recursion. > > Now I'm wondering what kind of syntax should be used to control this. I > think you don't want to automatically propagate such innocent looking > operations to tables in a potentially data-destroying manner. The > natural idea would be RESTRICT/CASCADE. This is currently only > associated with DROP operations, but I suppose ADD/ALTER/RENAME > ATTRIBUTE x ... CASCADE doesn't sound too odd. > > Comments, other ideas?
That seems reasonable. What do you plan to do about this case? CREATE TYPE test_type AS (a int, b text); CREATE TABLE test_tbl (x test_type); ALTER TYPE test_type ADD ATTRIBUTE c text; -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers