The comparison operators (=
, <
, and so on) require that the left and right arguments be of the same type. Excepted equality and inequality, the other comparison operators are not useful in the real world but allow B-tree indexes to be constructed on set and span types. For span values, the operators compare first the lower bound, then the upper bound. For set and span set values, the operators compare first the bounding spans, and if those are equal, they compare the first N values or spans, where N is the minimum of the number of composing values or spans of both values.
The comparison operators available for the set and span types are given next. Recall that integer spans are always represented by their canonical form.
Traditional comparisons
set {=, <>, <, >, <=, >=} set → boolean
spans {=, <>, <, >, <=, >=} spans → boolean
SELECT intspan '[1,3]' = intspan '[1,4)'; -- true SELECT floatspanset '{[1, 2),[2,3)}' = floatspanset '{[1,3)}'; -- true SELECT tstzset '{2001-01-01, 2001-01-04}' <> tstzset '{2001-01-01, 2001-01-05}'; -- false SELECT tstzspan '[2001-01-01, 2001-01-04)' <> tstzspan '[2001-01-03, 2001-01-05)'; -- true SELECT floatspan '[3, 4]' < floatspan '(3, 4]'; -- true SELECT intspanset '{[1,2],[3,4]}' < intspanset '{[3, 4]}'; -- true SELECT floatspan '[3, 4]' > floatspan '[3, 4)'; -- true SELECT tstzspan '[2001-01-03, 2001-01-04)' > tstzspan '[2001-01-02, 2001-01-05)'; -- true SELECT floatspanset '{[1, 4)}' <= floatspanset '{[1, 5), [6, 7)}'; -- true SELECT tstzspanset '{[2001-01-01, 2001-01-04)}' <= tstzspanset '{[2001-01-01, 2001-01-05), [2001-01-06, 2001-01-07)}'; -- true SELECT tstzspan '[2001-01-03, 2001-01-05)' >= tstzspan '[2001-01-03, 2001-01-04)'; -- true SELECT intspanset '{[1, 4)}' >= intspanset '{[1, 5), [6, 7)}'; -- false