-
Notifications
You must be signed in to change notification settings - Fork 589
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(sql-udf): better hint display for invalid sql udf definition #15091
Conversation
The idea is great and it's definitely an improvement to the user experience. Actually I'm wondering if this could be applied to other statements as well. I believe the ultimate solution could be attaching a span to each AST item during parsing. Databend had a good practice on this (but it could require a quite large amount of work to refactor): https://medium.com/@databend/the-new-databend-sql-planner-e1b1f028a594 |
Indeed, let me do some further investigations on this and see if we can come up with an ultimate solution. (And I can work on this constantly 😄) |
We can learn from syn on how to gracefully attach span to each AST node. |
Could you elaborate more? Do you mean the span in the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generally LGTM!
IIUC, in syn, each AST node is recursively composed by a series of tokens (as leaf nodes of the AST). Each token provides its own span. And the span of each AST node can be computed as the join of all children's by derive macro. However, adding span to sqlparser is still a big project. Someone has proposed it several years ago but it has not been landed until now. |
I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
resolve #14853.
BEFORE
As shown in the above issue.
AFTER
P.S. IMO the cost of constructing
Regex
when error definition is found is acceptable to display a better hint for user.Note that the current hint works for invalid column / parameter, function hint will be supported in subsequent PR.
Checklist
./risedev check
(or alias,./risedev c
)Documentation
Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.