// build a list of boards and messageids and then use that instead of keeping the query in use\r
SQLite3DB::Statement selectst=m_db->Prepare("SELECT tblMessage.MessageID FROM tblMessage \\r
INNER JOIN tblMessageBoard ON tblMessage.MessageID=tblMessageBoard.MessageID \\r
- LEFT JOIN tblThreadPost ON tblMessage.MessageID=tblThreadPost.MessageID \\r
- WHERE tblMessageBoard.BoardID=? AND tblThreadPost.MessageID IS NULL;");\r
+ LEFT JOIN (SELECT tblThread.BoardID, tblThreadPost.MessageID FROM tblThread INNER JOIN tblThreadPost ON tblThread.ThreadID=tblThreadPost.ThreadID WHERE tblThread.BoardID=?) AS temp1 ON tblMessage.MessageID=temp1.MessageID \\r
+ WHERE tblMessageBoard.BoardID=? AND temp1.BoardID IS NULL;");\r
\r
boardst.Step();\r
while(boardst.RowReturned())\r
boardst.Step();\r
\r
selectst.Bind(0,boardid);\r
+ selectst.Bind(1,boardid);\r
selectst.Step();\r
\r
while(selectst.RowReturned())\r
st.Bind(0,Poco::DateTimeFormatter::format(date,"%Y-%m-%d"));\r
st.Step();\r
\r
+ // delete old frost message requests\r
+ date=Poco::Timestamp();\r
+ date-=Poco::Timespan(m_frostmaxdaysbackward,0,0,0,0);\r
+ st=m_db->Prepare("DELETE FROM tblFrostMessageRequests WHERE Day<?;");\r
+ st.Bind(0,Poco::DateTimeFormatter::format(date,"%Y-%m-%d"));\r
+ st.Step();\r
+\r
// delete tblIdentityTrust for local identities and identities that have been deleted\r
m_db->Execute("DELETE FROM tblIdentityTrust WHERE LocalIdentityID NOT IN (SELECT LocalIdentityID FROM tblLocalIdentity);");\r
m_db->Execute("DELETE FROM tblIdentityTrust WHERE IdentityID NOT IN (SELECT IdentityID FROM tblIdentity);");\r
\r
\r
+ // cap failure count\r
+ m_db->Execute("UPDATE tblIdentity SET FailureCount=(SELECT OptionValue FROM tblOption WHERE Option='MaxFailureCount') WHERE FailureCount>(SELECT OptionValue FROM tblOption WHERE Option='MaxFailureCount');");\r
// reduce failure count for each identity\r
m_db->Execute("UPDATE tblIdentity SET FailureCount=0 WHERE FailureCount<(SELECT OptionValue FROM tblOption WHERE Option='FailureCountReduction');");\r
- m_db->Execute("UPDATE tblIdentity SET FailureCount=FailureCount-(SELECT OptionValue FROM tblOption WHERE OptionName='FailureCountReduction') WHERE FailureCount>=(SELECT OptionValue FROM tblOption WHERE Option='FailureCountReduction');");\r
+ m_db->Execute("UPDATE tblIdentity SET FailureCount=FailureCount-(SELECT OptionValue FROM tblOption WHERE Option='FailureCountReduction') WHERE FailureCount>=(SELECT OptionValue FROM tblOption WHERE Option='FailureCountReduction');");\r
\r
st.Finalize();\r
findst.Finalize();\r
option.Get("MessageDownloadMaxDaysBackward",tempval);\r
StringFunctions::Convert(tempval,m_messagedownloadmaxdaysbackward);\r
\r
+ m_frostmaxdaysbackward=5;\r
+ tempval="5";\r
+ option.Get("FrostMessageMaxDaysBackward",tempval);\r
+ StringFunctions::Convert(tempval,m_frostmaxdaysbackward);\r
\r
Poco::DateTime now;\r
int i=0;\r