#NEWLINE# def resolve_columns( self , row , fields = ( ) ) : #NEWLINE# #INDENT# '\n        This routine is necessary so that distances and geometries returned\n        from extra selection SQL get resolved appropriately into Python \n        objects.\n        ' #NEWLINE# values = [ ] #NEWLINE# aliases = self . extra_select . keys ( ) #NEWLINE# rn_offset = 0 #NEWLINE# if SpatialBackend . oracle : #NEWLINE# #INDENT# if ( ( self . high_mark is not None ) or self . low_mark ) : #NEWLINE# #INDENT# rn_offset = 1 #NEWLINE# #UNINDENT# #UNINDENT# index_start = ( rn_offset + len ( aliases ) ) #NEWLINE# values = [ self . convert_values ( v , self . extra_select_fields . get ( a , None ) ) for ( v , a ) in izip ( row [ rn_offset : index_start ] , aliases ) ] #NEWLINE# if SpatialBackend . oracle : #NEWLINE# #INDENT# for ( value , field ) in izip ( row [ index_start : ] , fields ) : #NEWLINE# #INDENT# values . append ( self . convert_values ( value , field ) ) #NEWLINE# #UNINDENT# #UNINDENT# else : #NEWLINE# #INDENT# values . extend ( row [ index_start : ] ) #NEWLINE# #UNINDENT# return values