Reviewers: , Description: trytond: Reduce IN_MAX by number of columns in UNIQUE validation
Please review this at http://codereview.tryton.org/934002/ Affected files: trytond/model/modelsql.py Index: trytond/model/modelsql.py =================================================================== --- a/trytond/model/modelsql.py +++ b/trytond/model/modelsql.py @@ -2045,12 +2045,14 @@ match = _RE_UNIQUE.match(sql) if match: sql = match.group(1) + columns = sql.split(',') sql_clause = ' AND '.join('%s = %%s' - % i for i in sql.split(',')) + % i for i in columns) sql_clause = '(id != %s AND ' + sql_clause + ')' - for i in range(0, len(ids), cursor.IN_MAX): - sub_ids = ids[i:i + cursor.IN_MAX] + in_max = cursor.IN_MAX / (len(columns) + 1) + for i in range(0, len(ids), in_max): + sub_ids = ids[i:i + in_max] red_sql, red_ids = reduce_ids('id', sub_ids) cursor.execute('SELECT id,' + sql + ' '
