PostgreSQLのドキュメントを読んだところによるとALTER TYPE
、次のことができるはずです。
CREATE TYPE compfoo AS OBJECT (f1 int, f2 text);
CREATE TYPE compbar AS OBJECT (f1 int, f2 compfoo);
ALTER TYPE compbar DROP ATTRIBUTE f2;
ALTER TYPE compbar ADD ATTRIBUTE f2 varying(1000);
ALTER TYPE compbar ADD ATTRIBUTE f3 compfoo;
ただし、試してみると、次のエラーが表示されます。
ERROR: ALTER TYPE ADD/DROP COLUMN statement not supported for object types
ここで何が欠けていますか?これを可能にするサーバー構成はありますか? OBJECT
「基本」型の複合ではなく、問題の型が複合型であるためですか?
UPDATE 2015-02-10
タイトルを更新し、サンプルを目前の問題により近づけるようにしました。CREATE TYPE foo AS OBJECT
つまり、Postgres Plus Advanced Server 内には、 <--- という形式で型を作成するための追加の構文があり、その構文が問題の根源です。複合型の作成時に属性を変更することはできませんAS OBJECT
。