当 Jinja 代码存在时,sqlfluff 会忽略所有内容

sqlfluff ignores everything when jinja code present

提问人:Piotr K 提问时间:11/17/2023 更新时间:11/17/2023 访问量:23

问:

我注意到dbt中sqlfluff的奇怪行为。当我添加用于增量刷新的 jinja 代码时,它不会显示警告。

例如,对于此代码,sqlfluff 显示警告(例如,大写命令,没有显式表别名):

SELECT *
FROM orders o
LEFT JOIN {{ ref('cars') }} c ON c.car_id = o.car_id

为此,它不会:

SELECT *
FROM orders o
LEFT JOIN {{ ref('cars') }} c ON c.car_id = o.car_id

{% if is_incremental() -%}

    where o.updated_at > (select max(updated_at) from {{ this }})

{%- endif %}

我的文件供参考:.sqlfluff

[sqlfluff]
dialect = snowflake
templater = dbt
exclude_rules = ST06
runaway_limit = 10
max_line_length = 0
indent_unit = space

[sqlfluff:indentation]
tab_space_size = 4

[sqlfluff:layout:type:comma]
spacing_before = touch
line_position = trailing

[sqlfluff:rules:capitalisation.keywords] 
capitalisation_policy = lower

[sqlfluff:rules:aliasing.table]
aliasing = explicit

[sqlfluff:rules:aliasing.column]
aliasing = explicit

[sqlfluff:rules:aliasing.expression]
allow_scalar = False

[sqlfluff:rules:capitalisation.identifiers]
extended_capitalisation_policy = lower

[sqlfluff:rules:capitalisation.functions]
capitalisation_policy = lower

[sqlfluff:rules:capitalisation.literals]
capitalisation_policy = lower

[sqlfluff:rules:ambiguous.column_references]
group_by_and_order_by_style = explicit

当我将模板器从 更改为 这工作时,它可以正常工作,但它为我的宏显示此警告:dbtjinja

Line 6, Position 5: Found unparsable section: ',\n    ,\n    o.change,\n    o.cost,\n ...' sqlfluff (PRS)
Undefined jinja template variable: 'my_macro_name' sqlfluff (TMP)

我阅读了此文档,但在那里没有找到答案: sqlfluff: dbt-templater

jinja2 dbt sqlfluff

评论

0赞 ferdyh 11/23/2023
我能感觉到你的痛苦。我发现 dbt-templater 非常慢,但 jinja 模板器找不到所有可用的宏......

答: 暂无答案