From: | zoulx1982(at)163(dot)com |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #6460: routine my_log2 use incorrect data type ? |
Date: | 2012-02-17 05:25:43 |
Message-ID: | E1RyGKF-0007i4-6P@wrigleys.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged on the website:
Bug reference: 6460
Logged by: lxzou
Email address: zoulx1982(at)163(dot)com
PostgreSQL version: 9.1.2
Operating system: Windows Server 2008 64 bit
Description:
Hi,
I startup postgres in win server 2008 64-bit with
shared_buffers=1073741819, but find it doesn't work.
I debug the postgres use vs2008, and find it enter an Infinite loop in
my_log2.
when the parameter num is between (2^30) + 1 and (2^31) -1, it will be an
Infinite loop.
because long in win 64 is 4 bytes, so (2^30) << 1 is 2^31, i.e. -2^31.
move left again it will be zero.
size_t in win64 is 8 bytes,so add_size and mul_size can't check overflow,
but in win32 it can do that.
So, whether we should use Size instead of long ?
Best wishes
From | Date | Subject | |
---|---|---|---|
Next Message | lenka.piyush | 2012-02-17 10:41:00 | BUG #6461: "-t" deletes primary key |
Previous Message | Tom Lane | 2012-02-16 00:24:59 | Re: Botched estimation in eqjoinsel_semi for cases without reliable ndistinct |