8000 Releases Β· sqlfluff/sqlfluff Β· GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: sqlfluff/sqlfluff

[3.4.0] - 2025-04-17

17 Apr 09:54
338ff78
Compare
Choose a tag to compare

Highlights

This release brings a couple of breaking changes:

  • We have dropped support for Python 3.8
  • We have a new rule: LT15 (layout.newlines). This rule allows you to control the number of consecutive
    blank lines both inside, and outside of queries.

We also have a host of dialect improvements, bugfixes, and general code clean-up. This release has 79 contributions in it!

Also, welcome to the thirteen new contributors! Thanks for your contributions!

What’s Changed

[3.3.1] - 2025-02-05

05 Feb 16:05
e11aa23
Compare
Choose a tag to compare

Highlights

This is a bugfix release resolving a several issues from 3.3.0 and previously.

  • Dialect improvements for Snowflake, Oracle, SQLite, BigQuery, TSQL, Databricks, SparkSQL, Hive, Trino & Postgres.
  • Rule improvements for AL04, AM08, RF01, RF02, ST03, ST05, ST09, ST10, ST11.

This release also includes the first contributions from thirteen new contributors! Welcome to the project and thank you for your contributions. πŸŽ‰πŸŽ‰πŸ†πŸ†πŸŽ‰πŸŽ‰

What’s Changed

[3.3.0] - 2024-12-10

10 Dec 12:23
78440d7
Compare
Choose a tag to compare

Highlights

This release brings a few more significant changes. Especially given the introduction of several new rules, we highly recommend testing this release on your project before upgrading to make sure they are configured appropriately for your project style guide. As always, we have tried to make sure that the defaults for all new rules are both widely applicable, and fairly light touch. While all have been tested on some existing larger codebases which the maintainers have access to - do still report any bugs you might find on GitHub in the usual manner.

  • We've dropped the appdirs package as a dependency (as an abandoned project) and instead added platformdirs instead. Users should not notice any functionality changes beyond the different dependency.
  • TWO new dialects: Impala and StarRocks.
  • FIVE new rules:
    • AM08 (ambiguous.join_condition), which detects JOIN clauses without conditions (i.e. without an ON or USING clause). These are often typos and can result in significant row count increases if unintended.
    • CV12 (convention.join_condition), which is related to AM08 and detects cases where users have used a WHERE clause instead of a JOIN ... ON ... clause to do their join conditions. The join condition is a form of metadata and should communicate to the end user how the table should be joined. By mixing this information into the WHERE clause it makes the SQL harder to understand.
    • LT14 (layout.keyword_newline), which allows certain keywords to trigger line breaks in queries. Primarily this forces the main SELECT statement clauses like WHERE, GROUP BY etc. onto new lines. This rule has been designed to be highly configurable, but with sensible light-touch defaults. Check out the docs to adapt it to the conventions of your project.
    • ST10 (structure.constant_expression), some SQL users include redundant expressions in their code (e.g. WHERE tbl.col = tbl.col). These conditions always evaluate to a constant outcome (i.e. always evaluate as TRUE or FALSE) as so add no functionality or meaning to the query. This rule catches them.
    • ST11 (structure.unused_join), which detects unused joins in SQL statements, and is designed to catch tables that were once used, but where the column references have since been removed and now the table is unnecessary.

Beyond these changes, we've seen a whole host of dialect improvements to almost all of the supported dialects and several bugfixes which are combined into this release.

We also welcome TWELVE new contributors to the project in this release. Thanks to all of them for their hard work πŸš€πŸ†πŸš€.

What’s Changed

[3.2.5] - 2024-10-25

25 Oct 09:15
36ad37b
Compare
Choose a tag to compare

Highlights

This release is mostly bugfixes and dialect improvements. Notably:

  • Whitespace handling improvements to LT01 & LT02.
  • Better error messages around trying to iterate on missing jinja variables.
  • Better case sensitivity for AL09.
  • Improved handling of jinja context in inline config directives.
  • Enabling AM02 for Trino and Snowflake.
  • Handling potential collisions between ST02 & LT01.
  • Preventing false positives in AL05 with arrays.

There's also a bunch of documentation improvements in this release, including guides on how to troubleshoot SQLFluff and how to write custom rules. Check out https://docs.sqlfluff.com for more details.

We also saw five new contributors to the project this month. Welcome to the project, and thanks for taking the time to contribute! πŸŽ‰πŸ†πŸŽ‰

What’s Changed

New Contributors

[3.2.4] - 2024-10-14

14 Oct 18:39
eb77eb1
Compare
Choose a tag to compare

Highlights

This release is almost all dialect fixes and bugfixes. Notably also, this release brings official python 3.13 support too (although most users should not realise any differences).

We also see two new contributors to the project. Welcome @R3gardless & @brandonschabell! πŸŽ‰πŸŽ‰πŸŽ‰

What’s Changed

[3.2.3] - 2024-10-10

