Releases: sqlfluff/sqlfluff
[3.2.5] - 2024-10-25
Highlights
This release is mostly bugfixes and dialect improvements. Notably:
- Whitespace handling improvements to
LT01
<02
. - 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
<01
. - 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
- Guides for custom rules and for troubleshooting (#6379) @alanmcruickshank
- Documentation and small overhaul of parametrized rule test cases (#6380) @alanmcruickshank
- TSQL: add missing unreserved keyword NULLS (#5212) (#6390) @simonhoerdumbonde
- Introducing SQLFluff Guru on Gurubase.io (#6373) @kursataktas
- Improve heuristics for inline config (#6391) @rogalski
- Postgres: Handle expressions that occur in
IN
functions (#6393) @keraion - Snowflake: Support bracketed lambda functions without datatypes (#6394) @keraion
- LT01: Add default config for
match_condition
to touch (#6395) @keraion - Snowflake: Allow for additional
CONNECT BY
expressions that may usePRIOR
(#6396) @keraion - Details on debugging and setup for diff-quality (#6381) @alanmcruickshank
- Fix edge case in Jinja reindents (#6383) @rogalski
- Support identifier clause for Databricks (#6377) @PaulBurridge
- Enable AM02 for snowflake and trino by default. (#6369) @mchen-codaio
- Postgres: Support identifiers in
ALTER DATABASE SET
(#6376) @keraion - SparkSQL: Improved lexing and parsing of file literals (#6375) @keraion
- Fix Snowflake alter share (#6372) @greg-finley
- Resolve collision between ST02 and LT01 (#6366) @alanmcruickshank
- Prevent false positives with AL05 and array functions (#6365) @alanmcruickshank
- Handle iteration and getting undefined jinja variables (#6364) @alanmcruickshank
- Update documentation with new dialects (#6337) @mchen-codaio
- enable default values when creating databricks tables (#6362) @VictorAtIfInsurance
- Postgres : Add
ALTER AGGREGATE
Statement (#6353) @R3gardless - Revise AL09 (self aliasing) - stricter case sensitivity (#6333) @alanmcruickshank
- Make dbt
RelationEmulator
safely callable (#6358) @mroy-seedbox
New Contributors
- @VictorAtIfInsurance made their first contribution in #6362
- @mchen-codaio made their first contribution in #6337
- @PaulBurridge made their first contribution in #6377
- @kursataktas made their first contribution in #6373
- @simonhoerdumbonde made their first contribution in #6390
[3.2.4] - 2024-10-14
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
- Utilize a deepcopy of the config object when parsing files (#6344) @brandonschabell
- Snowflake supports other literals in system functions (#6355) @alanmcruickshank
- Snowflake: Un-reserve CURRENT_USER (#6354) @alanmcruickshank
- tsql: handle additional primary/foreign key options in constraints (#6347) @keraion
- Add
DROP COLUMN
support for multiple dialects (#6348) @keraion - TSQL: allow
UPDATE
to be a function name (#6349) @keraion - tsql: allow both on delete and on update in a
reference_constraint
(#6346) @keraion - Postgres : Allow Extensions with Special Characters in Name (#6345) @R3gardless
- Fix
tox
command in test/fixtures/dialects/README.md (#6342) @R3gardless - Revise dbt warnings when a file fails to compile (#6338) @alanmcruickshank
- Postgres: Add
CREATE FOREIGN DATA WRAPPER
statement (#6335) @keraion - Trino: Add some support to
json_query
functions (#6336) @keraion - Handle deprecation warning of "fork" (#6332) @alanmcruickshank
- Python 3.13 support and make it default for test coverage (#6269) @alanmcruickshank
- ST06 - Fix union of CTE/Subquery (#6298) @rogalski
- Refactor timestamp grammar (#6331) @greg-finley
[3.2.3] - 2024-10-10
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
- BigQuery: Support Tuple syntax in other locations (#6328) @keraion
- Trino: Fix rule interactions with lambda functions (#6327) @keraion
- Resolve some more edge cases in LT02 (#6324) @alanmcruickshank
- RF05 - fine tuning for snowflake dialect (#6297) @rogalski
- Indentation:
UPDATE
andRETURNING
clauses (#6314) @keraion - Postgres: Fix lexing some JSON operators (#6323) @keraion
- Add support for
grant monitor on user ...
in Snowflake dialect (#6322) @mroy-seedbox - Exclude templated casts from CV11 (#6320) @alanmcruickshank
- Snowflake allow double-quoted comments (#6318) @greg-finley
- Databricks materialized view (#6319) @greg-finley
- Allow double quotes to be escaped by writing twice (#6316) @alanmcruickshank
- Resolve an oscillation bug with LT02 (#6306) @alanmcruickshank
- Create a "Guides and Howtos" section of the docs. (#6301) @alanmcruickshank
- Add groups to the
github-annotation-native
format option. (#6312) @alanmcruickshank - Snowflake: Support CTEs and multiple orders of CopyOptions in COPY INTO (#6313) @keraion
- Allow expressions in ORDER BY for clickhouse (#6311) @alanmcruickshank
- Snowflake: support temp UDFs (#6309) @rogalski
- fix: tsql create function syntax corrections (#6289) @nspcc-cm
[3.2.2] - 2024-10-07
Highlights
This is a hotfix release to resolve an issue with the JJ01 rule when running in parallel mode.
What’s Changed
- Hotfix for JJ01 (#6304) @alanmcruickshank
- Add note on 3.0.x to main docs page. (#6302) @alanmcruickshank
[3.2.1] - 2024-10-06
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
<12
which relate to jinja whitespace control. - More robust support for arbitrary methods on the
ref
andsource
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
- Postgres: Support walrus operator named arguments (#6299) @keraion
- TSQL: handle nested joins, RF01 better aliasing (#6300) @keraion
- Exclude Macros - Allow multiple paths. (#6221) @culpgrant
- Dededuplicate rule ignore docs (#6296) @alanmcruickshank
- Bugfix for LT07 with consumed newlines. (#6294) @alanmcruickshank
- Bugfix for LT12 with jinja whitespace consumption (#6292) @alanmcruickshank
- RF02: Ignore
DECLARE
variables in BigQuery (#6295) @keraion - Bugfix for JJ01 in parallel mode (#6293) @alanmcruickshank
- Allow arbitrary attributes & methods for
ThisEmulator
(#6254) @mroy-seedbox - RF05: Add
table_aliases
option (#6273) @keraion - BigQuery: Add support for concatenating in
EXECUTE IMMEDIATE
(#6287) @keraion - BigQuery: Add support for
SET
with system variables (#6288) @keraion - Plugins: Migrate example plugin to
pyproject.toml
(#6286) @keraion - TSQL: Add DATETRUC to date_part_function_name list (#6283) @paysni
- MySQL Alter table convert to character set (#6277) @greg-finley
- Remove dependency on coveralls. (#6284) @alanmcruickshank
- Test dbt Templater Plugin with dbt 1.9.0 (#6280) @edgarrmondragon
- AM06: Ignore array expressions in BigQuery (#6276) @keraion
- Add mariadb to issue labeler (#6278) @greg-finley
- BigQuery: Add
GROUPING SETS
clause (#6275) @keraion - Snowflake: Support
ARRAY
types (#6272) @keraion - Move most of the config validation settings out into rule bundles. (#6262) @alanmcruickshank
- Revise warnings with fixing unfixable files. (#6257) @alanmcruickshank
- Strict mypy on
sqlfluff.core
(#6246) @alanmcruickshank - DuckDB: Add
DROP MACRO
(#6270) @keraion - Added Support for Databricks SQL Notebook Cells (#6267) @gabepesco
- dbt templater
pyproject.toml
nits (#6268) @alanmcruickshank - Add UTF8 support for identifiers in Vertica dialect (#6183) @troshnev
- Almost all of
util
up to strict typing (#6263) @alanmcruickshank - Update link to diff-cover docs (#6256) @alanmcruickshank
- MySQL: AL09 handle double quoted identifiers (#6249) @keraion
- fix: complex file extensions discovery (#6228) @Clepech
- fix RF06 issue in postgres naked identifier regex (#6247) @fvankrieken
- Strict typing for
sqlfluff.core.linter
(#6240) @alanmcruickshank - DuckDB: Fixed
DatatypeSegment
references (#6244) @keraion - Postgres: Support
SET
with double quoted identifiers (#6243) @keraion - Consolidate Teradata tests (#6241) @greg-finley
- RF02: Ignore alias references that are self-inner (#6242) @keraion
- Add additional CREATE TABLE support for Databricks (#6216) @pahunter90
- Complete the support for PIVOT in Snowflake dialect (#6217) @fpsebastiam
- Exasol - allow function calls in values clause (#6226) @stephnan
- Snowflake: Support defining virtual columns (#6237) @babak-l1
- Teradata order of VOLATILE and MULTISET (#6233) @greg-finley
- Remove duplicate timing columns from the timing records (#6229) @Tenzer
- Fix time travel clauses in Snowflake dialect (#6230) @fpsebastiam
[3.2.0] - 2024-09-18
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
andpyproject.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 specialsqlfluff
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 allnoqa
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
- Handle multi-processing dbt exceptions much better. (#6138) @alanmcruickshank
- Support variables with dot in python templater (#5872) @timchurch
- Add postgres normalization operator support (#6211) @fnimick
- Fix patch will anchor on first buffer insertion point (#6212) @keraion
- Allow ignore patterns in other config files. (#6130) @alanmcruickshank
- Strict typing in
config
andhelpers
. (#6206) @alanmcruickshank - TSQL: Support multiple options in
SET
statement (#6205) @keraion - DuckDB: Support
CREATE TYPE
statement (#6204) @keraion - Update Slack link (#6203) @greg-finley
- Add quoted literal checking for Snowflake TARGET_LAG in dynamic tables. (#6201) @mvastarelli
- Databricks: Support
COMMENT ON
statement (#6196) @keraion - DuckDB: Support
STRUCT
datatype (#6198) @keraion - Deprecate the
ConfigLoader
(#6177) @alanmcruickshank - DuckDB: Support
CREATE MACRO
/CREATE FUNCTION
(#6194) @keraion - DuckDB: Support functions with walrus operators (#6193) @keraion
- Add volume syntax support for Databricks (#6179) @TheCleric
- Handle errors better in AL09 (#6186) @alanmcruickshank
- Add support for managed locations to databricks dialect schemas (#6182) @TheCleric
- MYSQL: Create Table Optional AS (#6109) @WittierDinosaur
- More dialect documentation (#6165) @alanmcruickshank
- Better documentation on how to cross reference rules and fix a few. (#6162) @alanmcruickshank
- RF06: Case Sensitivity (#6173) @alanmcruickshank
- SparkSQL/Databricks: Support for
VARIANT
type (#6167) @keraion - sparksql: Allow
INSERT OVERWRITE
after a CTE (#6172) @keraion - postgres: Add
SET CONSTRAINTS
statement (#6171) @keraion - TSQL: Fix
MERGE
without a target alias (#6170) @keraion - TSQL: add
OFFSET
andFETCH
(#6169) @keraion - postgres: Add support for
SUBSCRIPTION
statements (#6168) @keraion - Duckdb: Add support for list comprehensions (#6166) @keraion
- Update Docs and tests for CP02 (#6163) @alanmcruickshank
- Cached property in RF06 rather than DIY (#6164) @alanmcruickshank
- CI: Update
util.py
for dbt templaterpyproject.toml
(#6160) @keraion - Auto generate dialect docs (#6153) @alanmcruickshank
- Deprecate support for dbt 1.1-1.3 (#6159) @WittierDinosaur
- ST08: Ignore
DISTINCT
s with subqueries (#6146) @keraion - Duckdb: Fix Create View coverage (#6158) @WittierDinosaur
- Snowflake: Support Password Policies (#6154) @WittierDinosaur
- Postgres: Allow negative integers in sequences (#6111) @WittierDinosaur
- Postgres: Add SHOW Statement (#6110) @WittierDinosaur
- Migrate dbt templater to pyproject.toml (#6155) @keraion
- Snowflake: Add DEFAULT option for function parameters (#6145) @keraion
- Snowflake: fixes parsing for INCLUDE_METADATA in COPY INTO statement (#6150) @jcrobak
- [SNOWFLAKE] Adding support for extended constraint definitions (#6151) @babak-l1
- Snowflake: fixes parsing for PARSE_HEADER in FILE FORMAT statement (#6149) @jcrobak
- fix: avoid strip_newlines when encounter comments in inline segments (#6140) @Cynthia-Cheng
- More robust exception handling for dbt. (#6144) @alanmcruickshank
- postgres: Add
ENCRYPTED PASSWORD
option inCREATE USER
(#6143) @keraion - Fix support of INTERVAL in ClickHouse (#6112) @Pavel-Strybuk
- Add support for Snowflake Higher-Order Functions (#6136) @amardatar
- Method extraction and more robust typing in config. (#6135) @alanmcruickshank
- Add missing databricks and sparksql ALTER statements (#6102) @pahunter90
- fix: program_counter move in JinjaTracer (#6121) (#6123) @Cynthia-Cheng
- CI: allow hidden file upload for coverage files (#6139) @keraion
- Fix: added DOWNSTREAM keyword for TARGET_LAG on dynamic tables in Snowflake. (#6131) @mvastarelli
- Trino Dialect: update ARRAY type handling (#6127) @kirkhansen
- Split apart config module (#6128) @alanmcruickshank
- Add option for allowing only a subset of rules for noqa (#6115) @keraion
- TSQL: Allow for empty catch block in try-catch (#6116) @keraion
- Change evaluation order of literals before column refs in bracketed, delimited expressions (#6117) @keraion
- Fix spacing rules for functions (#5809) @WittierDinosaur
- SQLite: Add conflict_clause to unique table constraint (#6106) @WittierDinosaur
- SQLite: Support Raise Function (#6108) @WittierDinosaur
- SQLite: Create Trigger WHEN optionally bracketed (#6107) @WittierDinosaur
- Snowflake: Added
INTERVAL
s to Frame Clause (#6105) @keraion - Postgres: Add
IS UNKNOWN
(#6094) @keraion - RF02: Handle subquery column qualification (#6091) @keraion
- tsql: Allow leading dots in table references (#6093) @keraion
[3.1.1] - 2024-08-20
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 thedocs
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
- dbt Templater: Increase
dbt deps
test fixture timeout (#6088) @keraion - SparkSQL Databricks: Add support for raw string literals (#6089) @D-to-the-K
- fixes #4855 - Add DECLARE statement in snowflake dialect (#6059) @YungChunLu
- Adding CTE to mysql views (#6077) @gone
- Rationalise config discovery routines. (#6080) @alanmcruickshank
- fix(dialect-trino): Trino ROW datatype definition in queries (#6085) @bonisb
- Databricks: Add support for GROUP BY ALL (#6082) @D-to-the-K
- fix(clickhouse): add support for tuple() and ENGINE MergeTree (#6079) @ogirardot
- Add perma-links for rules (#6066) @alanmcruickshank
- fix(clickhouse): add support for rename statement (#6073) @ogirardot
- fix(clickhouse): add support for INTO OUTFILE and supported FORMATs (#6065) @ogirardot
- LT04: Fix indentation conflict with LT02 (#6068) @keraion
- pre-commit: Disable progress bar (#6069) @keraion
- feat(clickhouse): add support for decimal(x,y), decimal32(x) and match (#6063) @ogirardot
- Big docs refactor. (#6052) @alanmcruickshank
- ST05: Handle set statement's subsequent queries (#6062) @keraion
- fix(clickhouse): add support for limit by and bracketed format (#6061) @ogirardot
- fix(clickhouse): add support for DateTime64(precision, tz) and Tuples() (#6060) @ogirardot
- Copy statement postgres v9 compatibility support (#5181) @Fullcure3
- Run dbt tests in py312 by default (#5861) @alanmcruickshank
- Extract path discovery routines from config and linter. (#6057) @alanmcruickshank
- MySQL: Added SET TRANSACTION parsing (#5781) @Xemptuous
- Support declare or replace variable statement for Databricks dialect (#6054) @urosstan-db
- Exclude Macros from a path provided (#6031) @culpgrant
- ST03: Detect CTE usage in nested
WITH
clauses (#6017) @keraion - TRINO: support FILTER after WITHIN GROUP agg expression (#6056) @rileymcdowell
- Fix/snowflake double quotes (#5727) @Starstruckk
- bq_table_function : Added functionality to parse table functionsin BigQuery (#5480) @moh-lch
- Fix Athena Partitioned By format for iceberg tables (#5399) @jverhoeks
- fix: redshift dialect, EXTENSION added (#6025) @rafalbog
- Fix ignored inline rule overrides (#5697) (#6010) @alesbukovsky
- Update the docs on RF03 (#6051) @alanmcruickshank
- RF03: Fixed some subquery reference scenarios (#6046) @keraion
- CV11: Remove rogue print statement (#6047) @keraion
- Snowflake: fixes parsing for AGGREGATE in CREATE FUNCTION statement (#6049) @hawle
- Snowflake:adds optional IF NOT EXISTS to ADD COLUMN (#6050) @hawle
- Replace types-pkg-resources with types-setuptools (#6039) @keraion
- Remove old deps for dbt templater (#6028) @alanmcruickshank
- Added GENERATED AS IDENTITY support to DataBricks dialect (#6004) @nicolb2305
- Add support for Clickhouse ORDER BY WITH FILL (#6018) @snikch
- Parse API example (#6021) @alanmcruickshank
- Add additional dateparts from DATEPART() (#6012) @yorickbouma
- MariaDB: Add support for GROUP BY ... ASC/DESC and GROUP BY ... WITH ROLLUP (#6009) @pprkut
- AM07: Handle set expressions with bracketed selects (#6005) @keraion
- MariaDB: Add support for DELETE/INSERT/REPLACE ... RETURNING (#6008) @pprkut
- MariaDB: Add mariadb specific syntax for generated columns (#6007) @pprkut
- Snowflake: fixes drop column if exists parsing rules (#5999) @hawle
- Fix TSQL Post Table Expr intrepreted as function (#6001) @ulixius9
New Contributors
- @yorickbouma made their first contribution in #6012
- @snikch made their first contribution in #6018
- @nicolb2305 made their first contribution in #6004
- @alesbukovsky made their first contribution in #6010
- @rafalbog made their first contribution in #6025
- @jverhoeks made their first contribution in #5399
- @moh-lch made their first contribution in #5480
- @Starstruckk made their first contribution in #5727
- @culpgrant made their first contribution in #6031
- @urosstan-db made their first contribution in #6054
- @ogirardot made their first contribution in #6060
- @D-to-the-K made their first contribution in #6082
- @bonisb made their first contribution in #6085
- @gone made their first contribution in #6077
- @YungChunLu made their first contribution in #6059
[3.1.0] - 2024-07-03
Highlights
This minor release has two breaking changes:
- The addition of camelCase in the extended capitalisation policy. This change removes the ability to
autodetect PascalCase, from now on PascalCase, and camelCase must be explicitly set in the config if desired. - The detection method for sqlfluff config has changed. It should now be more consistent, regardless of how deep if the directory
structure you run the command from.
This release also brings in support for the MariaDB dialect. As well as this, there are many bugfixes,
and dialect improvements.
Thanks also to the twelve new contributors whose work was included
in this release! 🎉🎉🏆🎉🎉
What’s Changed
- Snowflake: alter procedure & function updates #5997 @hawle
- Snowflake: fix connect by prior selects #5996 @hawle
- Snowflake: adds EVENT TABLE support #5995 @hawle
- Feature/MariaDB dialect #5856 @Xemptuous
- Postgres: Fix multiline concat for special literals #5965 @keraion
- ST05: Evaluate nested queries as a whole #5990 @keraion
- Naïve multi-variant jinja linting #5822 @alanmcruickshank
- Update Snowflake Unpivot Dialect to INCLUDE/EXCLUDE NULLs #5961 @danatmercury
- Snowflake: Adds parsing fixes for external access integrations in create procedure and function #5986 @hawle
- Select Analysis: Don't recursively crawl merge subselects #5981 @keraion
- Parent dir config search #5958 @j-svensmark
- Enable AM02 for bigquery, clickhouse, databricks, db2 #5979 @WittierDinosaur
- Add COMMENT ON support to Trino dialect #5984 @tunetheweb
- Snowflake: fix scriptless stored procedure parsing #5982 @hawle
- Add support for custom JinjaTracer implementations #5937 @james-johnston-thumbtack
- MySQL: Fix variable handlings inside expressions #5967 @kzosabe
- Allow anonymous PIVOTs in Databricks #5968 @TheCleric
- Rebreak: Fix meta dedent segment order #5972 @keraion
- Update athena dialect for CTAS #5974 @KulykDmytro
- fix(dialect-trino): Support Grouping Sets #5970 @eskabetxe
- BigQuery: Support various DROP statements #5966 @kzosabe
- AL07: Fix self-referencing table aliases #5963 @keraion
- Clickhouse 'create view' support #5910 @DimaSamodurov
- Capitalisation: Add camelCase #5777 @WittierDinosaur
- Exasol: Use ANSI value_clause to handle insert_stmts correctly #5959 @stephnan
- Support quoted psql parameters with
placeholder
templater #5880 @fvankrieken - Don't indent invisible template slices #5938 @james-johnston-thumbtack
- 8634: Add support for databricks named parameters #8636 @TheCleric
- Add support for Databricks TRACK HISTORY #8638 @TheCleric
- BigQuery: Support various ALTER statements #8633 @kzosabe
- ClickHouse query-level SETTINGS support #8631 @pheepa
- MySQL: Add support for generated columns #5939 @pprkut
- Exasol: add REGEXP_LIKE #5936 @stephnan
- SQLite: Over clause support for window functions #5935 @atishay
- T-SQL: Parameter assignment in SELECT vs alias #5934 @drjwelch
- SQLite: Add named parameters support #5914 @atishay
- SQLite: Support with key as a column name (as needed by json_each) #5918 @atishay
- Add loader_search_path setting to Jinja templater #5930 @james-johnston-thumbtack
- SQLite: Add support for JSON functions. Fixes #5896 #5917 @atishay
- dbt Templater: Suppress dbt 1.8 log messages #5907 @keraion
- Clarify docs around subdir handling when loading macros #5924 @james-johnston-thumbtack
- fix: add missing comma in Snowflake file types list #5923 @gvozdvmozgu
- SQLite: Specialize create view with support for temporary views. #5919 @atishay
- BigQuery: Fix array type parsing #5912 @kzosabe
- BigQuery: Support unimplemented alter table and view statements #5911 @kzosabe
New Contributors
- @atishay made their first contribution in #5919
- @drjwelch made their first contribution in #5934
- @stephnan made their first contribution in #5936
- @pprkut made their first contribution in #5939
- @pheepa made their first contribution in #8631
- @TheCleric made their first contribution in #8638
- @fvankrieken made their first contribution in #5880
- @DimaSamodurov made their first contribution in #5910
- @eskabetxe made their first contribution in #5970
- @hawle made their first contribution in #5982
- @danatmercury made their first contribution in #5961
- @Xemptuous made their first contribution in #5856
[3.0.7] - 2024-05-23
Highlights
This is primarily a fix for compatibility with dbt 1.8 . Beyond that it also brings several dialect improvements to SQLite, Bigquery, MySQL, Oracle & Clickhouse.
Thanks also to the five new contributors whose work was included in this release! 🎉🎉🏆🎉🎉
What’s Changed
- Add more minor features and fixes to sqlite dialect (#5894) @Enduriel
- Fix Clickhouse identifiers format (#5890) @Pavel-Strybuk
- Add full support for on conflict clause in SQLite (#5888) @Enduriel
- dbt Templater Plugin: dbt 1.8 support (#5892) @keraion
- Added support for oracle materialized view (#5883) @harshsoni2024
- BigQuery: Support ALTER TABLE ADD KEY statements (#5881) @kzosabe
- MySQL: Support DIV and MOD operators (#5879) @kzosabe
- Update documentation to include all templaters (#5873) @timchurch
- MySQL: Define date part function names (#5874) @kzosabe
- Remove typing_extensions requirement (#5860) @qarkai
- BigQuery: Fix EXPORT DATA statement (#5859) @kzosabe
- BigQuery: Support CREATE INDEX statements (#5858) @kzosabe
New Contributors
- @qarkai made their first contribution in #5860
- @timchurch made their first contribution in #5873
- @harshsoni2024 made their first contribution in #5883
- @Enduriel made their first contribution in #5888
- @Pavel-Strybuk made their first contribution in #5890
[3.0.6] - 2024-05-06
Highlights
This release primarily fixes an issue introduced by the recent dbt 1.7.14 release, and better support for dbt 1.7 . It also includes a range of dialect improvements and CLI refinements.
This release also includes the groundwork for linting the unrendered sections of Jinja templates. More documentation on this will be released in due course when it's ready for beta testing.
Thanks also to @padraic00 & @burhanyasar who made their first contributions in this release. 🎉🎉🏆🎉🎉
What’s Changed
- [fix_clickhouse] Temporary Table Create AS SELECT (#5843) @konnectr
- Bugfix: ST02 - Compare entire condition expression (#5850) @WittierDinosaur
- Clichouse prewhere (#5849) @konnectr
- BigQuery: Support missing DROP statements (#5848) @kzosabe
- BigQuery: various CREATE statements (#5846) @greg-finley
- BigQuery Alter Schema (#5835) @greg-finley
- Snowflake execute immediate from (#5836) @greg-finley
- Support dbt 1.7 (#5842) @WittierDinosaur
- Postgres: Create extension cascade (#5834) @greg-finley
- Postgres: Add Support for PostGIS operators (#5830) @burhanyasar
- Db2: Support additional CREATE INDEX options (#5827) @keraion
- Allow to align all siblings when respacing (#5826) @borchero
- BigQuery: Support EXECUTE IMMEDIATE (#5820) @keraion
- BigQuery: Support CREATE ROW ACCESS POLICY statement (#5821) @kzosabe
- Fix Jinja variant location correction (#5814) @alanmcruickshank
- Test cases for linter fails. (#5815) @alanmcruickshank
- BigQuery: Support nested BEGIN, Fix CREATE PROCEDURE OPTIONS (#5816) @keraion
- Bring multiple jinja variants through to the parser. (#5794) @alanmcruickshank
- Fix placeholder labelling (#5813) @alanmcruickshank
- Tighten up the return from .process() (#5810) @alanmcruickshank
- BigQuery: Support CREATE MATERIALIZED VIEW AS REPLICA OF (#5811) @kzosabe
- BigQuery: Support OPTIONS in CREATE FUNCTION statement (#5812) @kzosabe
- TSQL: fix
ALTER TABLE ... SWITCH PARTITION
(#5807) @keen85 - SparkSQL: Add functions that use UNIT keywords (#5806) @keraion
- CLI: Add
--stdin-filename
option (#5805) @keraion - TSQL: parse
CREATE/ALTER/DROP MASTER KEY
(#5802) @keen85 - Jinja Variant Configuration (#5785) @alanmcruickshank
- Small refactor in jinja templater (#5786) @alanmcruickshank
- BigQuery: Support FOR SYSTEM_TIME AS OF in CREATE TABLE CLONE statement (#5798) @kzosabe
- TSQL: support for
CREATE/ALTER PARTITION FUNCTION/SCHEME
(#5793) @keen85 - BigQuery: Support DEFAULT COLLATE segment (#5790) @kzosabe
- TSQL: support computed columns (#5792) @keen85
- Simplify one of the lexer methods (#5788) @alanmcruickshank
- Improve light colour highlight (#5784) @alanmcruickshank
- SparkSQL: Support TIMESTAMP_LTZ and TIMESTAMP_NTZ types (#5783) @padraic00
New Contributors
- @padraic00 made their first contribution in #5783
- @burhanyasar made their first contribution in #5830