A5:SQL Mk-2はSQL成形機能も持ちますが、多彩なオプションを指定可能です。
- キーワードの大文字/小文字変換(変換しない・大文字・小文字)
- 識別子の大文字/小文字変換(変換しない・大文字・小文字)
- カンマの位置(式の前・式の後ろ)
- and, orの位置(式の前・式の後ろ)
- from, where, having, group by, order by等のインデント
- SELECT句内のカラム名や式及び、エリアス(AS以降)の位置を揃える
- インデントにタブ文字を利用する
- インデント桁数
- ブロックコメントを独立した行に整形する
- 1行コメントを独立した行に整形する
- 1行コメントの位置
- ブロックコメントの後に空白を付けない(S2JDBC向けオプション)
- 標準SQLでない識別子の処理(ブラケットで括るなど)
- SQL区切りのセミコロン”;”を独立した行に配置する
標準では、カンマやand, orの位置は「式の前」に整形されます。どちらかというとこれは「式の後ろ」よりもマイナーな気がしますが、自分が「式の前」派なので…。
SQLに限らず、カンマなどの位置は「式の前」に追加したほうがリストの後ろに項目を追加したときに前の行(の末尾)にカンマを追加したりする必要がなく、ソースのバージョン管理ツールで等での差分がすっきりします。リストの先頭に項目を追加するより、リストの最後に項目を追加することが圧倒的に多いですよね。
このSQL成形機能は次バージョンで従来のA5:SQL Mk-2と同時期にリリース予定のコマンドライン版のツールからも利用できるようになる予定です。これはSQLファイルの整形をサポートしますが、標準入出力に対しても整形できるようになる予定です。