Hay cinco operadores topológicos: superposición (&&
), contiene (@>
), es contenido (<@
), mismo (~=
) y adyacente (-|-
). Los operadores verifican la relación topológica entre los cuadros delimitadores teniendo en cuenta la dimensión de valor y/o de tiempo para todas las dimensiones que estén presentes en ambos argumentos.
Los operadores topológicos para los cuadros delimitadores se dan a continuación.
¿Se superponen los cuadros delimitadores?
box && box: boolean
SELECT tbox 'TBOX((1,2001-01-01),(3,2001-01-03))' && tbox 'TBOX((2,2001-01-02),(4,2001-01-04))'; -- true SELECT stbox 'STBOX T((1,1,2001-01-01),(2,2,2001-01-02))'&& stbox 'STBOX T((,2001-01-02),(,2001-01-02))'; -- true
¿Contiene el primer cuadro delimitador el segundo?
box @> box: boolean
SELECT tbox 'TBOX((1,2001-01-01),(4,2001-01-04))' @> tbox 'TBOX((2,2001-01-01),(3,2001-01-02))'; -- true SELECT stbox 'STBOX Z((1,1,1),(3,3,3))' @> stbox 'STBOX T((1,1,2001-01-01),(2,2,2001-01-02))'; -- true
¿Está el primer cuadro delimitador contenido en el segundo?
box <@ box: boolean
SELECT tbox 'TBOX((1,2001-01-01),(2,2001-01-02))' <@ tbox 'TBOX((1,2001-01-01),(2,2001-01-02))'; -- true SELECT stbox 'STBOX T((1,1,2001-01-01),(2,2,2001-01-02))' <@ stbox 'STBOX ZT((1,1,1,2001-01-01),(2,2,2,2001-01-02))'; -- true
¿Son los cuadros delimitadores iguales en sus dimensiones comunes?
box ~= box: boolean
SELECT tbox 'TBOX((1,2001-01-01),(2,2001-01-02))' ~= tbox 'TBOX((,2001-01-01),(,2001-01-02))'; -- true SELECT stbox 'STBOX T((1,1,2001-01-01),(3,3,2001-01-03))' ~= stbox 'STBOX Z((1,1,1),(3,3,3))'; -- true
¿Son los cuadros delimitadores adyacentes?
box -|- box: boolean
Dos cuadros delimitadores son adyacentes si comparten n dimensiones y si su intersección tiene como máximo n-1 dimensiones.
SELECT tbox 'TBOX((1,2001-01-01),(2,2001-01-02))' -|- tbox 'TBOX((,2001-01-02),(,2001-01-03))'; -- true SELECT stbox 'STBOX T((1,1,2001-01-01),(3,3,2001-01-03))' -|- stbox 'STBOX T((2,2,2001-01-03),(4,4,2001-01-04))'; -- true