如果使用 SYSTEM$GET_PREDECESSOR_RETURN_VALUE,SQL Lint 测试会失败

问题描述 投票:0回答:1

当我尝试发布包含 SYSTEM$GET_PREDECESSOR_RETURN_VALUE 行的任务时,SQL Lint Pipeline 失败,尽管它们在 VS Code 上本地通过了 SQL fluff 测试。知道如何在不为该行添加 --noqa 的情况下修复这些问题吗?

我的代码:

...
WHEN SYSTEM$GET_PREDECESSOR_RETURN_VALUE('previous_task_name') = 'TRUE'
AS
    CALL ...

错误:

发现无法解析的部分:X线位置Y...

如果我删除上面的“何时”行,它就会通过。

尝试过 --noqa 并且它有效,但我需要我的代码通过 SQL lint 测试。

sql snowflake-cloud-data-platform lint sqlfluff
1个回答
0
投票

您需要为我们提供更多上下文来修复此特定错误,但重现此错误的一种方法是创建一个包含以下内容的文件:

-- test.sql
SELECT SYSTEM$TASK_DEPENDENTS_ENABLE ('mydb.myschema.mytask');

然后这将失败并出现相同的错误:

sqlfluff lint test.sql --dialect mysql

返回:

Line 2, Position 14: Found unparsable section:
                       | "$TASK_DEPENDENTS_ENABLE ('mydb.myschema...."

通过将方言更改为 Snowflake 可以轻松解决此问题:

sqlfluff lint test.sql --dialect snowflake

返回:

All Finished 📜 🎉!

由于我们不知道您正在使用什么版本的 sqlfluff,或者您如何调用它,或者完整的代码示例正在运行 - 我们无法进一步讨论这个问题。如果这不能解决更大的问题,请发布一个包含更多详细信息的新帖子。

© www.soinside.com 2019 - 2024. All rights reserved.