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

Started by Unprivileged user <>about 27 years ago3 messagesbugs
Jump to latest
#1Unprivileged user <>
unprivileged_user___@unknown.user

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

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

#2Bruce Momjian
bruce@momjian.us
In reply to: Unprivileged user <> (#1)
Re: [BUGS] 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,

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
#3Tatsuo Ishii
t-ishii@sra.co.jp
In reply to: Bruce Momjian (#2)
Re: [BUGS] General Bug Report: regexp beginning of line doesn't work properly

Couldn't reproduce here.

FreeBSD 2.2.6-RELEASE
PostgreSQL 6.4.2
gcc 2.7.2.1
configure --with-mb=EUC_JP

Show quoted text

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

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