Re: Why separate pgenlist DLL? - Mailing list pgsql-odbc

From Heikki Linnakangas
Subject Re: Why separate pgenlist DLL?
Date
Msg-id 53A57080.1070501@vmware.com
Whole thread Raw
In response to Re: Why separate pgenlist DLL?  ("Inoue, Hiroshi" <inoue@tpf.co.jp>)
Responses Re: Why separate pgenlist DLL?  (Craig Ringer <craig@2ndquadrant.com>)
List pgsql-odbc
On 06/17/2014 12:07 PM, Inoue, Hiroshi wrote:
> (2014/06/17 2:44), Heikki Linnakangas wrote:
>> Hi,
>>
>> On Windows, when the driver is built with MSDTC support, we build some
>> of the MSDTC functions in separate DLLs: pgenlist.dll and pgxalib.dll.
>> Why do we do that? Why not just link everything in the main DLL?
>
> pgxalib.dll should be a separate DLL because it is essentially irrevant
>    to the drivers. It is called from MSDTC process when resolutions of
> in-doubt transactions are needed. As Craig Ringer reported, the 64bit
> pgxalib.dll is used on 64bit OS even when transactions are PREPAREd
> via 32bit ODBC applications. Though pgxalib.dll calls ODBC APIs
> currently, it's not calling driver's APIs directly and can call e.g.
> libpq APIs instead.

Oh, I see.

> As for pgenlist(a).dll, though I've never thought to unify it with
> main DLL, there may be a room for discussion.
>
> There were some reasons.
> 1. Basically for Windows only.
> 2. Many users don't use this functionality at all.
> 3. COM-style C++ programming and most part of the code is handling
>      asynchronous requests for COM-like objects out of ODBC APIs.
>
> I have been much more nervous in programming pgenlist than psqlodbc
> and have felt isolating the code is preferable.

Yeah, it makes sense to keep some distance. I think it would be OK to
merge it into the main DLL though. It would allow us to remove a fair
amount of glue code, and would simplify the build process. I propose the
attached to do that (against my winbuild branch in github, which
contains the MSBuild infrastructure changes)

- Heikki


Attachment

pgsql-odbc by date:

Previous
From: Craig Ringer
Date:
Subject: Re: msdtc with 32-bit app fails to resolve in-doubt or not-notifed transactions
Next
From: Heikki Linnakangas
Date:
Subject: Re: Removing support for v1 and v2 protocols?