4. Test on Postgres with parameter ==> log_error_verbosity=verbose SELECT name, setting FROM pg_settings WHERE name LIKE 'log_error_verbosity';
postgres=> create table bipin (id int); ERROR: relation "bipin" already exists postgres=> insert into bipin values(1); ERROR: duplicate key value violates unique constraint "pk_error_logging" ==> NO SQL STATE captured. DETAIL: Key (id)=(1) already exists.
That setting is for the log file, but you are showing what the client sees (which the server doesn’t really care about or influence - beyond client_min_message anyway).
But when i run the following it shows. postgres=> \errverbose ERROR: 23505: duplicate key value violates unique constraint "pk_error_logging"
Which proves the server is doing its job of sending back that data as specified in the protocol.
So we need a workaround wherein it can show the SQLSTATE code and want to know if its limitation at Postgres DB level.
No, its not a server limitation, its a client limitation - in this case boto3.