Sorry the second example is false.. It should not use the BB_INTERSECTS in this case, but NOT ST_Intersects() is always true if BB_INTERSECTS is false.
Le jeudi 23 mai 2013 17:22:17 UTC+2, Nicolas Fortin (OrbisGIS) a écrit : > > The function may alter the execution plan: > > For the following SQL request: > >> select b.id from DEP a,DEP b where a.id = 59 and >> ST_Intersects(a.the_geom,b.the_geom) and a.ID!=b.ID >> > > Explain should be > > SELECT >> B.ID >> FROM PUBLIC.DEP A >> /* PUBLIC.PRIMARY_KEY_1: ID = 59 */ >> /* WHERE A.ID = 59 >> */ >> INNER JOIN PUBLIC.DEP B >> /* PUBLIC.PRIMARY_KEY_1: ID IN (BB_INTERSECTS(B,'THE_GEOM', >> A.the_geom)) */ >> ON 1=1 >> WHERE (A.ID <> B.ID) >> AND (PUBLIC.ST_INTERSECTS(A.THE_GEOM, B.THE_GEOM) >> AND ((A.ID = 59) > > > Another example: > > > For the following SQL request: > >> select b.id from DEP a,DEP b where a.id = 59 AND NOT >> ST_Intersects(a.the_geom,b.the_geom) and a.ID!=b.ID >> > > Explain should be > > SELECT >> B.ID >> FROM PUBLIC.DEP A >> /* PUBLIC.PRIMARY_KEY_1: ID = 59 */ >> /* WHERE A.ID = 59 >> */ >> INNER JOIN PUBLIC.DEP B >> /* PUBLIC.PRIMARY_KEY_1: ID NOT IN (BB_INTERSECTS(B,'THE_GEOM', >> A.the_geom)) */ >> ON 1=1 >> WHERE (A.ID <> B.ID) >> AND NOT (PUBLIC.ST_INTERSECTS(A.THE_GEOM, B.THE_GEOM) >> AND (A.ID = 59) > > > I will implement the function BB_INTERSECTS then we will see about the > execution plan alteration. > -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/h2-database?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
