graphql-engine/server/src-lib/Hasura/GraphQL/Execute
Antoine Leblanc 49d0594759 [server] prune join fields of remote relationships to remote schema (close hasura/graphql-engine#8345)
## Description

This PR fixes hasura/graphql-engine#8345: when creating the final representation of a remote relationship to a remote schema (a `RemoteJoin`), we would mistakenly label ALL join fields in the selection set as being relevant to that one relationship: if there are more than one remote relationship to process in that selection set, that would be the union of all their join fields. The problem with this error is that, when processing remote relationships, we correctly ignore all the ones for which at least one join key is null. Consequently, this error would result in us ignoring remote relationships for which an _unrelated_ join key was null, resulting in that data missing in the final JSON result.

This PR simply ensures that the aggregation of fields that are passed to `createRemoteJoin` is pruned to only contain the fields relevant to the join being created. This is a very small change, and the bulk of this PR is the regression tests.

## Changelog

__Component__ : server
__Type__: bugfix
__Product__: community-edition

### Short Changelog

fix remote relationship to remote schema sometimes being erroneously null when multiple relationships are defined on the same table / graphql object ([#8345](https://github.com/hasura/graphql-engine/issues/8345))

### Long Changelog

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6420
GitOrigin-RevId: eb54462724b007f80b674dcf234adf6d9cfaaf79
2022-10-20 00:11:51 +00:00
..
Action server: refactor ActionWebhookResponse type 2022-07-25 07:07:51 +00:00
RemoteJoin [server] prune join fields of remote relationships to remote schema (close hasura/graphql-engine#8345) 2022-10-20 00:11:51 +00:00
Subscription Clean up pg-client-hs 2022-10-07 11:56:55 +00:00
Action.hs Webhook Transforms: Move RequestCtx into a type family 2022-10-16 03:55:06 +00:00
Backend.hs Import pg-client-hs as PG 2022-09-20 19:55:51 +00:00
Common.hs server: add api limit - batch limit 2022-10-13 16:54:26 +00:00
Inline.hs refactor(tests): Remove use of unsafeCoerce 2022-09-07 11:22:14 +00:00
Instances.hs Rename Data Wrapper to Data Connector [GDW-89] 2022-05-02 05:04:07 +00:00
Mutation.hs server: Remove QErr and Code dependencies from the schema parsers. 2022-07-27 12:26:44 +00:00
Query.hs server: Remove QErr and Code dependencies from the schema parsers. 2022-07-27 12:26:44 +00:00
Remote.hs Remove RQL/Types.hs 2022-04-27 13:58:47 +00:00
RemoteJoin.hs server, pro: actually reformat the code-base using ormolu 2021-09-23 22:57:37 +00:00
Resolve.hs server: Metadata origin for definitions (type parameter version v2) 2022-06-28 15:53:44 +00:00
Types.hs server, pro: actually reformat the code-base using ormolu 2021-09-23 22:57:37 +00:00