ページの先頭行へ戻る
Enterprise Postgres 17 リリース情報

2.2.161 生成列(generated column)が含まれるテーブルの場合のALTER TABLE...INHERITの動作変更

非互換

FUJITSU Enterprise Postgres 14では、下記の場合、「ALTER TABLE...INHERIT」が実施できないように変更します。

場合-1
  • 親テーブルに生成列が含まれている、かつ

  • 子テーブルに生成列が含まれていない

場合-2
  • 親テーブルに生成列が含まれている、かつ

  • 子テーブルに生成列が含まれている、かつ

  • 親テーブルに生成列と子テーブルに生成列の計算式が異なる

FUJITSU Enterprise Postgres 13 SP1以前の場合

「ALTER TABLE...INHERIT」が実施できます。

[例]

=# CREATE TABLE gtest_p (a int PRIMARY KEY, b int GENERATED ALWAYS AS (a * 2) STORED);
CREATE TABLE
=# CREATE TABLE gtest_c (a int NOT NULL, b int);
CREATE TABLE
=# ALTER TABLE gtest_c INHERIT gtest_p;
ALTER TABLE
FUJITSU Enterprise Postgres 14の場合

「ALTER TABLE...INHERIT」が実施できません。

[例]

=# CREATE TABLE gtest_p (a int PRIMARY KEY, b int GENERATED ALWAYS AS (a * 2) STORED);
CREATE TABLE
=# CREATE TABLE gtest_c (a int NOT NULL, b int);
CREATE TABLE
=# ALTER TABLE gtest_c INHERIT gtest_p;
ERROR:  column "b" in child table must be a generated column

対処方法

ありません。