Re: Why separate pgenlist DLL?

From: Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>
To: "Inoue, Hiroshi" <inoue(at)tpf(dot)co(dot)jp>, "pgsql-odbc(at)postgresql(dot)org" <pgsql-odbc(at)postgresql(dot)org>
Subject: Re: Why separate pgenlist DLL?
Date: 2014-06-21 11:46:08
Message-ID: 53A57080.1070501@vmware.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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 Content-Type Size
0001-Link-msdtc_enlist.cpp-into-the-main-DLL.patch text/x-diff 23.7 KB

In response to

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Heikki Linnakangas 2014-06-21 11:59:39 Re: Removing support for v1 and v2 protocols?
Previous Message Heikki Linnakangas 2014-06-21 11:37:02 Non-ASCII DSN name troubles