Skip to content

Releases: sqlfluff/sqlfluff

[3.0.0a4] - 2023-12-05

05 Dec 10:55
cd725c6
Compare
Choose a tag to compare
Pre-release

Highlights

This release makes a breaking change to the serialized output of the CLI (and by extension, any of the serialized outputs of the API).

  • The serialised output for sqlfluff lint now contains more information about the span of linting issues and initial proposed fixes. Beside the new fields, the original fields of line_pos and line_no have been renamed to start_line_pos and start_line_no, to distinguish them from the new fields starting end_*.

  • The default annotation_level set by the --annotation-level option on the sqlfluff lint command has been changed from notice to warning, to better distinguish linting errors from warnings, which always now have the level of notice. This is only relevant when using the github-annotation or github-annotation-native formats.

What’s Changed

[3.0.0a3] - 2023-11-29

29 Nov 16:51
2574709
Compare
Choose a tag to compare
Pre-release

Highlights

This brings no further breaking changes on top of 3.0.0a2, but instead releases a few of the more minor fixes flowing through while other breaking changes are staged in. In particular there are a few dialect improvements for Snowflake, TSQL, SQLite and Databricks alongside a few further improvements to deployment scripts off the back of earlier changes for 3.x.

What’s Changed

New Contributors

[3.0.0a2] - 2023-11-09

09 Nov 01:29
04192fa
Compare
Choose a tag to compare
Pre-release

Highlights

The initial 3.0.0a1 release failed to build a docker image, this resolves that issue.

What’s Changed

[2.3.5] - 2023-10-27

27 Oct 19:31
472f9b8
Compare
Choose a tag to compare

Highlights

This is a fairly minor release, primarily bugfixes and dialect improvements.

For python API users, there's the addition of a public method on the FluffConfig object allowing the construction of a config object from multiple strings to mimic the effect of nested config files in the CLI.

This release also includes a selection of internal refactoring and reorganisation to support future development work.

This also sees the first contributions by @ShubhamJagtap2000 & @kang8, particularly notable in that both were contributions to SQLFluff documentation! 🎉🎉🏆🎉🎉

What’s Changed

New Contributors

[2.3.4] - 2023-10-17

17 Oct 23:06
10c3865
Compare
Choose a tag to compare

Highlights

This is a fairly small bugfix release, mostly to resolve a bug introduced in 2.3.3 with commas and LT09. This also includes a couple of additional small performance improvements and some dialect improvements for Oracle, BigQuery and MySQL.

Thanks in particular to @bonnal-enzo who made their first contribution as part of this release 🎉🎉🏆🎉🎉.

What’s Changed

New Contributors

[2.3.3] - 2023-10-13

13 Oct 21:12
2447559
Compare
Choose a tag to compare

Highlights

There's a lot in this release. Most of it is under the covers and so shouldn't cause any breaking changes for most users. If your use case depends on some of the internals of SQLFluff, you may find some breaking changes. The bigger changes are:

  • Python 3.12 support is now official (although older releases may also work as only a few changes were required for full 3.12 support).
  • We've done a significant re-write of the parsing engine to remove some unnecessary segment manipulation and get us closer to "single pass" parsing. This changes the internal API being used on any .match() methods, and also removes the parse_grammar attribute on any dialect segments. We are not aware of any 3rd party libraries which rely on these APIs however and so have not triggered a more major release. These lead to significant performance improvements during parsing.
  • Standardisation of terminators in the parser, and the introduction of the ParseMode option has enabled the removal of the StartsWith, GreedyUntil and EphemeralSegment parser classes.
  • Several validation checks have been revised in this release, which should both improve performance (by reducing duplication), but also be more effective in preventing the application of any fixes which would result in unparsable files.

Alongside the big things this also includes a host of bugfixes, dialect improvements and CI/testing improvements.

This release also sees a bumper crop of new contributors, thanks to @dehume, @andychannery, @Kylea650, @robin-alphasophia, @jtbg, @r-petit, @bpfaust, @freewaydev & @abdel who all made the first contibutions in this release! 🎉🎉🎉

What’s Changed

[2.3.2] - 2023-09-10

10 Sep 11:46
5dbc0aa
Compare
Choose a tag to compare

Highlights

Much of this release is internal optimisations and refactoring. We're in the process of upgrading some quite old code in the parser, most of which should not be visible to end users (apart from perhaps some performance improvements!).

This release also allows missing template variables in the placeholder templater to be automatically filled with the name of the variable rather than raising an error (see: #5101).

Beyond that this includes some dialect improvements for DuckDB, SparkSQL, Snowflake, Redshift & Postgres.

Thanks particularly to @shyaginuma, @Fullcure3, @adilkhanekt & @pilou-komoot who made their first contributions as part of this release. 🎉🎉🎉

What’s Changed

New Contributors

[2.3.1] - 2023-08-29

29 Aug 22:41
d8a1be8
Compare
Choose a tag to compare

Highlights

This release is primarily a performance release, with most major changes aimed at the linting and fixing phases of operation. Most of the longest duration rules (excepting the layout rules) should see noticeable speed improvements.

Alongside those changes, there are a selection of bugfixes and dialect improvements for Oracle, PostgreSQL, Snowflake & TSQL.

What’s Changed

[2.3.0] - 2023-08-14

14 Aug 18:01
263dc51
Compare
Choose a tag to compare

Highlights

This release brings one new dialect, two new rules and some changes to the CLI:

  • We now support the trino dialect. This is a first version of support, so do post any issues on GitHub in the usual way. This was also the first contribution to the project from @efung 🏆.
  • ST09 / structure.join_condition_order: Which checks whether tables referenced in JOIN clauses are referenced in the order of their definition. By default this means that in the ON clause, the column referencing the table in the FROM clause should come before the column referencing the table in the JOIN clause (e.g. ... FROM a JOIN b on a.c = b.c). This rule was also the first contribution to the project from @thibonacci 🏆.
  • AL08 / aliasing.unique.column: Which checks that column aliases and names are not repeated within the same SELECT clause. This is normally an error as it implies the same column has been imported twice, or that two expressions have been given the same alias.
  • The --profiler option on sqlfluff parse has been removed. It was only present on the parse command and not lint or fix, and it is just as simple to invoke the python cProfiler directly.
  • The --recurse cli option and sqlfluff.recurse configuration option have both been removed. They both existed purely for debugging the parser, and were never used in a production setting. The improvement in other debugging messages when unparsable sections are found means that this option is no longer necessary.

Along side these more significant changes this also includes:

  • Performance optimisations for AL04, AL05, AM04, RF01 & ST05 which cumulatively may save up to 30% on the total time spend in the linting phase for some projects.
  • Dialect improvements for Oracle & TSQL.

What’s Changed

New Contributors

[2.2.1] - 2023-08-09

09 Aug 20:35
fc91dcd
Compare
Choose a tag to compare

Highlights

This is primarily a bugfix release for 2.2.0 which introduced a bug in the exit_code returned by linting commands which ignored errors while setting processes > 1.

In addition to that this release introduces bugfixes for:

  • Errors raised by two specific dbt exceptions.
  • Issues with unwanted logging output when using -f yaml or -f json alongside the dbt templater.

This also introduces dialect improvements for Oracle and for LIMIT clauses.

Thanks also to @adityapat3l who made their first contribution as part of this release! 🎉🎉🎉

What’s Changed

New Contributors