ET des exemples de l'opérateur

Les exemples suivants utilisent l'opérateur AND dans les requêtes et affichent la manière dont les éléments peuvent être déléguées au fournisseur de source de données.

Exemple 1 :

SELECT Obj FROM table WHERE pop>10000 AND city='Austin' AND hhinc<75000 

Si la source de données prend en charge du fournisseur et, >, =, et <, la requête toute entière est déléguée au fournisseur de source de données.

Si la source de données prend en charge du fournisseur et, ainsi que d'autres opérateurs, les opérateurs sont déléguées et le reste est traité par Spectrum Spatial.

Si le fournisseur de source de données ne prend pas en charge > ou < alors ce qui suit est délégué au fournisseur de source de données :

SELECT pop,hhinc FROM table WHERE city='Austin

Spectrum Spatial utilise les résultats de la requête déléguée à évaluer la clause WHERE d'origine.

SELECT obj FROM <results of the delegation> WHERE pop>10000 AND city='Austin AND hholdinc<75000

Exemple 2 :

Si le fournisseur de source de données ne prend pas en charge et qu'une opération peut être déléguée selon les règles. Pour déterminer l'opération déléguer, Spectrum Spatial note les opérateurs et l'envoie avec le score le plus élevé pour le fournisseur de source de données. L'évaluation s'effectue sur une réécriture théorique de la requête qui peut être exécutée si la source de données pris en charge chaque opération.

Outre la non prise en charge de AND, la source de données de cet exemple ne prend pas en charge Contains. C'est le cas, toutefois prennent en charge Envelope_Intersects.

SELECT city FROM table WHERE Obj Contains <geom> AND pop > 5000 

est converti en :

SELECT city FROM table WHERE Obj Envelope_Intersects <geom> AND pop > 5000
Spectrum Spatial a un score est supérieur à l'opérateur logique Envelope_Intersects >. C'est également le cas où une opération spatiale est déléguée via un opérateur non spatiales. Pour ce qui suit est délégué à la source de données :
SELECT city FROM table WHERE Obj Envelope_Intersects <geom>

Spectrum Spatial évalue la requête d'origine à l'aide du résultat de la requête ci-dessus :

SELECT city FROM <results of the delegation> WHERE Obj contains <geom> AND pop > 5000