带有命名参数的sqlfluff

sqlfluff with named parameters

我正在研究对项目中的 SQL 文件进行 linting。 sqlfluff seems good and I'm keen to get it integrated into the pre-commit 检查我正在处理的项目。

但是,linter 当前对参数化 SQL 中使用的任何参数产生误报。

我正在使用命名样式参数:

WHERE name=:name

https://www.python.org/dev/peps/pep-0249/#paramstyle

尽管进行了几次搜索,但我找不到任何关于让 sqlfluff 与命名样式参数一起工作的信息。我试过更改参数样式,但我的数据库驱动程序不喜欢它。

有人使用带命名参数的 sqlfluff 吗?你能指出相关文档的方向或 post 解决方案吗?

升级到最新版本的 sqlfluff 并使用 postgres dialect 解决了这些误报错误。

要更新 sqlfluff:

python3 -m pip install --upgrade sqlfluff

select postgres 方言:

sqlfluff lint --dialect postgres database_query.sql

这应该毫无怨言地接受命名参数。

默认方言(在撰写本文时)是 ansi