Strange strategy with COALESCE?

From: Philip Warner <pjw(at)rhyme(dot)com(dot)au>
To: pgsql-sql(at)postgresql(dot)org, pgsql-general(at)postgresql(dot)org
Subject: Strange strategy with COALESCE?
Date: 2000-08-04 09:35:40
Message-ID: 3.0.5.32.20000804193540.0226ad90@mail.rhyme.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-sql


I get unexpected query strategy when using coalesce.

Good:
-----

explain update zzz set
b = (select x.newVal from zzz_xref x where x.oldVal = zzz.b);
NOTICE: QUERY PLAN:

Seq Scan on zzz (cost=0.00..20.00 rows=1000 width=10)
SubPlan
-> Index Scan using zzz_xref_ix2 on zzz_xref x (cost=0.00..726.82
rows=983 width=4)

Bad (just by adding a COALESCE call):
-------------------------------------

explain update zzz set
b = coalesce((select x.newVal from zzz_xref x where x.oldVal =
zzz.b),b);
NOTICE: QUERY PLAN:

Seq Scan on zzz (cost=0.00..20.00 rows=1000 width=10)
SubPlan
-> Index Scan using zzz_xref_ix2 on zzz_xref x (cost=0.00..726.82
rows=983 width=4)
-> Seq Scan on zzz_xref x (cost=0.00..1757.80 rows=98304 width=4)

Does this make sense?

P.S. There are indexes on both oldVal and newVal in zzz_xref, and table zzz
has one column (b).

----------------------------------------------------------------
Philip Warner | __---_____
Albatross Consulting Pty. Ltd. |----/ - \
(A.C.N. 008 659 498) | /(@) ______---_
Tel: (+61) 0500 83 82 81 | _________ \
Fax: (+61) 0500 83 82 82 | ___________ |
Http://www.rhyme.com.au | / \|
| --________--
PGP key available upon request, | /
and from pgp5.ai.mit.edu:11371 |/

Browse pgsql-general by date

  From Date Subject
Next Message luc00 2000-08-04 10:23:17 app development general technics ?
Previous Message Alex Bolenok 2000-08-04 07:46:53 NULL values in PL/pgSQL functions input

Browse pgsql-sql by date

  From Date Subject
Next Message Alexaki Sofia 2000-08-04 10:02:47 Re: A question about indexes...
Previous Message Sandis 2000-08-04 07:40:43 Re: Extracting data by months