graphprotocol / graphprotocol/graph-node

[Bug] Sorting subgraphs by nested FDS field throws error

Aperta
#5,168 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

bug offchain Stale
Lingua principale
Rust
Stelle
3.2k
Fork
1.1k
Merge medio
4g 1h
PR unite (30g)
1

Descrizione

Bug report

Querying the graph-network arbitrum subgraph and sorting by metadata__displayName; throws an error (see log output).
There was a recent change to the network subgraph to support File Data Services; this change moved the displayName field from the top-level Subgraph entity to be in a nested SubgraphMetadata entity that is controlled by FDS.
Sorting by any field in the metadata entity throws this error.

Relevant log output
Results in this error message from graph-node


message: `Failed to get entities from store: column cc.block_range does not exist, query = /* controller='filter',application='sgd675036',route='d8217ff92881cd2a-9ef95e8b5fa290fd',action='174820478' */\nselect 'Subgraph' as entity, to_jsonb(c.*) as data from (select c.*\n from "sgd675036"."subgraph" c left join "sgd675036"."subgraph_metadata" as cc on (cc."id" = c."metadata" and cc."block_range" @> $1) \n where c.block_range @> $2 and (c."active" = $3 and c."entity_version" = $4 and exists (select 1 from "sgd675036"."subgraph_metadata" as i where i."id" = c."metadata" and i.block$ <= $5 and (left("display_name", 256) != left($6, 256))))\n\n order by cc."display_name" asc, c."id" asc\n limit 20) c -- binds: [174820478, 174820478, true, 2, 174820478, ""]
IPFS hash

No response

Subgraph name or link to explorer

https://api.thegraph.com/subgraphs/name/graphprotocol/graph-network-arbitrum

Some information to help us out
  • Tick this box if this bug is caused by a regression found in the latest release.
  • Tick this box if this bug is specific to the hosted service.
  • I have searched the issue tracker to make sure this issue is not a duplicate.
OS information

None

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia riproducendo la query GraphQL collegata rispetto al subgraph arbitrum di graph-network e ispeziona la query dello store di graph-node mostrata nel log, in particolare il join a subgraph_metadata e la relativa condizione block_range. Traccia come viene generato l’ordinamento per campi di metadati annidati; il lavoro è completato quando l’ordinamento per campi annidati non produce più l’errore di colonna mancante e la query segnalata restituisce risultati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
graphql, rust
Ambito
backend, databases
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.