Обсуждение: order by

Поиск
Список
Период
Сортировка

order by

От
Jodi Kanter
Дата:
Is there a known problem with the SQL order by clause within postgres version 7.2.3?
I am trying to sort a field which holds file names that have some spaces as well non-alphanumeric characters, including underscores (see below).

The results of:
select study_name from study order by study_name;


  Study1a
  Study 1b
  Study  1c
  Study1d


The results of sorting in Perl (which uses Linux's underlying sort function)

Study  1c
Study 1b
Study1a
Study1d

Is there any way around this difference?
Thanks
Jodi

_______________________________
Jodi L Kanter
BioInformatics Database Administrator
University of Virginia
(434) 924-2846
jkanter@virginia.edu


 

 

 

Re: order by

От
Tom Lane
Дата:
Jodi Kanter <jkanter@virginia.edu> writes:
> Is there a known problem with the SQL order by clause within postgres versi=
> on 7.2.3?

No ... but it does honor the sorting rules of the locale you initialize
the database in.  You might want to re-initdb with LC_ALL set to C.
        regards, tom lane



Re: order by

От
Jodi Kanter
Дата:
When we originally initialized I set the LC_COLLATE=C. Was this not enough?
We set it in the environment variables for the postgres user.
Thanks
Jodi

----- Original Message -----
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Jodi Kanter" <jkanter@virginia.edu>
Cc: "Postgres SQL List" <pgsql-sql@postgresql.org>
Sent: Thursday, March 27, 2003 1:57 AM
Subject: Re: [SQL] order by


> Jodi Kanter <jkanter@virginia.edu> writes:
> > Is there a known problem with the SQL order by clause within postgres
versi=
> > on 7.2.3?
>
> No ... but it does honor the sorting rules of the locale you initialize
> the database in.  You might want to re-initdb with LC_ALL set to C.
>
> regards, tom lane
>



Re: order by

От
Tom Lane
Дата:
Jodi Kanter <jkanter@virginia.edu> writes:
> When we originally initialized I set the LC_COLLATE=C. Was this not enough?

Should have been ... but see what pg_controldata says about the actual
setting.
        regards, tom lane



Re: order by

От
Jodi Kanter
Дата:
Can I look at this via the command line? within psql? or in one of the .conf
files?

----- Original Message -----
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Jodi Kanter" <jkanter@virginia.edu>
Cc: "Postgres SQL List" <pgsql-sql@postgresql.org>
Sent: Thursday, March 27, 2003 9:38 AM
Subject: Re: [SQL] order by


> Jodi Kanter <jkanter@virginia.edu> writes:
> > When we originally initialized I set the LC_COLLATE=C. Was this not
enough?
>
> Should have been ... but see what pg_controldata says about the actual
> setting.
>
> regards, tom lane
>



Re: order by

От
Jodi Kanter
Дата:
I figured out how to run it and it says that LC_COLLATE and LC_CTYPE are
equal to en_US. Can someone please outline the steps to correcting this. I
thought we had done it correctly from initialization but apparently not.

If I need to reinitialize now will that mess with my current databases? Will
I have to shut down production, do a pg_dump and restore?

Other than the sort ordering are there any other problems with NOT having
the environment set to "C?"
Thanks
Jodi

----- Original Message -----
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Jodi Kanter" <jkanter@virginia.edu>
Cc: "Postgres SQL List" <pgsql-sql@postgresql.org>
Sent: Thursday, March 27, 2003 9:38 AM
Subject: Re: [SQL] order by


> Jodi Kanter <jkanter@virginia.edu> writes:
> > When we originally initialized I set the LC_COLLATE=C. Was this not
enough?
>
> Should have been ... but see what pg_controldata says about the actual
> setting.
>
> regards, tom lane
>



Re: order by

От
Julian Scarfe
Дата:
On 27/3/03 14:55, "Jodi Kanter" <jkanter@virginia.edu> wrote:

> Other than the sort ordering are there any other problems with NOT having
> the environment set to "C?"

Pattern matching e.g. "where foo ~~ 'bar%'" doesn't use an index on foo
unless the locale is C.  This can cause a significant performance hit.  For
examples as above you can workaround by defining a substring function for a
functional index, but it's a bit clumsy.

Must get round to doing a fresh initdb one of these days... ;-)

Julian Scarfe