On 10/01/2018 11:58 AM, Tom Lane wrote:
Mark Wong <m...@2ndquadrant.com> writes:
                   a                   |                  a                   | 
 uuid_cmp
--------------------------------------+--------------------------------------+-------------
  11111111-1111-1111-1111-111111111111 | 11111111-1111-1111-1111-111111111111 | 
          0
  11111111-1111-1111-1111-111111111111 | 22222222-2222-2222-2222-222222222222 | 
-2147483648
  11111111-1111-1111-1111-111111111111 | 3f3e3c3b-3a30-3938-3736-353433a2313e | 
-2147483648
  22222222-2222-2222-2222-222222222222 | 11111111-1111-1111-1111-111111111111 | 
          1
  22222222-2222-2222-2222-222222222222 | 22222222-2222-2222-2222-222222222222 | 
          0
  22222222-2222-2222-2222-222222222222 | 3f3e3c3b-3a30-3938-3736-353433a2313e | 
-2147483648
  3f3e3c3b-3a30-3938-3736-353433a2313e | 11111111-1111-1111-1111-111111111111 | 
          1
  3f3e3c3b-3a30-3938-3736-353433a2313e | 22222222-2222-2222-2222-222222222222 | 
          1
  3f3e3c3b-3a30-3938-3736-353433a2313e | 3f3e3c3b-3a30-3938-3736-353433a2313e | 
          0
(9 rows)

Oooh ... apparently, on that platform, memcmp() is willing to produce
INT_MIN in some cases.  That's not a safe value for a sort comparator
to produce --- we explicitly say that somewhere, IIRC.  I think we
implement DESC by negating the comparator's result, which explains
why only the DESC case fails.

                        


Is there a standard that forbids this, or have we just been lucky up to now?

cheers

andrew

--
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Reply via email to