From: | secret <secret(at)kearneydev(dot)com> |
---|---|
To: | PG-SQL <pgsql-sql(at)postgresql(dot)org> |
Subject: | Simple Optimization Problem |
Date: | 1999-03-23 15:32:55 |
Message-ID: | 36F7B427.4079B01@kearneydev.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
I need to run a report using some parameters that are optional, I'm
doing this by labeling "0" as the optional value. IE here is a
simplified example:
CREATE TABLE po (po_id int4 PRIMARY KEY, data text);
(insert a bunch of rows)
ftc=> explain select * from po where po_id=8888;
NOTICE: QUERY PLAN:
Index Scan using ipo_poid_units on po (cost=2.05 size=1 width=94)
EXPLAIN
ftc=> explain select * from po where (po_id=8888 or 0=8888);
NOTICE: QUERY PLAN:
Seq Scan on po (cost=449.96 size=1751 width=94)
EXPLAIN
I was hoping PostgreSQL could optimize out the boolean condition
given in the where clause, but it causes it to disregard the index
instead of throwing out 0=8888 in the first stage.
This is the only way I can think to do this, I have crystal reports
send through the SQL instead of doing the whole thing itself(Which
involves returning all possible rows... Sigh)... This query is taking 20
minutes as a result... Is there any hope in 6.5 of the optimizer
handling this better?
David Secret
MIS Director
Kearney Development Co., Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Forgacs Tamas | 1999-03-23 18:06:29 | transaction-lock? |
Previous Message | Herouth Maoz | 1999-03-22 12:35:12 | Re: [SQL] string containing (') |