Todo tipo que define la distancia de aproximación más cercana con respecto a una caja espaciotemporal la expresa en la versión 1.4 mediante la función nearestApproachDistance y el operador |=|. En la versión 1.3 los tipos cbuffer y pose la expresaban mediante la función distance y el operador <->, mientras que geometry y geography ya usaban la primera. Las signaturas afectadas son (cbuffer, stbox), (stbox, cbuffer), (pose, stbox) y (stbox, pose).
Las dos funciones responden preguntas distintas, que es lo que expresa el cambio. Una caja espaciotemporal lleva un período, de modo que nearestApproachDistance responde la distancia mínima durante el tiempo que comparten sus dos argumentos, y responde el valor nulo cuando no comparten ninguno. La función distance mide sus dos argumentos como conjuntos de puntos y no lee ningún período. Las signaturas de distance cuyos argumentos no llevan período conservan el nombre.
La versión 1.4 da a MobilityDB un único dialecto SQL en sus enlaces SQL por lotes y de flujo, PostgreSQL, DuckDB, Apache Spark y Apache Flink, que nombran cada función de la misma manera. Un nombre de función debe por lo tanto estar libre en cada uno de estos motores. Las funciones de comparación alguna vez, siempre y temporales se nombran con un cuantificador de una letra, e, a o t, seguido de la comparación escrita por completo: un nombre más corto como eLt coincidiría con la función elt de Apache Spark y Apache Flink. Los operadores conservan sus símbolos. La tabla siguiente da las funciones detrás de cada operador en ambas versiones.
| Operadores | Versión 1.3 | Versión 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 |
Las funciones de posición, entre las cuales left y right coinciden con funciones de Apache Spark y Apache Flink, llevan como prefijo la clase cuyos valores o cuadros delimitadores comparan: set, span o spanset para los tipos conjunto, rango y conjunto de rangos, y para un cuadro delimitador o un valor temporal el tipo de su cuadro delimitador, tbox, stbox o tpcbox. Un valor temporal booleano, de texto o JSONB está delimitado por su rango de tiempo y lleva span. Las posiciones en el tiempo y a lo largo de los tres ejes espaciales llevan el prefijo por igual. La siguiente tabla da las funciones en ambas versiones.
| Versión 1.3 | Versión 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 |