Hello, At Thu, 29 Sep 2016 10:37:30 +0200, Emre Hasegeli <e...@hasegeli.com> wrote in <CAE2gYzxijWKwJ-ZPD--QHM+SxMd+vL_81_3Xt0spnCbsqFH=u...@mail.gmail.com> > > regression=# select 'I- 580 Ramp' < 'I- 580/I-680 > > Ramp'; > > ?column? > > ---------- > > t > > (1 row) > > on the Linux server I am testing, it is not: > > > regression=# select 'I- 580 Ramp' < 'I- 580/I-680 > > Ramp'; > > ?column? > > ---------- > > f > > (1 row) > > The later should be the case on your environment as the test was also > failing for you. This is not consistent with the expected test > result. Do you know how this test can still pass on the master?
Perhaps you ran the test under the environment LC_COLLATE (or LANG) of something other than C. The reson for the result is collation. The following returns expected result. =# select 'I- 580 Ramp' < ('I- 580/I-680 Ramp' COLLATE "C"); ?column? ---------- t (1 row) For a reason I don't know, say, en_US locale behaves in an unintuitive way. regression=# select ' ' < ('/' COLLATE "en_US"), ' x' < ('/a' COLLATE "en_US"); ?column? | ?column? ----------+---------- t | f (1 row) Returning to the issue, the following query should give you the expected result. SELECT name, #thepath FROM iexit ORDER BY name COLLATE "C", 2; regards, -- Kyotaro Horiguchi NTT Open Source Software Center -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers