Thread: General Bug Report: regexp beginning of line doesn't work properly
============================================================================ 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 --------------------------------------------------------------------------
Re: [BUGS] General Bug Report: regexp beginning of line doesn't work properly
From
Bruce Momjian
Date:
> > ============================================================================ > 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, Works here fine. I have no idea what the cause could be. Very strange. -- 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
Re: [BUGS] General Bug Report: regexp beginning of line doesn't work properly
From
Tatsuo Ishii
Date:
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 > >-------------------------------------------------------------------------- > >