sqlcのコードリーディング
sqlcの内部実装が気になったのでコードを読んでみる ファイル名は、下記ディレクトリ配下に${チェックサム}/plugin.wasmという名前で保存される
2. ${os.UserCacheDir()}/sqlc/plugins (デフォルト)
スキーマの解析
スキーマファイルの一覧は基本的にos.ReadDirで読み込まれている
os.ReadDirはファイル名順でファイル名の一覧を返す
各種マイグレーションツールのマイグレーションファイルは、ファイル名の頭にタイムスタンプがつくから、これにより意図した順番で.sqlファイルの一覧が取得できる
この.Update()メソッドは、各.sqlファイルごとに都度呼び出される
Catalogは現在のスキーマ定義に関するスナップショットを管理していて、.Update'(によりスナップショットが更新される
この.Update()の内部ではParserが返却した各ノードを愚直に一つずつ検査し、*Catalogに定義された各種ノード種別に対応するメソッドを呼んでスナップショットを更新している