Slice with a stride and no upper bound (`arr[1: :4]`) is displayed as `arr[1::4]`, which doesn't parse
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 70/100
Piste de recherche
Le bogue vient de la façon dont Subscript::Slice est affiché lorsque upper_bound est absent mais qu'un stride est défini ; commence par l'implémentation Display dans src/ast/mod.rs, où les deux deux-points sont écrits côte à côte. Vérifie la gestion des slices par le parseur pour [1: :4] et [1:-:4] afin de déterminer quelle écriture doit faire un aller-retour correct. C'est terminé lorsque les trois requêtes de reproduction du ticket se reparsent, avec un test d'aller-retour ajouté à côté des tests de slice existants dans tests/sqlparser_common.rs.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Subscript::Slice with upper_bound: None and a stride prints the two colons next to each other, and the tokenizer then reads :: (cast):
SELECT ([1, 2, 3, 4, 5, 6, 7, 8, 9])[1: :4]
-> displays as: SELECT ([1, 2, 3, 4, 5, 6, 7, 8, 9])[1::4]
-> reparse: Expected: a data type name, found: 4 at Line: 1, Column: 41
SELECT ([1, 2, 3, 4, 5, 6, 7, 8, 9])[: :4]
-> displays as: SELECT ([1, 2, 3, 4, 5, 6, 7, 8, 9])[::4]
-> reparse: Expected: an expression, found: :: at Line: 1, Column: 38
SELECT ([1, 2, 3, 4, 5, 6, 7, 8, 9])[1:-:4]
-> round-trips (fine)
DuckDB documents [1:-:4] for this (https://duckdb.org/docs/stable/sql/functions/list#slicing), but it also runs [1: :4] (returns [1, 5, 9]), and the parser accepts it. Something like [1: :4] in Display would round-trip.
Tested with DuckDbDialect on main ce12f1f6 (also 0.63.0 and 0.58.0).
Found with a property-based fuzzer (round trip check); I used AI assistance for triage and verified every case above.
- Langage dominant
- Rust
- Étoiles
- 3.5k
- Forks
- 801
- Merge moyen
- 2 j 19 h
- PR mergées (30 j)
- 108
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/datafusion-sqlparser-rs
-
DuckDB PostgreSQL Prolific Author
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
apache/datafusion-sqlparser-rs#2803 ·
Les mainteneurs répondent en général sous 1 jour
-
Databricks Prolific Author Spark
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
apache/datafusion-sqlparser-rs#2801 ·
Les mainteneurs répondent en général sous 1 jour
-
PostgreSQL: support FOR NO KEY UPDATE and FOR KEY SHARE row-locking clausesPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. OuvertePostgreSQL
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
apache/datafusion-sqlparser-rs#2778 ·
Les mainteneurs répondent en général sous 1 jour
-
`SHOW ... ILIKE '<pattern>'` is displayed without quotesPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. OuverteProlific Author
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
apache/datafusion-sqlparser-rs#2759 ·
Les mainteneurs répondent en général sous 1 jour
-
Should `DELETE + LIMIT` be supported by the generic dialect ?Peut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. OuverteDuckDB MySQL PostgreSQL
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
apache/datafusion-sqlparser-rs#2615 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de apache/datafusion-sqlparser-rs
Issues similaires
-
bug priority: low ui
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
storytold/gridcraft#3446 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
seabeectl verify exits 0 when verification failsPeut-être pris @theyottaboy l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
NationalSecurityAgency/seabee#73 ·
Les mainteneurs répondent en général sous 4 jours
-
ready-for-agent
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
neilsh/stunt-reel#220 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 1 jour