Repository navigation
feat(schema): accept table-level foreign key and check constraints - #18
Merged
omer-cengel merged 2 commits intoSep 19, 2026
Merged
Conversation
omer-cengel
deleted the
feature/postgresql-table-level-constraint-parsing
branch
September 19, 2026 21:13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
An ordinary PostgreSQL schema snapshot no longer has to be rewritten before sqlcj can read it. Table-level
FOREIGN KEYandCHECKconstraints, named or unnamed, are now accepted and ignored, because they carry no information that affects the generated Java types. Previously a foreign key was rejected as an unsupported table constraint and a check constraint failed with an unfocused error.Changes
FOREIGN KEY (...) REFERENCES ...andCHECK (...), both unnamed and written asCONSTRAINT name ....NullPointerException.REFERENCESwith and without a referential action, column-levelCHECK, named table-level primary key and unique constraints, and clear rejection of a non-CREATE TABLEstatement.Scope and non-goals
Schema parsing only. The semantic schema model is unchanged: no new constraint kind is introduced, and generated Java APIs and the runtime are untouched.
ALTER TABLE, views, materialized views, sequences as modeled objects, identity columns,EXCLUDE, new SQL types, and new query shapes remain unsupported, and a non-CREATE TABLEschema statement still fails clearly.