From: | David Rowley <drowley(at)postgresql(dot)org> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Fix some incorrect preprocessor tests in tuplesort specializatio |
Date: | 2022-05-10 23:40:04 |
Message-ID: | E1noZSW-0004pz-7D@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Fix some incorrect preprocessor tests in tuplesort specializations
697492434 added 3 new quicksort specialization functions for common
datatypes.
That commit was not very consistent in how it would determine if we're
compiling for 32-bit or 64-bit machines. It would sometimes use
USE_FLOAT8_BYVAL and at other times check if SIZEOF_DATUM == 8. This
could cause theoretical problems due to the way USE_FLOAT8_BYVAL is now
defined based on SIZEOF_VOID_P >= 8. If pointers for some reason were
ever larger than 8-bytes then we'd end up doing 32-bit comparisons
mistakenly. Let's just always check SIZEOF_DATUM >= 8.
It also seems that ssup_datum_signed_cmp is just never used on 32-bit
builds, so let's just ifdef that out to make sure we never accidentally
use that comparison function on such machines. This also allows us to
ifdef out 1 of the 3 new specialization quicksort functions in 32-bit
builds which seems to shrink down the binary by over 4KB on my machine.
In passing, also add the missing DatumGetInt32() / DatumGetInt64() macros
in the comparison functions.
Discussion: https://postgr.es/m/CAApHDvqcQExRhtRa9hJrJB_5egs3SUfOcutP3m+3HO8A+fZTPA@mail.gmail.com
Reviewed-by: John Naylor
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/c90c16591c438e4146b1d4b9e4539f80b58845ba
Modified Files
--------------
src/backend/access/nbtree/nbtcompare.c | 4 ++--
src/backend/utils/adt/timestamp.c | 4 ++--
src/backend/utils/sort/tuplesort.c | 21 ++++++++++++---------
src/include/utils/sortsupport.h | 2 ++
4 files changed, 18 insertions(+), 13 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | David Rowley | 2022-05-10 23:43:15 | Re: pgsql: Specialize tuplesort routines for different kinds of abbreviated |
Previous Message | Tom Lane | 2022-05-10 22:42:28 | pgsql: configure: don't probe for libldap_r if libldap is 2.5 or newer. |