Skip to content

Conversation

@kyleconroy
Copy link
Collaborator

Add support for parsing named table constraints (CONSTRAINT name ...)
including PRIMARY KEY, UNIQUE, FOREIGN KEY, and CHECK constraints.

Changes:

  • Add parseNamedTableConstraint() for CONSTRAINT name ... syntax
  • Add parseUnnamedTableConstraint() for constraints without names
  • Add parsePrimaryKeyConstraint() with column sort order support
  • Add parseUniqueConstraint() with CLUSTERED/NONCLUSTERED
  • Add parseForeignKeyConstraint() with REFERENCES clause
  • Add parseCheckConstraint() for CHECK expressions
  • Add parseColumnWithSortOrder() for ASC/DESC column specifications
  • Fix foreignKeyConstraintToJSON() to output ReferencedTableColumns
  • Always output DeleteAction/UpdateAction with default "NotSpecified"

Enables tests:

  • BaselinesCommon_TSqlParserTestScript3
  • TSqlParserTestScript3

Add support for parsing named table constraints (CONSTRAINT name ...)
including PRIMARY KEY, UNIQUE, FOREIGN KEY, and CHECK constraints.

Changes:
- Add parseNamedTableConstraint() for CONSTRAINT name ... syntax
- Add parseUnnamedTableConstraint() for constraints without names
- Add parsePrimaryKeyConstraint() with column sort order support
- Add parseUniqueConstraint() with CLUSTERED/NONCLUSTERED
- Add parseForeignKeyConstraint() with REFERENCES clause
- Add parseCheckConstraint() for CHECK expressions
- Add parseColumnWithSortOrder() for ASC/DESC column specifications
- Fix foreignKeyConstraintToJSON() to output ReferencedTableColumns
- Always output DeleteAction/UpdateAction with default "NotSpecified"

Enables tests:
- BaselinesCommon_TSqlParserTestScript3
- TSqlParserTestScript3
@kyleconroy kyleconroy merged commit 2af7220 into main Dec 23, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants