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.klaver@aklaver.com