Releases: sql-formatter-org/sql-formatter
Releases · sql-formatter-org/sql-formatter
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
params
option is no more supported for Hive and Spark. These dialects don't actually have prepared statements - the values of whichparams
option was meant to provide. Instead theparams
there 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
:name
parameter 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.js
bundle fromdist/
dir. Now onlysql-formatter.min.js
andsql-formatter.min.js.map
are 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
&name
substitution variables - Added
${name}
variable support for Hive and Spark - Added support for
@name
named and quoted parameter placeholders to BigQuery - Added support for
:1
,:2
parameter placeholders to PL/SQL - Added support for
$1
,$2
parameter placeholders to N1QL - Implemented proper dashes support for BigQuery identifiers (e.g.
my-little-ident
is valid identifier, butmy--little--ident
is treated asmy
followed 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:upper
option.
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