A new approach for deciding which union members to return! #362
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.
Description
Excerpt from documentation which explains the change in detail:
Which union members are returned by a Query are dictated by the
where
filter applied.For example, the following will return all user content, and you will specifically get the title of each blog.
Whilst the query below will only return blogs. We could for instance use a filter to check that the title is not null to essentially return all blogs:
Conceptually, this maps to the
WHERE
clauses of the subquery unions in Cypher. Going back to the first example with nowhere
argument, each subquery has a similar structure:Now if we were to leave both subqueries and add a
WHERE
clause for blogs, it would look like this:As you can see, the subqueries are now "unbalanced", which could result in massive overfetching of
Post
nodes.So, when a
where
argument is passed in, we only include union members which are in thewhere
object, so it is essentially acting as a logical OR gate, different from the rest of ourwhere
arguments:Issue
This is a new approach for the following PRs, which don't make so much sense for the new count queries and connection totalCount:
Checklist
The following requirements should have been met (depending on the changes in the branch):