Re: BUG #13832: Syntax errors are extremely unfriendly

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: tdhutt(at)gmail(dot)com
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #13832: Syntax errors are extremely unfriendly
Date: 2015-12-24 16:11:13
Message-ID: 1419.1450973473@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

tdhutt(at)gmail(dot)com writes:
> When you have a syntax error in PostgreSQL (or MySQL for that matter) you
> get a message like this:
>> ERROR: syntax error at or near "FROM"
>> Position: 8
> This is not very user-friendly to put it mildly!

Well, at least some of that is on the head of whatever client-side
software you're using. psql, for example, produces an error cursor
like this:

regression=# select * from from tab;
ERROR: syntax error at or near "from"
LINE 1: select * from from tab;
^

> Compare this with Clang's
> error messages (http://clang.llvm.org/diagnostics.html) which give you the
> exact location of the error, and also what was expected, and even
> suggestions to fix it!

As far as raw syntax errors go, we're pretty much limited by what Bison
will do; we're unlikely to implement our own parser from scratch just
to improve this. We do go to considerable lengths for semantic errors,
eg in PG 9.5 you might get something like this for a misspelled column
name:

regression=# select unnique1 from tenk1;
ERROR: column "unnique1" does not exist
LINE 1: select unnique1 from tenk1;
^
HINT: Perhaps you meant to reference the column "tenk1.unique1".

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tim Hutt 2015-12-24 18:06:14 Re: BUG #13832: Syntax errors are extremely unfriendly
Previous Message Tom Lane 2015-12-24 16:00:07 Re: BUG #13831: Server Closed Connection Unexpectedly