Sqlfluff

Latest version: v3.0.6

Safety actively analyzes 630052 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 24

2.3.3

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](https://github.com/dehume), [andychannery](https://github.com/andychannery),
[Kylea650](https://github.com/Kylea650), [robin-alphasophia](https://github.com/robin-alphasophia),
[jtbg](https://github.com/jtbg), [r-petit](https://github.com/r-petit),
[bpfaust](https://github.com/bpfaust) & [freewaydev](https://github.com/freewaydev)
who all made the first contributions in this release! πŸŽ‰πŸŽ‰πŸŽ‰

What’s Changed

* Oracle space between alias and column reference [5313](https://github.com/sqlfluff/sqlfluff/pull/5313) [joaostorrer](https://github.com/joaostorrer)
* Don't apply LT05 on templated rebreak locations 5096 [5318](https://github.com/sqlfluff/sqlfluff/pull/5318) [alanmcruickshank](https://github.com/alanmcruickshank)
* Disable JJ01 unless jinja active [5319](https://github.com/sqlfluff/sqlfluff/pull/5319) [alanmcruickshank](https://github.com/alanmcruickshank)
* Cache the `BaseSegment` hash in reflow [5320](https://github.com/sqlfluff/sqlfluff/pull/5320) [alanmcruickshank](https://github.com/alanmcruickshank)
* Better error reporting for invalid macros [5317](https://github.com/sqlfluff/sqlfluff/pull/5317) [alanmcruickshank](https://github.com/alanmcruickshank)
* Add support for begin atomic functions in Postgres [5316](https://github.com/sqlfluff/sqlfluff/pull/5316) [joaostorrer](https://github.com/joaostorrer)
* Fix parsing when statement uses plus_sign_join and function in Oracle [5315](https://github.com/sqlfluff/sqlfluff/pull/5315) [joaostorrer](https://github.com/joaostorrer)
* Update rule docs with correct config [5314](https://github.com/sqlfluff/sqlfluff/pull/5314) [alanmcruickshank](https://github.com/alanmcruickshank)
* Resolve 5258. More robust algorithm for multiline fix. [5309](https://github.com/sqlfluff/sqlfluff/pull/5309) [alanmcruickshank](https://github.com/alanmcruickshank)
* BigQuery: Add support for `BEGIN..EXCEPTION...END` block [5307](https://github.com/sqlfluff/sqlfluff/pull/5307) [abdel](https://github.com/abdel)
* Refine placement of metas around templated blocks [5294](https://github.com/sqlfluff/sqlfluff/pull/5294) [alanmcruickshank](https://github.com/alanmcruickshank)
* Extend ruff checking to docstring rules [5302](https://github.com/sqlfluff/sqlfluff/pull/5302) [alanmcruickshank](https://github.com/alanmcruickshank)
* Fix for strange TSQL bugs [5306](https://github.com/sqlfluff/sqlfluff/pull/5306) [alanmcruickshank](https://github.com/alanmcruickshank)
* Staging PR for 5282 [5305](https://github.com/sqlfluff/sqlfluff/pull/5305) [alanmcruickshank](https://github.com/alanmcruickshank)
* Resolve some strange whitespace indentation behaviour [5292](https://github.com/sqlfluff/sqlfluff/pull/5292) [alanmcruickshank](https://github.com/alanmcruickshank)
* Simplify `_process_lint_result` [5304](https://github.com/sqlfluff/sqlfluff/pull/5304) [alanmcruickshank](https://github.com/alanmcruickshank)
* Performance improvement on segment comparison [5303](https://github.com/sqlfluff/sqlfluff/pull/5303) [alanmcruickshank](https://github.com/alanmcruickshank)
* Refactor LT09 [5299](https://github.com/sqlfluff/sqlfluff/pull/5299) [alanmcruickshank](https://github.com/alanmcruickshank)
* Change drop function to allow DropBehaviourGrammar with space after function name [5295](https://github.com/sqlfluff/sqlfluff/pull/5295) [joaostorrer](https://github.com/joaostorrer)
* Resolve click import options on autocomplete [5293](https://github.com/sqlfluff/sqlfluff/pull/5293) [alanmcruickshank](https://github.com/alanmcruickshank)
* Updated docstrings with missing args/returns/etc info, added missing docstrings, minor formatting fixes. [5278](https://github.com/sqlfluff/sqlfluff/pull/5278) [freewaydev](https://github.com/freewaydev)
* Use ruff rule I replace isort [5289](https://github.com/sqlfluff/sqlfluff/pull/5289) [zhongjiajie](https://github.com/zhongjiajie)
* Snowflake: Parse ALTER DATABASE statement [5284](https://github.com/sqlfluff/sqlfluff/pull/5284) [jmks](https://github.com/jmks)
* Snowflake: Parse ALTER ACCOUNT statements [5283](https://github.com/sqlfluff/sqlfluff/pull/5283) [jmks](https://github.com/jmks)
* Snowflake: create AlterProcedureStatementSegment [5291](https://github.com/sqlfluff/sqlfluff/pull/5291) [moreaupascal56](https://github.com/moreaupascal56)
* Rewrite of matching interface [5230](https://github.com/sqlfluff/sqlfluff/pull/5230) [alanmcruickshank](https://github.com/alanmcruickshank)
* Follow noqa in block comments [5133](https://github.com/sqlfluff/sqlfluff/pull/5133) [daviewales](https://github.com/daviewales)
* Fix insert on conflict with function in Postgres [5286](https://github.com/sqlfluff/sqlfluff/pull/5286) [joaostorrer](https://github.com/joaostorrer)
* Add support for Pivot and Unpivot clauses in Oracle [5285](https://github.com/sqlfluff/sqlfluff/pull/5285) [joaostorrer](https://github.com/joaostorrer)
* Adding "create table as" for greenplum dialect [5173](https://github.com/sqlfluff/sqlfluff/pull/5173) [bpfaust](https://github.com/bpfaust)
* Update CI to python 3.12 [5267](https://github.com/sqlfluff/sqlfluff/pull/5267) [alanmcruickshank](https://github.com/alanmcruickshank)
* Snowflake: Add CreateResourceMonitorStatementSegment & AlterResourceMonitorStatementSegment [5272](https://github.com/sqlfluff/sqlfluff/pull/5272) [moreaupascal56](https://github.com/moreaupascal56)
* [TSQL] Add create fulltext index statement segment class [5274](https://github.com/sqlfluff/sqlfluff/pull/5274) [r-petit](https://github.com/r-petit)
* Snowflake: Add CreateSequenceStatementSegment & AlterSequenceStatementSegment [5270](https://github.com/sqlfluff/sqlfluff/pull/5270) [moreaupascal56](https://github.com/moreaupascal56)
* Add CommaSegment to AlterWarehouseStatementSegment SET clause [5268](https://github.com/sqlfluff/sqlfluff/pull/5268) [moreaupascal56](https://github.com/moreaupascal56)
* Snowflake: Parse EXECUTE IMMEDIATE clause [5275](https://github.com/sqlfluff/sqlfluff/pull/5275) [jmks](https://github.com/jmks)
* TSQL: Add missing `HISTORY_RETENTION_PERIOD` sequence to the table option segment [5273](https://github.com/sqlfluff/sqlfluff/pull/5273) [r-petit](https://github.com/r-petit)
* Snowflake: Fix ScalingPolicy and WarehouseType Refs in WarehouseObjectProperties and use ObjectReferenceSegment in AlterWarehouseStatementSegment [5264](https://github.com/sqlfluff/sqlfluff/pull/5264) [moreaupascal56](https://github.com/moreaupascal56)
* Finish the removal of `GreedyUntil` [5263](https://github.com/sqlfluff/sqlfluff/pull/5263) [alanmcruickshank](https://github.com/alanmcruickshank)
* Add support for date operations with intervals in Oracle [5262](https://github.com/sqlfluff/sqlfluff/pull/5262) [joaostorrer](https://github.com/joaostorrer)
* Change RawSegment `type` to `instance_types` [5253](https://github.com/sqlfluff/sqlfluff/pull/5253) [alanmcruickshank](https://github.com/alanmcruickshank)
* Revise MatchableType -> Matchable [5252](https://github.com/sqlfluff/sqlfluff/pull/5252) [alanmcruickshank](https://github.com/alanmcruickshank)
* Unnest fixing and re-address validation triggers [5249](https://github.com/sqlfluff/sqlfluff/pull/5249) [alanmcruickshank](https://github.com/alanmcruickshank)
* Resolves 5174: Snowflake alter table constraint [5247](https://github.com/sqlfluff/sqlfluff/pull/5247) [andychannery](https://github.com/andychannery)
* Bring together the generic segments [5243](https://github.com/sqlfluff/sqlfluff/pull/5243) [alanmcruickshank](https://github.com/alanmcruickshank)
* minor: update docs with correct link to airflow ds_filter [5244](https://github.com/sqlfluff/sqlfluff/pull/5244) [jtbg](https://github.com/jtbg)
* 5245 - Snowflake dialect: Adds support for variable definitions in scripting blocks [5246](https://github.com/sqlfluff/sqlfluff/pull/5246) [robin-alphasophia](https://github.com/robin-alphasophia)
* Introduce "word" segment [5234](https://github.com/sqlfluff/sqlfluff/pull/5234) [alanmcruickshank](https://github.com/alanmcruickshank)
* 5239 Added (basic) support for properly linted Snowflake scripting [5242](https://github.com/sqlfluff/sqlfluff/pull/5242) [robin-alphasophia](https://github.com/robin-alphasophia)
* Allow Snowflake pipe integration to be a quoted or unquoted [5241](https://github.com/sqlfluff/sqlfluff/pull/5241) [Kylea650](https://github.com/Kylea650)
* Fix LT01 alignment regression 4023 [5238](https://github.com/sqlfluff/sqlfluff/pull/5238) [alanmcruickshank](https://github.com/alanmcruickshank)
* Add support for oracle non ansi joins [5231](https://github.com/sqlfluff/sqlfluff/pull/5231) [joaostorrer](https://github.com/joaostorrer)
* add azure_storage_queue and quoted providers [5236](https://github.com/sqlfluff/sqlfluff/pull/5236) [Kylea650](https://github.com/Kylea650)
* Set type automatically within the lexer. [5232](https://github.com/sqlfluff/sqlfluff/pull/5232) [alanmcruickshank](https://github.com/alanmcruickshank)
* Resolve 5225: Snowflake unparsable select replace [5227](https://github.com/sqlfluff/sqlfluff/pull/5227) [andychannery](https://github.com/andychannery)
* Spark Accessor Grammars [5226](https://github.com/sqlfluff/sqlfluff/pull/5226) [alanmcruickshank](https://github.com/alanmcruickshank)
* Test Script Timing [5228](https://github.com/sqlfluff/sqlfluff/pull/5228) [alanmcruickshank](https://github.com/alanmcruickshank)
* Unify lexer names and types for brackets [5229](https://github.com/sqlfluff/sqlfluff/pull/5229) [alanmcruickshank](https://github.com/alanmcruickshank)
* Resolve 3176: Snowflake unparsable array casting [5224](https://github.com/sqlfluff/sqlfluff/pull/5224) [andychannery](https://github.com/andychannery)
* BigQuery system time syntax [5220](https://github.com/sqlfluff/sqlfluff/pull/5220) [greg-finley](https://github.com/greg-finley)
* Parser test nits [5217](https://github.com/sqlfluff/sqlfluff/pull/5217) [alanmcruickshank](https://github.com/alanmcruickshank)
* Remove `parse_grammar` [5189](https://github.com/sqlfluff/sqlfluff/pull/5189) [alanmcruickshank](https://github.com/alanmcruickshank)
* Revise segment whitespace validation [5194](https://github.com/sqlfluff/sqlfluff/pull/5194) [alanmcruickshank](https://github.com/alanmcruickshank)
* Add support for bpchar datatype in postgres [5215](https://github.com/sqlfluff/sqlfluff/pull/5215) [joaostorrer](https://github.com/joaostorrer)
* Resolve 5203: `BaseSegment.copy()` isolation [5206](https://github.com/sqlfluff/sqlfluff/pull/5206) [alanmcruickshank](https://github.com/alanmcruickshank)
* Update Materialize Syntax [5210](https://github.com/sqlfluff/sqlfluff/pull/5210) [dehume](https://github.com/dehume)
* Validate fix parsing based on match_grammar [5196](https://github.com/sqlfluff/sqlfluff/pull/5196) [alanmcruickshank](https://github.com/alanmcruickshank)
* Position assertions in BaseSegment [5209](https://github.com/sqlfluff/sqlfluff/pull/5209) [alanmcruickshank](https://github.com/alanmcruickshank)
* MySQL bracketed column constraint [5208](https://github.com/sqlfluff/sqlfluff/pull/5208) [greg-finley](https://github.com/greg-finley)
* Dialect spacing & quoting issues [5205](https://github.com/sqlfluff/sqlfluff/pull/5205) [alanmcruickshank](https://github.com/alanmcruickshank)
* Update comment workflow again [5201](https://github.com/sqlfluff/sqlfluff/pull/5201) [alanmcruickshank](https://github.com/alanmcruickshank)
* Stash PR Number and hydrate later [5200](https://github.com/sqlfluff/sqlfluff/pull/5200) [alanmcruickshank](https://github.com/alanmcruickshank)
* Fix API issues in github comment action [5199](https://github.com/sqlfluff/sqlfluff/pull/5199) [alanmcruickshank](https://github.com/alanmcruickshank)
* Consistency check in root parse [5191](https://github.com/sqlfluff/sqlfluff/pull/5191) [alanmcruickshank](https://github.com/alanmcruickshank)
* PR Comment action [5192](https://github.com/sqlfluff/sqlfluff/pull/5192) [alanmcruickshank](https://github.com/alanmcruickshank)
* Cache python dependencies in GHA [5193](https://github.com/sqlfluff/sqlfluff/pull/5193) [alanmcruickshank](https://github.com/alanmcruickshank)
* Add support for create server, create user mapping and import foreign schema in postgres [5185](https://github.com/sqlfluff/sqlfluff/pull/5185) [joaostorrer](https://github.com/joaostorrer)
* Terminators on `Anything()` + Strip _most_ of the other `parse_grammar` [5186](https://github.com/sqlfluff/sqlfluff/pull/5186) [alanmcruickshank](https://github.com/alanmcruickshank)
* Parse modes for `AnyNumberOf` [5187](https://github.com/sqlfluff/sqlfluff/pull/5187) [alanmcruickshank](https://github.com/alanmcruickshank)
* Introduce `parse_mode` and remove `StartsWith` & `EphemeralSegment`. [5167](https://github.com/sqlfluff/sqlfluff/pull/5167) [alanmcruickshank](https://github.com/alanmcruickshank)


New Contributors
* [dehume](https://github.com/dehume) made their first contribution in [#5210](https://github.com/sqlfluff/sqlfluff/pull/5210)
* [andychannery](https://github.com/andychannery) made their first contribution in [#5224](https://github.com/sqlfluff/sqlfluff/pull/5224)
* [Kylea650](https://github.com/Kylea650) made their first contribution in [#5236](https://github.com/sqlfluff/sqlfluff/pull/5236)
* [robin-alphasophia](https://github.com/robin-alphasophia) made their first contribution in [#5242](https://github.com/sqlfluff/sqlfluff/pull/5242)
* [jtbg](https://github.com/jtbg) made their first contribution in [#5244](https://github.com/sqlfluff/sqlfluff/pull/5244)
* [r-petit](https://github.com/r-petit) made their first contribution in [#5273](https://github.com/sqlfluff/sqlfluff/pull/5273)
* [bpfaust](https://github.com/bpfaust) made their first contribution in [#5173](https://github.com/sqlfluff/sqlfluff/pull/5173)
* [freewaydev](https://github.com/freewaydev) made their first contribution in [#5278](https://github.com/sqlfluff/sqlfluff/pull/5278)
* [abdel](https://github.com/abdel) made their first contribution in [#5307](https://github.com/sqlfluff/sqlfluff/pull/5307)

2.3.2

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](https://github.com/sqlfluff/sqlfluff/pull/5101)).

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

Thanks particularly to [shyaginuma](https://github.com/shyaginuma), [Fullcure3](https://github.com/Fullcure3),
[adilkhanekt](https://github.com/adilkhanekt) & [pilou-komoot](https://github.com/pilou-komoot)
who made their first contributions as part of this release. πŸŽ‰πŸŽ‰πŸŽ‰

What’s Changed

* Allow not specifying parameters names when using placeholder templater [5101](https://github.com/sqlfluff/sqlfluff/pull/5101) [shyaginuma](https://github.com/shyaginuma)
* Update coverage job to run in the right conditions [5183](https://github.com/sqlfluff/sqlfluff/pull/5183) [alanmcruickshank](https://github.com/alanmcruickshank)
* Duckdb: UNION BY NAME [5176](https://github.com/sqlfluff/sqlfluff/pull/5176) [greg-finley](https://github.com/greg-finley)
* Output coverage report direct to PR [5180](https://github.com/sqlfluff/sqlfluff/pull/5180) [alanmcruickshank](https://github.com/alanmcruickshank)
* Upgrades to the parse fixture generation script [5182](https://github.com/sqlfluff/sqlfluff/pull/5182) [alanmcruickshank](https://github.com/alanmcruickshank)
* Refactor of Sequence match [5177](https://github.com/sqlfluff/sqlfluff/pull/5177) [alanmcruickshank](https://github.com/alanmcruickshank)
* Simplify Greedy Match [5178](https://github.com/sqlfluff/sqlfluff/pull/5178) [alanmcruickshank](https://github.com/alanmcruickshank)
* Quality of life improvements on parse fixture script [5179](https://github.com/sqlfluff/sqlfluff/pull/5179) [alanmcruickshank](https://github.com/alanmcruickshank)
* Lift and shift matching algorithms [5170](https://github.com/sqlfluff/sqlfluff/pull/5170) [alanmcruickshank](https://github.com/alanmcruickshank)
* Capitalise boolean values in example configs, for consistency [5175](https://github.com/sqlfluff/sqlfluff/pull/5175) [pilou-komoot](https://github.com/pilou-komoot)
* Pull terminator setting up into the base grammar [5172](https://github.com/sqlfluff/sqlfluff/pull/5172) [alanmcruickshank](https://github.com/alanmcruickshank)
* Flip the if in sequence and un-nest [5171](https://github.com/sqlfluff/sqlfluff/pull/5171) [alanmcruickshank](https://github.com/alanmcruickshank)
* SparkSQL: Support CACHE TABLE without query [5165](https://github.com/sqlfluff/sqlfluff/pull/5165) [reata](https://github.com/reata)
* Remove configurable `enforce_whitespace_preceding_terminator` [5162](https://github.com/sqlfluff/sqlfluff/pull/5162) [alanmcruickshank](https://github.com/alanmcruickshank)
* Adding optional sequence block for columns parsing in Snowflake external tables [5157](https://github.com/sqlfluff/sqlfluff/pull/5157) [adilkhanekt](https://github.com/adilkhanekt)
* SparkSQL: Support ALTER TABLE SET LOCATION without partition spec [5168](https://github.com/sqlfluff/sqlfluff/pull/5168) [reata](https://github.com/reata)
* Tighten terminators on `Delimited` [5161](https://github.com/sqlfluff/sqlfluff/pull/5161) [alanmcruickshank](https://github.com/alanmcruickshank)
* `terminator` > `terminators` on StartsWith [5152](https://github.com/sqlfluff/sqlfluff/pull/5152) [alanmcruickshank](https://github.com/alanmcruickshank)
* Redshift: Support SELECT INTO [5159](https://github.com/sqlfluff/sqlfluff/pull/5159) [reata](https://github.com/reata)
* Duckdb: Integer division [5154](https://github.com/sqlfluff/sqlfluff/pull/5154) [greg-finley](https://github.com/greg-finley)
* `terminator` > `terminators` on Delimited grammar [5150](https://github.com/sqlfluff/sqlfluff/pull/5150) [alanmcruickshank](https://github.com/alanmcruickshank)
* Tests for unparsable sections [5149](https://github.com/sqlfluff/sqlfluff/pull/5149) [alanmcruickshank](https://github.com/alanmcruickshank)
* Un-nest the delimited match method [5147](https://github.com/sqlfluff/sqlfluff/pull/5147) [alanmcruickshank](https://github.com/alanmcruickshank)
* Grammar .copy() assert no unexpected kwargs [5148](https://github.com/sqlfluff/sqlfluff/pull/5148) [alanmcruickshank](https://github.com/alanmcruickshank)
* Postgres: CLUSTER [5146](https://github.com/sqlfluff/sqlfluff/pull/5146) [greg-finley](https://github.com/greg-finley)
* Postgres alter policy [5138](https://github.com/sqlfluff/sqlfluff/pull/5138) [Fullcure3](https://github.com/Fullcure3)


New Contributors
* [Fullcure3](https://github.com/Fullcure3) made their first contribution in [#5138](https://github.com/sqlfluff/sqlfluff/pull/5138)
* [adilkhanekt](https://github.com/adilkhanekt) made their first contribution in [#5157](https://github.com/sqlfluff/sqlfluff/pull/5157)
* [pilou-komoot](https://github.com/pilou-komoot) made their first contribution in [#5175](https://github.com/sqlfluff/sqlfluff/pull/5175)
* [shyaginuma](https://github.com/shyaginuma) made their first contribution in [#5101](https://github.com/sqlfluff/sqlfluff/pull/5101)

2.3.1

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

* Postgres: Update returning with alias [5137](https://github.com/sqlfluff/sqlfluff/pull/5137) [greg-finley](https://github.com/greg-finley)
* Reduce copying on _position_segments (improves `fix`) [5119](https://github.com/sqlfluff/sqlfluff/pull/5119) [alanmcruickshank](https://github.com/alanmcruickshank)
* Import rationalisation [5135](https://github.com/sqlfluff/sqlfluff/pull/5135) [alanmcruickshank](https://github.com/alanmcruickshank)
* Select Crawler Refactor: Part 3 [5115](https://github.com/sqlfluff/sqlfluff/pull/5115) [alanmcruickshank](https://github.com/alanmcruickshank)
* Add support for comparison operators with space in Oracle [5132](https://github.com/sqlfluff/sqlfluff/pull/5132) [joaostorrer](https://github.com/joaostorrer)
* Snowflake support for bracketed query after `EXCEPT` [5126](https://github.com/sqlfluff/sqlfluff/pull/5126) [ulixius9](https://github.com/ulixius9)
* Treatment of null literals. 5099 [5125](https://github.com/sqlfluff/sqlfluff/pull/5125) [alanmcruickshank](https://github.com/alanmcruickshank)
* Allow double-quoted parameters in create procedure [5131](https://github.com/sqlfluff/sqlfluff/pull/5131) [greg-finley](https://github.com/greg-finley)
* Fix coverage & mypy [5134](https://github.com/sqlfluff/sqlfluff/pull/5134) [alanmcruickshank](https://github.com/alanmcruickshank)
* Ensure Unparsable can be given position. [5117](https://github.com/sqlfluff/sqlfluff/pull/5117) [alanmcruickshank](https://github.com/alanmcruickshank)
* Reduce copying in LintFix instantiation [5118](https://github.com/sqlfluff/sqlfluff/pull/5118) [alanmcruickshank](https://github.com/alanmcruickshank)
* Optimise crawl behaviour of JJ01 [5116](https://github.com/sqlfluff/sqlfluff/pull/5116) [alanmcruickshank](https://github.com/alanmcruickshank)
* Simplify rules with improvement to SegmentSeeker [5113](https://github.com/sqlfluff/sqlfluff/pull/5113) [alanmcruickshank](https://github.com/alanmcruickshank)
* Refactor AM07 [5112](https://github.com/sqlfluff/sqlfluff/pull/5112) [alanmcruickshank](https://github.com/alanmcruickshank)
* Select Crawler Refactor: Part 2 [5110](https://github.com/sqlfluff/sqlfluff/pull/5110) [alanmcruickshank](https://github.com/alanmcruickshank)
* Add support to Hierarchical Queries in Oracle [5108](https://github.com/sqlfluff/sqlfluff/pull/5108) [joaostorrer](https://github.com/joaostorrer)
* βœ… Strict MyPy for sqlfluff.core.parser [5107](https://github.com/sqlfluff/sqlfluff/pull/5107) [alanmcruickshank](https://github.com/alanmcruickshank)
* Free up pydocstyle again [5109](https://github.com/sqlfluff/sqlfluff/pull/5109) [alanmcruickshank](https://github.com/alanmcruickshank)
* Postgres: Allow CREATE TABLE INHERITS with no new columns [5100](https://github.com/sqlfluff/sqlfluff/pull/5100) [greg-finley](https://github.com/greg-finley)
* Strict mypy in parser.segments [5094](https://github.com/sqlfluff/sqlfluff/pull/5094) [alanmcruickshank](https://github.com/alanmcruickshank)
* Select Crawler Refactor: Part 1 [5104](https://github.com/sqlfluff/sqlfluff/pull/5104) [alanmcruickshank](https://github.com/alanmcruickshank)
* RF01 & recursive_crawl improvements [5102](https://github.com/sqlfluff/sqlfluff/pull/5102) [alanmcruickshank](https://github.com/alanmcruickshank)
* fix new more restrictive tox [5103](https://github.com/sqlfluff/sqlfluff/pull/5103) [alanmcruickshank](https://github.com/alanmcruickshank)
* Make Day as Non Reserved Keyword [5062](https://github.com/sqlfluff/sqlfluff/pull/5062) [ulixius9](https://github.com/ulixius9)

2.3.0

Highlights

This release brings one new dialect, two new rules and some changes to the CLI:
- We now support the [trino](https://trino.io/) 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](https://github.com/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](https://github.com/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

* Remove IdentitySet [5093](https://github.com/sqlfluff/sqlfluff/pull/5093) [alanmcruickshank](https://github.com/alanmcruickshank)
* Stricter typing in smaller sqlfluff.core.parser [5088](https://github.com/sqlfluff/sqlfluff/pull/5088) [alanmcruickshank](https://github.com/alanmcruickshank)
* Preliminary support of Trino dialect [4913](https://github.com/sqlfluff/sqlfluff/pull/4913) [efung](https://github.com/efung)
* Rename ST09 [5091](https://github.com/sqlfluff/sqlfluff/pull/5091) [alanmcruickshank](https://github.com/alanmcruickshank)
* TSQL: Fix Clustered Index asc/desc [5090](https://github.com/sqlfluff/sqlfluff/pull/5090) [greg-finley](https://github.com/greg-finley)
* Parent references and more efficient path_to [5076](https://github.com/sqlfluff/sqlfluff/pull/5076) [alanmcruickshank](https://github.com/alanmcruickshank)
* New Rule: AL08 - column aliases must be unique [5079](https://github.com/sqlfluff/sqlfluff/pull/5079) [alanmcruickshank](https://github.com/alanmcruickshank)
* Add support for fetch first row(s) only in Oracle [5089](https://github.com/sqlfluff/sqlfluff/pull/5089) [joaostorrer](https://github.com/joaostorrer)
* Fix bug around quoted identifiers for ST09 [5087](https://github.com/sqlfluff/sqlfluff/pull/5087) [thibonacci](https://github.com/thibonacci)
* Add strict typing to the templating tracer [5085](https://github.com/sqlfluff/sqlfluff/pull/5085) [WittierDinosaur](https://github.com/WittierDinosaur)
* Remove recurse config [5065](https://github.com/sqlfluff/sqlfluff/pull/5065) [alanmcruickshank](https://github.com/alanmcruickshank)
* βœ… Strictly type dialect [5067](https://github.com/sqlfluff/sqlfluff/pull/5067) [pwildenhain](https://github.com/pwildenhain)
* Add new rule ST09: Joins should list the table referenced earlier (default)/later first [4974](https://github.com/sqlfluff/sqlfluff/pull/4974) [thibonacci](https://github.com/thibonacci)
* Remove the internal cProfiler option [5081](https://github.com/sqlfluff/sqlfluff/pull/5081) [alanmcruickshank](https://github.com/alanmcruickshank)
* Optimisation on select analysis [5082](https://github.com/sqlfluff/sqlfluff/pull/5082) [alanmcruickshank](https://github.com/alanmcruickshank)


New Contributors
* [thibonacci](https://github.com/thibonacci) made their first contribution in [#4974](https://github.com/sqlfluff/sqlfluff/pull/4974)
* [efung](https://github.com/efung) made their first contribution in [#4913](https://github.com/sqlfluff/sqlfluff/pull/4913)

2.2.9

- Update README [Pull Request](https://github.com/sqlfluff/vscode-sqlfluff/pull/96)

2.2.8

- Add snowflake-sql support. Thanks to rubensa's [Pull Request](https://github.com/sqlfluff/vscode-sqlfluff/pull/93)

Page 5 of 24

Β© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.