Traditional comparisons
tpose {=, <>, <, >, <=, >=} tpose → boolean
SELECT tpose '{[Pose(Point(1 1), 0.1)@2001-01-01,
Pose(Point(1 1), 0.3)@2001-01-02),
[Pose(Point(1 1), 0.3)@2001-01-02, Pose(Point(1 1), 0.5)@2001-01-03]}' =
tpose '[Pose(Point(1 1), 0.1)@2001-01-01, Pose(Point(1 1), 0.5)@2001-01-03]';
-- true
SELECT tpose '{[Pose(Point(1 1), 0.1)@2001-01-01,
Pose(Point(1 1), 0.5)@2001-01-03]}' <>
tpose '[Pose(Point(1 1), 0.1)@2001-01-01, Pose(Point(1 1), 0.5)@2001-01-03]';
-- false
SELECT tpose '[Pose(Point(1 1), 0.1)@2001-01-01,
Pose(Point(1 1), 0.5)@2001-01-03]' <
tpose '[Pose(Point(1 1), 0.1)@2001-01-01, Pose(Point(1 1), 0.6)@2001-01-03]';
-- true
Ever and always comparisons
tpose {?=, %=} tpose → boolean
SELECT tpose '[Pose(Point(1 1), 0.2)@2001-01-01, Pose(Point(1 1), 0.4)@2001-01-04)' ?= Pose(Point(1 1), 0.3); -- true SELECT tpose '[Pose(Point(1 1), 0.2)@2001-01-01, Pose(Point(1 1), 0.2)@2001-01-04)' &= Pose(Point(1 1), 0.2); -- true
Temporal comparisons
tpose {#=, #<>} tpose → tbool
SELECT tpose '[Pose(Point(1 1), 0.2)@2001-01-01,
Pose(Point(1 1), 0.4)@2001-01-03)' #= pose 'Pose(Point(1 1), 0.3)';
-- {[f@2001-01-01, t@2001-01-02], (f@2001-01-02, f@2001-01-03)}
SELECT tpose '[Pose(Point(1 1), 0.2)@2001-01-01,
Pose(Point(1 1), 0.8)@2001-01-03)' #<>
tpose '[Pose(Point(1 1), 0.3)@2001-01-01, Pose(Point(1 1), 0.7)@2001-01-03)';
-- {[t@2001-01-01, f@2001-01-02], (t@2001-01-02, t@2001-01-03)}