Erm, and what if I'm recklessly running MyISAM with wild abandon? -Sri
On Wed, Mar 23, 2005 at 04:44:23PM +0100, Paul J Stevens wrote: > Then you have a problem, because those message records don't have any > physmessages associated with them. And no physmessage means no messageblks > if you run innodb or pgsql. > > Unless our sql is totally off base: > > SELECT msg.message_idnr FROM dbmail_messages msg > LEFT JOIN dbmail_sphysmessage pm ON > msg.physmessage_id = pm.id WHERE pm.id is NULL; > > > Do did you perhaps delete physmessages by hand (naughty, naughty) at some > point? Like: > > DELETE from dbmail_physmessage WHERE internal_date < '2005-01-01'; > > That would explain this alright.... > > > > Sri Gupta wrote: > >Wait a sec. I'm sure that the 170,000-odd messages in my database being > >seen as null, shouldn't be. This dbmail installation only has one account > >(it's my workstation), and I only have about 180,000 messages total > >stored. There's no way 170,000 of them should be purged. > > > >-sri > > > >On Wed, Mar 23, 2005 at 02:50:19PM +0100, Paul J Stevens wrote: > > > >>Will fix this. > >> > >>Ilja Booij wrote: > >> > >>>On Wed, 23 Mar 2005 09:05:00 +0100, Paul J Stevens <[EMAIL PROTECTED]> > >>>wrote: > >>> > >>> > >>>>Ok. I checked the source. > >>>> > >>>>Looks like do_null_messages correctly finds all the NULL messages, and > >>>>does set > >>>>MESSAGE_STATUS_ERROR on all these messages. But there's no code to > >>>>actually > >>>>flush all those messages from the database. I suspect that somewhere in > >>>>the > >>>>past, this was handled subtly different. > >>>> > >>>>Aaron, Ilja: any reason why do_null_messages calls > >>>>db_set_message_status to set > >>>>MESSAGE_STATUS_ERROR instead of MESSAGE_STATUS_PURGE? > >>> > >>> > >>>I guess it does this for purely historical reasons. I checked some old > >>>code from the 1.2 branch, and it does exactly the same there. It would > >>>certainly be better to set the status to MESSAGE_STATUS_PURGE. > >>> > >>>Ilja
