apache / apache/datafusion-sqlparser-rs

Snowflake: TIMESTAMP precision regression

Ouverte
#1,861 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Rust
Étoiles
3.5k
Forks
772
Merge moyen
4 j 9 h
PR mergées (30 j)
17

Description

For Snowflake time formats support precision parameter ([from Snowflake documentation](https://docs.snowflake.com/en/sql-reference/data-types-datetime#timestamp)):
> All timestamp variations, as well as the TIMESTAMP alias, support an optional precision parameter for fractional seconds (for example, TIMESTAMP(3)). Timestamp precision can range from 0 (seconds) to 9 (nanoseconds). The default precision is 9.

Note: this comes from using Python wrapper sqloxide

Query that fails:
```sql
create table hello(test timestamp_ntz(6))
```

Error:
```
sql parser error: Expected: ',' or ')' after column definition, found: ( at Line: 1, Column: 38
```

removing precision from `timestamp_ntz` passes through

Unfortunately I cannot directly link which version (not visible throughintroduced this regression, but it seems to be recent

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par reproduire la requête en échec `create table hello(test timestamp_ntz(6))` via le wrapper Python sqloxide et suivez la manière dont les types timestamp de Snowflake sont analysés. Le travail est terminé lorsque les variantes de timestamp avec des valeurs de précision de 0 à 9 sont analysées correctement sans provoquer de régression pour les timestamp non paramétrés.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python, rust, sql
Domaine
databases
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
38/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.