Eagerly initialize SubgraphOperation::parsed
field
#5088
Merged
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.
Follow-up to #5075.
As a result,
SubgraphOperation::as_parsed()
no longer requires passing the subgraph schema as a parameter. However, because schemas are not available from insideDeserialize
impls, anOption
is still used to createSubgraphOperation
without a parsed schema at first.as_parsed()
may still return an error if the newinit_parsed()
method was never called, which would indicate a Router bug:init_parsed()
is called immediately after query planning and after getting a Redis cache hit.In the call today we discussed another design with separate query plan types: with and without pared subgraph operations. This would statically prevent failure to initialize, but would require a much larger refactor. For example, the generic dual-storage cache that would need to be modified to have a different cached value type for in-memory cache v.s. external Redis cache.