General Bug Report: Bug in optimizer

Unprivileged user <nobody>

From: Unprivileged user <nobody>
To: pgsql-bugs@postgresql.org
Date: 1999-03-18T13:34:57Z
Lists: pgsql-bugs, pgsql-hackers
============================================================================
                        POSTGRESQL BUG REPORT TEMPLATE
============================================================================


Your name		: Andriy I Pilipenko
Your email address	: bamby@marka.net.ua

Category		: runtime: back-end: SQL
Severity		: serious

Summary: Bug in optimizer

System Configuration
--------------------
  Operating System   : FreeBSD 2.2.6, FreeBSD 3.1, Linux 2.0.36

  PostgreSQL version : 6.4.2

  Compiler used      : gcc 2.7.2.1

Hardware:
---------
Pentium, AMD K6, 256M RAM, 64M RAM

Versions of other tools:
------------------------
gmake 3.76.1, flex 2.5.4

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

Problem Description:
--------------------
Backend forgets about indexes if WHERE clause includes 
negative number. This causes great slowdown in queries
on large tables.

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

Test Case:
----------
Here is an example session. Note that in first SELECT
backend uses index scan, and in second one it uses 
sequental scan.

== cut ==
bamby=> create table table1 (field1 int);
CREATE
bamby=> create index i_table1__field1 on table1 (field1);
CREATE
bamby=> explain select * from table1 where field1 = 1;
NOTICE:  QUERY PLAN:

Index Scan using i_table1__field1 on table1  (cost=0.00 size=0 width=4)

EXPLAIN
bamby=> explain select * from table1 where field1 = -1;
NOTICE:  QUERY PLAN:

Seq Scan on table1  (cost=0.00 size=0 width=4)

EXPLAIN
== cut ==

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

Solution:
---------


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