apache / apache/datafusion

Attach `Diagnostic` to "wrong number of arguments" error

Abierto
#14,432 15 comentarios 0 reacciones 1 asignado Reclamado por @Chen-Yuan-Lai Ver en GitHub
enhancement good first issue
Lenguaje dominante
Rust
Estrellas
9.3k
Forks
2.4k
Merge medio
3 d 11 h
PR fusionados (30 d)
362

Descripción

### Is your feature request related to a problem or challenge?

For a query like:

```sql
SELECT sum(1, 2)
```

The only message that the end user of an application built atop of DataFusion sees is:

```
Error during planning: Execution error: User-defined coercion failed with Execution("SUM expects exactly one argument") No function matches the given name and argument types 'sum(Int64, Int64)'. You might need to add explicit type casts.
Candidate functions:
sum(UserDefined)
```

We want to provide a richer message that _references and highlights locations in the original SQL query_, and contextualises and helps the user understand the error. In the end, it would be possible to display errors in a fashion akin to what was enabled by #13664 for some errors:

![](https://github.com/user-attachments/assets/32efeb4f-aad9-41c9-a1e3-600a00d525c3)

See #14429 for more information.

### Describe the solution you'd like

Attach a well crafted `Diagnostic` to the `DataFusionError`, building on top of the foundations laid in #13664. See #14429 for more information.

### Describe alternatives you've considered

_No response_

### Additional context

_No response_

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.