User Tools

Site Tools


how_to:repairing_corrupted_database

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
how_to:repairing_corrupted_database [2023/09/08 13:52] – [Finding the problem message] paulhow_to:repairing_corrupted_database [2024/01/15 11:35] (current) paul
Line 65: Line 65:
     badid INT;     badid INT;
 begin begin
 +DROP TABLE IF EXISTS badids;
 +CREATE TEMP TABLE badids (msgdataid BIGINT);
 FOR badid IN SELECT msgdataid FROM messages.msgdata ORDER BY msgdataid LOOP FOR badid IN SELECT msgdataid FROM messages.msgdata ORDER BY msgdataid LOOP
     curid = curid + 1;     curid = curid + 1;
Line 77: Line 79:
     exception     exception
         when others then         when others then
 +            INSERT INTO badids (msgdataid) VALUES(badid);
             raise notice 'data for message % is corrupt', badid;             raise notice 'data for message % is corrupt', badid;
             continue;             continue;
Line 88: Line 91:
  
 However, sometimes it won't find all problem messages, so it is a good idea to run it again after fixing any problems, until this script doesn't find any more errors.  However, sometimes it won't find all problem messages, so it is a good idea to run it again after fixing any problems, until this script doesn't find any more errors. 
 +
 +This script stores the bad message IDs in a temporary table called 'badids', so you can look at the values using 'SELECT * FROM badids;' or use the table to help with other functions if it helps (and you know SQL)
  
 ===Getting message summary info=== ===Getting message summary info===
how_to/repairing_corrupted_database.txt · Last modified: 2024/01/15 11:35 by paul