@@ -342,7 +342,7 @@ def _prepare_sorting(self, field: str = '', sort: str = '') -> tuple:
342342 field = splitted [0 ]
343343 sort = splitted [1 ]
344344
345- field = field . replace ( '.' , '`.`' )
345+ field = self . _prepare_field ( field )
346346
347347 if sort == '' :
348348 sort = 'ASC'
@@ -351,11 +351,31 @@ def _prepare_sorting(self, field: str = '', sort: str = '') -> tuple:
351351
352352 return f"`{ field } `" , sort
353353
354- def _prepare_fieldlist (self , fields : Union [ tuple , list ] = () ) -> str :
355- if fields == () or fields == [] :
356- self .set_error (f"Empty fieldlist in { inspect .stack ()[0 ][3 ]} method" )
354+ def _prepare_field (self , field : str = '' ) -> str :
355+ if field == '' :
356+ self .set_error (f"Empty field in { inspect .stack ()[0 ][3 ]} method" )
357357 return ''
358- return ', ' .join (fields )
358+
359+ if field .find ('(' ) > - 1 or field .find (')' ) > - 1 :
360+ return f"{ field } "
361+ else :
362+ field = field .replace ('.' , '`.`' )
363+ field = field .replace (' AS ' , '` AS `' )
364+ return f"`{ field } `"
365+
366+ def _prepare_fieldlist (self , fields : Union [str , tuple , list ] = ()) -> str :
367+ result = ''
368+ if fields == '' or fields == () or fields == []:
369+ self .set_error (f"Empty fields in { inspect .stack ()[0 ][3 ]} method" )
370+ return result
371+
372+ if isinstance (fields , str ):
373+ result = self ._prepare_field (fields )
374+ elif isinstance (fields , tuple ) or isinstance (fields , list ):
375+ fields = [f"{ self ._prepare_field (field )} " for field in fields ]
376+ result = ', ' .join (fields )
377+
378+ return result
359379
360380 def order_by (self , field : Union [str , tuple , list ] = (), sort : str = '' ):
361381 if field == '' or field == () or field == []:
0 commit comments