equal
deleted
inserted
replaced
452 values = {'x': eschema.eid, 'et': specialized_type.eid} |
452 values = {'x': eschema.eid, 'et': specialized_type.eid} |
453 yield 'SET X specializes ET WHERE X eid %(x)s, ET eid %(et)s', values |
453 yield 'SET X specializes ET WHERE X eid %(x)s, ET eid %(et)s', values |
454 |
454 |
455 def uniquetogether2rqls(eschema): |
455 def uniquetogether2rqls(eschema): |
456 rql_args = [] |
456 rql_args = [] |
|
457 # robustness against duplicated CWUniqueTogetherConstraint (pre 3.18) |
|
458 columnset = set() |
457 for columns in eschema._unique_together: |
459 for columns in eschema._unique_together: |
|
460 if columns in columnset: |
|
461 print ('schemaserial: skipping duplicate unique together %r %r' % |
|
462 (eschema.type, columns)) |
|
463 continue |
|
464 columnset.add(columns) |
458 rql, args = _uniquetogether2rql(eschema, columns) |
465 rql, args = _uniquetogether2rql(eschema, columns) |
459 args['name'] = y2sql.unique_index_name(eschema, columns) |
466 args['name'] = y2sql.unique_index_name(eschema, columns) |
460 rql_args.append((rql, args)) |
467 rql_args.append((rql, args)) |
461 return rql_args |
468 return rql_args |
462 |
469 |