48 |
48 |
49 if eschema.rdef(rschema).cardinality[0] == '1': |
49 if eschema.rdef(rschema).cardinality[0] == '1': |
50 broken_eids = sql('SELECT cw_eid FROM cw_%(e)s WHERE cw_%(r)s IS NULL' % args, ask_confirm=False) |
50 broken_eids = sql('SELECT cw_eid FROM cw_%(e)s WHERE cw_%(r)s IS NULL' % args, ask_confirm=False) |
51 if broken_eids: |
51 if broken_eids: |
52 print 'Required relation %(e)s.%(r)s missing' % args |
52 print 'Required relation %(e)s.%(r)s missing' % args |
53 args['eids'] = ', '.join(eid for eid, in broken_eids) |
53 args['eids'] = ', '.join(str(eid) for eid, in broken_eids) |
54 rql('DELETE %(e)s X WHERE X eid IN (%(eids)s)' % args) |
54 rql('DELETE %(e)s X WHERE X eid IN (%(eids)s)' % args) |
55 broken_eids = sql('SELECT cw_eid FROM cw_%(e)s WHERE cw_%(r)s IN (SELECT cw_%(r)s FROM cw_%(e)s ' |
55 broken_eids = sql('SELECT cw_eid FROM cw_%(e)s WHERE cw_%(r)s IN (SELECT cw_%(r)s FROM cw_%(e)s ' |
56 'EXCEPT SELECT eid FROM entities)' % args, ask_confirm=False) |
56 'EXCEPT SELECT eid FROM entities)' % args, ask_confirm=False) |
57 if broken_eids: |
57 if broken_eids: |
58 print 'Required relation %(e)s.%(r)s references unknown objects, deleting subject entities' % args |
58 print 'Required relation %(e)s.%(r)s references unknown objects, deleting subject entities' % args |
59 args['eids'] = ', '.join(eid for eid, in broken_eids) |
59 args['eids'] = ', '.join(str(eid) for eid, in broken_eids) |
60 rql('DELETE %(e)s X WHERE X eid IN (%(eids)s)' % args) |
60 rql('DELETE %(e)s X WHERE X eid IN (%(eids)s)' % args) |
61 else: |
61 else: |
62 if sql('SELECT COUNT(*) FROM (' |
62 if sql('SELECT COUNT(*) FROM (' |
63 ' SELECT cw_%(r)s FROM cw_%(e)s WHERE cw_%(r)s IS NOT NULL' |
63 ' SELECT cw_%(r)s FROM cw_%(e)s WHERE cw_%(r)s IS NOT NULL' |
64 ' EXCEPT' |
64 ' EXCEPT' |