Closed milessabin closed 8 months ago
Attention: 23 lines
in your changes are missing coverage. Please review.
Comparison is base (
63a6f10
) 73.22% compared to head (f2d2da2
) 73.80%.
Files | Patch % | Lines |
---|---|---|
modules/core/src/main/scala/queryinterpreter.scala | 73.33% | 16 Missing :warning: |
modules/core/src/main/scala/compiler.scala | 92.30% | 7 Missing :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
See sections 5.3.2 and 6.3.2 of the GraphQL Specification.
Mergeability validation is done very early in compilation, immediately after variable and fragment use is validated.
As much field merging is done during compilation as possible. In some cases this will result in simpler executable queries than were previously generated which might slightly improve query execution time.
Field merging which depends on the runtime type of values has to be deferred to execution time, and potentially involves deep merging of
ProtoJson
result values. This could be expensive, and considerable effort has been taken to avoid it where possible and reduce its impact where not.In almost all cases where this PR changes behaviour the previous behaviour was incorrect. The only changes in previously correct results are potential object field reorderings in Json results.
A handful of existing tests were violating the mergeability rules and have been corrected.
Fixes #22