Azure / Azure/data-api-builder

[Bug]: GraphQL pagination with order by statements omits values

Offen
#2,274 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
🛠️troubleshooting bug cri triage
Vorherrschende Sprache
C#
Sterne
1.5k
Forks
370
Ø Merge
3 T. 22 Std.
Gemergte PRs (30 T.)
9

Beschreibung

### What happened?

We've noticed a potential issue with the SQL generation within the Data API Builder, specifically when handling GraphQL queries that include pagination and sorting. The SQL output appears to introduce unintended predicates affecting the sorting column. These predicates seem to cause records with null values in the sorting column to be excluded from the results, varying with the sort order (ascending showing null values and with descending excluding null values).

### Version

1.1.7

### What database are you using?

Azure SQL

### What hosting model are you using?

AppService

### Which API approach are you accessing DAB through?

GraphQL

### Relevant log output

```Text
query SomeQuery {
someentityA(first: 10, orderBy: {columnA:DESC}, filter: {
and: [{ columnB: { neq: "EntityA" } }
{ or: [ { columnC: { eq: "CountryB" } } ] }
]}) {
items {
id
columnD
columnE
columnF
columnG
columnH
columnI
columnJ
columnK
columnL
columnM
columnN
columnO
someentityB(first: 10000) {
items {
id
columnP
someentityC(first: 10000) {
items {
id
columnQ
columnR
columnS
columnT
columnU
columnV
// ... rest of the query
}
}
}
}
}
}
```

### Code of Conduct

- [X] I agree to follow this project's Code of Conduct

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, die bereitgestellte GraphQL-Abfrage gegen Azure SQL auszuführen, und untersuche das generierte SQL auf Paginierungs- und orderBy-Prädikate. Verfolge den SQL-Erzeugungspfad für Sortierung und Paginierung; das Issue ist abgeschlossen, wenn absteigend und aufsteigend sortierte Ergebnisse bei Sortierwerten mit null die erwarteten Datensätze beibehalten.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
azure, csharp, graphql, sql
Bereich
api, backend, databases
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.