Commit c6fd1e90 authored by Marc Tamlyn's avatar Marc Tamlyn
Browse files

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

parent c9a53035
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -148,6 +148,7 @@ class OracleOperations(DatabaseOperations, BaseSpatialOperations):
            'PointField', 'GeometryField', 'LineStringField',
            'PolygonField', 'MultiPointField', 'MultiLineStringField',
            'MultiPolygonField', 'GeometryCollectionField', 'GeomField',
            'GMLField',
        )
        if internal_type in geometry_fields:
            converters.append(self.convert_textfield_value)
+3 −1
Original line number Diff line number Diff line
@@ -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.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.measure import Area, Distance

@@ -175,6 +175,8 @@ class GeoQuerySet(QuerySet):
        if backend.postgis:
            s['procedure_fmt'] = '%(version)s,%(geo_col)s,%(precision)s'
            s['procedure_args'] = {'precision': precision, 'version': version}
        if backend.oracle:
            s['select_field'] = GMLField()

        return self._spatial_attribute('gml', s, **kwargs)

+2 −2
Original line number Diff line number Diff line
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

__all__ = [
    'AreaField', 'DistanceField', 'GeomField', 'GeoQuery',
    'AreaField', 'DistanceField', 'GeomField', 'GMLField', 'GeoQuery',
]
+12 −0
Original line number Diff line number Diff line
@@ -51,3 +51,15 @@ class GeomField(BaseField):

    def get_internal_type(self):
        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