General Bug Report: regexp beginning of line doesn't work properly

Поиск
Список
Период
Сортировка
От Unprivileged user
Тема General Bug Report: regexp beginning of line doesn't work properly
Дата
Msg-id 199902031558.KAA50837@hub.org
обсуждение исходный текст
Ответы Re: [BUGS] General Bug Report: regexp beginning of line doesn't work properly  (Bruce Momjian <maillist@candle.pha.pa.us>)
Re: [BUGS] General Bug Report: regexp beginning of line doesn't work properly  (Tatsuo Ishii <t-ishii@sra.co.jp>)
Список pgsql-bugs
============================================================================
                        POSTGRESQL BUG REPORT TEMPLATE
============================================================================


Your name        : Petr Hubeny
Your email address    : psh@seznam.cz

Category        : runtime: back-end
Severity        : serious

Summary: regexp beginning of line doesn't work properly

System Configuration
--------------------
  Operating System   : Linux 2.2.1 ELF

  PostgreSQL version : 6.4.2

  Compiler used      : gcc 2.7.2.3

Hardware:
---------
PII-300MHz, 64M RAM
Linux agatha 2.2.1pcsp #6 �t �nor 2 16:17:30 CET 1999 i686 unknown

Versions of other tools:
------------------------
GNU Make version 3.76.1
flex version 2.5.4
GNU Bison version 1.25


--------------------------------------------------------------------------

Problem Description:
--------------------
"select...where a ~ '^A'" doesn't return anything,
while "select...where a ~ '^[A]'" does. Also LIKE is
affected.


--------------------------------------------------------------------------

Test Case:
----------
create table test (a text);
insert into test values ('ABC');
insert into test values ('DEF');
select * from test where a ~ '^A'; -- NOTHING!!!, Query 1
select * from test where a ~ '^[A]'; -- ABC, Query 2
select * from test where a LIKE 'A%'; -- NOTHING
select * from test where a LIKE '%A%'; -- ABC
select * from test where a LIKE '%F'; -- DEF


--------------------------------------------------------------------------

Solution:
---------
Well, I suspect the parser and I tried to dig through
the code, and this is how far I was able to get:

with query 1 is function transformStmt()
erroneously called with

((A_Expr*)((SelectStmt*)parseTree)->whereClause)->oper == 263

with query 2 is

((A_Expr*)((SelectStmt*)parseTree)->whereClause)->oper == 465

Hope it helps,

Psh

--------------------------------------------------------------------------


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

Предыдущее
От: Unprivileged user
Дата:
Сообщение: General Bug Report: Postmaster hangs under load
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: [BUGS] General Bug Report: regexp beginning of line doesn't work properly