From: | t-ishii(at)sra(dot)co(dot)jp (Tatsuo Ishii) |
---|---|
To: | "Thomas G(dot) Lockhart" <lockhart(at)alumni(dot)caltech(dot)edu>, Postgres Porting List <ports(at)postgreSQL(dot)org>, Postgres Hackers List <hackers(at)postgreSQL(dot)org> |
Cc: | t-ishii(at)sra(dot)co(dot)jp |
Subject: | Re: [HACKERS] Platform status |
Date: | 1998-02-21 04:38:02 |
Message-ID: | 199802210435.NAA18337@meshsv26.tk.mesh.ad.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
At 4:06 PM 98.2.19 +0000, Thomas G. Lockhart wrote:
>Here is my current list of supported platforms. The outstanding issues
>are:
>mklinux/ppc - still core dumping on regression tests? why??
I finally found the source of the problem. function "_readConst" in
backend/nodes/readfuncs.c there is a line:
local_node->constlen = strtoul(token,NULL,10);
(before 6.3beta, this was:
local_node->constlen = atol(token);
)
For text type constant, token would be "-1." In this case
strtoul() of mklinux/ppc returns 0 not ULONG_MAX (same bit
pattern as -1). This is a problem.
So quick workaround might be surrounding the line by #ifdef like:
#ifdef PPC
local_node->constlen = atol(token);
#else
local_node->constlen = strtoul(token,NULL,10);
#endif
P.S.
Sure current code works except MkLinux/ppc. However calling with
strtoul() with minus value is not well-mannered IMHO
(strtoul() returns error code ERANGE in this case).
To make matters worse, there are some codes that comparing
constlen and -1.
What about changing constlen to signed int and using
strtol() instead of strtoul() here?
Tatsuo Ishii
t-ishii(at)sra(dot)co(dot)jp
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 1998-02-21 05:18:04 | Re: [HACKERS] Platform status |
Previous Message | Bruce Momjian | 1998-02-21 03:19:08 | Re: [PATCHES] Here it is - view permissions |