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-02-28 12:32:30
Message-ID: 7fb820a2-163d-486e-383c-5e6b335dbe41@dream.email.ne.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

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 Stefan Wolf 2020-03-02 14:25:17 MS-ACCESS 2010, ODBC 12.01, Out of Memory
Previous Message Andrus 2020-02-28 09:51:29 Re: How to fix psqlODBC driver regression to get error message details