From: | David Blasby <dblasby(at)refractions(dot)net> |
---|---|
To: | Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: '_' < '5' -- different answer on 7.2 and 7.3 |
Date: | 2003-07-04 23:00:40 |
Message-ID: | 3F060718.3040902@refractions.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> My first guess would be that you're not running in "C" locale
> on the 7.3 system. I get false on my 7.3.1 system in C locale,
> but if I compare the two strings in C using en_US for example I
> seem to get results like the above ('_'<'5' is true).
It turns out our 7.3 database was somehow initd with local "en_US".
I'm trying to get postgresql and a MS vc++ to communicate.
In postgresql 7.3 (en_US):
toponymy=# select '_' < '5';;
?column?
----------
t
(1 row)
toponymy=# select '_5' < '5';
?column?
----------
f
(1 row)
But in MS vc++:
TRACE("locale set to 'en_US'\n");
setlocale( LC_ALL, "English_United States" );
if (strcoll("_5","5") <0 )
TRACE("strcoll('_5','5') -- <0 \n");
else
TRACE( "strcoll('_5','5') -- >=0\n");
returns:
locale set to 'en_US'
strcoll('_5','5') -- <0
Which is to say postgresql thinks "_5" > "5", but
(a bit strangely) "_" < "5" (the '>' and '<' are reversed).
vc++ thinks "_5" < "5" and "_" < "5".
So, which one is correct and why does the other disagree?
dave
From | Date | Subject | |
---|---|---|---|
Next Message | Stephan Szabo | 2003-07-04 23:34:31 | Re: '_' < '5' -- different answer on 7.2 and 7.3 |
Previous Message | Bjoern Metzdorf | 2003-07-04 22:24:18 | Re: PostgreSQL vs. MySQL |