64bit Windows port
Note: 64bit Windows port was introduced in PostgreSQL 9.0.
64bit Windows Port
This page is for collating info and working up a TODO list for producing an eventual Win64 port of PostgreSQL. As there is generally no reason to run with shared_buffers > 256 - 512MB on Windows, because increases beyond that stop being effective, there isn't a great deal of incentive to put in the effort required for the 64 bit port. There are a few reasons though:
- 64 bit applications may require a 64 bit libpq.dll.
- Some end users/customers like the warm fuzzy feeling they get from running 64 bit binaries on their 64 bit machines.
- Users may want to use custom C functions that make use of external 64 bit libraries.
- Users may want to use procedural languages that use 64 bit interpreters.
- Sooner or (probably) later Microsoft will likely deprecate their 32 bit tool chain.
- Magnus blogged why a win64 port is not too urgent: http://swik.net/PostgreSQL/Planet+Postgresql/Magnus+Hagander:+PostgreSQL+vs+64-bit+windows
The following subsections list the issues that need to be resolved in broad categories.
- Build system
- Datatypes used in the backend (*much* more detail is required here folks!)
We'll need 64 bit builds of these support libraries to avoid turning off expected features.
- MIT Kerberos - the current expectation is that this will be dropped entirely in favour of SSPI
- OpenSSL - Unofficial 64 bit build available from http://www.deanlee.cn/programming/openssl-for-windows/
- Gettext - http://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/
- Iconv - http://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/, or see http://monetdb.cwi.nl/projects/monetdb/MonetDB/Documentation/Windows-Installation.html for manual compilation info. Totally unofficial build at blender.org: https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64/iconv/
- libxml2 - see http://monetdb.cwi.nl/projects/monetdb/MonetDB/Documentation/Windows-Installation.html for manual compilation info.
- zlib - http://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/, or see http://monetdb.cwi.nl/projects/monetdb/MonetDB/Documentation/Windows-Installation.html for manual compilation info. Totally unofficial build at blender.org: https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64/zlib/
- libxml2 and libxslt are available within the PHP-Windows-builds at http://pecl2.php.net/downloads/php-windows-builds/php-libs/
Hint: other people also look for those libraries, connecting http://wiki.wireshark.org/Development/Win64
- Perl - Activestate package: http://www.activestate.com/activeperl/downloads/
- Python - official builds at http://www.python.org/download/releases/2.5.4/, Activestate 2.5 build at http://www.activestate.com/activepython/downloads/
- TCL - Tcl 8.4.9 should support AMD64 out-of-the-box says Jeff Hobbs, The Tcl Guy http://coding.derkeiler.com/Archive/Tcl/comp.lang.tcl/2005-05/msg00866.html