Обсуждение: Port Bug Report: Incorrect search using 'select .... like ...' statement.
Port Bug Report: Incorrect search using 'select .... like ...' statement.
От
Unprivileged user
Дата:
============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================
Your name : Misha Yakin
Your email address : misha@libr-115c.ksu.ru
Category : runtime: back-end: SQL
Severity : serious
Summary: Incorrect search using 'select .... like ...' statement.
System Configuration
--------------------
Operating System : Linux 2.2.3 ELF(Red Hat 5.0)
PostgreSQL version : 6.4.2
Compiler used : gcc 2.7.2.3
Hardware:
---------
Pentium 166, 32M RAM.
uname -a:
Linux libr-115c.ksu.ru 2.2.3 #1 ��� ��� 12 17:09:04 MSK 1999 i586 unknown
Versions of other tools:
------------------------
GNU Make version 3.76.1, flex version 2.5.4,
gcc version 2.7.2.3, glibc 2.0.7
--------------------------------------------------------------------------
Problem Description:
--------------------
Sometimes expresion like 'select a from b where a like 'abc%';' gives
null result, while 'select a from b where a like 'abcd%';' gives
right result (several records). In some case first expression
gives some result but it doesn't contains result of the second
one... But expresion '... like 'ab%';' gives result containing
results of the first an the second.
--------------------------------------------------------------------------
Test Case:
----------
All fields I tried contain russian characters (there was some
fields with english characters but I don't find such error with them)
example:
vkuzmina=> select tit from cvcat where lower(tit) like '���������%';
tit
-----------------
��������� � �����
(1 row)
vkuzmina=> select tit from cvcat where lower(tit) like '��������%';
tit
---
(0 rows)
vkuzmina=> select tit from cvcat where lower(tit) like '�������%';
tit
-----------------
��������� � �����
(1 row)
vkuzmina=> select tit from cvcat where tit like '�������%';
tit
-----------------
��������� � �����
(1 row)
vkuzmina=> select tit from cvcat where tit like '��������%';
tit
---
(0 rows)
vkuzmina=> select tit from cvcat where tit like '���������%';
tit
-----------------
��������� � �����
(1 row)
--------------------------------------------------------------------------
Solution:
---------
--------------------------------------------------------------------------
Re: [PORTS] Port Bug Report: Incorrect search using 'select .... like ...' statement.
От
Bruce Momjian
Дата:
> Sometimes expresion like 'select a from b where a like 'abc%';' gives > null result, while 'select a from b where a like 'abcd%';' gives > right result (several records). In some case first expression > gives some result but it doesn't contains result of the second > one... But expresion '... like 'ab%';' gives result containing > results of the first an the second. > > -------------------------------------------------------------------------- > > Test Case: > ---------- > All fields I tried contain russian characters (there was some > fields with english characters but I don't find such error with them) > > > example: > > vkuzmina=> select tit from cvcat where lower(tit) like '���������%'; > tit > ----------------- > ��������� � ����� > (1 row) > > vkuzmina=> select tit from cvcat where lower(tit) like '��������%'; > tit > --- > (0 rows) > > vkuzmina=> select tit from cvcat where lower(tit) like '�������%'; > tit > ----------------- > ��������� � ����� > (1 row) > > vkuzmina=> select tit from cvcat where tit like '�������%'; > tit > ----------------- > ��������� � ����� > (1 row) > > vkuzmina=> select tit from cvcat where tit like '��������%'; > tit > --- > (0 rows) > > vkuzmina=> select tit from cvcat where tit like '���������%'; > tit > ----------------- > ��������� � ����� > (1 row) > We have some problems with international characters sets and index usage. Someone else will probably give a better answer. -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026