Kaydet (Commit) c6fd1e90 authored tarafından Marc Tamlyn's avatar Marc Tamlyn

Fixed Oracle GIS gml() test failure introduced by e9103402; refs #18757.

üst c9a53035
...@@ -148,6 +148,7 @@ class OracleOperations(DatabaseOperations, BaseSpatialOperations): ...@@ -148,6 +148,7 @@ class OracleOperations(DatabaseOperations, BaseSpatialOperations):
'PointField', 'GeometryField', 'LineStringField', 'PointField', 'GeometryField', 'LineStringField',
'PolygonField', 'MultiPointField', 'MultiLineStringField', 'PolygonField', 'MultiPointField', 'MultiLineStringField',
'MultiPolygonField', 'GeometryCollectionField', 'GeomField', 'MultiPolygonField', 'GeometryCollectionField', 'GeomField',
'GMLField',
) )
if internal_type in geometry_fields: if internal_type in geometry_fields:
converters.append(self.convert_textfield_value) converters.append(self.convert_textfield_value)
......
...@@ -3,7 +3,7 @@ from django.db.models.query import QuerySet ...@@ -3,7 +3,7 @@ from django.db.models.query import QuerySet
from django.contrib.gis.db.models import aggregates from django.contrib.gis.db.models import aggregates
from django.contrib.gis.db.models.fields import get_srid_info, PointField, LineStringField from django.contrib.gis.db.models.fields import get_srid_info, PointField, LineStringField
from django.contrib.gis.db.models.sql import AreaField, DistanceField, GeomField, GeoQuery from django.contrib.gis.db.models.sql import AreaField, DistanceField, GeomField, GeoQuery, GMLField
from django.contrib.gis.geometry.backend import Geometry from django.contrib.gis.geometry.backend import Geometry
from django.contrib.gis.measure import Area, Distance from django.contrib.gis.measure import Area, Distance
...@@ -175,6 +175,8 @@ class GeoQuerySet(QuerySet): ...@@ -175,6 +175,8 @@ class GeoQuerySet(QuerySet):
if backend.postgis: if backend.postgis:
s['procedure_fmt'] = '%(version)s,%(geo_col)s,%(precision)s' s['procedure_fmt'] = '%(version)s,%(geo_col)s,%(precision)s'
s['procedure_args'] = {'precision': precision, 'version': version} s['procedure_args'] = {'precision': precision, 'version': version}
if backend.oracle:
s['select_field'] = GMLField()
return self._spatial_attribute('gml', s, **kwargs) return self._spatial_attribute('gml', s, **kwargs)
......
from django.contrib.gis.db.models.sql.conversion import AreaField, DistanceField, GeomField from django.contrib.gis.db.models.sql.conversion import AreaField, DistanceField, GeomField, GMLField
from django.contrib.gis.db.models.sql.query import GeoQuery from django.contrib.gis.db.models.sql.query import GeoQuery
__all__ = [ __all__ = [
'AreaField', 'DistanceField', 'GeomField', 'GeoQuery', 'AreaField', 'DistanceField', 'GeomField', 'GMLField', 'GeoQuery',
] ]
...@@ -51,3 +51,15 @@ class GeomField(BaseField): ...@@ -51,3 +51,15 @@ class GeomField(BaseField):
def get_internal_type(self): def get_internal_type(self):
return 'GeometryField' return 'GeometryField'
class GMLField(BaseField):
"""
Wrapper for GML to be used by Oracle to ensure Database.LOB conversion.
"""
def get_internal_type(self):
return 'GMLField'
def from_db_value(self, value, connection):
return value
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment