Description
Is your feature request related to a problem or challenge?
For a query like:
WITH cte AS (SELECT 1 AS col), SELECT * FROM cte
The only message that the end user of an application built atop of DataFusion sees is:
SQL error: ParserError("Expected: AS, found: * at Line: 1, Column: 39")
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:
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.
The location of the error can probably be fetched from the error coming from sqlparser
, requiring little changes to DataFausion itself.
Needs some thought to figure out which kinds of syntax errors can be supported and how. i.e. the example above is simply for when the parser expects token in a specific set; but what about unbalanced parenthesis, unrecognised keywords, etc.
Describe alternatives you've considered
No response
Additional context
No response