汚いSQLを整形する

ログから貼った1行SQLが読めるようになります。キーワードを大文字に、節ごとに改行、一定のインデント。

このガイドで使う道具

やりたいこと

クエリはログやスタックトレースで1行化されて届きます。整形すると構造が見えます — どのJOINか、どのWHEREか。デバッグやレビューに渡す前に。

整形する

SQLを貼り、キーワードの大小とインデント幅を選んで整形または1行化します。コメントと文字列リテラルはそのまま通り、出力は改行を入れた同じクエリです。

  • 主要な節(SELECT/FROM/WHERE/GROUP BY/ORDER BY/JOINなど)はそれぞれ専用の行になります。
  • 1行化はその逆で、1行フィールドに貼り戻す時に便利です。

具体例

「select u.id, o.total from users u join orders o on o.user_id=u.id where o.total>100」が読める5行になり、結合条件が見えるようになります。

対応範囲

見た目の整形のみで、パース・検証・最適化はしません。方言固有の構文(ヒント・LATERAL・配列)は解釈せず文字どおり保持します。入力は512KBまで。