sqlfluff / sqlfluff

A modular SQL linter and auto-formatter with support for multiple dialects and templated code.
https://www.sqlfluff.com
MIT License
7.31k stars 648 forks source link

Snowflake: Add support for CONNECT BY #5863

Open karenderer opened 3 weeks ago

karenderer commented 3 weeks ago

Search before asking

What Happened

CONNECT BY syntax is valid in Snowflake and is not currently supported in sqlfluff.

Expected Behaviour

The CONNECT BY construct should be parseable.

Observed Behaviour

When using CONNECT BY sqlfluff returns

Found unparsable section: 'connect by prior foo = bar'

and

WARNING: Parsing errors found and dialect is set to 'snowflake'. Have you configured your dialect correctly?

How to reproduce

with tbl as (
    select 'A' as foo, 'B' as bar
    union all
    select 'B' as foo, 'C' as bar
)

select
    *,
    connect_by_root bar as connect_by_root
from tbl
connect by prior foo = bar

Dialect

dialect = snowflake

Version

$ sqlfluff --version
sqlfluff, version 3.0.6

Configuration

.sqlfluff

[sqlfluff]
dialect = snowflake
templater = jinja
sql_file_exts = .sql
rules =
    capitalisation.keywords,
    capitalisation.literals,
    capitalisation.functions,
    capitalisation.types,
    capitalisation.identifiers

Are you willing to work on and submit a PR to address the issue?

Code of Conduct