2009年1月30日金曜日

OID

OIDというのはObject IDの略で、PostgreSQLに特有の機能(?)です。どのテーブルのレコードにも暗黙裏にoidという名前のカラムがあります。どんな使い方をするかと言うと、INSERT文発行時に関数(例えばPHPのクエリ発行関数)がOIDを返却してくるので、INSERTされたデータをOIDで特定出来るわけです。

ところで、このOIDというカラムがデフォルトで作られる機能が、何故かバージョン8.1からオフになりました。中途半端なマイナーバージョンアップでこういった変更を加えるのは謎ですが、ともかく昔のプログラムでOIDを読んでいる物は全て動かなくなります。

この後方互換性を考慮するオプションが、postgresql.confに書かれる

default_with_oids = on

という物で、デフォルトではこのオプションはコメントアウト(従って非アクティブ)になっています。これをオンにするには、/opt/local/var/db/postgresql83/defaultdb/postgresql.confの中を変更し、コメントアウトされた上記オプションをアクティブ化して更に値をoffからonに書き換えます。

上記のパスの中にあるdefaultdbという部分は環境によって違うかも知れません。

以上、備忘録まで。

0 件のコメント: