Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incremental Delivery spec draft #1110

Open
wants to merge 41 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
7ff9d0b
Extract common logic from ExecuteQuery, ExecuteMutation and ExecuteSu…
benjie Apr 28, 2023
8f4168b
Change ExecuteSelectionSet to ExecuteGroupedFieldSet
benjie Apr 28, 2023
69de3fd
Correct reference to MergeSelectionSets
benjie Aug 21, 2023
667364a
moves Field Collection section earlier
yaacovCR Feb 15, 2024
bb23a1b
Introduce `@defer` directive
yaacovCR Feb 15, 2024
65be49a
refactor a few lines out of YieldSubsequentResults
yaacovCR Jun 13, 2024
12513e1
add a word or two about which child nodes are being promoted
yaacovCR Jun 18, 2024
7284e2d
be more graphy
yaacovCR Jun 18, 2024
3fd7b90
fix timing
yaacovCR Jun 19, 2024
d3ab7a3
reuse function
yaacovCR Jun 19, 2024
853b031
fix
yaacovCR Jun 19, 2024
57d6193
rename BuildGraph to GraphFromRecords
yaacovCR Jun 19, 2024
fe42e8c
reword recursive abort case
yaacovCR Jun 19, 2024
d8966dc
bring BuildFieldPlan in line with implementation
yaacovCR Jul 17, 2024
136afea
rename "deferred grouped field set record" to "execution group"
yaacovCR Jul 17, 2024
f11f956
rename ExecuteExecutionGroup to CollectExecutionGroup
yaacovCR Jul 17, 2024
5e0a10a
properly initialize deferUsages with their parents
yaacovCR Jul 18, 2024
5490ed1
move Field Collection back to where it was
yaacovCR Jul 18, 2024
22dfbb8
f
yaacovCR Jul 18, 2024
b80d53b
use fieldDetailsList consistently
yaacovCR Jul 18, 2024
66536f4
add info re: data structures
yaacovCR Jul 18, 2024
a88da21
rename FieldPlan to ExecutionPlan
yaacovCR Jul 20, 2024
741605b
path => label
yaacovCR Jul 24, 2024
7251c7b
add missing arguments
yaacovCR Jul 25, 2024
2d121f1
add missing return value
yaacovCR Jul 25, 2024
c2d83a0
fix some renaming around CollectExecutionGroups and ExecuteExecutionG…
yaacovCR Jul 25, 2024
ccc26f2
Correct argument name
yaacovCR Aug 26, 2024
879818f
clarify errors from ExecuteExecutionPlan
yaacovCR Aug 26, 2024
a020ea1
add initial versions of explanations for the algorithms in the "Execu…
yaacovCR Aug 26, 2024
a6c164d
add subheadings
yaacovCR Sep 5, 2024
f15235a
adjust heading
yaacovCR Sep 6, 2024
50f644d
Initialize graph
yaacovCR Sep 6, 2024
afe40cd
adjust YieldSubsequentResults algorithm per review
yaacovCR Sep 6, 2024
606a6f1
reuse GetIncrementalResult() for the error case
yaacovCR Sep 6, 2024
f44deb5
add descriptions and fix bug within GetNewRootNodes, it needs the old…
yaacovCR Sep 6, 2024
f8f6f35
finish addressing review comments
yaacovCR Sep 6, 2024
4f8e668
add missing word
yaacovCR Sep 6, 2024
89983ce
Add Response Section for defer/stream (#4)
robrichard Sep 18, 2024
d40130d
Add directives and validation sections (#5)
robrichard Sep 18, 2024
f7e9124
Add examples to Response section
robrichard Nov 1, 2024
8e9cbcb
skip deferred fragment spread when already in visited fragments
robrichard Jan 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
clarify errors from ExecuteExecutionPlan
accompanying note is a WIP, open to further suggestions as to how to clarify
yaacovCR authored and robrichard committed Nov 1, 2024
commit 879818fc28cf2fc9ad916f5aa90204627b738510
6 changes: 5 additions & 1 deletion spec/Section 6 -- Execution.md
Original file line number Diff line number Diff line change
@@ -338,7 +338,8 @@ serial):
- Let {data} and {incrementalDataRecords} be the result of
{ExecuteExecutionPlan(newDeferUsages, executionPlan, objectType, initialValue,
variableValues, serial)}.
- Let {errors} be the list of all _field error_ raised while completing {data}.
- Let {errors} be the list of all _field error_ raised while executing the
execution plan.
- If {incrementalDataRecords} is empty, return an unordered map containing
{data} and {errors}.
- Let {incrementalResults} be the result of {YieldIncrementalResults(data,
@@ -347,6 +348,9 @@ serial):
- Let {initialResult} be that result.
- Return {initialResult} and {BatchIncrementalResults(incrementalResults)}.

Note: {ExecuteExecutionPlan()} does not directly raise field errors from the
incremental portion of the Execution Plan.

### Yielding Incremental Results

The procedure for yielding incremental results is specified by the