From: | Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com> |
---|---|
To: | Andrew Dunstan <andrew(dot)dunstan(at)2ndquadrant(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andres Freund <andres(at)anarazel(dot)de>, mark(at)2ndquadrant(dot)com, Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Odd 9.4, 9.3 buildfarm failure on s390x |
Date: | 2018-10-01 22:10:53 |
Message-ID: | CAEepm=3cz=BfSZxoK5txmZCks9uH+aCR4TgHZeeKtMUK44127A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Oct 2, 2018 at 10:55 AM Andrew Dunstan
<andrew(dot)dunstan(at)2ndquadrant(dot)com> wrote:
> On 10/01/2018 12:50 PM, Tom Lane wrote:
> > Andres Freund <andres(at)anarazel(dot)de> writes:
> >> On 2018-10-01 12:13:57 -0400, Tom Lane wrote:
> >>> Yeah. So our choices are
> >>>
> >>> (1) Retain the current restriction on what sort comparators can
> >>> produce. Find all the places where memcmp's result is returned
> >>> directly, and fix them. (I wonder if strcmp has same issue.)
> >>>
> >>> (2) Drop the restriction. This'd require at least changing the
> >>> DESC correction, and maybe other things. I'm not sure what the
> >>> odds would be of finding everyplace we need to check.
> >>>
> >>> Neither one is sounding very pleasant, or maintainable.
> >> (2) seems more maintainable to me (or perhaps less unmaintainable). It's
> >> infrastructure, rather than every datatype + support out there...
> > I guess we could set up some testing infrastructure: hack int4cmp
> > and/or a couple other popular comparators so that they *always*
> > return INT_MIN, 0, or INT_MAX, and then see what falls over.
> >
> > I'm fairly sure that btree, as well as the sort code proper,
> > has got an issue here.
> >
> >
>
>
> I agree option 2 seems less unmaintainable. (Nice use of litotes there?)
+1 for option 2. It seems to me that it should ideally be the job of
the code that is negating the value to deal with this edge case. I
see that the restriction is clearly documented at the top of
src/backend/access/nbtree/nbtcompare.c even though it directly returns
strncmp() results. This was quite a surprising thread.
--
Thomas Munro
http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Lou Picciano | 2018-10-01 22:30:28 | Re: SerializeParamList vs machines with strict alignment |
Previous Message | Alvaro Herrera | 2018-10-01 22:06:32 | Re: automatic restore point |