Skip to content

0.21.0

Compare
Choose a tag to compare
@nene nene released this 06 Jan 22:03
· 346 commits to master since this release

Breaking changes

  • Replace distinctKw, hints and asStructOrValueKw fields in select_clause with modifiers field
    • Rename mysql_hint to mysql_modifier
    • Parse DISTINCT and ALL not as plain keywords, but as new separate nodes
    • Parse AS STRUCT / VALUE as select_as_struct / select_as_value nodes.
  • Rename hints field to modifiers in insert_clause, update_clause, delete_clause.
  • Replace plain ASC/DESC keyword with sort_direction_* nodes (both in order_by_clause and constraint_primary_key)
  • Change tablesample_expr to allow for custom methods, changing type of tablesampleKw field
  • Remove single ROLLUP() in GROUP BY restriction, changing the type of columns field

PostgreSQL support

  • Query syntax:
    • Support UPDATE, INSERT, DELETE inside WITH clause
    • Support GROUP BY GROUPING SETS, CUBE(), ()
    • Support CYCLE clause in WITH
    • Support SEARCH clause in WITH
    • Support ORDER BY .. USING operator
    • Support column aliases in table aliases
    • Support table function with column definitions
    • Support ROWS FROM
    • Support LATERAL subqueries and table functions
    • Support REPEATABLE clause in TABLESAMPLE
    • Support table * and ONLY table inheritance syntax
    • Support SELECT DISTINCT ON ()
  • Operators:
    • Support := syntax for named function arguments
    • Support ~ as both a unary and binary operator
    • Support OPERATOR() syntax

Bugfixes

  • Properly support full table names in TABLE clause/statement
  • Restrict the type of expr field in common_table_expr node
  • Remove ! operator support from SQLite
  • Fix ~ operator precedence in PostgreSQL

Internals

  • Switch to Peggy 3