Index order

From: Glyn Astill <glynastill(at)yahoo(dot)co(dot)uk>
To: pgsql-general(at)postgresql(dot)org
Subject: Index order
Date: 2008-09-16 12:34:44
Message-ID: 484343.81963.qm@web25802.mail.ukl.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi chaps,

I was just wondering if there's any way to tweak the way an an index is ordered on a text field?

I have a table with a varchar field "artist" (see table def below), and if I order by the field "artist" it does not order as expected when there are characters such as ^ at the start of the text. For example, the query "select artist from artist order by artist;" orders as follows:

BILLY BRAGG
BILLY COBHAM & ASERE
^ BILLY ELLIOT 40 OFFER
^ BILLY ELLIOT HARD ROCK CAFE MEAL OFFER
BILLY ELLIOT THE MUSICAL
BILLY OCEAN
BIOHAZARD

I'd expect the rows starting with the caret to appear either at the start or end of, rather than in the middle, it appears as if the index ignores them.

Database locale is Latin1

Am I missing something obvious here?

Thanks
Glyn

CREATE TABLE events.artist
(
recnum bigint NOT NULL DEFAULT nextval(('"events"."artist_dfseq"'::text)::regclass),
artist character varying(50) NOT NULL DEFAULT ' '::character varying,
price_list character varying(4) NOT NULL DEFAULT ' '::character varying,
CONSTRAINT artist_index01 PRIMARY KEY (artist)
)

ALTER TABLE events.artist
ADD CONSTRAINT artist_index01 PRIMARY KEY(artist);

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Bill Moran 2008-09-16 12:40:45 Re: Obfuscated stored procedures (was Re: Oracle and Postgresql)
Previous Message Enrico Sabbadin 2008-09-16 11:15:41 client_encoding / postgresql strange behaviour