Thread: Sort order is different on Windows and Linux

Sort order is different on Windows and Linux

From
"Robert Wille"
Date:
I have found that the sort order is different on Windows and Linux (same version of Postgres). On Windows, it sorts in what appears to be normal ASCII order. On Linux, lowercase comes before uppercase, and all non-alphanumerics appear to come before all alphanumerics. I really need it to sort on Linux the same as it does on Windows. The docs seem to imply that I can simply set the LANG environment variable to C to get an ASCII sort order, but that seem to make a difference. How do I change the sort order?
 
Thanks in advance.
 
Robert
 

Re: Sort order is different on Windows and Linux

From
Stephan Szabo
Date:
On Wed, 17 Sep 2003, Robert Wille wrote:

> I have found that the sort order is different on Windows and Linux (same
> version of Postgres). On Windows, it sorts in what appears to be normal
> ASCII order. On Linux, lowercase comes before uppercase, and all
> non-alphanumerics appear to come before all alphanumerics. I really need
> it to sort on Linux the same as it does on Windows. The docs seem to
> imply that I can simply set the LANG environment variable to C to get an
> ASCII sort order, but that seem to make a difference. How do I change
> the sort order?

You need to have the database initdb'd with the appropriate collation set
in LC_COLLATE. Changing LANG/LC_COLLATE after the fact won't help (in
recent versions anyway).


Re: Sort order is different on Windows and Linux

From
"Robert Wille"
Date:
Do I simply "export LC_COLLATE=C" before I initdb, or do I pass it as a
parameter?

> On Wed, 17 Sep 2003, Robert Wille wrote:
>
> > I have found that the sort order is different on Windows and Linux (same
> > version of Postgres). On Windows, it sorts in what appears to be normal
> > ASCII order. On Linux, lowercase comes before uppercase, and all
> > non-alphanumerics appear to come before all alphanumerics. I really need
> > it to sort on Linux the same as it does on Windows. The docs seem to
> > imply that I can simply set the LANG environment variable to C to get an
> > ASCII sort order, but that seem to make a difference. How do I change
> > the sort order?
>
> You need to have the database initdb'd with the appropriate collation set
> in LC_COLLATE. Changing LANG/LC_COLLATE after the fact won't help (in
> recent versions anyway).
>