PostgreSQL

最終更新日: 2020年3月14日

仕様および制約

PostgreSQL 9.1 以降で必要となる設定

PostgreSQL 9.1 から SQL のバックスラッシュをエスケープしないという仕様変更が行なわれました。 そのためWagby から利用する場合、設定ファイル postgresql.conf を次のように変更してください。

standard_conforming_strings = off
escape_string_warning = off

設定ファイル変更後、PostgreSQL を再起動してください。

これにより、以前の PostgreSQL と同じ動作とすることができます。

対応しなかった場合

検索処理が正常に行えない場合があります。

このとき、実行時に次のようなエラーメッセージがログに記録されます。

[ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelperlogExceptions] ERROR: エスケープシーケンスが無効です  ヒント: エスケープ文字は空か1文字でなければなりません。

設定が正しく反映されたかどうかを確認する

pgAdmin もしくは、psql から下記の SQL を実行して設定を確認します。

show standard_conforming_strings;

出力結果が「off」となっていた場合、設定変更が反映されていることになります。

型のマッピング

Wagby で指定した型は、データベース内で次のように扱われます。

整数型 int4
文字列型 varchar(255)
文字列型 (テキストエリア) text (1GB)
日付型 date
時間型 time
日付時間型 timestamp
ファイル型(ファイル名) varchar(255)
1バイト整数 int2
2バイト整数 int2
4バイト整数 int4
8バイト整数 int8
4バイト浮動小数点数 float4
8バイト浮動小数点数 float8
固定値 (作成日/更新日) timestamp
その他 (URL型/メールアドレス型など) varchar(255)
varchar 型で指定する数は「バイト」または「文字」単位です。作成するテーブルの文字エンコーディングによって変わります。SQL_ASCII だとバイト単位、UNICODE, SJIS, EUC_JP は文字単位となります。詳細は PostgreSQL マニュアルでご確認ください。

利用バージョンに関する注意事項

9.1.0

PostgreSQL 9.1.0 以降、postgresql.conf 内の standard_conforming_strings のデフォルト値が on に変更されています。

デフォルトのままですと、文字列の参照でエラーとなるため、当該設定値ならびに escape_string_warning を off に変更してご利用ください。