GoからSpannerのQueryを実行しようとするとcloud.google.com/go/spannerのStatement構造体のSQLフィールドに文字列として記述することになる。

シンプルに文字列でしか無いため、書き方やフォーマットを統一できずに若干のもやもやがあった。

ということで、Goのコード内でcloud.google.com/go/spanner.Statementを使っている場所のSQLにある文字列をフォーマットするツールを作った。

https://github.com/nametake/go-zetasqlfmt

ZetaSQL というGoogleのサービスで使用されるSQLのParser/Analyzerがあり、それのGo Bindingであるgo-zetasqlというライブラリを作ってくださっている方がいらっしゃったので、それを使用させて頂いた。

コンストラクタ等には対応してないが、とりあえずチーム内ではSQLのフォーマットは統一できるようになったのでスッキリ。