Re: How to fix psqlODBC driver regression to get error message details

From: "Inoue, Hiroshi" <h-inoue(at)dream(dot)email(dot)ne(dot)jp>
To: Andrus <kobruleht2(at)hot(dot)ee>
Cc: pgsql-odbc(at)postgresql(dot)org
Subject: Re: How to fix psqlODBC driver regression to get error message details
Date: 2020-03-25 00:57:08
Message-ID: ac43768c-e424-eb24-f8f1-95aac91ce0c6@dream.email.ne.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

Hi Andrus,

Windows 2003 is too old for the current driver to work.

Could you please try the test drivers on Windows for old OSs 12.01.0100 at
https://winpg.jp/~inoue/psqlodbc/index.html
<https://link.getmailspring.com/link/827528D4-F338-402D-B793-8695C80712C1(at)getmailspring(dot)com/0?redirect=https%3A%2F%2Flink.getmailspring.com%2Flink%2F59D870E8-5ACB-407C-9724-BFF629FF2DD7%40getmailspring.com%2F1%3Fredirect%3Dhttps%253A%252F%252Fwinpg.jp%252F~inoue%252Fpsqlodbc%252Findex.html%26recipient%3DaC1pbm91ZUBkcmVhbS5lbWFpbC5uZS5qcA%253D%253D&recipient=aC1pbm91ZUBkcmVhbS5lbWFpbC5uZS5qcA%3D%3D>
?
I can't test it myself unfortunately.

regards,
Hiroshi Inoue

