summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2016-06-13 11:27:52 -0400
committerTim Graham <timograham@gmail.com>2016-06-16 20:32:09 -0400
commitf94f4db0a3fe4844c99759102de8191d413dae1d (patch)
tree4299518564bdfc33918122c94876416ed525b98b /django
parent13d60298ea2a07242dc3952a9dfcd9c8857bf1f9 (diff)
[1.10.x] Used SQL from DB backend in GeomValue.
This avoids the deprecated GeomFromText on MySQL (refs #26134). Thanks Claude Paroz for the review. Backport of 9c3fbf5423367cdcf1a30a411793919d86f5288c from master
Diffstat (limited to 'django')
-rw-r--r--django/contrib/gis/db/backends/oracle/operations.py2
-rw-r--r--django/contrib/gis/db/models/functions.py12
2 files changed, 5 insertions, 9 deletions
diff --git a/django/contrib/gis/db/backends/oracle/operations.py b/django/contrib/gis/db/backends/oracle/operations.py
index 2a166f23a1..a6a0f464c9 100644
--- a/django/contrib/gis/db/backends/oracle/operations.py
+++ b/django/contrib/gis/db/backends/oracle/operations.py
@@ -78,6 +78,8 @@ class OracleOperations(BaseSpatialOperations, DatabaseOperations):
union = 'SDO_GEOM.SDO_UNION'
unionagg = 'SDO_AGGR_UNION'
+ from_text = 'SDO_GEOMETRY'
+
function_names = {
'Area': 'SDO_GEOM.SDO_AREA',
'Centroid': 'SDO_GEOM.SDO_CENTROID',
diff --git a/django/contrib/gis/db/models/functions.py b/django/contrib/gis/db/models/functions.py
index 7355bbcbfc..b98a2e134b 100644
--- a/django/contrib/gis/db/models/functions.py
+++ b/django/contrib/gis/db/models/functions.py
@@ -72,21 +72,15 @@ class GeomValue(Value):
return self.value.srid
def as_sql(self, compiler, connection):
+ return '%s(%%s, %s)' % (connection.ops.from_text, self.srid), [connection.ops.Adapter(self.value)]
+
+ def as_postgresql(self, compiler, connection):
if self.geography:
self.value = connection.ops.Adapter(self.value, geography=self.geography)
else:
self.value = connection.ops.Adapter(self.value)
return super(GeomValue, self).as_sql(compiler, connection)
- def as_mysql(self, compiler, connection):
- return 'GeomFromText(%%s, %s)' % self.srid, [connection.ops.Adapter(self.value)]
-
- def as_sqlite(self, compiler, connection):
- return 'GeomFromText(%%s, %s)' % self.srid, [connection.ops.Adapter(self.value)]
-
- def as_oracle(self, compiler, connection):
- return 'SDO_GEOMETRY(%%s, %s)' % self.srid, [connection.ops.Adapter(self.value)]
-
class GeoFuncWithGeoParam(GeoFunc):
def __init__(self, expression, geom, *expressions, **extra):