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

2.2.258 oid列の特別な振る舞いの廃止

非互換

これまでテーブル作成時にWITH OIDSで隠しoid列を持たせる指定ができましたが、FUJITSU Enterprise Postgres 12ではこの機能が廃止されました。なお、引き続き、テーブルに明示的にoid型の列を含めることは可能です。

隠しoid列を持っていたシステムカタログは、通常のoid列を持つようになります。その結果「SELECT * …」で、これまで明示的に選択しないと出力されなかったoid列が出力されるようになります。

FUJITSU Enterprise Postgres 11以前の場合

テーブルを作成するときに「WITH OIDS」が指定できます。

[例]

=# CREATE TABLE tb1(id int) WITH OIDS;
CREATE TABLE

oid列を持っていたシステムカタログは、oid列が出力されません。

[例]

=# SELECT * FROM pg_tablespace;
  spcname   | spcowner | spcacl | spcoptions
------------+----------+--------+------------
 pg_default |       10 |        |
 pg_global  |       10 |        |
FUJITSU Enterprise Postgres 12の場合

テーブルを作成するときに「WITH OIDS」が指定できません。

[例]

=# CREATE TABLE tb1(id int) WITH OIDS;
ERROR:  syntax error at or near "OIDS"
LINE 1: CREATE TABLE tb1(id int) WITH OIDS;
                                      ^

oid列を持っていたシステムカタログは、oid列が出力されます。

[例]
=# SELECT * FROM pg_tablespace;
 oid  |  spcname   | spcowner | spcacl | spcoptions
------+------------+----------+--------+------------
 1663 | pg_default |       10 |        |
 1664 | pg_global  |       10 |        |

対処方法

ありません。