Releases: nene/sql-parser-cst
Releases · nene/sql-parser-cst
0.19.0
Breaking changes
- Unary
+
is now parsed as an operator, not as part of a number data_type
has been renamed tonamed_data_type
select_clause
columns are now optionalSymbolOperator
type is now plain string (because it needs to accommodate custom PostgreSQL operators)RowConstructor
type is now part ofExpr
type
SQLite bugfixes
- Support unicode letters in SQLite identifiers
Improved PostgreSQL support
- Use the actual Postgres reserved words list
- Nested block-comments
- Remove incorrect #-comment support from Postgres
- Strings:
- Dollar-quoted strings
- String with C-style escapes
- Unicode strings
- Repeated-quote escapes in E-strings
- Bit-string blobs
- Identifiers:
- Unicode identifiers
- Literals:
- JSON & JSONB literals
- INTERVAL literals
- ROW() constructor
- EXTRACT() expression
- Special paren-less functions
- All keywords can be used in explicit aliases
- Operators:
- IS UNKNOWN
- IS DISTINCT FROM
- ISNULL
- NOTNULL
- % operator
- ^ operator
- || operator
- Bitwise ~ and # operators
- ILIKE
- BETWEEN SYMMETRIC
- SIMILAR TO
- IS NORMALIZED
- AT TIME ZONE
- COLLATE
- Array-access operator
- Array-slice operator
- :: cast operator
- All the builtin PostgreSQL operators
- Almost fully correct PostgreSQL operator precedence
- Types:
- All builtin data types
- Special Object Identifier types
- multi-dimensional array types
- TIME types WITH/WITHOUT TIME ZONE
- INTERVAL type
- Custom data types
- SELECT support:
- Support NULLS FIRST/LAST
- LIMIT offset,count is not supported
- Support FETCH..OFFSET
- Support FOR-clause
- Support INTO TABLE clause
- Support empty SELECT
- Support GROUP BY DISTINCT
- Support LIMIT ALL
- Support basic TABLE clause
- Basic TRUNCATE support
- Basic ANALYZE support
- Basic EXPLAIN support
- Basic EXECUTE support
Improved MySQL & MariaDB support
- Support FOR-clause in MySQL and MariaDB
- Support LOCK IN SHARE MODE in MySQL/MariaDB
0.18.0
Breaking changes
columns
field has been moved frominsert_clause
to newinsert_columns_clause
.
This is because MySQL allowspartition_clause
to be optionally placed betweeninsert_clause
and the list of columns.truncateTableKw
intruncate_stmt
has been replaced withtruncateKw
andtableKw
fields.
Improved MySQL/MariaDB support
- Support INSERT..SET
- Support PARTITION clause in INSERT
- Support TABLE statements
- Support ON DUPLICATE KEY UPDATE clause
- Support row and columns aliases in INSERT
- Support VALUES() function
- Support RENAME TABLE statement
- Support basic ALTER VIEW
- Support unicode and $ in identifiers
- Allow identifiers to start with $
Initial PostgeSQL support
Experimental support for Postgres. This is really more on the level of "please don't use it".
- double-quoted identifiers
- HEX numbers
- Basic Postgres strings
- basic INSERT statement
- For now support the same data types as SQLite
- Basic transactions
- unicode and $ in identifiers
- binary numbers
- octal numbers
- Basic array literals