mirror of
https://github.com/moodle/moodle.git
synced 2025-03-17 22:20:00 +01:00
mod/chat:chat_cron() delete stale chat messages with a single query, fast, and portable too! MDL-11674
This commit is contained in:
parent
667a2d481e
commit
319038c39d
@ -204,14 +204,15 @@ function chat_cron () {
|
||||
|
||||
chat_delete_old_users();
|
||||
|
||||
/// Delete old messages
|
||||
$keepdays = "SELECT c.keepdays
|
||||
FROM {$CFG->prefix}chat c
|
||||
WHERE c.id = {$CFG->prefix}chat_messages.chatid AND c.keepdays > 0";
|
||||
/// Delete old messages with a
|
||||
/// single SQL query.
|
||||
$subselect = "SELECT c.keepdays
|
||||
FROM {$CFG->prefix}chat c
|
||||
WHERE c.id = {$CFG->prefix}chat_messages.chatid";
|
||||
|
||||
$sql = "DELETE
|
||||
$sql = "DELETE
|
||||
FROM {$CFG->prefix}chat_messages
|
||||
WHERE timestamp < ( ".time()." - COALESCE(($keepdays), 999999) * 24 * 3600)";
|
||||
WHERE ($subselect) > 0 AND timestamp < ( ".time()." -($subselect) * 24 * 3600)";
|
||||
|
||||
execute_sql($sql, false);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user