Обсуждение: Possible bug in Postgres String comparison routines
Hi, On my Postgres system ( PostgreSQL 7.1.2 on i686-pc-linux-gnu, compiled by GCC 2.96), I get the following odd behavior in string compares: # Works -- e (ASCII code 101) is after comma (ASCII code 44) select current_time where 'e' > ','; # Works -- adding a k to the front of both strings select current_time where 'ke' > 'k,'; # Works -- add some trailing characters. Note that since 'ke' > 'k,' # we should be able to add whatever trailing characters we want # and still get the same result select current_time where 'ken' > 'k, '; # Does not work!!! select current_time where 'kens' > 'k, P'; # Also does not work select current_time where 'ens' > ', P'; For "Works", I mean returns a result (the where expression evaluated true); "Does not work" means no result was returned. Is there something that I'm not understanding here, or is this a bug? Peter
Peter Breton <pbreton@MIT.EDU> writes: > Is there something that I'm not understanding here, or is this a bug? What locale are you using? Non-C locales have sorting rules more complex than you seem to be expecting. $ cat data e , ke k, ken k, kens k, P ens , P $ LANG=C sort data , , P e ens k, k, k, P ke ken kens $ LANG=en_US.iso88591 sort data e ens ke ken kens k, k, k, P , , P $ regards, tom lane