Highlights
- Rule AM09: Handle ambiguous LIMIT/OFFSET without ORDER BY (non-deterministic results)
- Rule ST12: Handle consecutive semicolons
- Lots of dialect improvements
- Lots of bugfixes
This release has 95 contributions in it!
Also, welcome to the twenty three new contributors! Thanks for your contributions!
What’s Changed
- MySQL/MariaDB: Define Index Hints and Select Partitions as PostTableExpressionGrammar instead of FromClauseTerminatorGrammar (#7195) @franloza
- Databricks: Add "use schema"/ "use catalog" permission for grants (#7186) @VictorAtIfInsurance
- Databricks: Adds support for ALTER TABLE ADD COLUMN (#7187) @franloza
- BigQuery: allow multiple aliases in FROM for RF01 (#7188) @annebelleo
- [DATABRICKS] add 'UNSET/SET TAG ON' grammar sequence (#7190) @VictorAtIfInsurance
- Redshift: Adds EXCEPT set operator support (#7184) @franloza
- BigQuery: allow pipe syntax in CTEs (#7180) @annebelleo
- MySQL/MariaDB: Support column list in derived table alias (#7179) @keraion
- Logo Updates (#7181) @alanmcruickshank
- Add support for FlinkSQL SET statements (#7175) @SakuraSound
- Correct comment name in BigQuery test (#7174) @annebelleo
- Snowflake: add
ALTER DYNAMIC TABLEsupport (#7176) @keraion - AL09: fix aliases without spaces after column name (#7173) @keraion
- LT01: Fix alias alignment with templates (#7088) @jorenby
- Athena: Adds Athena-specific ALTER TABLE statement (#7170) @franloza
- bigquery: fix
escape_replacementscontrol character value (#7165) @keraion - TSQL: Support Computed Columns in Table Variables (#7167) @keraion
- cli: support
.sqlfluffignorewhen usingstdin-filename(#7168) @keraion - Add support for PostgreSQL OPERATOR() syntax (#7163) @G26karthik
- SET LANGUAGE statement segment added to tsql dialect. (#7161) @vasiliyk
- Add new check for ambiguous
LIMITorOFFSETwithoutORDER BY(non-deterministic results) (#6749) @d33bs - TSQL: Refactor cursor statements (#7130) @peterbud
- TSQL: Allow consecutive semicolons & add rule ST12 (warn and fix) (#7094) @axellpadilla
- Clickhouse dialect: add CREATE USER new_user IDENTIFIED BY 'secret'; (#7158) @LeviticusNelson
- MariaDB: Adds OR REPLACE clause support for CREATE PROCEDURE and CREATE FUNCTION (#7148) @franloza
- Fix typo (#7151) @matthiasbeyer
- postgres: Add
DROP COLLATIONstatement (#7143) @keraion - oracle: Support
COLUMN_VALUEas a bare function (#7144) @keraion - MySQL: Allow if not exists in create procedure (#7133) @Enterprize1
- oracle: Add support for utf8 identifiers (#7145) @keraion
- CV11: Ignore trino and athena dialects (#7146) @keraion
- fix[sparksql]: Add support for INSERT INTO REPLACE WHERE/USING statements (#7147) @KikeSenpai
- Per Issue 5567 update _common_directives_for_xml to AnyNumberOf (they… (#7139) @stephen-zabel-q2
- extend databricks COMMENT ON to include columns (#7140) @VictorAtIfInsurance
- Streamline release commands (#7005) @WittierDinosaur
- Fix false positive CV05 detection for T-SQL variable assignments in SELECT statements (#7134) @danparizher
- Add
partitioned byandcluster bysegments to SparkSQL Create view statement (#7137) @KikeSenpai - Mariadb: Enhance CreateIndex Statement (#7127) @WittierDinosaur
- Snowflake: Support warehouse resource constraints (#7128) @WittierDinosaur
- TSQL: Rework batch and statement handling (#7113) @peterbud
- fix: allow
STORINGsegment in BigQueryCREATE VECTOR INDEX(#7119) @agkphysics - Support brackets in CASE statement condition (#7122) @adam-carruthers
- Redshift: Adds NONATOMIC clause support for CREATE PROCEDURE (#7123) @franloza
- chore: rename files in trino to comment on (#7125) @benfdking
- Fix mypy error in nested_combine call (#7126) @WittierDinosaur
- Postgres: Add support for pg_trgm similarity operators (#7086) @franloza
- Resolve unused CTE bug (#7095) @reteps
- Postgres: Fix parse failure on VARIADIC function calls with named parameters (#7115) @franloza
- Postgres: Support text search configuration statements (#7117) @franloza
- Add support for T-SQL binary constants notation (0x, 0xAE, etc.) (#7112) @viblo-majority
- ClickHouse: Add support for DROP PARTITION and REPLACE PARTITION (#7111) @yuukikuno
- Snowflake: add multi_line toggle on csv type copy into (#7107) @julianahrens
- Postgres: Fix dialect to allow CTEs in COPY (#7085) @franloza
- feat(snowflake): Snowflake Scripting IF statement support to dialect (#7050) @JakeNHelfrich
- Cancel outdated CI builds to save resources (#7078) @saulotoledo
- feat(snowflake): Snowflake Scripting RAISE statement support to dialect (#7051) @JakeNHelfrich
- Oracle: Fix nested CASE expression parsing in SELECT statements (#7076) @saulotoledo
- Oracle: Fix BULK COLLECT INTO parsing in SELECT statements (#7077) @saulotoledo
- Snowflake: Relax
DELTAto non-reserved keyword (#7031) @keraion - Oracle: Add basic support for
ALTER INDEXstatements (#7046) @saulotoledo - Oracle: Add EXECUTE IMMEDIATE statement support (#7048) @saulotoledo
- Oracle: Add indent rules for basic control structures (#7058) @saulotoledo
- Oracle: Add support for ** (power) and MOD operators in expressions (#7061) @saulotoledo
- Oracle: Indent multiline PL/SQL after IS/AS keywords (#7065) @saulotoledo
- feat(sparksql): add create view clauses (#7056) @HermanPlay
- dbt templater: Handle multiprocessing with subdirectory projects (#7029) @keraion
- LT15: Handle newlines that exists in templated areas (#7032) @keraion
- Snowflake: Add support for
SELECT INTO(#7033) @keraion - ANSI: Update
frame_clauseto support allinterval_expressions(#7034) @keraion - Snowflake: Support
CREATE NETWORK RULEstatement (#7035) @keraion - CV06: Skip non-semicolon terminators (#7054) @saulotoledo
- Oracle: Fix assignment operator (:=) parsing (#7067) @saulotoledo
- SQLite: Fix WHEN and BEGIN/END indentation (#7068) @saulotoledo
- Oracle: Add indentation support for DECLARE block contents (#7070) @saulotoledo
- Adds Redshift
CREATE DATABASEsyntax (#7055) @manmartgarc - fix confusion between "toml" and "tomli" (#7059) @a-detiste
- Oracle: Add support for DEFAULT sequence.NEXTVAL in column definitions (#7047) @saulotoledo
- Oracle: Support
ALTER TABLE ... RENAME CONSTRAINT(#7045) @saulotoledo - Change "semicolon" for "colon" for subsections delimiter in setting_configuration.rst (#7040) @seigneur101
- Databricks/SparkSQL: Handle DDL
CLUSTER BYclause (#7021) @keraion - ST09: Handle mixed quoted table aliases (#7017) @keraion
- Oracle: Support multiple
EXCEPTION WHENclauses (#7018) @keraion - Snowflake: Support
SET tuplewith a single expression (#7019) @keraion - MySQL/MariaDB: Support
INVISIBLE/VISIBLEcolumn constraints (#7020) @keraion - Redshift: Add
ENCODEforALTER TABLE ADD COLUMN(#7022) @keraion - MySQL: Support
ALTER COLUMNclause (#7026) @keraion - Databricks/Spark: Simplify and handle order of
column_properties(#7027) @keraion - Add support for RENAME in ALTER FOREIGN TABLE in Postgres (#7028) @Singletoned
- In User Mapping ensure that PUBLIC doesn't get parsed as an identifier (#7025) @Singletoned
- Oracle: Add
RELIES_ONandPOLYMORPHICkeywords (#7015) @keraion - Postgres: Fix false positives RF01 on CREATE/ALTER POLICY statements (#7012) @franloza
- Postgres: Fix dialect to properly trigger RF04 for column names (#7006) @franloza
- LT14: Ignore keywords in pipe operators (#7009) @keraion
- Snowflake: fix parsing
LIMITwhen not a limit clause (#7010) @keraion - Trino: support map data type (#7008) @ykicisk