Поддерживает ли Postgres Plus Advanced Server (PPAS) 9.5 изменение (удаление / добавление) атрибутов для составных типов объектов?
Согласно моему прочтению документации 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
тип, в отличие от совокупности "базовых" типов?
ОБНОВЛЕНИЕ 2015-02-10 Я обновил заголовок и примеры, чтобы более близко походить на проблему под рукой. Короче говоря, в Postgres Plus Advanced Server есть дополнительный синтаксис для создания типов в виде CREATE TYPE foo AS OBJECT
<--- этот синтаксис является корнем проблемы. Вы не можете изменять атрибуты при создании составного типа AS OBJECT
,
1 ответ
CREATE TYPE compfoo AS (f1 int, f2 text);
CREATE TYPE combbar AS (f1 int, f2 compfoo);
ALTER TYPE compbar DROP ATTRIBUTE f2;
---------------^ maybe you should write combbar?
Чтобы прояснить это, вы определяете тип с именем "combbar", а затем пытаетесь изменить тип с именем "compbar".
ОБНОВИТЬ
Помимо этой опечатки, SQL, кажется, работает нормально.