Skip site navigation (1) Skip section navigation (2)

Regression in IN( field, field, field ) performance

From: Jim 'Decibel!' Nasby <jnasby(at)cashnetusa(dot)com>
To: Postgres Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Regression in IN( field, field, field ) performance
Date: 2008-10-21 15:45:43
Message-ID: D8ED6CE5-3A4B-496B-A47B-91A0ABF10EFE@cashnetusa.com (view raw or flat)
Thread:
Lists: pgsql-hackers
       WHERE '12814474045' IN (people.home_phone, people.work_phone,  
people.mobile_phone)

Yeah, not exactly a common case, but at least in 8.1 this was turned  
into a set of ORs. Starting in 8.2 and in current HEAD, the planner  
turns that into:

Filter: ('12814474045'::text = ANY ((ARRAY[home_phone, mobile_phone,  
work_phone])::text[]))

Which means automatic seqscan. Would it be difficult to teach the  
planner to handle this case differently? I know it's probably not  
terribly common, but it is very useful.
--
Decibel! jnasby(at)cashnetusa(dot)com (512) 569-9461




Responses

pgsql-hackers by date

Next:From: Alvaro HerreraDate: 2008-10-21 16:04:37
Subject: double-buffering page writes
Previous:From: David FetterDate: 2008-10-21 15:45:11
Subject: Re: automatic parser generation for ecpg

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group