簡単例:/rubyでpostgresのバイト配列がエスケープされていますか?
Zlib::Inflate.inflate(Zlib::Deflate.deflate('["128,491,128,487"]'))
=> "[\"128,491,128,487\"]"
解析が失敗した文字列に依存して成功します:以下のため、これはzlibの問題ではありません
Zlib::Inflate.inflate(PG::Connection.unescape_bytea(PG::Connection.escape_bytea(Zlib::Deflate.deflate('["128,491,128,487"]'))))
Zlib::DataError: incorrect data check
は成功
Zlib::Inflate.inflate(PG::Connection.unescape_bytea(PG::Connection.escape_bytea(Zlib::Deflate.deflate('["128,491,128,487", "128,491,128,490", "38,465,40,463"]'))))
=> "[\"128,491,128,487\", \"128,491,128,490\", \"38,465,40,463\"]"
私が何か間違ったことをしていますまたはpostgresバイトフィールドが壊れたルビーでエスケープですか?代わりに何をすることができますか?
試してみました:Ruby 2.2.3p173、gem pg-0.18.4;ルビー2.4.1p111は、GEM PG-0.21.0 https://bitbucket.org/ged/ruby-pg/issues/262/postgres-bytearray-escapingから