We’re overhauling Dgraph’s docs to make them clearer and more approachable. If
you notice any issues during this transition or have suggestions, please
let us know.
Persisted query logic
The execution of Persistent Queries follows this logic:- If the
extensions
key isn’t provided in theGET
request, Dgraph processes the request as usual - If a
persistedQuery
exists under theextensions
key, Dgraph tries to process a Persisted Query:- if no
sha256
hash is provided, process the query without persisting - if the
sha256
hash is provided, try to retrieve the persisted query
- if no
Create
To create a Persistent Query, bothquery
and sha256
must be provided.
Dgraph verifies the hash and performs a lookup. If the query doesn’t exist,
Dgraph stores the query, provided that the sha256
of the query is correct.
Finally, Dgraph processes the query and returns the results.
Example:
Lookup
If only asha256
is provided, Dgraph does a look-up, and processes the query
if found. Otherwise a PersistedQueryNotFound
error is returned.
Example: curl -g
‘http://localhost:8080/graphql/?extensions={“persistedQuery”:{“sha256Hash”:“b952c19b894e1aa89dc05b7d53e15ab34ee0b3a3f11cdf3486acef4f0fe85c52”}}‘