This is all valid.

[EMAIL PROTECTED] wrote:

>>dbmail-users -d test
> 
> Opening connection to database...
> Opening connection to authentication...
> Ok. Connected
> Deleting aliases for user [test]...
> Done
> Deleting user [test]...
> Done
> 
> messageblk_idnr=1 and 2 stays on it's place !

Because there's no restraint on physmessages wrt messages. Messages
owner by a user may well point to physmessages that are also referenced
by messages owned by other users.

> 
> 4) Runnig dbmail-util to destroy messages of deleted user
> 
> 
>>dbmail-util -tubpdr
> 
> Opening connection to database... 
> Opening connection to authentication... 
> Ok. Connected.
> 
> Repairing DBMAIL messageblocks integrity...
> Ok. Found [0] unconnected messageblks.
> 
> Checking DBMAIL message integrity...
> Ok. Found [0] unconnected messages.
> 
> Checking DBMAIL mailbox integrity...
> Ok. Found [0] unconnected mailboxes.
> 
> Repairing DBMAIL for NULL messages...
> Ok. Found [0] NULL messages.
> 
> Checking DBMAIL for NULL physmessages...
> Ok. Found [0] physmessages without messageblocks.
> 
> Repairing DBMAIL for incorrect is_header flags...
> Ok. Found [0] incorrect is_header flags.
> 
> Deleting messages with PURGE status...
> Ok. [0] messages deleted.
> 
> Setting DELETE status for deleted messages...
> Ok. [0] messages set for deletion.
> Re-calculating used quota for all users...
> Ok. Used quota updated for all users.
> 
> Maintenance done. No errors found.
> 
> 
> messageblk_idnr=1 and 2 stays on it's place AGAIN!!!
> 
> What is wrong? As I understand messages of deleted user must be
> deleted by dbmail-util...

Messages *are* deleted, it's the physmessages that remain in place.

The only thing missing is a check during maintenance to delete
physmessages that are not referenced by *any* messages.

Something to fix this may well be:

DELETE FROM dbmail_physmessage WHERE id IN (
        select id from dbmail_physmessage p
                LEFT JOIN dbmail_messages m ON p.id=m.physmessage_id
                WHERE m.physmessage_id=NULL
        );

which doesn't work in mysql...

-- 
  ________________________________________________________________
  Paul Stevens                                      paul at nfg.nl
  NET FACILITIES GROUP                     GPG/PGP: 1024D/11F8CD31
  The Netherlands________________________________http://www.nfg.nl

Reply via email to