apache / apache/datafusion-sqlparser-rs

Snowflake: TIMESTAMP precision regression

Abierto
#1,861 2 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Rust
Estrellas
3.5k
Forks
772
Merge medio
4 d 9 h
PR fusionados (30 d)
17

Descripción

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

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza reproduciendo la consulta que falla `create table hello(test timestamp_ntz(6))` mediante el wrapper de Python sqloxide y sigue cómo se analizan los tipos de timestamp de Snowflake. Se considera terminado cuando las variantes de timestamp con valores de precisión de 0 a 9 se analizan correctamente sin introducir regresiones en los timestamp sin parametrizar.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python, rust, sql
Área
databases
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
38/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.