2010/5/1 Cédric Villemain <cedric.villemain.debian@xxxxxxxxx>: > 2010/4/28 Robert Haas <robertmhaas@xxxxxxxxx>: >> On Mon, Apr 26, 2010 at 5:33 AM, Cédric Villemain >> <cedric.villemain.debian@xxxxxxxxx> wrote: >>> In the first query, the planner doesn't use the information of the 2,3,4. >>> It just does a : I'll bet I'll have 2 rows in t1 (I think it should >>> say 3, but it doesn't) >>> So it divide the estimated number of rows in the t2 table by 5 >>> (different values) and multiply by 2 (rows) : 40040. >> >> I think it's doing something more complicated. See scalararraysel(). >> >>> In the second query the planner use a different behavior : it did >>> expand the value of t1.t to t2.t for each join relation and find a >>> costless plan. (than the one using seqscan on t2) >> >> I think the problem here is one we've discussed before: if the query >> planner knows that something is true of x (like, say, x = >> ANY('{2,3,4}')) and it also knows that x = y, it doesn't infer that >> the same thing holds of y (i.e. y = ANY('{2,3,4}') unless the thing >> that is known to be true of x is that x is equal to some constant. >> Tom doesn't think it would be worth the additional CPU time that it >> would take to make these sorts of deductions. I'm not sure I believe >> that, but I haven't tried to write the code, either. > > Relative to this too : > http://archives.postgresql.org/pgsql-general/2010-05/msg00009.php ? not, sorry ,misread about prepared statement in the other thread ... > >> >> ...Robert >> > > > > -- > Cédric Villemain > -- Cédric Villemain -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance