Changelog
This release contains the PDV refactor (#4111) which significantly improves the way schema parsing and validation are handled. This also fixes few long-standing behavioral issues which are listed below:
Bug fixes (which have potential breaking changes)
-
(Fixes behaviour of pathological case) The semantics of explicit
null
values inwhere
filters have changed according to the discussion in issue 704: an explicitnull
value in a comparison input object will be treated as an error rather than resulting in the expression being evaluated toTrue
. For instance:delete_users(where: {id: {_eq: $userId}}) { name }
will yield an error if$userId
isnull
instead of deleting all users. -
(Changes
null
join semantics) In a remote schema relationship query, the remote schema will be queried when all of the joining arguments are notnull
values. When there arenull
value(s), the remote schema won't be queried and the response of the remote relationship field will benull
. Earlier, the remote schema was queried with thenull
value arguments and the response depended upon how the remote schema handled thenull
arguments but as per user feedback, this behaviour was clearly not expected.
Other fixes and improvements
- server: support joining Int, String or UUID scalar types to ID type in remote relationship
- The validation of required headers has been fixed (closing #14 and #3659):
- if a query selects table
bar
through tablefoo
via a relationship, the required permissions headers will be the union of the required headers of tablefoo
and tablebar
(we used to only check the headers of the root table); - if an insert does not have an
on_conflict
clause, it will not require the update permissions headers.
- if a query selects table
Using this release
Use the following docker image:
hasura/graphql-engine:v1.3.4-beta.1