Skip to content

Commit

Permalink
incremental delivery with deduplication of delivery and execution, al…
Browse files Browse the repository at this point in the history
…lowing early delivery
  • Loading branch information
yaacovCR committed Dec 4, 2023
1 parent 991f223 commit 0f7b66f
Show file tree
Hide file tree
Showing 4 changed files with 825 additions and 410 deletions.
4 changes: 2 additions & 2 deletions spec/Section 3 -- Type System.md
Original file line number Diff line number Diff line change
Expand Up @@ -795,8 +795,8 @@ When querying an Object, the resulting mapping of fields are conceptually
ordered in the same order in which they were encountered during execution,
excluding fragments for which the type does not apply and fields or fragments
that are skipped via `@skip` or `@include` directives or temporarily skipped via
`@defer`. This ordering is correctly produced when using the {CollectFields()}
algorithm.
`@defer`. This ordering is correctly produced when using the
{AnalyzeSelectionSet()} algorithm.

Response serialization formats capable of representing ordered maps should
maintain this ordering. Serialization formats which can only represent unordered
Expand Down
8 changes: 4 additions & 4 deletions spec/Section 5 -- Validation.md
Original file line number Diff line number Diff line change
Expand Up @@ -474,7 +474,7 @@ unambiguous. Therefore any two field selections which might both be encountered
for the same object are only valid if they are equivalent.

During execution, the simultaneous execution of fields with the same response
name is accomplished by {MergeSelectionSets()} and {CollectFields()}.
name is accomplished by {BuildRootFieldPlan()} and {BuildSubFieldPlan()}.

For simple hand-written GraphQL, this rule is obviously a clear developer error,
however nested fragments can make this difficult to detect manually.
Expand Down Expand Up @@ -1530,7 +1530,7 @@ query ($foo: Boolean = true, $bar: Boolean = false) {

### Defer And Stream Directives Are Used On Valid Root Field

** Formal Specification **
**Formal Specification**

- For every {directive} in a document.
- Let {directiveName} be the name of {directive}.
Expand Down Expand Up @@ -1558,7 +1558,7 @@ mutation {

### Defer And Stream Directives Are Used On Valid Operations

** Formal Specification **
**Formal Specification**

- Let {subscriptionFragments} be the empty set.
- For each {operation} in a document:
Expand Down Expand Up @@ -1607,7 +1607,7 @@ subscription sub {

### Defer And Stream Directive Labels Are Unique

** Formal Specification **
**Formal Specification**

- Let {labelValues} be an empty set.
- For every {directive} in the document:
Expand Down
Loading

0 comments on commit 0f7b66f

Please sign in to comment.