Re: [SQL] How to Make Case InSensitive??? - Mailing list pgsql-sql

From Jerome Knobl
Subject Re: [SQL] How to Make Case InSensitive???
Date
Msg-id 3600C4BF.C99176ED@mandanet.ch
Whole thread Raw
In response to Re: [SQL] How to Make Case InSensitive???  (Barracuda <cuda_fx@yahoo.com>)
Responses Re: [SQL] How to Make Case InSensitive???  (Bruce Momjian <maillist@candle.pha.pa.us>)
List pgsql-sql
I working with a table of about 70'000 records and I made 2 tests about
the optimisation of ~* :

With ~* :
----------
% time -p psql mayer98 -c "select * from artistes where nom ~* 'picasso';"

  ref|nom                         |nom_court    |type|nationalite
-----+----------------------------+-------------+----+-----------
76160|PICASSO Pablo, 1881-1973    |PICASSO      |   0|E
76161|PICASSO Loulou, *1958       |PICASSOLoulou|   0|F
76162|(A) PICASSO Pablo, 1881-1973|PICASSOPablo |   6|E
(3 rows)

real 11.52 *
user 0.02
sys 0.01

With upper(...) and like upper(%...%)
--------------------------------------
% time -p psql mayer98 -c "select * from artistes where upper(nom) like
upper('%PICASSO%');"
  ref|nom                         |nom_court    |type|nationalite
-----+----------------------------+-------------+----+-----------
76160|PICASSO Pablo, 1881-1973    |PICASSO      |   0|E
76161|PICASSO Loulou, *1958       |PICASSOLoulou|   0|F
76162|(A) PICASSO Pablo, 1881-1973|PICASSOPablo |   6|E
(3 rows)

real 4.44 *
user 0.03
sys 0.00

Relsult: it seem to be 2.6 time more optimised to use upper(...) like
upper('%...%') ???

JK


Herouth Maoz wrote:

> At 16:14 +0200 on 16/9/98, Sferacarta Software wrote:
>
> > regular expression operators ^ stand for first character and $ stand
> > for last character:
> >
> >     ~* '^india$'
> >
> > matches  India
> >          india
> >          INDIA
> >
> > but not  Indiana
> >          New India
>
> Another way to think of it is like this:
>
> 'india'      is eqivalent to       "contains 'india'"
> '^india'     is eqivalent to       "starts with 'india'"
> 'india$'     is eqivalent to       "ends with 'india'"
> '^india$'    is eqivalent to       "is exactly 'india'"
>
> Herouth
>
> --
> Herouth Maoz, Internet developer.
> Open University of Israel - Telem project
> http://telem.openu.ac.il/~herutma




pgsql-sql by date:

Previous
From: Barracuda
Date:
Subject: Re: [SQL] How to Make Case InSensitive???
Next
From: HenrikP@mail.ikasths.dk (Henrik Denseje Pedersen)
Date:
Subject: Datetime field