Skip to content

Releases: sql-formatter-org/sql-formatter

prettier-sql v5.1.1

09 May 07:08
Compare
Choose a tag to compare

(Released under name prettier-sql)

Updated

  • restored itemCount setting for VScode extension
  • added JSDocs for all files
  • added conditional skips for Jest tests
  • added missing BigQuery, hive from demo page language dropdown

Fixed

  • fixed bug with CASE and Inline Block interaction
  • fixed bug with END not adding spacings before END
  • fixed bug with CommaPosition.before when the line had no preceding whitespace
  • fixed bug where AS in CAST functions would get deleted when AliasAs.never
  • fixed bug where AS would get deleted in CTE definition when AliasAs.never

prettier-sql v5.1.0

09 May 07:07
Compare
Choose a tag to compare

(Released under name prettier-sql)

Known Issues

  • newline: number does not work with [foo], [ and ] both count as 1 token each so [foo] would be 3 items
    • array[0] or map[key] do still work as they are parsed as WORD
  • BigQuery formatter fails a few tests (ALTER TABLE, tricky line comments) due to those tests not including valid BigQuery SQL, those tests are currently skipped

Added

Source:

  • consumed VSCode Extension as subrepo
  • added support for Hive language
  • added support for BigQuery language
  • added keyword dedupe on Formatter classes via Set

VSCode:

  • added command prettier-sql-vscode.format-selection
    • Formats SQL selections
  • added settings to override user/workspace tabSize and insertSpaces settings
  • added error message on format fail
  • added setting to override formatting language for sql files when SQL flavour does not have a VSCode language ID (Microsoft PostgreSQL and MSSQL Extensions)

Other:

  • demo page now deployed as git repo subtree, served from root/ (subtree of static/)

Updated

  • fixed handling of newline options
  • simplified NewlineMode config
  • fixed ; indentation when used with semicolonNewline and tenSpace configs
  • Formatter now uses numeric for loop to allow for index manipulation
  • updated linesBetweenQueries to add an extra newline (0 lines = 1 line break, no space in between)
  • renamed Formatter class files to <flavour>.formatter.ts
  • renamed test files to <flavour>.test.js

Removed

  • removed newline: hybrid config
    • newline: number now acts like hybrid

prettier-sql v5.0.1

09 May 07:06
Compare
Choose a tag to compare

(Released under name prettier-sql)

Updated

  • fixed bug when using SELECT * and denseOperators
  • fixed aliasAs option on demo page
  • fixed handling of tokens with aliasAs flag
  • demo page now prints stack trace in textarea on error

prettier-sql v5.0.0

09 May 07:06
Compare
Choose a tag to compare

(Released under name prettier-sql)

Added

Source:

  • added support for ES6 module exports with TypeScript
    • updated webpack with ts-loader for module types
    • added tsc to babel commonjs build command
  • added index.ts pass-through export

Other:

  • added GH Actions for CI build
  • added issue templates

Updated

Source:

  • updated demo page for all new options

Other:

  • renamed library to prettier-sql

Fixed

  • fixed bugs related to operator tokens

Removed

  • removed Travis CI (replaced by GH Actions)

prettier-sql v5.0.0-beta.1

09 May 07:05
Compare
Choose a tag to compare
Pre-release

(Released under name prettier-sql)

prettier-sql v5.0.0-beta

09 May 07:03
Compare
Choose a tag to compare
Pre-release

(Released under name prettier-sql)

Added

Source:

  • added option aliasAs to toggle use of AS in column, table, query aliases
    • modes: always (SELECT and table), select (SELECT only), never
  • added option newline to specify rules for inserting newlines within SQL Statements
    • modes:
      always (break before all arguments)
      lineWidth (break after line exceeds lineWidth)
      itemCount (break after n items)
      hybrid (lineWidth OR itemCount)
      never (place all Statements on one line)
  • added flag denseOperators to toggle spaces around binary operators (=, +, %, etc.)
  • added flag semicolonNewline to toggle placing semicolon on newline vs same line
  • added flag tabulateAlias for alias tabular mode, aligned on longest line, not including AS
  • added option commaPosition to specify comma placement within listed Statements
    • modes:
      before(comma goes before column),
      after(standard),
      tabular(aligned to longest line)
  • added option keywordPosition to support vertically aligned keywords
    • modes:
      standard,
      tenSpaceLeft(left-aligned within keyword column),
      tenSpaceRight(right-aligned within keyword column)
  • added flag breakBeforeBooleanOperator to toggle breaking before or after logical operators like AND and OR
  • added options parenOptions for misc rules regarding parenthesis position
    • openParenNewline - flag for opening paren on newline or same line
    • closeParenNewline - flag for closing paren on newline or same line

Other:

  • added enums for all typed config options

Files Added:

  • test/comma.js (tests for comma position)
  • test/alias.js (tests for alias AS and alias position)
  • test/keywordPosition.js (tests for keyword position modes)
  • test/newline.js (tests for newline modes)
  • test/parenthesis.js (tests for paren positions)

Updated

Source:

  • converted repo to Typescript
  • overhauled Keyword lists for all languages
  • added default options for all configs
  • updated CLI to use config file
  • renamed Keyword categories to semantic Keyword types
    • reservedTopLevelWord → reservedCommand
    • reservedTopLevelWordNoIndent → reservedBinaryCommand
    • reservedNewline → reservedDependentClause & reservedLogicalOperator
    • reservedWord → reservedKeyword
    • added reservedFunctions
  • updated Tokenizer class and token.ts to be more DRY

Removed

  • tokenTypes.ts (token types moved to TokenType enum in token.ts)
  • sqlFormatter.d.ts (converted to TypeScript)

v4.0.2

09 May 06:59
Compare
Choose a tag to compare

Support :name placeholders in PostgreSQL

v4.0.1

09 May 06:58
Compare
Choose a tag to compare

Included type definition file for TypeScript.

v4.0.0

31 Jan 18:56
Compare
Choose a tag to compare

Breaking changes:

  • Standard SQL formatter ("sql") now only supports standard SQL. This means:
    • single-quotes for strings and double-quotes for identifiers and no other quote types;
    • only ? placeholders for parameters;
    • only standard SQL operators;
    • only standard SQL sql -- and /* */ comments,
    • if you used language: "sql" before, you're likely better off switching to language: "postgresql" | "mariadb" | "mysql" | "tsql".
  • Dropped -f / --file option from CLI. Instead a positional file argument can be used, like with any normal UNIX tool).
  • Default export no more exists. Only named export of format function (and supportedDialects - used by CLI).
  • Removed FORMATTERS export.
  • "pl/sql" alias has been removed. Use "plsql" instead.

New dialects:

  • PostgreSQL support
  • MariaDB support
  • MySQL support
  • Transact-SQL support

Fixes:

  • Proper formatting of BETWEEN _ AND _
  • Bunch of additional operators supported
  • No more mixing UNIX and Windows line endings - output is always converted to UNIX LF line endings.

Internal:

  • Better whitespace handling without having a separate whitespace token.
  • Upgrade to argparse 2.0
  • Lots of refactoring and reorganization of tests.

v4.0.0-beta.0

25 Jan 10:09
Compare
Choose a tag to compare
v4.0.0-beta.0 Pre-release
Pre-release
4.0.0-beta.0