From: | Zoltan Boszormenyi <zb(at)cybertec(dot)at> |
---|---|
To: | Gregory Stark <stark(at)enterprisedb(dot)com> |
Cc: | pgsql-patches(at)postgresql(dot)org, Hans-Juergen Schoenig <hs(at)cybertec(dot)at> |
Subject: | Re: int8/float8/time/timestamp[tz]/float4 passed by value, was Re: Fix HAVE_LONG[_LONG]_INT_64 to really define to 1 |
Date: | 2008-03-24 23:15:05 |
Message-ID: | 47E835F9.8040804@cybertec.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-patches |
Hi,
Gregory Stark írta:
> "Zoltan Boszormenyi" <zb(at)cybertec(dot)at> writes:
>
>
>> - the int8inc(), int2_sum() and int4_sum() used pointers directly from the
>> Datums
>> for performance, that code path is now commented out, the other code path
>> is correct for the AggState and !AggState runs and correct every time and now
>> because of the passbyval nature of int8, the !AggState version is not slower
>> than using the pointer directly.
>>
>
> Does this mean count() and sum() are slower on a 32-bit machine?
>
If you mean "slower than on a 64-bit machine" then yes.
If you mean "slower than before", then no. I didn't express myself
correctly.
The original code path is not commented out, it is just conditionally
compiled.
BTW I found the tsearch bug, it was a missing conversion of float4
in gistproc.c, it was an unfortunate detail that this didn't cause a
segfault,
it woul have been easier to find. Now there are no failing regression tests.
--
----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
http://www.postgresql.at/
Attachment | Content-Type | Size |
---|---|---|
pg84-passedbyval-v2.patch.gz | application/x-tar | 5.7 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Gregory Stark | 2008-03-24 23:25:18 | Re: int8/float8/time/timestamp[tz]/float4 passed by value, was Re: Fix HAVE_LONG[_LONG]_INT_64 to really define to 1 |
Previous Message | Gregory Stark | 2008-03-24 23:01:34 | Re: int8/float8/time/timestamp[tz]/float4 passed by value, was Re: Fix HAVE_LONG[_LONG]_INT_64 to really define to 1 |