On 2/22/20 2:37 PM, Andrus wrote:
Hi!

I'm looking for a way to fix psqlODBC driver regression.

Starting at psqlODBC 09.05.0100 when psqlODBC driver uses libpq for all
operations (earlier versions used libpg only for authentication) ODBC client
does not show error message details.

For example, users got only generic error message like

    Connectivity error: ERROR: insert or update on table "mytable" violates
    foreign key constraint  "mytable_myfield_fkey

Error message details like

    Key (myfield)=(mykeyvalue) is not present in table "mymastertable".;

are no more returned.

How to detailed error message or at least only bad key value "mykeyvalue"
which is returned in error message details ?

Some ideas:

1. First versions of libpq based ODBC drivers returned same error message "no resource found" for all errors. Hiroshi has fixed it it later versions. Maybe psqlODBC code can fixed to restore pre-libpq behaviour.

2. Maybe analyzing odbc logs from pre and after 09.05.0100  drivers may provide solution. I can provide ODBC log files.

3. psqlODBC allows to pass parameters to libpq from connection string. Maybe some libpq parameter can fix this.

4.  Maybe some Postgres query, postgres extension  or direct odbc or libpq call can used to return last error message details like Windows API GetLastError() or Unix global errno.

5. Maybe it is possible to to create method which returns error message detals from postgres log file.

Postgres 12.2 and latest psqlODBC driver 12.01.0000 are used.
psqlODBC is called from Visual FoxPro


What does the log_error_verbosity setting in postgresql.conf show?


Andrus.




--
Adrian Klaver
adrian.kla...@aklaver.com


Reply via email to