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 |
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 |