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

2.2.173 子テーブル上にルール作成(CREATE RULE)動作の変更

非互換

FUJITSU Enterprise Postgres 14では、ルールを作成する処理で、子テーブルをビューとして使うことをサポートしないように変更します。

FUJITSU Enterprise Postgres 13 SP1以前の場合

ルールの作成で、子テーブルをビューとして使えます。

[例]

=# CREATE TABLE rules_fooview (x int, y text);
CREATE TABLE
=# CREATE TABLE rules_fooview_child () inherits (rules_fooview);
CREATE TABLE
=# CREATE RULE "_RETURN" AS ON SELECT TO rules_fooview_child DO INSTEAD SELECT 1 AS x, 'aaa'::text AS y;
CREATE RULE
FUJITSU Enterprise Postgres 14の場合

ルールの作成で、子テーブルをビューとして使えません。

[例]

=# CREATE TABLE rules_fooview (x int, y text);
CREATE TABLE
=# CREATE TABLE rules_fooview_child () inherits (rules_fooview);
CREATE TABLE
=# CREATE RULE "_RETURN" AS ON SELECT TO rules_fooview_child DO INSTEAD SELECT 1 AS x, 'aaa'::text AS y;
ERROR:  could not convert table "rules_fooview_child" to a view because it has parent tables

対処方法

ありません。