ここ数日「正常に情報が投稿できないんですが…」という問い合わせがいくつかの特定の店舗で発生。
特にそのあたりのロジックを最近触ってないのと一部の店舗に限ってということなので、データ不整合と予想してみる。
pg_last_error()を差し込んでエラーを拾ってみると、
『ERROR: current transaction is aborted, commands ignored until end of transaction block』
はじめて目にするエラーメッセージだったので、ググってみるも検索結果の1ページ目からいきなり役にたたなそう。嫌な予感。
仕方ないから、とにかく同一トランザクション中のSQLを上から順に拾ってみると、実は『トランザクションがアボート』するまえに『double precisionに文字列入れるな』ってエラーがでてて、トランザクションが中止されてた。※そっちのエラーを先に知りたかった。
・昔々サイト作る時、店舗テーブルに緯度経度項目を適当にvarcharで用意だけしてて、
・その後、緯度経度機能の実装で価格テーブルに検索用にdouble precisionで項目追加した。
・先日、店舗テーブルに緯度経度を追加登録する時に文字列置換のミスで半角空白が登録されてた。
・価格投稿で店舗の緯度経度を価格テーブルに入れ込んだときにイレギュラーデータで型エラー。
が原因かつ間違いだった。
なーんだそんなことかと思いつつ、今後の課題が見えてくる。
デバッグはドキドキして楽しい。
コメントを残す