- modified fix_row(): skip records in person_keys table marked as deleted
[plcapi.git] / tools / dzombie.py
index 6ccc58a..e3c170a 100755 (executable)
@@ -37,8 +37,11 @@ try:
                line = lines[index].strip()
                 # find all created objects
                 if line.startswith("CREATE"):
-                        item_type = line.split(" ")[1].strip()
-                        item_name = line.split(" ")[2].strip()
+                       line_parts = line.split(" ")
+                       if line_parts[1:3] == ['OR', 'REPLACE']:
+                               line_parts = line_parts[2:]
+                       item_type = line_parts[1].strip()
+                       item_name = line_parts[2].strip()
                        if item_type.upper() in ['TABLE']:
                                while index < len(lines):
                                        index = index + 1
@@ -108,7 +111,7 @@ try:
                # delete these zombie records
                if zombie_keys_list:
                        print " -> Deleting %d zombie record(s) from %s after checking %s" % \
-                                       (len(zombie_keys_list), foreign_key[0], primary_key[0])
+                                       (len(zombie_keys_list), foreign_key_parts[0], primary_key_parts[0])
                        sql_delete = 'DELETE FROM %s WHERE %s IN %s' % \
                        (foreign_key_parts[0], foreign_key_parts[1], tuple(zombie_keys_list))
                        cursor.execute(sql_delete)