escape_string_warning

2012-07-21

PostgreSQL で久々にはまった。。。。
ある SQL で INSERT したところエラーが。
見た感じでは文字コードの問題のエラーっぽく見えたのだが、構文的にはまったく問題無さそう。
しかも、INSERT する文字列を若干変えてみると、正常に INSERT できる。
従って、、、文字コードも構文も問題ないはず。
特定の文字だけうまく入らないみたい。。。。

さらに調べてみると、、、、問題が発生する PostgreSQL と発生しない PostgreSQL がある模様。なんだこれ???
確かにバージョンは違うものの、そんなに大層な機能を使っているわけではないし、単なる INSERT 文で挙動が違うとは。。。。

で、結局のところ、、、escape_string_warning という設定項目のデフォルト値がバージョン間で異なるのが原因だった。
なんだよこれ。。。。(-_-#
最近のバージョンだと、escape_string_warning が on に設定されるようだが、従来は off だった模様。
これにより、例えば ShiftJIS のような文字列だとエスケープされたりされなかったりされておかしなことになるみたい。

こんな重要なパラメータ、勝手にデフォルト値を変えないでくれ~(-_-#
こんなんで数時間もつぶしてしまった(-_-#

2012
6