Releases: nene/sql-parser-cst
Releases · nene/sql-parser-cst
0.28.1
0.28.0
Breaking changes
- Use
TriggerEventExpr
instead of plainTriggerEvent
(d5ca16d) - Extract
timeKw
fromTriggerEvent
(9e0d309) - Extract
TriggerTarget
fromTriggerEvent
(d37a94b) - Rename
TriggerCondition
toWhenClause
(7cd0758) - Replace
CreateTriggerStmt.eachKw
and.when
fields with.clauses
(56a69b4) - Don't parse unicode escapes in PostgreSQL unicode strings and identifiers (f715a15)
Improved PostgreSQL support
- Support
FILTER()
in aggregate functions - Revert an accidental change to
row_constructor
syntax - Support PostgreSQL
TRIGGER
syntax:- Support
CREATE TRIGGER
- Support
REFERENCING
clause inTRIGGER
- Support trigger timing clause
- Support trigger
FROM
clause - Support
FOR EACH
clause - Support
TRUNCATE
event
- Support
- Support
ALTER PROCEDURE
&ALTER FUNCTION
- Support newline-separated strings,
E'strings'
andU&'strings'
- Support
UESCAPE
in unicode strings & identifiers - Support underscores in number literals
- Update keywords list for PostgreSQL 16 (add
SYSTEM_USER
)
0.27.1
0.27.0
Breaking changes
- Various changes to
AlterActionAddConstraint
node to support BigQueryADD CONSTRAINT IF NOT EXISTS
syntax (72dadd1) - Moved
ReindexStmt
fromAllSqliteNodes
toAllIndexNodes
(79b68c2) - Moved
IndexSpecification
fromAllConstraintNodes
toAllIndexNodes
(2ba172f) - Moved
IndexIncludeClause
fromAllConstraintNodes
toAllIndexNodes
to supportINCLUDE (...)
inCREATE INDEX
(bde541a) CreateIndexStmt.name
field is now optional (e90647d)- The
CreateViewStmt.columns
field now contains list ofColumnDefinition
nodes instead of just list ofIdentifier
nodes. (1ba2459)
Support for latest BigQuery (as of 31. January 2024)
PRIMARY KEY
constraintFOREIGN KEY
constraintALTER TABLE .. DROP PRIMARY KEY
ALTER TABLE .. DROP CONSTRAINT
NOT ENFORCED
modifier inPRIMARY/FOREIGN KEY
ALTER TABLE .. ADD CONSTRAINT IF NOT EXISTS
ALTER VIEW .. ALTER COLUMN .. SET OPTIONS()
OPTIONS()
inCREATE VIEW
columns listCREATE MATERIALIZED VIEW AS REPLICA OF
VECTOR_SEARCH()
functionCREATE VECTOR INDEX
GROUPING()
functionGROUP BY .. GROUPING SETS / CUBE / ROLLUP
- quantified
LIKE
operator
Improved PostgreSQL support
CREATE INDEX
statementDROP INDEX
statementALTER INDEX
statementREINDEX
statement- Parameters for
opclass
(mainly in the context ofCREATE INDEX
)
0.26.0
0.25.0
Breaking changes
- Introduced
AlterTableAllInTablespaceStmt
alongsideAlterTableStmt
statement. This means the addition ofAllAlterTableNodes
andAllAlterTableStatements
types (7c546fd) - Renamed
WithStorageParametersClause
toPostgresqlWithOptions
(4052303) - Renamed
AlterActionSetOptions
toAlterActionSetBigqueryOptions
(b21538f) - All
VIEW
nodes are now exported asAllViewNodes
, theAllViewStatements
is still exported, but no more includes all
view-related nodes. (0fcf413) - Replaced
*Kw
fields inCreateViewStmt
withkinds: ViewKind[]
(c8beba7) - Renamed
CreateTableTablespaceClause
toTablespaceClause
(f2f6b79) - Renamed
CreateTableWithDataClause
toWithDataClause
(32c64f1) - Replaced
materializedKw
field withkind
inCreateViewStmt
&DropViewStmt
(b636853) - Renamed
DropSchemaStmt.name
field toschemas
(e41a9fc) AlterViewStmt.actions
now containsListExpr
(4ab708d)- Renamed
AlterActionRenameTable
toAlterActionRename
(2aa2314) - Renamed
CreateSchemaStmt.options
field toclauses
(a3aa401) CreateSchemaStmt.name
field is now optional (397b146)- Renamed
TruncateStmt.cascadeOrRestrictKw
field tobehaviorKw
(0d7eee4)
Improved PostgreSQL support
- Finalized support for
CREATE TABLE
- Full support for
CREATE FOREIGN TABLE
- Full support for
ALTER TABLE
- Full support for
CREATE/DROP/ALTER SEQUENCE
- Full support for
CREATE/ALTER/DROP VIEW
- Full support for
CREATE/ALTER/DROP MATERIALIZED VIEW
- Full support for
REFRESH MATERIALIZED VIEW
- Full support for
ALTER/DROP SCHEMA
- Nearly full support for
CREATE SCHEMA
(only missing support of nestedCREATE TRIGGER
andGRANT
statements)
0.24.0
Breaking changes
- Removed
procedure_param
node. Thefunction_param
node is now used in bothCREATE FUNCTION
andCREATE PROCEDURE
statements. function_param
node now contains themode
field that was part ofprocedure_param
.name
field offunction_param
is now optional.
Improved PostgreSQL support
- Full support for
CREATE FUNCTION
DROP FUNCTION
CREATE PROCEDURE
DROP PROCEDURE
- See #63 for details.
Other changes
block_stmt
node now contains optionalatomicKw
field. To allow for PostgreSQL-specificBEGIN ATOMIC ... END
syntax.
0.23.0
Breaking changes
- The
constraint_deferrable
node has been replaced with array ofconstraint_modifier
nodes.
Accordingly thedeferrable
field inconstraint
node has been renamed tomodifiers
. onConflict
field has been replaced withclauses
array.
The affects:constraint_primary_key
,constraint_unique
,constraint_check
,constraint_not_null
.- Various
*Kw
fields have been replaced withkind
field that containstable_kind
node:- in
create_table_stmt
:temporaryKw
,unloggedKw
,externalKw
,snapshotKw
,virtualKw
. - in
drop_table_stmt
:temporaryKw
,externalKw
,snapshotKw
. - in
into_table_clause
:temporaryKw
,unloggedKw
.
- in
- The
sort_specification
node has been replaced withindex_specification
node in places that reference indexes.
This effects:constraint_primary_key
,create_index_stmt
,upsert_clause
.
Bugfixes
- MySQL column
KEY
constraint is now parsed asconstraint_primary_key
(instead ofconstraint_index
). doKw
field inupsert_clause
now has correct type:Keyword<"DO">
(instead ofKeyword<"DOR">
).
Improved MySQL/MariaDB support
-
Improved
CREATE TABLE
support:- Support index name in
FOREIGN KEY
- Support
TABLESPACE
&STORAGE
options - Support
UNION
option - Support
[NOT] ENFORCED
modifier onCHECK()
constraint
- Support index name in
-
Improved
ALTER TABLE
support:- Support
ALTER COLUMN
(SET {VISIBLE | INVISIBLE}
) - Support
ADD CONSTRAINT
- Support
DROP CONSTRAINT
- Support
ALTER CONSTRAINT
- Support
Improved PostgreSQL support
-
Almost complete
CREATE TABLE
support:- Support
DEFAULT expr
- Support
STORAGE
constraint - Support
COMPRESSION
constraint - Support
GENERATED AS IDENTITY
- Support
UNIQUE NULLS [NOT] DISTINCT
- Support
SET NULL/DEFAULT
with columns insideREFERENCES
action - Support
GLOBAL|LOCAL TEMP TABLE
- Support
UNLOGGED TABLE
- Support
NO INHERIT
constraint modifier - Support
CREATE TABLE .. INHERITS ()
- Support
PARTITION BY
clause - Support
PARTITION OF
- Support
MINVALUE & MAXVALUE FOR VALUES
- Support
FOR VALUES WITH ... MODULUS & REMAINDER
- Support
ON COMMIT
clause - Support
TABLESPACE
clause - Support
USING
clause - Support
WITH
clause - Support
WITHOUT OIDS
clause - Support
CREATE TABLE .. OF type
- Support
EXCLUDE
constraint - Support
LIKE
clause inside columns list - Support index parameter clauses
- Support
WITH OPTIONS
column definitions - Support
CREATE TABLE AS .. WITH [NO] DATA
- Support
-
Basic
ALTER TABLE
support:- Support
[ONLY] name [*]
- Support
CASCADE|RESTRICT in ALTER TABLE .. DROP COLUMN
- Support
ALTER COLUMN .. SET NOT NULL
- Support basic
ALTER COLUMN .. SET DATA TYPE
- Support
ADD CONSTRAINT
- Support
DROP CONSTRAINT
- Support
ALTER CONSTRAINT
- Support
RENAME CONSTRAINT
- Support
VALIDATE CONSTRAINT
- Support
-
Basic
CREATE/DROP INDEX
support
0.22.1
0.22.0
Breaking changes
- Renamed
TruncateStmt.table
field totables
which now containsListExpr
- Moved
ReturningClause
andClusterByClause
types fromAllSelectClauses
toAllOtherClauses
- Renamed
UpsertClause.columns
field toconflictTarget
- Divided
MergeStmt
toMergeStmt
andMergeClause
(to accommodateWithClause
insideMergeStmt
) - Renamed
MergeActionInsert.values
field toclauses
Improved PostgreSQL support
- Full support for
UPDATE
statement- Support
[ONLY] table [*]
- Support
SET col = DEFAULT
- Support
WHERE CURRENT OF
clause
- Support
- Full support for
DELETE
statement- Support
[ONLY] table [*]
- Support
USING
clause - Support
WHERE CURRENT OF
clause
- Support
- Full support for
TRUNCATE
statement- Support
[ONLY] table [*]
- Support multiple tables
- Support
CASCADE/RESTRICT
- Support
RESTART/CONTINUE IDENTITY
- Support
- Full support for
MERGE
statement- Support
WITH
clause - Support
[ONLY] table [*]
- Support
OVERRIDING
clause - Support
INSERT DEFAULT VALUES
- Support
DO NOTHING
action
- Support
- Almost full support for
INSERT
statement- Support
ON CONFLICT
clause - Support
ON CONFLICT (expr)
- Support
ON CONFLICT ON CONSTRAINT
- Support
OVERRIDING
clause
- Support
Bugfixes
- Fixed some serious performance regressions, especially when parsing PostgreSQL (#52)
YEAR_MONTH
keyword is now case-insensitive (like all others)