Fixed #30890 -- Added MariaDB support for the relate lookup.

This commit is contained in:
Mariusz Felisiak 2019-10-17 14:02:37 +02:00
parent bebf61de11
commit 3a8af298b9
5 changed files with 26 additions and 10 deletions

View file

@ -332,7 +332,7 @@ Lookup Type PostGIS Oracle MariaDB MySQL [#]_ Sp
:lookup:`intersects` X X X X X B
:lookup:`isvalid` X X X (≥ 5.7.5) X (LWGEOM)
:lookup:`overlaps` X X X X X B
:lookup:`relate` X X X C
:lookup:`relate` X X X X C
:lookup:`same_as` X X X X X B
:lookup:`touches` X X X X X B
:lookup:`within` X X X X X B

View file

@ -426,14 +426,15 @@ SpatiaLite ``Overlaps(poly, geom)``
----------
*Availability*: `PostGIS <https://postgis.net/docs/ST_Relate.html>`__,
Oracle, SpatiaLite, PGRaster (Conversion)
MariaDB, Oracle, SpatiaLite, PGRaster (Conversion)
Tests if the geometry field is spatially related to the lookup geometry by
the values given in the given pattern. This lookup requires a tuple parameter,
``(geom, pattern)``; the form of ``pattern`` will depend on the spatial backend:
PostGIS & SpatiaLite
~~~~~~~~~~~~~~~~~~~~
MariaDB, PostGIS, and SpatiaLite
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
On these spatial backends the intersection pattern is a string comprising
nine characters, which define intersections between the interior, boundary,
and exterior of the geometry field and the lookup geometry.
@ -447,7 +448,7 @@ Geometry example::
# the intersection pattern (the pattern here is for 'contains').
Zipcode.objects.filter(poly__relate=(geom, 'T*T***FF*'))
PostGIS SQL equivalent:
PostGIS and MariaDB SQL equivalent:
.. code-block:: sql
@ -471,6 +472,10 @@ PostGIS SQL equivalent:
SELECT ... WHERE ST_Relate(poly, ST_Polygon(rast, 1), 'T*T***FF*')
SELECT ... WHERE ST_Relate(ST_Polygon(rast, 2), ST_Polygon(rast, 1), 'T*T***FF*')
.. versionchanged:: 3.1
MariaDB support was added.
Oracle
~~~~~~