ms705 / nom-sql

Rust SQL parser written using nom

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Improve error handling

lovasoa opened this issue · comments

Currently, when parse fails, the user only gets a very uninformative error string as a result.
It would be nice to have a custom error type with useful functionality , such as knowing where the error happened.

Yes! I've been meaning to add support for more descriptive syntax errors for a while, but never got around to it. Independently, I believe nom's story for parse error handling has also changed, however, so it might be best do to this alongside a port to nom v4.

(Though I like the changed you linked; we can certainly merge that one right away.)

To add to this issue: Specifically we should use nom's VerboseError to improve error messages. One thing pointed out by @spazm is that in src/create.rs, the creation function, might want to through a nom error with descriptive error message rather than the existing assert!(table.alias.is_none())