Optimized tokenizer. With large inputs the formatter is now considerably faster.
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 which params option was meant to provide. Instead the params 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 from dist/ dir. Now only sql-formatter.min.js and sql-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, but my--little--ident is treated as my 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"...")
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps sql-formatter from 2.3.3 to 7.0.2.
Release notes
Sourced from sql-formatter's releases.
... (truncated)
Commits
2e47295
Release v7.0.25d29091
Support array subscript operator in BigQuery1bb5d23
Merge PR #242: Move AliasAS processing out of formatting phase6e4975d
Make StatementFormatter methods privatebebe4dd
Add/remove AS tokens before the formatting phase483a4a5
Merge branch 'parenthesis-token-names' into masteredc8131
Restrict possible open/close paren characters44a7527
Rename parenthesis formatting methods529949f
Rename Tokenizer blockStart/End configs to open/closeParensde0e31c
Rename BLOCK_START/END tokens to OPEN/CLOSE_PARENDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)