diff options
| author | Tim Graham <timograham@gmail.com> | 2016-06-13 11:27:52 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-06-16 19:51:13 -0400 |
| commit | 9c3fbf5423367cdcf1a30a411793919d86f5288c (patch) | |
| tree | 1b9872345020c0dce372ebc45f86e088990c8569 | |
| parent | 4f336f66523001b009ab038b10848508fd208b3b (diff) | |
Used SQL from DB backend in GeomValue.
This avoids the deprecated GeomFromText on MySQL (refs #26134).
Thanks Claude Paroz for the review.
| -rw-r--r-- | django/contrib/gis/db/backends/oracle/operations.py | 2 | ||||
| -rw-r--r-- | django/contrib/gis/db/models/functions.py | 12 |
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 cbaf80d77d..fc572fc9b1 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): |
