Hello.
I can successfully ALTER a NON-EMPTY table (ct) which ROWTYPE is used as a
column type for another table (dt):
CREATE TABLE ct (id INTEGER);
CREATE TABLE dt (id INTEGER, c ct);
INSERT INTO dt VALUES(1, '(666)');
SELECT * FROM dt;
-- (1, '(666)')
ALTER TABLE ct ADD COLUMN n INTEGER;
SELECT * FROM dt;
-- (1, '(666,)')
You see, '(666,)' means that the new field is added successfully.
But, if I declare ct as a COMPOSITE type (not a table), it is not permitted
to ALTER this type (Postgres says that there are dependensies on ct).
Why?