the types are integer. excellent! you saved my weekend. Uwe
Uwe Bartels Systemarchitect - Freelancer mailto: uwe.bart...@gmail.com tel: +49 172 3899006 profile: https://www.xing.com/profile/Uwe_Bartels website: http://www.uwebartels.com On 18 February 2011 15:58, Kevin Grittner <kevin.gritt...@wicourts.gov>wrote: > Uwe Bartels <uwe.bart...@gmail.com> wrote: > > > I have a java application which generates inperformant query > > plans. > > > Index Cond: ((lat >= $3) AND (lat <= $4) AND (lon >= $1) AND (lon > > <= $2)) > > > Filter: (((lon)::double precision >= $1) AND ((lon)::double > > precision <= $2) AND ((lat)::double precision >= $3) AND > > ((lat)::double precision <= $4)) > > It is the cast of the table columns to double precision which is > taking the index out of play. > > What are the data types of those columns? What does the code look > like where you're setting the values for the parameters? If nothing > else, writing the query so that the parameters are cast to the right > type before use might solve the problem, but I would start by > looking at the object classes used in the Java app. > > -Kevin >