Exemple #1
0
 def function_handler(params, within_column_clause):
     if len(params) > 0:
         geom_cast = cast_param(params)
         if geom_cast is not None:
             return check_comparison(get_function(function, geom_cast, params, returns_geometry, relation_function),
                                       within_column_clause, returns_boolean, compare_value)
         
     return check_comparison(function(*params), within_column_clause, returns_boolean, compare_value)
Exemple #2
0
 def function_handler(params, within_column_clause):
     if len(params) > 0:
         geom_cast = cast_param(params)
         if geom_cast is not None:
             return check_comparison(get_function(function, geom_cast, params, returns_geometry, relation_function),
                                       within_column_clause, returns_boolean, compare_value)
         
     return check_comparison(function(*params), within_column_clause, returns_boolean, compare_value)
Exemple #3
0
    def function_handler(params, within_column_clause, **flags):
        if flags.get('auto_diminfo', True):
            # insert diminfo for all geometries in params
            params = list(params)
            
            i = 0
            length = len(params)
            while i < length:
                diminfo = None
                if isinstance(params[i], (WKBSpatialElement, WKTSpatialElement)) and hasattr(params[i], 'DIMINFO'):
                    # the attribute DIMINFO is set in OracleSpatialDialect.process_result()
                    diminfo = params[i].DIMINFO
                    
                elif isinstance(params[i], Column) and isinstance(params[i].type, GeometryBase):
                    diminfo = OracleSpatialDialect.get_diminfo_select(params[i])
                    
                if diminfo is not None:
                    i += 1
                    # insert DIMINFO after the geometry
                    params.insert(i, diminfo)
                    length += 1
                    
                i += 1

        return check_comparison(function(*params), within_column_clause, returns_boolean, compare_value)
Exemple #4
0
    def function_handler(params, within_column_clause, **flags):
        if flags.get('auto_diminfo', True):
            # insert diminfo for all geometries in params
            params = list(params)

            i = 0
            length = len(params)
            while i < length:
                diminfo = None
                if isinstance(
                        params[i],
                    (WKBSpatialElement, WKTSpatialElement)) and hasattr(
                        params[i], 'DIMINFO'):
                    # the attribute DIMINFO is set in OracleSpatialDialect.process_result()
                    diminfo = params[i].DIMINFO

                elif isinstance(params[i], Column) and isinstance(
                        params[i].type, GeometryBase):
                    diminfo = OracleSpatialDialect.get_diminfo_select(
                        params[i])

                if diminfo is not None:
                    i += 1
                    # insert DIMINFO after the geometry
                    params.insert(i, diminfo)
                    length += 1

                i += 1

        return check_comparison(function(*params), within_column_clause,
                                returns_boolean, compare_value)