Re: [BUGS] General Bug Report: regexp beginning of line doesn't work properly

Bruce Momjian <maillist@candle.pha.pa.us>

From: Bruce Momjian <maillist@candle.pha.pa.us>
To: psh@seznam.cz
Cc: pgsql-bugs@postgreSQL.org
Date: 1999-02-03T16:36:13Z
Lists: 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,

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