Skip to content

Add table-level constraint parsing for CREATE TABLE#49

Merged
kyleconroy merged 1 commit intomainfrom
claude/fix-next-test-L0yVc
Dec 23, 2025
Merged

Add table-level constraint parsing for CREATE TABLE#49
kyleconroy merged 1 commit intomainfrom
claude/fix-next-test-L0yVc

Conversation

@kyleconroy
Copy link
Copy Markdown
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.

2 participants