subselect not using indexes under 6.4 - Please help

From: Marcus Mascari <mascarim(at)yahoo(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: subselect not using indexes under 6.4 - Please help
Date: 1998-10-19 17:39:11
Message-ID: 19981019173911.11026.rocketmail@send102.yahoomail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I was hoping someone could shed some light on the
following problem:

The subselect under 6.4 ignores indexes built on
tables. For example, consider the following two
tables:

\d sales;

Table = sales

supplysource varchar() not null 16
supply varchar() not null 16
supplyunit varchar() not null 2
quantity float8 not null 8
target varchar() not null 16
costcntr varchar() not null 8
saletype varchar() not null 16
saledate datetime not null 8

Indices: k_sales
k_sales_saledate
k_sales_supply
k_sales_target

\d locations;

Table = locations
location varchar() not null 16
costcntr varchar() not null 5
supplypath varchar() not null 64
formpath varchar() not null 64
engineerpath varchar() not null 64

Indices: k_locations
k_locations_costcntr
k_locations_location

with the following query:

explain select supply from sales where target in
(select location from locations);
NOTICE: QUERY PLAN:

Seq Scan on sales (cost=5738.60 size=116806 width=12)
SubPlan
-> Seq Scan on locations (cost=7.49 size=136 width=12)

EXPLAIN

This results in a full table scan on the outer table
where there are 150K rows. As a result, it is the
equivalent of a full table scan on 150K (sales) *
100 (locations) rows = 15,000,000 row table scan.

Oracle 8.0.5.00 for Linux Early Adaptor Program
correctly uses the index on the same two tables
resulting on a sequential access on the subselected
table (locations) and an index look-up on the
select table (sales), according to EXPLAIN PLAN.

Due to the failure of PostgreSQL 6.4 to correctly
use indexes with subselects, it makes subselects
practically useless.

Are there any patches available to fix this problem?

Thanks for any information,

Marcus Mascari
(mascarim(at)yahoo(dot)com)

_________________________________________________________
DO YOU YAHOO!?
Get your free @yahoo.com address at http://mail.yahoo.com

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 1998-10-19 17:46:18 Re: Postgres for 4.0
Previous Message Keith Parks 1998-10-19 17:28:15 Re: [HACKERS] cvs problem ?