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