-
Notifications
You must be signed in to change notification settings - Fork 5
Fields of composite types are always nullable #565
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
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
Strictly speaking, fixing this will require a configuration version bump, since it changes the schema :-/ |
I'm fine with approving this, I would just like to see ndc-test pass with the changes here: https://github.com/hasura/ndc-postgres/pull/564/files#r1709631720 |
soupi
approved these changes
Aug 12, 2024
github-merge-queue bot
pushed a commit
that referenced
this pull request
Aug 13, 2024
### What PR #565 fixed field nullability of composite type fields, but neglected to treat the similar issue that exists for arrays. In Postgres, any array type (e.g. `int4[]`, `text[]`, etc.) may contain elements which are null. The type system does not support declaring arrays with non-null elements. This PR fixes that issue. ### How Whenever we have to translate an ndc-postgres array type to an ndc-spec array type in the schema generation we annotate the element type as being nullable.
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.
What
We used to mark fields of composite type as not-nullable in the NDC schema.
This is wrong. Nullability is a property of columns of tables, not of fields of record types.
This is also demonstrated by the following transcript:
This also means that fields of table type on a composite type cannot respect the column nullabilities specified on the table, because those are not part of the table's type! This should be documented.
How
We simply make the schema endpoint always return nullable fields of composite types.