Re: [JDBC] Selecting Varchar range (through JDBC).

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: [JDBC] Selecting Varchar range (through JDBC).
Дата
Msg-id 20020910085321.W24828-100000@megazone23.bigpanda.com
обсуждение исходный текст
Ответ на Re: [JDBC] Selecting Varchar range (through JDBC).  (Daryl Beattie <dbeattie@insystems.com>)
Список pgsql-general
On Tue, 10 Sep 2002, Daryl Beattie wrote:

> Really? The collating elements are locale-specific?!? They are actually
> hard-coded somewhere??

It's part of the locale definition AFAIK. Some languages have/had
multi-character elements that have a particular sorting position that's
different than the individual characters.

> If this is so, and this is what is meant by the definition of a collating
> element, then I am going about things the entirely wrong way when trying to
> select a varchar range. In which case I would be tempted to do something
> like this instead:
>
> testdb=# select 'test' ~* '^[[.a.]-[.z.]][[.a.]-[.a.]]';
>     [same as]
> testdb=# select 'test' ~* '^[a-z][a-a]';
>
> Of course, this won't match aa-za, because it won't match ab, ac, ..., az,
> bb, bc, ..., etc.
>
> So, does anybody have any advice on how to select a range?

Umm, I'd say use an or condition for the pieces, maybe like:
 ^([a-y][a-z]|za)
(if the last had more than a-a you'd need a character set there)

That's a little ugly, but should work.

> Stephan, thanks for clearing me up on the collating elements. Perhaps it
> should be in the docs that they are locale-specific ... so that simpletons
> like me won't be misled into thinking that they can just make up collating
> elements as they seem fit.

That might be a good idea, yeah.


В списке pgsql-general по дате отправления:

Предыдущее
От: Daryl Beattie
Дата:
Сообщение: Re: [JDBC] Selecting Varchar range (through JDBC).
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: database replication