server/sources/native.py
brancholdstable
changeset 8820 dbffb6959564
parent 8546 3d2038d6f20d
child 8821 c4aa23af0baa
equal deleted inserted replaced
8818:d8b0984c923c 8820:dbffb6959564
   756                 # need string comparison because of various backends
   756                 # need string comparison because of various backends
   757                 for arg in ex.args:
   757                 for arg in ex.args:
   758                     mo = re.search('unique_cw_[^ ]+_idx', arg)
   758                     mo = re.search('unique_cw_[^ ]+_idx', arg)
   759                     if mo is not None:
   759                     if mo is not None:
   760                         index_name = mo.group(0)
   760                         index_name = mo.group(0)
   761                         elements = index_name.rstrip('_idx').split('_cw_')[1:]
   761                         # right-chop '_idx' postfix
       
   762                         # (garanteed to be there, see regexp above)
       
   763                         elements = index_name[:-4].split('_cw_')[1:]
   762                         etype = elements[0]
   764                         etype = elements[0]
   763                         rtypes = elements[1:]
   765                         rtypes = elements[1:]
   764                         raise UniqueTogetherError(etype, rtypes)
   766                         raise UniqueTogetherError(etype, rtypes)
   765                     mo = re.search('columns (.*) are not unique', arg)
   767                     mo = re.search('columns (.*) are not unique', arg)
   766                     if mo is not None: # sqlite in use
   768                     if mo is not None: # sqlite in use
   767                         rtypes = [c.strip().lstrip('cw_') for c in mo.group(1).split(',')]
   769                         # we left chop the 'cw_' prefix of attribute names
       
   770                         rtypes = [c.strip()[3:]
       
   771                                   for c in mo.group(1).split(',')]
   768                         etype = '???'
   772                         etype = '???'
   769                         raise UniqueTogetherError(etype, rtypes)
   773                         raise UniqueTogetherError(etype, rtypes)
   770             raise
   774             raise
   771         return cursor
   775         return cursor
   772 
   776