On 1 June 2012 12:14, Edmund Horner <ejrh00@gmail.com> wrote:
> I tried using an older libxml2.dll. =A0Replace with the one from
> ftp://ftp.zlatkovic.com/libxml/oldreleases/libxml2-2.6.9.win32.zip
> (and copying zlib1.dll to zlib.dll), and it works.
>
> I note that the previous 9.1.3 binaries used the newer libxml2.dll
> though (same as the one in
> ftp://ftp.zlatkovic.com/libxml/libxml2-2.7.8.win32.zip).
>
> So I'm guessing the Windows PostgreSQL binaries were built with the
> old one, but packaged with the new one.
Also, if libxml2.dll is replaced with the 2.6 version as above,
"CREATE EXTENSION xml2" will result in this:
ERROR: could not load library "C:/ehorner/pgsql/lib/pgxml.dll":
The specified procedure could not be found.
Which may imply that that DLL was built with the 2.7 version. With
the 2.7 version in place as originally packaged, we have can load the
extension but not use the functions from it.
postgres=3D# create extension xml2;
CREATE EXTENSION
postgres=3D# select xslt_process('<foo/>', '<bar/>');
ERROR: could not set up XML error handler
HINT: This probably indicates that the version of libxml2 being
used is not compatible with the
libxml2 header files that PostgreSQL was built with.
I wanted to check whether the packaged libxslt.dll had the same
compatibility situation as libxml2.dll does. Unfortunately it seems
doing so means using both versions of the library at once!
Edmund.