10 Oct 13:03
6f808ff
Compare
Choose a tag to compare

Highlights

This is another release of dialect improvements and rule bugfixes. Notably:

  • More robust algorithms for the indentation of Jinja template tags in LT02.
  • The github-annotation-native format option now has groups for each filename.

There's also a refactor of where we guides and howtos in the docs. Keep an eye on that section going forward for more information about best practice and troubleshooting for SQLFluff.

Even in this small PR, we've seen two new contributors. Welcome @nspcc-cm & @rogalski to the project!

What’s Changed

[3.2.2] - 2024-10-07

07 Oct 11:11
64f8027
Compare
Choose a tag to compare

Highlights

This is a hotfix release to resolve an issue with the JJ01 rule when running in parallel mode.

What’s Changed

[3.2.1] - 2024-10-06

06 Oct 18:38
76ceb29
Compare
Choose a tag to compare

Highlights

This release is primarily housekeeping, bugfixes and dialect improvements. More specifically:

  • Resolving regressions in JJ01, filename extension handling and the treatment of unfixable/unparsable files, which have been noticed with recent releases.
  • Resolving bugs in LT07 & LT12 which relate to jinja whitespace control.
  • More robust support for arbitrary methods on the ref and source macros for the dbt templater.

There's also dialect improvements for BigQuery, TSQL, MySQL, MariaDB, Snowflake, DuckDB, Databricks, Postgres, Teradata, Exasol & Vertica.

We also saw six new contributors merge their first pull request as part
of this release. Welcome to the project! πŸŽ‰πŸ†πŸŽ‰

What’s Changed

[3.2.0] - 2024-09-18

18 Sep 20:58
2605df0
Compare
Choose a tag to compare

Highlights

This release brings a few minor breaking changes, both for the core project and for the dbt templater. For the main project:

  • Resolving an issue with the spacing of functions (LT01), which involved a change to how functions are parsed. If your project relies on the specific parsing of functions, the bracketed arguments are now wrapped in a function_contents object. We recommend that you examine the new parsing structure using this new release in testing first.

  • RF06 (references.quoting) is now case sensitive when removing quotes which are detected as unnecessary. This rule has also been re-enabled by default for Snowflake and Postgres where it had previously been disabled (for the reason that in the past it hadn't been appropriately case sensitive). Treatment for totally case-insensitive dialects like DuckDB and SparkSQL have also been included. Please check the new documentation for this rule (which is much more explicit now), for details related to your dialect.

  • Patterns equivalent to those from .sqlfluffignore can now be included in .sqlfluff and pyproject.toml files.

  • Using the python templater, users now have an option to include variables which include a dot in the path, like {{ foo.bar }} using a special sqlfluff context variable.

  • Significant changes under the hood to the handling of configuration files. Most of these should not be visible to end users, but for anyone integrating SQLFluff into a larger project and relying on native file loading may need to refactor their project for this release. Most notably here, for maintainers of plugins, the ConfigLoader class has been deprecated, and plugins should instead call the config loading functions directly. See the example plugin for details.

  • Documentation, especially for dialects, has been significantly improved. Documentation for CP02 (capitalisation.identifiers) has also been clarified to make it's implication for references and aliases more clear.

  • During testing, to isolate the effect of specific rules, there's a new CLI option --disable-noqa-except which allows all noqa options to be ignored except the ones provided in this option.

For the dbt templater:

  • Support for dbt 1.1-1.3 has been removed. All have been in End of Life (EOL) support by dbtlabs for almost two years. They are also poorly supported by other projects and tools.

  • The dbt templater has been migrated to use pyproject.toml.

  • Handling of errors and exceptions raised within dbt has had an overhaul. Users may see a slightly different presentation of errors, but the overall stability should be more robust.

In addition to those changes, there have been too many dialect contributions and bugfixes to mention specifically. We've also seen six people make their first contributions to the project as part of preparing for this release! πŸŽ‰πŸ†πŸŽ‰.

What’s Changed

[3.1.1] - 2024-08-20

20 Aug 22:30
35ffbfb
Compare
Choose a tag to compare

Highlights

This release brings a bumper lot of bugfixes, dialect improvements and other minor improvements across the board. Most notably:

  • A rework of the structure of the docs. NOTE: This does change the url of some docs pages, but to prevent future moves, we've also provided permalinks to most important pages and rules. See the conf.py file in the docs folder for a full list of permalinks.
  • Solving rule conflicts between LT02 & LT02.
  • Bugfixes to AM07, CV11, ST03, ST05 & RF03,
  • Removes some redundant dependencies in for the dbt templater (which haven't been required for some time, but have been included in the install dependencies). Specifically: markupsafe, ruamel.yaml, pydantic & rich.
  • And too many dialect improvements to summarise!

We've also seen fifteen new contributors to the project! Thanks to all of them for taking the time to contribute. πŸŽ‰πŸŽ‰πŸ†πŸŽ‰πŸŽ‰

What’s Changed

New Contributors

0