REST: Send empty first-page pageToken when rest-page-size is set
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 82/100
Piste de recherche
Commencez par le code de pagination du catalogue REST pour list_tables, list_views et list_namespaces, puis examinez l’analyse des paramètres de requête de l’adaptateur SigV4. Envoyez un pageToken vide dans la première requête lorsque rest-page-size est défini, et conservez les valeurs de requête vides dans l’adaptateur. Vérifiez que la requête inclut pageToken= et que la pagination fonctionne avec une taille de page de 1.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- Python
- Étoiles
- 1.2k
- Forks
- 618
- Merge moyen
- 1 j 3 h
- PR mergées (30 j)
- 45
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de apache/iceberg-python
-
CLI: --output=json list-refs emits one object per retention property instead of per refPeut-être pris @tomron l’a pris il y a 1 jour. Ouvertekind:bug
Difficulté 2/5 1-3 heures Accessibilité débutants 87/100
apache/iceberg-python#4098 ·
Les mainteneurs répondent en général sous 1 jour
-
PyArrowFileIO: every small S3 write is a 3-request multipart upload; expose allow_delayed_openOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
apache/iceberg-python#4093 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
View does not expose metadata_location: RestCatalog.load_view discards it from the server's responsePeut-être pris @Soumo-git-hub l’a pris il y a 6 jours. Ouvertekind:bug
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
apache/iceberg-python#4073 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
apache/iceberg-python#4010 · 3 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
to_bytes silently rescales a Decimal with a negative scalePeut-être pris @Rodrigo-Palma l’a pris il y a 26 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
apache/iceberg-python#3996 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de apache/iceberg-python
Issues similaires
-
[Bug]: LangGraph Store sync put bypasses namespace validationPeut-être pris @ktz03 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
volcengine/OpenViking#6050 ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: Streamed /v1/chat/completions sends unredacted agent error text (keys) in the final chunkPeut-être pris @rodricksz4h5 l’a pris aujourd’hui. Ouvertearea/streaming comp/gateway P2 type/security
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
NousResearch/hermes-agent#138245 ·
Les mainteneurs répondent en général sous 1 jour
-
[oblt-aw][autodoc] Update user onboarding guide for mandatory trigger CODEOWNERS stepPeut-être pris @github-actions l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
Les mainteneurs répondent en général sous 1 jour
-
correction metadata
Difficulté 2/5 Moins d'une heure Accessibilité débutants 68/100
acl-org/acl-anthology#10378 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
cloudtrail_multi_region_enabled_logging_management_events fails when the advanced event selector has a custom namePeut-être pris @12YYCCYY16 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
prowler-cloud/prowler#13033 ·
Les mainteneurs répondent en général sous 1 jour