Skip to content

Add GraphQL::Query::Partial#5183

Merged
rmosolgo merged 32 commits into
masterfrom
partial-execution
May 5, 2025
Merged

Add GraphQL::Query::Partial#5183
rmosolgo merged 32 commits into
masterfrom
partial-execution

Conversation

@rmosolgo
Copy link
Copy Markdown
Owner

@rmosolgo rmosolgo commented Dec 5, 2024

This is to implement partial execution, where you can take a prepared GraphQL::Query and run part of it in isolation.

Fixes #5136

TODO

  • Finish unit tests
  • Add specific tests for Dataloader and lazy resolution
  • DRY between Query and Query::Partial
  • Address TODOs in execution code
  • Dry run_partials and run_partial_eager?
  • What about when selections are duplicated in the AST? Have to merge fields appropriately
  • Add tests for continuing from non-null fields, unions, interfaces, scalars, enums
  • Add some way to spawn a partial from a query, or halt execution in a query. ctx.skip?
    • context.skip works for now -- I can explore sugar for that down the road.
  • Test lazy root object in Partial -- object and scalar
  • Test base_path usage, current_path setting in Partial

Comment thread lib/graphql/query/context.rb Outdated
Comment thread lib/graphql/query/partial.rb
Comment thread lib/graphql/query/partial.rb Outdated
@rmosolgo rmosolgo force-pushed the partial-execution branch from 9e8aac6 to 749b670 Compare April 29, 2025 14:53
@rmosolgo rmosolgo merged commit a65fe3c into master May 5, 2025
15 checks passed
@rmosolgo rmosolgo added this to the 2.5.6 milestone May 5, 2025
@rmosolgo rmosolgo deleted the partial-execution branch May 5, 2025 15:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support running partial graphql queries

1 participant