From: | "Jim Michaels" <jmichae3(at)yahoo(dot)com> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #4947: libpq PQntuples should return 64-bit number |
Date: | 2009-07-28 06:54:39 |
Message-ID: | 200907280654.n6S6sdvm050676@wwwmaster.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged online:
Bug reference: 4947
Logged by: Jim Michaels
Email address: jmichae3(at)yahoo(dot)com
PostgreSQL version: 8.4.0
Operating system: Win XP Pro Sp3
Description: libpq PQntuples should return 64-bit number
Details:
I agree that 64-bit numbers are compiler-specific. this can be overcome
with something like the following code:
although now I understand that the microsoft 2008 compiler implements
UINT128, UINT8, UINT64, UINT32, INT64 and the like, but the MINGW compiler
and BCC++5.5 do not necessarily implement them.
maybe with some #if defined(INT64) the following code could be made proper.
something common to all 32-bit microsoft compilers is the __int64 type.
I suggest using the qlong type.
/*types.h*/
#if !defined(TYPES_LIB_VERSION)
#define TYPES_LIB_VERSION "1.0"
typedef unsigned long dword;
typedef unsigned short word;
typedef unsigned char byte;
#if defined(__DJGPP__)
typedef unsigned long long qword;
typedef long long qlong;
#elif defined(__BORLANDC__)||defined(_MSC_VER) || defined(__MINGW32__)
#include <windows.h>
#if defined(__MINGW32__)
#include <basetsd.h>
#endif
#endif //DJGPP
/*these are kept down here below the #include windows.h on purpose.
__int64 is defined in basetsd.h in MINGW.
*/
#if defined(__BORLANDC__) || defined(_MSC_VER) || defined(__GNUC__)
#if !defined(DWORD)
typedef unsigned long DWORD;
#endif
#if !defined(WORD)
typedef unsigned short WORD;
#endif
#if !defined(BYTE)
typedef unsigned char BYTE;
#endif
#endif /*BORLANDC||MSC_VER||GNUC*/
#if defined(__MINGW32__)||defined(_MSC_VER)||defined(__BORLANDC__)
typedef unsigned __int64 qword;
typedef __int64 qlong;
#if !defined(QWORD)
typedef unsigned __int64 QWORD;
#endif
#elif defined(__DJGPP__)
#if !defined(QWORD)
typedef unsigned long long QWORD;
#endif
#endif /*MINGW32*/
#endif
From | Date | Subject | |
---|---|---|---|
Next Message | fous | 2009-07-28 08:30:57 | BUG #4948: getting error while vacuuming the database |
Previous Message | Craig Ringer | 2009-07-28 06:13:55 | Re: BUG #4945: Parallel update(s) gone wild |