graphprotocol / graphprotocol/graph-node
Allow where clause in subgraph queries to reference another field in type
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Rust
- Estrellas
- 3.2k
- Forks
- 1.1k
- Merge medio
- 4 d 1 h
- PR fusionados (30 d)
- 1
Descripción
Do you want to request a feature or report a bug?
Feature
What is the current behavior?
Currently, the where clause in a subgraph query only allows you to pass values to it that are of the type of the field being filtered against.
ex:
query Indexers {
indexers(where: { stakedTokens: 0 }) {
id
stakedTokens
lockedTokens
}
}
Where: stakedTokens is of type BigInt and the value passed (0 in the example) must also be a BigInt.
What is the expected behavior?
It would be very helpful if the where clause was able to compare two fields against each other to filter results.
ex:
query Indexers {
indexers(where: { stakedTokens: {indexer? me? this?}.lockedTokens }) {
id
stakedTokens
lockedTokens
}
}
Mapping down to sql, this would look (something like):
SELECT id, staked_tokens, locked_tokens FROM indexer WHERE staked_tokens = locked_tokens;
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza rastreando cómo se analizan las cláusulas where de los subgrafos de GraphQL y se traducen a SQL; el issue no menciona archivos de implementación ni tests. Define la sintaxis de comparación entre campos e identifica las capas de consulta y de base de datos que necesitarían compatibilidad; después, añade cobertura para comparar stakedTokens con lockedTokens.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- graphql, rust, sql
- Área
- api, backend, databases
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100