Re: [BUGS] General Bug Report: regexp beginning of line doesn't work properly
От | Tatsuo Ishii |
---|---|
Тема | Re: [BUGS] General Bug Report: regexp beginning of line doesn't work properly |
Дата | |
Msg-id | 199902040057.JAA03283@srapc451.sra.co.jp обсуждение исходный текст |
Ответ на | General Bug Report: regexp beginning of line doesn't work properly (Unprivileged user <nobody>) |
Список | pgsql-bugs |
Couldn't reproduce here. FreeBSD 2.2.6-RELEASE PostgreSQL 6.4.2 gcc 2.7.2.1 configure --with-mb=EUC_JP >============================================================================ > 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 (IZ(Bt $B(Bor 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 по дате отправления: