diff options
| author | Claude Paroz <claude@2xlibre.net> | 2022-12-31 15:32:35 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-01-03 05:47:44 +0100 |
| commit | 2a14b8df39b573124ea42dec0ce96147c8e767d4 (patch) | |
| tree | c18003040c58d555c245ab1fe5e1e3085754eade /django | |
| parent | 6774e9359cbdbf7b8c448597c103288ac381519a (diff) | |
Fixed #33783 -- Added IsEmpty GIS database function and __isempty lookup on PostGIS.
Diffstat (limited to 'django')
5 files changed, 10 insertions, 1 deletions
diff --git a/django/contrib/gis/db/backends/base/operations.py b/django/contrib/gis/db/backends/base/operations.py index e7bffb11b4..f6eaf8f503 100644 --- a/django/contrib/gis/db/backends/base/operations.py +++ b/django/contrib/gis/db/backends/base/operations.py @@ -48,6 +48,7 @@ class BaseSpatialOperations: "GeoHash", "GeometryDistance", "Intersection", + "IsEmpty", "IsValid", "Length", "LineLocatePoint", diff --git a/django/contrib/gis/db/backends/mysql/operations.py b/django/contrib/gis/db/backends/mysql/operations.py index 6d04874537..46d8fc5d6a 100644 --- a/django/contrib/gis/db/backends/mysql/operations.py +++ b/django/contrib/gis/db/backends/mysql/operations.py @@ -72,6 +72,7 @@ class MySQLOperations(BaseSpatialOperations, DatabaseOperations): "BoundingCircle", "ForcePolygonCW", "GeometryDistance", + "IsEmpty", "LineLocatePoint", "MakeValid", "MemSize", diff --git a/django/contrib/gis/db/backends/oracle/operations.py b/django/contrib/gis/db/backends/oracle/operations.py index ba7e3ca4d8..aefb2f74e2 100644 --- a/django/contrib/gis/db/backends/oracle/operations.py +++ b/django/contrib/gis/db/backends/oracle/operations.py @@ -122,6 +122,7 @@ class OracleOperations(BaseSpatialOperations, DatabaseOperations): "ForcePolygonCW", "GeoHash", "GeometryDistance", + "IsEmpty", "LineLocatePoint", "MakeValid", "MemSize", diff --git a/django/contrib/gis/db/backends/spatialite/operations.py b/django/contrib/gis/db/backends/spatialite/operations.py index 8003fcb6c6..47f3d4ca75 100644 --- a/django/contrib/gis/db/backends/spatialite/operations.py +++ b/django/contrib/gis/db/backends/spatialite/operations.py @@ -78,7 +78,7 @@ class SpatiaLiteOperations(BaseSpatialOperations, DatabaseOperations): @cached_property def unsupported_functions(self): - unsupported = {"BoundingCircle", "GeometryDistance", "MemSize"} + unsupported = {"BoundingCircle", "GeometryDistance", "IsEmpty", "MemSize"} if not self.geom_lib_version(): unsupported |= {"Azimuth", "GeoHash", "MakeValid"} return unsupported diff --git a/django/contrib/gis/db/models/functions.py b/django/contrib/gis/db/models/functions.py index 5f6c7b5cfd..f97c540a1a 100644 --- a/django/contrib/gis/db/models/functions.py +++ b/django/contrib/gis/db/models/functions.py @@ -382,6 +382,12 @@ class Intersection(OracleToleranceMixin, GeomOutputGeoFunc): @BaseSpatialField.register_lookup +class IsEmpty(GeoFuncMixin, Transform): + lookup_name = "isempty" + output_field = BooleanField() + + +@BaseSpatialField.register_lookup class IsValid(OracleToleranceMixin, GeoFuncMixin, Transform): lookup_name = "isvalid" output_field = BooleanField() |
