Every type that defines the nearest approach distance against a spatiotemporal box states it in version 1.4 by the function nearestApproachDistance and the operator |=|. In version 1.3 the types cbuffer and pose stated it instead by the function distance and the operator <->, where geometry and geography already used the former. The signatures concerned are (cbuffer, stbox), (stbox, cbuffer), (pose, stbox), and (stbox, pose).
The two functions answer different questions, which is what the change states. A spatiotemporal box carries a period, so nearestApproachDistance answers the least distance over the time that its two arguments share, and answers the null value when they share none. The function distance measures its two arguments as sets of points and reads no period. The signatures of distance whose arguments carry no period keep the name.
Version 1.4 gives MobilityDB one SQL dialect across its batch and stream SQL bindings, PostgreSQL, DuckDB, Apache Spark, and Apache Flink, which name every function identically. A function name must therefore be free in each of these engines. The ever, always, and temporal comparison functions are named by a one-letter quantifier, e, a, or t, followed by the comparison spelled out: a shorter name such as eLt would coincide with the function elt of Apache Spark and Apache Flink. The operators keep their symbols. The following table gives the functions behind each operator in both versions.
| Operators | Version 1.3 | Version 1.4 |
|---|---|---|
?=, %=, #= | ever_eq, always_eq, temporal_teq, tgeo_teq | eEqual, aEqual, tEqual |
?<>, %<>, #<> | ever_ne, always_ne, temporal_tne, tgeo_tne | eNotEqual, aNotEqual, tNotEqual |
?<, %<, #< | ever_lt, always_lt, temporal_tlt | eLessThan, aLessThan, tLessThan |
?<=, %<=, #<= | ever_le, always_le, temporal_tle | eLessEqual, aLessEqual, tLessEqual |
?>, %>, #> | ever_gt, always_gt, temporal_tgt | eGreaterThan, aGreaterThan, tGreaterThan |
?>=, %>=, #>= | ever_ge, always_ge, temporal_tge | eGreaterEqual, aGreaterEqual, tGreaterEqual |
The position functions, among which left and right coincide with functions of Apache Spark and Apache Flink, take as a prefix the class whose values or bounding boxes they compare: set, span, or spanset for sets, spans, and span sets, and for a box or a temporal value the type of its bounding box, tbox, stbox, or tpcbox. A temporal Boolean, text, or JSONB value is bounded by its time span and takes span. The positions in time and along the three spatial axes take the prefix alike. The following table gives the functions in both versions.
| Version 1.3 | Version 1.4 |
|---|---|
before | setBefore, spanBefore, spansetBefore, tboxBefore, stboxBefore, tpcboxBefore |
after | setAfter, spanAfter, spansetAfter, tboxAfter, stboxAfter, tpcboxAfter |
overbefore | setOverbefore, spanOverbefore, spansetOverbefore, tboxOverbefore, stboxOverbefore, tpcboxOverbefore |
overafter | setOverafter, spanOverafter, spansetOverafter, tboxOverafter, stboxOverafter, tpcboxOverafter |
left | setLeft, spanLeft, spansetLeft, tboxLeft, stboxLeft, tpcboxLeft |
right | setRight, spanRight, spansetRight, tboxRight, stboxRight, tpcboxRight |
overleft | setOverleft, spanOverleft, spansetOverleft, tboxOverleft, stboxOverleft, tpcboxOverleft |
overright | setOverright, spanOverright, spansetOverright, tboxOverright, stboxOverright, tpcboxOverright |
below, above, overbelow, overabove | stboxBelow, stboxAbove, stboxOverbelow, stboxOverabove, tpcboxBelow, tpcboxAbove, tpcboxOverbelow, tpcboxOverabove |
front, back, overfront, overback | stboxFront, stboxBack, stboxOverfront, stboxOverback, tpcboxFront, tpcboxBack, tpcboxOverfront, tpcboxOverback |