- Linter とは
- SQLFluff とは
- デモ
- VS Code 拡張機能
- だめなところ
- まとめ
--
Linter は、プログラミングエラー、バグ、スタイルエラー、疑わしい構成にフラグを立てるために使用される静的コード解析ツールです。
https://en.wikipedia.org/wiki/Lint_(software)
--
- インデントや改行、スペースなど、どうでも良いけど気になるポイントを合わせる
- より良い書き方、セキュリティリスクのある書き方を指摘
--
--
- SQL の Linter
- Jinja や dbt でも動作するとのこと
よく知らない
- 自動修正機能もあり
- autoformatter 機能
- 方言に対応
--
--
ANSI SQL, BigQuery, ClickHouse, Databricks, Db2, Exasol, Hive, MySQL, Oracle, PostgreSQL, Redshift, Snowflake, SOQL, SparkSQL, SQLite, Teradata, Transact-SQL
--
https://docs.sqlfluff.com/en/stable/rules.html
※2022/07/05 時点の最新である 1.1.0 の場合
--
- 設定ファイルで設定
- ある程度はコマンドのオプションでも可能
- ルールの無視
- 例外とする変数
,
の位置- 大文字小文字などルールの設定
--
- 更新されていない
- fix が動かない
- fork された拡張機能が乱立
--
- VS Code MarketPlace
- GitHub
- まだまだなので色々 Issue 建てて報告してる
--
- 重すぎる
- 500 行くらい、指摘が大量の SQL だとかなり時間がかかる
- 1 つ修正する度に 1 から全部実行している??
- 18 ファイルを一括置換して全部 fix したら一生返ってこなかった
--
- 複数回実行すれば OK
- 多分順番にルールを適用させているため
--
- SQL は 1970 年代に誕生
- 1986 年に規格制定
- 35 年の歴史でなぜまともな Linter がないのか!
--
- Linter と Formatter が 1 つになっているのは良い
- 事実上標準なので使った方が良い
- 他の Linter に慣れていると不満はある