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.


Reply via email to