Highlights
This introduces some memory optimisations in the linting operation which prevent a major cause of crashes when linting large projects. As part of that we've also deprecated the --force option on sqlfluff fix and made that the default behaviour (the associated memory optimisations will come shortly).
This also removes the long since deprecated --disable_progress_bar option (which was replaced by the kabab-case --disable-progress -bar more than a year ago).
On top of that this release also introduces the vertica dialect for the first time, and a whole host of bugfixes and improvements to other dialects.
This release should be considered a release candidate for the final 3.0.0 release which will follow shortly in the next few days unless any other major issues are found.
Thanks particularly to the seven new contributors we saw in this release 🏆🎉.
What’s Changed
- Add Support for Databricks
CREATE FUNCTIONSyntax in SparkSQL Parser (#5615) @mitchellvanrijkom - Swap fix
--forcefor--check(#5650) @alanmcruickshank - Remove
DeprecatedOption(#5649) @alanmcruickshank - Resolve broken loop limit test (#5651) @alanmcruickshank
- Snowflake: Move NOTIFY to non-reserved words (#5645) @greg-finley
- BigQuery: GROUP BY ALL (#5646) @greg-finley
- chore: use pre-calculated
_code_indicesin `BaseSegment::raw_segmen… (#5644) @gvozdvmozgu - Fix Snowflake Semistructured identifier parsing regex-expression (#5635) @DannyMor
- Postgres: Update ReferentialActionGrammar to support sets of columns (#5628) @WittierDinosaur
- Snowflake: Add syntax for masking policy force (#5629) @WittierDinosaur
- Postgres: Allow nested block comments (#5630) @WittierDinosaur
- Postgres: Add Create, Alter, Drop Statistics (#5631) @WittierDinosaur
- T-SQL Fix relative sql filepath lexer (#5632) @WittierDinosaur
- Tech Debt: Replace some sequences with their Ref equivalents (#5633) @WittierDinosaur
- ANSI/MYSQL: Support Create Role If Not Exists (#5634) @WittierDinosaur
- Add Vertica dialect (#5640) @PolitePp
- Add Support for Snowflake Materialised View and Column Masking Policy (#5637) @ulixius9
- [snowflake dialect] support ALTER TABLE ... ADD COLUMN IF NOT EXISTS (#5621) @gshen7
- SQLite: Make
DISTINCT FROMoptional; SQLite/TSQL/Exasol: Nothing'dNanLiteralSegment(#5620) @keraion - Upgrade greenplum dialect (#5546) @kkozhakin
- Oracle: parse length qualifier in types (#5613) @Jefffrey
- Multiple Dialects: Fix handling of nested sets expressions (#5606) @keraion
- DB2: Add labeled durations and special registers (#5612) @keraion
- Sparksql: Fix
LATERAL VIEWfollowingJOIN;CLUSTER|SORT|DISTRIBUTE BYorQUALIFYwithoutFROM(#5602) @keraion - File helpers and config test parameterisation. (#5579) @alanmcruickshank
- Memory overhead optimisations during linting (#5585) @alanmcruickshank
- fix: multiple columns foreign key constraint (#5592) (#5594) @maoxingda
- [CI] Add
no_implicit_reexportmypy check (#5509) @Koyaani