Andrew Dunstan wrote: > > Cleaning up the parallel restore patch I came across a question I might > have asked before, but one which in any case I worked around: > > Why do we carefully define fseeko() for WIN32 but then not define > HAVE_FSEEKO, which makes doing the former pretty much pointless?
Well, we are doing something odd here but it might not be what you think. We currently use fseeko() only in pg_dump. We define C code in /port for some Unix platforms that don't support fseeko. For platforms that don't support fseeko and don't have /port support for it we just use fseek() in port.h: #ifndef HAVE_FSEEKO #define fseeko(a, b, c) fseek(a, b, c) #define ftello(a) ftell(a) #endif but then for Win32 we #undef fseeko and redefine it: #ifdef WIN32 #define pgoff_t __int64 #undef fseeko #undef ftello #ifdef WIN32_ONLY_COMPILER #define fseeko(stream, offset, origin) _fseeki64(stream, offset, origin) #define ftello(stream) _ftelli64(stream) #else #define fseeko(stream, offset, origin) fseeko64(stream, offset, origin) #define ftello(stream) ftello64(stream) #endif #else #define pgoff_t off_t #endif Clearly this code should be moved into port.h, I think. -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + If your life is a hard drive, Christ can be your backup. + -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers