krr> dbmail 2.0.7
krr> MySQL 4.1.14 INNODB

krr> I've just created new `dbmail` database from
krr> `create_tables_innoDB.mysql` file

krr> And did the following steps:
krr> 1) Adding new user
>> dbmail-users -a test -w testpwd

krr> Opening connection to database...
krr> Opening connection to authentication...
krr> Ok. Connected
krr> Adding user test with password type ,0 bytes mailbox limit and
krr> clientid 0... Ok, user added id [3]
krr> Adding INBOX for new user
krr> Ok. added
krr> Done

krr> This created user_idnr=3 and mailbox mailbox_idnr=1

krr> 2) Sending test message

>> dbmail-smtp -u test < 1msg

krr> This created messageblk_idnr=1 and 2


krr> 3) Deleting user

>> dbmail-users -d test
krr> Opening connection to database...
krr> Opening connection to authentication...
krr> Ok. Connected
krr> Deleting aliases for user [test]...
krr> Done
krr> Deleting user [test]...
krr> Done

krr> messageblk_idnr=1 and 2 stays on it's place !

krr> 4) Runnig dbmail-util to destroy messages of deleted user

>> dbmail-util -tubpdr
krr> Opening connection to database... 
krr> Opening connection to authentication... 
krr> Ok. Connected.

krr> Repairing DBMAIL messageblocks integrity...
krr> Ok. Found [0] unconnected messageblks.

krr> Checking DBMAIL message integrity...
krr> Ok. Found [0] unconnected messages.

krr> Checking DBMAIL mailbox integrity...
krr> Ok. Found [0] unconnected mailboxes.

krr> Repairing DBMAIL for NULL messages...
krr> Ok. Found [0] NULL messages.

krr> Checking DBMAIL for NULL physmessages...
krr> Ok. Found [0] physmessages without messageblocks.

krr> Repairing DBMAIL for incorrect is_header flags...
krr> Ok. Found [0] incorrect is_header flags.

krr> Deleting messages with PURGE status...
krr> Ok. [0] messages deleted.

krr> Setting DELETE status for deleted messages...
krr> Ok. [0] messages set for deletion.
krr> Re-calculating used quota for all users...
krr> Ok. Used quota updated for all users.

krr> Maintenance done. No errors found.


krr> messageblk_idnr=1 and 2 stays on it's place AGAIN!!!

krr> What is wrong? As I understand messages of deleted user must be
krr> deleted by dbmail-util...

After learning sql queries log of dbmail-util I haven't found any
queries that compare data in tables `dbmail_physmessage` and
`dbmail_messages`.
I'm not SQL guru, but IMHO there must be something like following query:

SELECT pm.id
FROM dbmail_physmessage pm
LEFT JOIN dbmail_messages msg ON msg.physmessage_id = pm.id
WHERE msg.message_idnr is NULL

it will give only dbmail_physmessage.id's that is not present in
`dbmail_messages` table

Reply via email to