Commit 185ab9ff authored by Tim Graham's avatar Tim Graham
Browse files

Fixed Oracle GIS failures introduced by e9103402; refs #18757.

Thanks Marc Tamlyn for the patch.
parent 47ff4690
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -142,6 +142,17 @@ class OracleOperations(DatabaseOperations, BaseSpatialOperations):

    truncate_params = {'relate': None}

    def get_db_converters(self, internal_type):
        converters = super(OracleOperations, self).get_db_converters(internal_type)
        geometry_fields = (
            'PointField', 'GeometryField', 'LineStringField',
            'PolygonField', 'MultiPointField', 'MultiLineStringField',
            'MultiPolygonField', 'GeometryCollectionField', 'GeomField',
        )
        if internal_type in geometry_fields:
            converters.append(self.convert_textfield_value)
        return converters

    def convert_extent(self, clob):
        if clob:
            # Generally, Oracle returns a polygon for the extent -- however,
+1 −1
Original line number Diff line number Diff line
@@ -198,7 +198,7 @@ class GeometryField(Field):
            return geom

    def from_db_value(self, value, connection):
        if value is not None:
        if value:
            value = Geometry(value)
        return value

+2 −1
Original line number Diff line number Diff line
@@ -152,7 +152,8 @@ class GeoSQLCompiler(compiler.SQLCompiler):
        for i, alias in enumerate(self.query.extra_select):
            field = self.query.extra_select_fields.get(alias)
            if field:
                converters[i] = ([], [field.from_db_value], field)
                backend_converters = self.connection.ops.get_db_converters(field.get_internal_type())
                converters[i] = (backend_converters, [field.from_db_value], field)
        return converters

    #### Routines unique to GeoQuery ####