graphql-engine/server/lib
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
..
aeson-ordered server: convert Metadata to DTO (smaller PR) 2022-08-01 12:50:00 +00:00
api-tests [server] prune join fields of remote relationships to remote schema (close hasura/graphql-engine#8345) 2022-10-20 00:11:51 +00:00
dc-api Structured Error Protocol for Data Connectors Agents - GDW-137 2022-10-11 00:26:24 +00:00
error-message server: Move the schema parsers to their own library. 2022-08-05 13:53:39 +00:00
graphql-parser-hs Print the definitions of the types that are conflicting 2022-10-03 21:13:18 +00:00
hasura-prelude Remove some unnecessary OPTIONS_GHC pragmas 2022-10-07 17:27:08 +00:00
pg-client-hs Remove some unnecessary OPTIONS_GHC pragmas 2022-10-07 17:27:08 +00:00
schema-parsers server: switch to ghc 9.2 (2nd try) 2022-10-06 09:09:01 +00:00
test-harness [server] prune join fields of remote relationships to remote schema (close hasura/graphql-engine#8345) 2022-10-20 00:11:51 +00:00
common.yaml server: Move the schema parsers to their own library. 2022-08-05 13:53:39 +00:00