Thread

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

    Bruce Momjian <maillist@candle.pha.pa.us> — 1999-02-03T16:36:13Z

    > 
    > ============================================================================
    >                         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