Re: SV: Case sensitive field names

From: Hannu Krosing <hannu(at)tm(dot)ee>
To: Jarmo Paavilainen <netletter(at)comder(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)hub(dot)org>
Subject: Re: SV: Case sensitive field names
Date: 2000-09-26 21:52:24
Message-ID: 39D11A98.3D810849@tm.ee
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Jarmo Paavilainen wrote:
>
> ...
> > > Is there a way to make postgre insensitive about field name cases?
> > >
> > > Like
> "initdb --fields-are-case-insensitive --compares-are-case-insensitive"
> ...
> > The main problem I see with case-insensitivity is the fact that there
> > are always more than one way to do it, as it depends on charset _and_
> locale ;(
> >
> > For example 'Ä'=='ä' in my locale but not in US, not to mention that in
> > some locales even the character count may change when going from upper to
> > lower case.
>
> Thats not really a problem with field names. *I think* you should always use

What do you mean by "should" ;)

> ASCII chars in fieldnames (and only those between 32 (space) and 'z'.

hannu=> create table "bõv"("gbzöh" int);
CREATE
hannu=> \d bõv
Table = bõv
+----------------------------------+----------------------------------+-------+
| Field | Type |
Length|
+----------------------------------+----------------------------------+-------+
| gbzöh | int4
| 4 |
+----------------------------------+----------------------------------+-------+


> And PostgreSQL should cope with case insensitive search. If not, then I can
> not use it.
>
> Can PostgreSQL do a case insensitive search?

Postgres can do CI regular expressions :

select * from books where title ~* '.*Tom.*');

case insensitive LIKE is not directly supported , but you can do
something like

select * from books where upper(title) LIKE upper('%Tom%');

>
> ...
> > arbitraryly-case-altering OS-es, like the ones Microsoft produces.
>
> Yeah and microsoft SQL server can do a case insensitive search, so can
> Sybase (at least the Win versions).

IIRC, MSSQL == Sybase (at least older versions of MSSQL)

>
> > You could also try just uppercasing anything outside ''/"" even before
> > it is passed to backend.
>
> No good, because field values should keep case (even if you search on them
> case insensitive). But then again to use " as a field value delimiter is
> illegal, isnt it?

I understood that you wanted field _names_ to be case-insensitive, not
field values.

Field names are delimited by "", values of type string by ''

---------------
Hannu

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Hannu Krosing 2000-09-26 21:56:05 Re: RE: [GENERAL] update inside transaction violates unique constraint?
Previous Message The Hermit Hacker 2000-09-26 21:07:28 Re: Damn, pg_proc index corrupted, can't find anythign on REINDEX ...