Regression in IN( field, field, field ) performance - Mailing list pgsql-hackers

From Jim 'Decibel!' Nasby
Subject Regression in IN( field, field, field ) performance
Date
Msg-id D8ED6CE5-3A4B-496B-A47B-91A0ABF10EFE@cashnetusa.com
Whole thread Raw
Responses Re: Regression in IN( field, field, field ) performance
List 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@cashnetusa.com (512) 569-9461





pgsql-hackers by date:

Previous
From: David Fetter
Date:
Subject: Re: automatic parser generation for ecpg
Next
From: Peter Eisentraut
Date:
Subject: Re: SSL cleanups/hostname verification