PostgreSQL の ROW_TO_JSON() でエスケープが2重にかかってしまう問題
PostgreSQL で COPY(SELECT ROW_TO_JSON(foo) FROM foo) TO '/output.jsonl' みたいな感じでテーブルを JSON Lines にダンプしようとすると code:json
{"str":"hello\\nworld"}
みたいな感じでバックスラッシュによるエスケープが2重になってしまう。本来は
code:json
{"str":"hello\nworld"}
になってほしい。
SO では CSV QUOTE を付けるという方法も紹介されている
この SO では $ を入れてあとから外そうねみたいなことが書かれているが、最も簡単なのは CSV QUOTE ' ' で半角スペースを入れてしまう方法だと思う
各行の前後に余計な空白が入ってしまうことになるが、空白があろうが無かろうが JSONL としては valid なので。