On 2020/03/22 23:30, Andrus wrote:
> Hi!
> Thank you.
> I tried this .msi on Windows 2003 32 bit server
> image
> but got error
> 160/IM003
> Specified driver could not be loaded due to system error  126
> (PostgreSQL Unicode).
> According to
> https://www.postgresql.org/message-id/537D0BD9.20063.1320DFA8@david.joffe.tshwanedje.com
> I copied  msvcr100.dll file to C:\Program Files\psqlODBC\1201\bin
> directory :
> image
> but problem persists.
> How to use this driver in this server ?
> Andrus.
> *From:* Inoue, Hiroshi
> *Sent:* Friday, February 28, 2020 2:32 PM
> *To:* Andrus
> *Cc:* pgsql-odbc(at)postgresql(dot)org
> *Subject:* Re: How to fix psqlODBC driver regression to get error
> message details
> Hi,
>
> On 2020/02/28 18:51, Andrus wrote:
>> Hi!
>> Thank you.
>> I’m using 32 bit unicode driver.
>> I have installed  12.01.0000 32-drivers from msi file.
>> Running installer from your page fails. Installer log is below. Also
>> it uninstalls 12.01.0000 32 bit odbc driver.
>
> Hmm, it's strange.
>
> Well I put msi (zip) file instead of exe file.
> Please download again.
>
> regards,
> Hiroshi Inoue
>
>> After running installer there are no odbc drivers installed.
>> How to install new 32 bit unicode driver ?
>> Andrus.
>> Installer log:
>> [1648:3760][2020-02-28T11:44:28]i001: Burn v3.11.1.2318, Windows
>> v10.0 (Build 18362: Service Pack 0), path:
>> C:\Users\andrus\AppData\Local\Temp\{AB6840E8-E2C9-45B6-923C-56BF8B609BC6}\.cr\psqlodbc-setup.exe
>> [1648:3760][2020-02-28T11:44:28]i009: Command Line:
>> '-burn.clean.room=C:\Users\andrus\Downloads\psqlodbc-setup.exe
>> -burn.filehandle.attached=624 -burn.filehandle.self=632'
>> [1648:3760][2020-02-28T11:44:28]i000: Setting string variable
>> 'WixBundleOriginalSource' to value
>> 'C:\Users\andrus\Downloads\psqlodbc-setup.exe'
>> [1648:3760][2020-02-28T11:44:28]i000: Setting string variable
>> 'WixBundleOriginalSourceFolder' to value 'C:\Users\andrus\Downloads\'
>> [1648:3760][2020-02-28T11:44:28]i000: Setting string variable
>> 'WixBundleLog' to value
>> 'C:\Users\andrus\AppData\Local\Temp\psqlodbc_20200228114428.log'
>> [1648:3760][2020-02-28T11:44:28]i000: Setting string variable
>> 'WixBundleName' to value 'psqlodbc'
>> [1648:3760][2020-02-28T11:44:28]i000: Setting string variable
>> 'WixBundleManufacturer' to value 'PostgreSQL Global Development Group'
>> [1648:1334][2020-02-28T11:44:28]i000: Setting numeric variable
>> 'WixStdBALanguageId' to value 1033
>> [1648:1334][2020-02-28T11:44:28]i000: Setting version variable
>> 'WixBundleFileVersion' to value '12.1.100.0'
>> [1648:3760][2020-02-28T11:44:28]i100: Detect begin, 2 packages
>> [1648:3760][2020-02-28T11:44:28]e000: Error 0x80070003: Failed to get
>> size of pseudo bundle: C:\ProgramData\Package
>> Cache\{c0188725-1628-43f1-8917-29bfb96c569e}\psqlodbc-setup.exe
>> [1648:3760][2020-02-28T11:44:28]e000: Error 0x80070003: Failed to
>> initialize package from related bundle id:
>> {c0188725-1628-43f1-8917-29bfb96c569e}
>> [1648:3760][2020-02-28T11:44:28]i103: Detected related package:
>> {D761D71A-AC75-4221-9C42-A8CE8981D9F3}, scope: PerMachine, version:
>> 12.1.0.0, language: 0 operation: MajorUpgrade
>> [1648:3760][2020-02-28T11:44:28]i103: Detected related package:
>> {01BABE69-7F9C-4577-8ECD-D4747C928A73}, scope: PerMachine, version:
>> 11.0.0.0, language: 0 operation: MajorUpgrade
>> [1648:3760][2020-02-28T11:44:28]i101: Detected package:
>> psqlodbc_x86.msi, state: Absent, cached: None
>> [1648:3760][2020-02-28T11:44:28]i101: Detected package:
>> psqlodbc_x64.msi, state: Absent, cached: None
>> [1648:3760][2020-02-28T11:44:28]i199: Detect complete, result: 0x0
>> [1648:1334][2020-02-28T11:44:33]i000: Setting numeric variable
>> 'EulaAcceptCheckbox' to value 1
>> [1648:3760][2020-02-28T11:44:33]i200: Plan begin, 2 packages, action:
>> Install
>> [1648:3760][2020-02-28T11:44:33]i000: Setting string variable
>> 'WixBundleRollbackLog_psqlodbc_x86.msi' to value
>> 'C:\Users\andrus\AppData\Local\Temp\psqlodbc_20200228114428_000_psqlodbc_x86.msi_rollback.log'
>> [1648:3760][2020-02-28T11:44:33]i000: Setting string variable
>> 'WixBundleLog_psqlodbc_x86.msi' to value
>> 'C:\Users\andrus\AppData\Local\Temp\psqlodbc_20200228114428_000_psqlodbc_x86.msi.log'
>> [1648:3760][2020-02-28T11:44:33]i052: Condition 'VersionNT64'
>> evaluates to true.
>> [1648:3760][2020-02-28T11:44:33]i000: Setting string variable
>> 'WixBundleRollbackLog_psqlodbc_x64.msi' to value
>> 'C:\Users\andrus\AppData\Local\Temp\psqlodbc_20200228114428_001_psqlodbc_x64.msi_rollback.log'
>> [1648:3760][2020-02-28T11:44:33]i000: Setting string variable
>> 'WixBundleLog_psqlodbc_x64.msi' to value
>> 'C:\Users\andrus\AppData\Local\Temp\psqlodbc_20200228114428_001_psqlodbc_x64.msi.log'
>> [1648:3760][2020-02-28T11:44:33]i201: Planned package:
>> psqlodbc_x86.msi, state: Absent, default requested: Present, ba
>> requested: Present, execute: Install, rollback: Uninstall, cache:
>> Yes, uncache: No, dependency: Register
>> [1648:3760][2020-02-28T11:44:33]i201: Planned package:
>> psqlodbc_x64.msi, state: Absent, default requested: Present, ba
>> requested: Present, execute: Install, rollback: Uninstall, cache:
>> Yes, uncache: No, dependency: Register
>> [1648:3760][2020-02-28T11:44:33]i299: Plan complete, result: 0x0
>> [1648:3760][2020-02-28T11:44:33]i300: Apply begin
>> [1648:3760][2020-02-28T11:44:33]i010: Launching elevated engine process.
>> [1648:3760][2020-02-28T11:44:34]i011: Launched elevated engine process.
>> [1648:3760][2020-02-28T11:44:34]i012: Connected to elevated engine.
>> [20C4:3430][2020-02-28T11:44:34]e000: Error 0x80070003: Failed to get
>> size of pseudo bundle: C:\ProgramData\Package
>> Cache\{c0188725-1628-43f1-8917-29bfb96c569e}\psqlodbc-setup.exe
>> [20C4:3430][2020-02-28T11:44:34]e000: Error 0x80070003: Failed to
>> initialize package from related bundle id:
>> {c0188725-1628-43f1-8917-29bfb96c569e}
>> [20C4:3430][2020-02-28T11:44:34]i358: Pausing automatic updates.
>> [20C4:3430][2020-02-28T11:44:34]i359: Paused automatic updates.
>> [20C4:3430][2020-02-28T11:44:34]i360: Creating a system restore point.
>> [20C4:3430][2020-02-28T11:44:46]i361: Created a system restore point.
>> [20C4:3430][2020-02-28T11:44:46]i370: Session begin, registration
>> key:
>> SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{d350bf53-a7d7-4110-a949-143967bfc13c},
>> options: 0x7, disable resume: No
>> [20C4:3430][2020-02-28T11:44:48]i000: Caching bundle from:
>> 'C:\Users\andrus\AppData\Local\Temp\{117FA21A-25D2-4824-8818-C7D6D9371B93}\.be\psqlodbc-setup.exe'
>> to: 'C:\ProgramData\Package
>> Cache\{d350bf53-a7d7-4110-a949-143967bfc13c}\psqlodbc-setup.exe'
>> [20C4:3430][2020-02-28T11:44:48]i320: Registering bundle dependency
>> provider: {d350bf53-a7d7-4110-a949-143967bfc13c}, version: 12.1.100.0
>> [20C4:3430][2020-02-28T11:44:48]i371: Updating session, registration
>> key:
>> SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{d350bf53-a7d7-4110-a949-143967bfc13c},
>> resume: Active, restart initiated: No, disable resume: No
>> [20C4:3710][2020-02-28T11:44:48]i305: Verified acquired payload:
>> psqlodbc_x86.msi at path: C:\ProgramData\Package
>> Cache\.unverified\psqlodbc_x86.msi, moving to: C:\ProgramData\Package
>> Cache\{F7DA4A35-8117-4949-8206-653DF0893745}v12.01.0100\psqlodbc_x86.msi.
>> [20C4:3710][2020-02-28T11:44:48]i305: Verified acquired payload:
>> psqlodbc_x64.msi at path: C:\ProgramData\Package
>> Cache\.unverified\psqlodbc_x64.msi, moving to: C:\ProgramData\Package
>> Cache\{336AD014-1E8E-4773-B840-C54A1669BAAB}v12.01.0100\psqlodbc_x64.msi.
>> [20C4:3430][2020-02-28T11:44:48]i323: Registering package dependency
>> provider: {F7DA4A35-8117-4949-8206-653DF0893745}, version:
>> 12.01.0100, package: psqlodbc_x86.msi
>> [20C4:3430][2020-02-28T11:44:48]i301: Applying execute package:
>> psqlodbc_x86.msi, action: Install, path: C:\ProgramData\Package
>> Cache\{F7DA4A35-8117-4949-8206-653DF0893745}v12.01.0100\psqlodbc_x86.msi,
>> arguments: ' ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7"'
>> [1648:3760][2020-02-28T11:44:51]i319: Applied execute package:
>> psqlodbc_x86.msi, result: 0x0, restart: None
>> [20C4:3430][2020-02-28T11:44:51]i325: Registering dependency:
>> {d350bf53-a7d7-4110-a949-143967bfc13c} on package provider:
>> {F7DA4A35-8117-4949-8206-653DF0893745}, package: psqlodbc_x86.msi
>> [20C4:3430][2020-02-28T11:44:51]i323: Registering package dependency
>> provider: {336AD014-1E8E-4773-B840-C54A1669BAAB}, version:
>> 12.01.0100, package: psqlodbc_x64.msi
>> [20C4:3430][2020-02-28T11:44:51]i301: Applying execute package:
>> psqlodbc_x64.msi, action: Install, path: C:\ProgramData\Package
>> Cache\{336AD014-1E8E-4773-B840-C54A1669BAAB}v12.01.0100\psqlodbc_x64.msi,
>> arguments: ' ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7"'
>> [20C4:3430][2020-02-28T11:45:12]e000: Error 0x80070643: Failed to
>> install MSI package.
>> [20C4:3430][2020-02-28T11:45:12]e000: Error 0x80070643: Failed to
>> execute MSI package.
>> [1648:3760][2020-02-28T11:45:12]e000: Error 0x80070643: Failed to
>> configure per-machine MSI package.
>> [1648:3760][2020-02-28T11:45:12]i319: Applied execute package:
>> psqlodbc_x64.msi, result: 0x80070643, restart: None
>> [1648:3760][2020-02-28T11:45:12]e000: Error 0x80070643: Failed to
>> execute MSI package.
>> [20C4:3430][2020-02-28T11:45:12]i301: Applying rollback package:
>> psqlodbc_x64.msi, action: Uninstall, path: (null), arguments: '
>> ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7"'
>> [1648:3760][2020-02-28T11:45:12]i319: Applied rollback package:
>> psqlodbc_x64.msi, result: 0x0, restart: None
>> [20C4:3430][2020-02-28T11:45:12]i329: Removed package dependency
>> provider: {336AD014-1E8E-4773-B840-C54A1669BAAB}, package:
>> psqlodbc_x64.msi
>> [20C4:3430][2020-02-28T11:45:12]i351: Removing cached package:
>> psqlodbc_x64.msi, from path: C:\ProgramData\Package
>> Cache\{336AD014-1E8E-4773-B840-C54A1669BAAB}v12.01.0100\
>> [20C4:3430][2020-02-28T11:45:12]i326: Removed dependency:
>> {d350bf53-a7d7-4110-a949-143967bfc13c} on package provider:
>> {F7DA4A35-8117-4949-8206-653DF0893745}, package psqlodbc_x86.msi
>> [20C4:3430][2020-02-28T11:45:12]i301: Applying rollback package:
>> psqlodbc_x86.msi, action: Uninstall, path: (null), arguments: '
>> ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7"'
>> [1648:3760][2020-02-28T11:45:13]i319: Applied rollback package:
>> psqlodbc_x86.msi, result: 0x0, restart: None
>> [20C4:3430][2020-02-28T11:45:13]i329: Removed package dependency
>> provider: {F7DA4A35-8117-4949-8206-653DF0893745}, package:
>> psqlodbc_x86.msi
>> [20C4:3430][2020-02-28T11:45:13]i351: Removing cached package:
>> psqlodbc_x86.msi, from path: C:\ProgramData\Package
>> Cache\{F7DA4A35-8117-4949-8206-653DF0893745}v12.01.0100\
>> [20C4:3430][2020-02-28T11:45:13]i372: Session end, registration key:
>> SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{d350bf53-a7d7-4110-a949-143967bfc13c},
>> resume: None, restart: None, disable resume: No
>> [20C4:3430][2020-02-28T11:45:13]i330: Removed bundle dependency
>> provider: {d350bf53-a7d7-4110-a949-143967bfc13c}
>> [20C4:3430][2020-02-28T11:45:13]i352: Removing cached bundle:
>> {d350bf53-a7d7-4110-a949-143967bfc13c}, from path:
>> C:\ProgramData\Package Cache\{d350bf53-a7d7-4110-a949-143967bfc13c}\
>> [20C4:3430][2020-02-28T11:45:13]i371: Updating session, registration
>> key:
>> SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{d350bf53-a7d7-4110-a949-143967bfc13c},
>> resume: None, restart initiated: No, disable resume: No
>> [1648:3760][2020-02-28T11:45:13]i399: Apply complete, result:
>> 0x80070643, restart: None, ba requested restart:  No
>> *From:* Inoue, Hiroshi
>> *Sent:* Friday, February 28, 2020 12:51 AM
>> *To:* Andrus
>> *Cc:* pgsql-odbc(at)postgresql(dot)org
>> *Subject:* Re: How to fix psqlODBC driver regression to get error
>> message details
>> Hi,
>>
>> Could you please try to add "D7=1" to your connection string?
>>
>> regards,
>> Hiroshi Inoue
>>
>> On 2020/02/27 23:06, Andrus wrote:
>>> Hi!
>>> Thank you.
>>> My application uses connection strings only to provide zero
>>> configuration application for users.
>>> How to specify this in connection string ?
>>> Andrus.
>>> *From:* Inoue, Hiroshi
>>> *Sent:* Thursday, February 27, 2020 3:06 PM
>>> *To:* Andrus
>>> *Cc:* pgsql-odbc(at)postgresql(dot)org
>>> *Subject:* Re: How to fix psqlODBC driver regression to get error
>>> message details
>>> Hi Andrus,
>>>
>>> Could you please try the test drivers on Windows 12.01.0100 at
>>> https://winpg.jp/~inoue/psqlodbc/index.html
>>> <https://link.getmailspring.com/link/827528D4-F338-402D-B793-8695C80712C1(at)getmailspring(dot)com/0?redirect=https%3A%2F%2Flink.getmailspring.com%2Flink%2F59D870E8-5ACB-407C-9724-BFF629FF2DD7%40getmailspring.com%2F1%3Fredirect%3Dhttps%253A%252F%252Fwinpg.jp%252F~inoue%252Fpsqlodbc%252Findex.html%26recipient%3DaC1pbm91ZUBkcmVhbS5lbWFpbC5uZS5qcA%253D%253D&recipient=aC1pbm91ZUBkcmVhbS5lbWFpbC5uZS5qcA%3D%3D>
>>> ?
>>> You can turn on the *Display Optional Error Message* option
>>> using ODBC Data Source Adminirator (Advanced Options page 2).
>>>
>>> regards,
>>> Hiroshi Inoue
>>>
>>> On 2020/02/27 15:23, Andrus wrote:
>>>> Hi!
>>>>
>>>> Yes.
>>>> I have done this earlier for previous issue where error message was
>>>> always the same after moving to libpq and also approx 10 years ago
>>>> for another issue.
>>>>
>>>> In pgsql odbc source code file connection.c: line 866
>>>>
>>>> contains:
>>>>
>>>> errprimary = PQresultErrorField(pgres, PG_DIAG_MESSAGE_PRIMARY);
>>>>
>>>> which gets only primary error message.
>>>>
>>>> To get error message detail, PG_DIAG_MESSAGE_DETAIL should used
>>>> according
>>>> to https://www.postgresql.org/docs/current/libpq-exec.html.
>>>> PG_DIAG_MESSAGE_DETAIL is not used in pgsql-odbc source code.
>>>>
>>>> I have large number of schemas all containing same table names.
>>>> Error message and even error message detail show only table name
>>>> without schema name.
>>>> This makes difficult to diagnore errors.
>>>>
>>>> According to docs there is parameter
>>>>
>>>> PG_DIAG_SCHEMA_NAME
>>>>
>>>> If the error was associated with a specific database object, the
>>>> name of the schema containing that object, if any.
>>>>
>>>> Can you add this also to error message if this provides schema name
>>>> or error.
>>>>
>>>> Also following fields would be useful in error message:
>>>>
>>>> PG_DIAG_MESSAGE_HINT
>>>> PG_DIAG_STATEMENT_POSITION
>>>> PG_DIAG_INTERNAL_QUERY
>>>> PG_DIAG_CONTEXT
>>>> PG_DIAG_COLUMN_NAME
>>>> PG_DIAG_DATATYPE_NAME
>>>>
>>>> Can you provide a way to get them also in error message.
>>>>
>>>> Andrus.
>>>>
>>>> -----Algsõnum----- From: Inoue, Hiroshi
>>>> Sent: Thursday, February 27, 2020 4:43 AM
>>>> To: Andrus
>>>> Cc: pgsql-odbc(at)postgresql(dot)org
>>>> Subject: Re: How to fix psqlODBC driver regression to get error
>>>> message details
>>>>
>>>> Hi Andrus,
>>>>
>>>> Could you try the test driver if I provide a test driver on Windows?
>>>>
>>>> regards,
>>>> Hiroshi Inoue
>>>>
>>>> On 2020/02/23 7:43, 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
>>>>>
>>>>> Andrus.
>>>>>
>>>>> Posted also in
>>>>>
>>>>> https://stackoverflow.com/questions/60357505/how-to-fix-psqlodbc-driver-regression-to-get-error-message-details
>>>>>
>>>>>
>>>>> and in pgsql-general mailist list.
>

In response to

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Andrus 2020-03-25 12:05:07 Re: How to fix psqlODBC driver regression to get error message details
Previous Message Inoue, Hiroshi 2020-03-24 08:19:03 Re: Patch to solve memory protect violation and clear __error_number after call CC_lookup_characterset