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

2.2.61 継承テーブルとパーティションテーブルにおける生成列の有無のチェックの強化

非互換

継承テーブルとパーティションテーブルについて、親テーブルと子テーブルの生成列の有無のチェックを強化します。親テーブルの列が生成列の場合には、子テーブルも生成列である必要があります。また、親テーブルの列が生成列でない場合には、子テーブルは生成列でない必要があります。

Fujitsu Enterprise Postgres 15以前の場合
postgres=# CREATE TABLE gtest_parent (f1 date NOT NULL, f2 bigint, f3 bigint GENERATED ALWAYS AS (f2 * 2) STORED) PARTITION BY RANGE (f1);
CREATE TABLE
postgres=# CREATE TABLE gtest_child3 PARTITION OF gtest_parent (
postgres(#     f3 DEFAULT 42
postgres(# ) FOR VALUES FROM ('2016-09-01') TO ('2016-10-01');
CREATE TABLE
Fujitsu Enterprise Postgres 16の場合
postgres=# CREATE TABLE gtest_parent (f1 date NOT NULL, f2 bigint, f3 bigint GENERATED ALWAYS AS (f2 * 2) STORED) PARTITION BY RANGE (f1);
CREATE TABLE
postgres=# CREATE TABLE gtest_child3 PARTITION OF gtest_parent (
postgres(#     f3 DEFAULT 42
postgres(# ) FOR VALUES FROM ('2016-09-01') TO ('2016-10-01');
ERROR:  column "f3" inherits from generated column but specifies default

対処方法

ありません。