非互換
インデックス内で使用される複合型の変更をエラーにします。
CREATE TYPE test_type1 AS (a int, b text); CREATE TYPE CREATE TABLE test_tbl1 (x int, y test_type1); CREATE TABLE ALTER TYPE test_type1 ALTER ATTRIBUTE b TYPE varchar; ALTER TYPE DROP TABLE test_tbl1; DROP TABLE CREATE TABLE test_tbl1 (x int, y text); CREATE TABLE CREATE INDEX test_tbl1_idx ON test_tbl1((row(x,y)::test_type1)); CREATE INDEX ALTER TYPE test_type1 ALTER ATTRIBUTE b TYPE varchar; ALTER TYPE DROP TABLE test_tbl1; DROP TABLE DROP TYPE test_type1;
CREATE TYPE test_type1 AS (a int, b text); CREATE TYPE CREATE TABLE test_tbl1 (x int, y test_type1); CREATE TABLE ALTER TYPE test_type1 ALTER ATTRIBUTE b TYPE varchar; ERROR: cannot alter type "test_type1" because column "test_tbl1.y" uses it DROP TABLE test_tbl1; DROP TABLE CREATE TABLE test_tbl1 (x int, y text); CREATE TABLE CREATE INDEX test_tbl1_idx ON test_tbl1((row(x,y)::test_type1)); CREATE INDEX ALTER TYPE test_type1 ALTER ATTRIBUTE b TYPE varchar; ERROR: cannot alter type "test_type1" because column "test_tbl1_idx.row" uses it DROP TABLE test_tbl1; DROP TABLE
対処方法
ありません。