Releases: sql-formatter-org/sql-formatter
8.0.0
7.0.4
7.0.3
Warnings and deprecations
A warning is now printed when params option values are not all strings. For now just a warning. In next major version non-string values will no more be accepted.
Deprecated the following config options:
- multilineLists
- newlineBeforeOpenParen
- newlineBeforeCloseParen
These will get removed in next major version.
7.0.2
7.0.1
7.0.0
This release contains a major rewrite of how strings, identifiers, variables and parameters are handled internally. What is and isn't supported regarding these things in various dialects was also re-evaluated, resulting in removal of support for various bits of syntax that shouldn't have been there in the first place, along with addition of missing bits of syntax.
Breaking changes
- The
paramsoption is no more supported for Hive and Spark. These dialects don't actually have prepared statements - the values of whichparamsoption was meant to provide. Instead theparamsthere was used to replace substitution variables${var_name}, which however did not work correctly either (e.g. inside strings). - Dropped
@".."parameter placeholder support from SQLite - Dropped
:nameparameter placeholders from PostgreSQL - No more allowing
#and$chars in PL/SQL parameter placeholder names. - No more allowing
.inside parameter placeholder names. - No more allowing
#and@in DB2 identifiers. - No more allowing
$and@in BigQuery identifiers. - Dropped
`backtick quoted identifiers`from PL/SQL, DB2, PostgreSQL, Redshift, Transact-SQL. - Dropped
"double quoted identifiers"from Spark. - Dropped
[bracket quoted identifiers]from DB2. - Removed lots of incorrect reserved keywords from SQLite (this mainly affects keywordCase option).
- Dropped the
sql-formatter.jsbundle fromdist/dir. Now onlysql-formatter.min.jsandsql-formatter.min.js.mapare left there.
New features and improvements
- Added names of Oracle SQL functions (which are now also effected by keywordCase option).
- Added names of SQLite functions (which are now also effected by keywordCase option).
- Added support for Array literals in BigQuery
- Added support for
@,#,$characters in DB2 parameters - Added support for
$char in PostgreSQL, MariaDB, MySQL and Transact-SQL identifiers - Added support for Oracle
&namesubstitution variables - Added
${name}variable support for Hive and Spark - Added support for
@namenamed and quoted parameter placeholders to BigQuery - Added support for
:1,:2parameter placeholders to PL/SQL - Added support for
$1,$2parameter placeholders to N1QL - Implemented proper dashes support for BigQuery identifiers (e.g.
my-little-identis valid identifier, butmy--little--identis treated asmyfollowed by comment). - Added triple-quoted strings support for BigQuery (e.g.
"""some string"""and'''some string''') - Added hex-strings support to standard SQL, SQLite, Spark, PostgreSQL, MariaDB and MySQL
- Added support for PostgreSQL bit-strings.
- Added several prefixed string types for DB2 (
N'...',G'...',GX'...',UX'...',U&'...') - Added several prefixed strings to BigQuery (
R"...",B"...",RB"...")
Bugfixes
- Fixed incorrectly inserted spaces inside map keys #230
- Fixed incorrect string token regexes #211
- All MySQL function names are now properly uppercased with
keywordCase:upperoption.
Performance improvements
- Formatting long SQL strings is now much faster, fixing a long-time performance problem. #70
- Calling the
format()function repeatedly is now also much faster as we're caching the construction of tokenizer.
6.1.5
6.1.4
6.1.3
Mostly a changes related to repository transfer from github.com/zeroturnaround to github.com/sql-formatter-org.
-
Dropped
.and@characters support from PL/SQL identifiers (which weren't valid anyway). -
Dropped support for TypeScript < 4.5.
Broken release because of internal import paths refactoring. Fixed in 6.1.5.
6.1.2
Bugfixes:
- Add missing PostgreSQL JSON operators
#>and#>>#217 - Don't add extra newline before a lonely semicolon when using
newlineBeforeSemicolon: true
Internals:
- Rewrite of SQL string building logic
- Remove ZWS-replacement hack from
indentStyle: tabular*token formatting - Store both raw and clean values inside tokens