@@ -121,16 +121,16 @@ respectively.
121
121
### Query
122
122
123
123
If the operation is a query, the result of the operation is the result of
124
- executing the operation’s top level selection set with the query root operation
125
- type.
124
+ executing the operation’s top level _ selection set _ with the query root
125
+ operation type.
126
126
127
127
An initial value may be provided when executing a query operation.
128
128
129
129
ExecuteQuery(query, schema, variableValues, initialValue):
130
130
131
131
- Let {queryType} be the root Query type in {schema}.
132
132
- Assert: {queryType} is an Object type.
133
- - Let {selectionSet} be the top level Selection Set in {query}.
133
+ - Let {selectionSet} be the top level selection set in {query}.
134
134
- Let {data} be the result of running {ExecuteSelectionSet(selectionSet,
135
135
queryType, initialValue, variableValues)} _ normally_ (allowing
136
136
parallelization).
@@ -141,7 +141,7 @@ ExecuteQuery(query, schema, variableValues, initialValue):
141
141
### Mutation
142
142
143
143
If the operation is a mutation, the result of the operation is the result of
144
- executing the operation’s top level selection set on the mutation root object
144
+ executing the operation’s top level _ selection set _ on the mutation root object
145
145
type. This selection set should be executed serially.
146
146
147
147
It is expected that the top level fields in a mutation operation perform
@@ -152,7 +152,7 @@ ExecuteMutation(mutation, schema, variableValues, initialValue):
152
152
153
153
- Let {mutationType} be the root Mutation type in {schema}.
154
154
- Assert: {mutationType} is an Object type.
155
- - Let {selectionSet} be the top level Selection Set in {mutation}.
155
+ - Let {selectionSet} be the top level selection set in {mutation}.
156
156
- Let {data} be the result of running {ExecuteSelectionSet(selectionSet,
157
157
mutationType, initialValue, variableValues)} _ serially_ .
158
158
- Let {errors} be the list of all _ field error_ raised while executing the
@@ -255,7 +255,7 @@ CreateSourceEventStream(subscription, schema, variableValues, initialValue):
255
255
256
256
- Let {subscriptionType} be the root Subscription type in {schema}.
257
257
- Assert: {subscriptionType} is an Object type.
258
- - Let {selectionSet} be the top level Selection Set in {subscription}.
258
+ - Let {selectionSet} be the top level selection set in {subscription}.
259
259
- Let {groupedFieldSet} be the result of {CollectFields(subscriptionType,
260
260
selectionSet, variableValues)}.
261
261
- If {groupedFieldSet} does not have exactly one entry, raise a _ request error_ .
@@ -285,7 +285,7 @@ operation type.
285
285
#### Response Stream
286
286
287
287
Each event in the underlying Source Stream triggers execution of the
288
- subscription selection set using that event as a root value.
288
+ subscription _ selection set _ using that event as a root value.
289
289
290
290
MapSourceToResponseEvent(sourceStream, subscription, schema, variableValues):
291
291
@@ -300,7 +300,7 @@ ExecuteSubscriptionEvent(subscription, schema, variableValues, initialValue):
300
300
301
301
- Let {subscriptionType} be the root Subscription type in {schema}.
302
302
- Assert: {subscriptionType} is an Object type.
303
- - Let {selectionSet} be the top level Selection Set in {subscription}.
303
+ - Let {selectionSet} be the top level selection set in {subscription}.
304
304
- Let {data} be the result of running {ExecuteSelectionSet(selectionSet,
305
305
subscriptionType, initialValue, variableValues)} _ normally_ (allowing
306
306
parallelization).
@@ -324,9 +324,9 @@ Unsubscribe(responseStream):
324
324
325
325
## Executing Selection Sets
326
326
327
- To execute a selection set , the object value being evaluated and the object type
328
- need to be known, as well as whether it must be executed serially, or may be
329
- executed in parallel.
327
+ To execute a _ selection set _ , the object value being evaluated and the object
328
+ type need to be known, as well as whether it must be executed serially, or may
329
+ be executed in parallel.
330
330
331
331
First, the selection set is turned into a grouped field set; then, each
332
332
represented field in the grouped field set produces an entry into a response
@@ -398,10 +398,11 @@ entry from the grouped field set in the order provided in the grouped field set.
398
398
It must determine the corresponding entry in the result map for each item to
399
399
completion before it continues on to the next item in the grouped field set:
400
400
401
- For example, given the following selection set to be executed serially:
401
+ For example, given the following mutation operation, the root _ selection set_
402
+ must be executed serially:
402
403
403
404
``` graphql example
404
- {
405
+ mutation ChangeBirthdayAndAddress ( $newBirthday : String ! , $newAddress : String ! ) {
405
406
changeBirthday (birthday : $newBirthday ) {
406
407
month
407
408
}
@@ -411,7 +412,7 @@ For example, given the following selection set to be executed serially:
411
412
}
412
413
```
413
414
414
- The executor must, in serial:
415
+ Therefore the executor must, in serial:
415
416
416
417
- Run {ExecuteField()} for ` changeBirthday ` , which during {CompleteValue()} will
417
418
execute the ` { month } ` sub-selection set normally.
@@ -420,9 +421,10 @@ The executor must, in serial:
420
421
421
422
As an illustrative example, let's assume we have a mutation field
422
423
` changeTheNumber ` that returns an object containing one field, ` theNumber ` . If
423
- we execute the following selection set serially:
424
+ we execute the following _ selection set _ serially:
424
425
425
426
``` graphql example
427
+ # Note: This is a selection set, not a full document using the query shorthand.
426
428
{
427
429
first : changeTheNumber (newNumber : 1 ) {
428
430
theNumber
@@ -445,7 +447,7 @@ The executor will execute the following serially:
445
447
- Resolve the ` changeTheNumber(newNumber: 2) ` field
446
448
- Execute the ` { theNumber } ` sub-selection set of ` third ` normally
447
449
448
- A correct executor must generate the following result for that selection set :
450
+ A correct executor must generate the following result for that _ selection set _ :
449
451
450
452
``` json example
451
453
{
@@ -463,7 +465,7 @@ A correct executor must generate the following result for that selection set:
463
465
464
466
### Field Collection
465
467
466
- Before execution, the selection set is converted to a grouped field set by
468
+ Before execution, the _ selection set _ is converted to a grouped field set by
467
469
calling {CollectFields()}. Each entry in the grouped field set is a list of
468
470
fields that share a response key (the alias if defined, otherwise the field
469
471
name). This ensures all fields with the same response key (including those in
@@ -779,9 +781,9 @@ ResolveAbstractType(abstractType, objectValue):
779
781
780
782
** Merging Selection Sets**
781
783
782
- When more than one field of the same name is executed in parallel, their
783
- selection sets are merged together when completing the value in order to
784
- continue execution of the sub-selection sets.
784
+ When more than one field of the same name is executed in parallel, the
785
+ _ selection set _ for each of the fields are merged together when completing the
786
+ value in order to continue execution of the sub-selection sets.
785
787
786
788
An example operation illustrating parallel fields with the same name with
787
789
sub-selections.
0 commit comments