Thread: like vs =

like vs =

From
Stefan Holzheu
Date:
Hallo,
I just encountered a stange behaviour:

The following query gives zero rows.

bitoek=> SELECT name from file where name =
'mitarbeiter/mit/mitarbeiter_ehemalig.php';
 name
------
(0 Zeilen)

Replacing "=" by like and escaping the underscore gives the row I knew
to be there:

bitoek=> SELECT name from file where name like
'mitarbeiter/mit/mitarbeiter\_ehemalig.php';
                   name
------------------------------------------
 mitarbeiter/mit/mitarbeiter_ehemalig.php
(1 Zeile)

Other queries with the equal operator do match rows. Am I missing something?

Postgresql: 8.1.1
Fieldtype: text
Database encoding: Latin9


Regards,

    Stefan



--
-----------------------------
Dr. Stefan Holzheu
Tel.: 0921/55-5720
Fax.: 0921/55-5709
BayCEER
EDV und Datenbanken
Universitaet Bayreuth
D-95440 Bayreuth
-----------------------------

Re: like vs =

From
Tom Lane
Date:
Stefan Holzheu <stefan.holzheu@bayceer.uni-bayreuth.de> writes:
> Other queries with the equal operator do match rows. Am I missing something?

> Postgresql: 8.1.1
> Fieldtype: text
> Database encoding: Latin9

What LC_COLLATE locale are you using?  Your report looks a whole lot
like the recently identified problem with locales that think that some
not-bitwise-identical strings are "equal", as in this thread:
http://archives.postgresql.org/pgsql-general/2005-12/msg00740.php

If the same queries return sane results after doing set enable_indexscan
= off, then that's probably what the problem is.  If so, updating to
8.1.2 and REINDEXing should fix it.

            regards, tom lane

Re: like vs =

From
Stefan Holzheu
Date:
Tom Lane schrieb:
> Stefan Holzheu <stefan.holzheu@bayceer.uni-bayreuth.de> writes:
>>Other queries with the equal operator do match rows. Am I missing something?
>
>>Postgresql: 8.1.1
>>Fieldtype: text
>>Database encoding: Latin9
>
> What LC_COLLATE locale are you using?  Your report looks a whole lot
> like the recently identified problem with locales that think that some
> not-bitwise-identical strings are "equal", as in this thread:
> http://archives.postgresql.org/pgsql-general/2005-12/msg00740.php

LC_COLLATE was POSIX

>
> If the same queries return sane results after doing set enable_indexscan
> = off, then that's probably what the problem is.  If so, updating to
> 8.1.2 and REINDEXing should fix it.
>

You were right. Query works now. Thanks

Stefan


>             regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
>
>


--
-----------------------------
Dr. Stefan Holzheu
Tel.: 0921/55-5720
Fax.: 0921/55-5709
BayCEER
EDV und Datenbanken
Universitaet Bayreuth
D-95440 Bayreuth
-----------------------------