Re: ORDER BY problem

From: Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com>
To: Thomas Beutin <tyrone(at)laokoon(dot)IN-Berlin(dot)DE>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: ORDER BY problem
Date: 2004-03-01 17:10:57
Message-ID: 20040301090934.K73482@megazone.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, 1 Mar 2004, Thomas Beutin wrote:

> On Mon, Mar 01, 2004 at 07:28:37AM -0800, Stephan Szabo wrote:
> > On Mon, 1 Mar 2004, Thomas Beutin wrote:
> >
> > > when i do the following query i get an wrong result order on my postgres
> > > system (PostgreSQL 7.2.4 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.2.2)
> > >
> > > tb_test=# SELECT name, upper(name) FROM tb_wurst ORDER BY upper(name);
> > > name | upper
> > > ----------------------------------+----------------------------------
> > > Americabound Tours, Inc. | AMERICABOUND TOURS, INC.
> > > American Airlines | AMERICAN AIRLINES
> > > American Express Tour Operador | AMERICAN EXPRESS TOUR OPERADOR
> > > American Receptive Tours | AMERICAN RECEPTIVE TOURS
> > > American Ring Travel, Inc. | AMERICAN RING TRAVEL, INC.
> > > American Sightseeing Chicago | AMERICAN SIGHTSEEING CHICAGO
> > > AMERICANTOURS INTERNATIONAL INC. | AMERICANTOURS INTERNATIONAL INC.
> > > America West Airlines, Inc. | AMERICA WEST AIRLINES, INC.
> > > (8 rows)
> > >
> > > The last line should IMHO be the first; but line 7 is in the correct place
> > > compared to lines 2-6.
> > > Has anybody any hint for me to resolve the problem?
> >
> > You're probably using a locale such as en_US under which you get an
> > ordering where spaces nor case are not considered at first IIRC so America
> > West is America followed by a W, American is America followed by an n.
> >
> > If you want ordering by the byte values, you'll need to initdb in with the
> > "C" locale.
> Yes, You're right, my locale at the initdb time was "de_DE(at)euro", and that's
> what i need for the german unlauts. When i change the locale (dig into
> localedef et.al.) is it enough to install the new locale stuff and restart
> the postmaster or must i dump and reload the whole database?

I think you need to dump any databases in the database cluster, re-initdb
and then reload the databases. However, I'm not sure how that's going to
interact with special characters (since "C" will sort them in their byte
position and "de_DE" ignores spaces).

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Greg Stark 2004-03-01 17:28:38 Re: value too long error
Previous Message Shawn Harrison 2004-03-01 17:09:32 Database metadata queries (WAS Re: Moving from MySQL to PGSQL....some questions)