PostgreSQLでエスケープ文字を利用する場合の注意
以下の例のように「nonstandard use of \\ in a string literal」とかログに出ててビビッた。
SELECT position ( 'C:\\\\aaa/bbb/sample.txt' in '\\\\' ) FROM hoge message: nonstandard use of \\ in a string literal
下記、引用の通り、エスケープ文字を利用している場合は、「直前にE」と付与することで問題なくなるようです。
PostgreSQLでは、また、"エスケープ"文字定数を受け付けます。これは標準SQLの拡張です。エスケープ文字定数は、開始単一引用符の直前にE(大文字でも小文字でもかまいません)を記述することで指定されます。例えばE'foo'です。
http://www.postgresql.jp/document/8.4/html/sql-syntax-lexical.html
上記の例を修正する場合は、以下のように修正します。
'C:\\\\aaa/bbb/sample.txt' in '\\\\' ↓ E'C:\\\\aaa/bbb/sample.txt' in E'\\\\'
但し、製品などの場合、自分で修正することが難しいかもしれません。その場合は、下記のように設定ファイルを修正する方法もあります。*1
escape_string_warning = on ↓ escape_string_warning = off