Re: [proposal] Add an option for returning SQLSTATE in psql error message

Pavel Stehule <pavel.stehule@gmail.com>

From: Pavel Stehule <pavel.stehule@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: did447@gmail.com, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2018-12-02T16:04:58Z
Lists: pgsql-hackers
ne 2. 12. 2018 v 16:56 odesílatel Tom Lane <tgl@sss.pgh.pa.us> napsal:

> didier <did447@gmail.com> writes:
> > Currently on error psql is printing Postgres' PQerrorMessage text, but
> > there's no guarantee these messages are constant between Postgres
> > versions and it's a pain when using psql for writing regression tests,
>
> I don't buy that argument.  We use psql's normal display in all the
> regular regression tests, and it's not a big maintenance problem.
> If the error message changes, that's usually interesting in itself.
>

our tests are not against different PostgreSQL releases. When you have a
code, that should to support more PostgreSQL releases, then it is sometimes
difficult.


> Also, if it does change, it's often because you're hitting a different
> error-detection test, which more than likely is throwing a different
> SQLSTATE anyway.
>
> Lastly, because the SQL spec has been rather miserly in assigning
> SQLSTATEs in some areas, there are lots of cases where the same
> SQLSTATE is used for several distinct errors; for instance
> ERRCODE_UNDEFINED_OBJECT covers a lot of ground.  Do you really
> want your test cases to be unable to distinguish those?
>
> There might be a use-case for showing only SQLSTATE, but writing
> regression tests doesn't seem like a good example.
>
>                         regards, tom lane
>
>

Commits

  1. Add a "SQLSTATE-only" error verbosity option to libpq and psql.