Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

REST: Send empty first-page pageToken when rest-page-size is set

Offen Anfängerfreundlich
#4,096 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@ehddnr301 arbeitet bereits daran.

Seit 12.10.2026.

  • #4097 von @ehddnr301 — offen

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
82/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
python
Bereich
api, backend

Rechercherichtung

Beginne beim REST-Katalog-Paginierungscode für list_tables, list_views und list_namespaces und untersuche anschließend das Query-Parsing des SigV4-Adapters. Sende bei der ersten Anfrage einen leeren pageToken, wenn rest-page-size gesetzt ist, und erhalte im Adapter leere Query-Werte. Überprüfe, dass die Anfrage pageToken= enthält und dass die Paginierung mit einer Seitengröße von 1 funktioniert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

kind:bug
Apache Iceberg version

0.12.0 (latest release)

Please describe the bug 🐞

When rest-page-size is set, list_tables, list_views and list_namespaces send pageSize without pageToken on the first request:

GET /v1/namespaces/ns/tables?pageSize=100

The REST spec says servers must return all results in one response when pageToken is not set, and that clients start pagination by sending an empty pageToken (PageToken). So compliant servers ignore rest-page-size, and some servers fail on the request. With tabulario/iceberg-rest:1.6.0 and namespaces a, b, c:

RestCatalog("t", uri=uri).list_namespaces()
# [('a',), ('b',), ('c',)]

RestCatalog("t", uri=uri, **{"rest-page-size": "1"}).list_namespaces()
# ServerError: NumberFormatException: Cannot parse null string
GET /v1/namespaces?pageSize=1             -> 500 NumberFormatException
GET /v1/namespaces?pageSize=1&pageToken=  -> {"namespaces": [["a"]], "next-page-token": "1"}

The first request should include pageToken= when rest-page-size is set. The Java client always sends pageToken, starting with an empty value. The SigV4 adapter also needs to keep blank query values, since parse_qsl drops them by default.

rest-page-size was added in #3377. The same error in apache/iceberg-rest-fixture was reported in apache/iceberg#13119.

Willingness to contribute
  • I can contribute a fix for this bug independently
  • I would be willing to contribute a fix for this bug with guidance from the Iceberg community
  • I cannot contribute a fix for this bug at this time
Vorherrschende Sprache
Python
Sterne
1.2k
Forks
618
Ø Merge
1 T. 3 Std.
Gemergte PRs (30 T.)
45

Entwicklungsumgebung

  • Kein Dockerfile und keine Docker-Compose-Datei
  • Hat eine Pull-Request-Vorlage
  • Kein Beitragsleitfaden

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus apache/iceberg-python

Alle Issues in apache/iceberg-python

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

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