From 2da32bd6a5a0071756c29a4684c73694f0971664 Mon Sep 17 00:00:00 2001 From: Tyler Bannister Date: Tue, 7 Aug 2012 14:41:09 -0400 Subject: [PATCH] MDL-30643 - Fixing minor log output error and test cases. --- lib/statslib.php | 14 ++++-- lib/tests/statslib_test.php | 85 ++++++++++++++++++++++++++++++++++++- 2 files changed, 93 insertions(+), 6 deletions(-) diff --git a/lib/statslib.php b/lib/statslib.php index ed720665fca..e9ed8c08c3a 100644 --- a/lib/statslib.php +++ b/lib/statslib.php @@ -190,13 +190,19 @@ function stats_cron_daily($maxdays=1) { break; } - stats_progress('0'); - /// find out if any logs available for this day $sql = "SELECT 'x' FROM {temp_log1} l"; $logspresent = $DB->get_records_sql($sql, null, 0, 1); - /// process login info first + if ($logspresent) { + // Insert blank record to force Query 10 to generate additional row when no logs for + // the site with userid 0 exist. Added for backwards compatibility. + $DB->insert_record_raw('temp_log1', array('userid' => 0, 'course' => SITEID, 'action' => '')); + } + + stats_progress('0'); + + /// process login info first $sql = "INSERT INTO {temp_stats_user_daily} (stattype, timeend, courseid, userid, statsreads) SELECT 'logins', $nextmidnight AS timeend, ".SITEID." AS courseid, userid, count(id) as statsreads @@ -382,7 +388,6 @@ function stats_cron_daily($maxdays=1) { SUM(CASE WHEN action $viewactionssql THEN 1 ELSE 0 END) AS statsreads, SUM(CASE WHEN action $postactionssql THEN 1 ELSE 0 END) AS statswrites FROM {temp_log1} l - WHERE !(course = 0 AND userid = 0) GROUP BY userid, courseid"; if ($logspresent and !$DB->execute($sql, array_merge($params1, $params2))) { @@ -1573,6 +1578,7 @@ function stats_temp_table_drop() { function stats_temp_table_fill($timestart, $timeend) { global $DB; + // Note: We need to create a placeholder here to simulate the effects of old, slow unions $sql = "INSERT INTO {temp_log1} SELECT id, userid, course, action FROM {log} l WHERE l.time >= $timestart AND l.time < $timeend"; diff --git a/lib/tests/statslib_test.php b/lib/tests/statslib_test.php index 3e32143a88b..a93995ea203 100644 --- a/lib/tests/statslib_test.php +++ b/lib/tests/statslib_test.php @@ -237,6 +237,15 @@ class statslib_daily_testcase extends advanced_testcase { 'statswrites' => 0, 'stattype' => 'activity' ), + array( // Query 10 - default record + 'courseid' => SITEID, + 'userid' => 0, + 'roleid' => 0, + 'timeend' => $end, + 'statsreads' => 0, + 'statswrites' => 0, + 'stattype' => 'activity' + ), ), ), ), @@ -320,6 +329,15 @@ class statslib_daily_testcase extends advanced_testcase { 'statswrites' => 0, 'stattype' => 'activity' ), + array( // Query 10 - default record + 'courseid' => SITEID, + 'userid' => 0, + 'roleid' => 0, + 'timeend' => $end, + 'statsreads' => 0, + 'statswrites' => 0, + 'stattype' => 'activity' + ), ), ), ), @@ -435,6 +453,15 @@ class statslib_daily_testcase extends advanced_testcase { 'statswrites' => 0, 'stattype' => 'activity' ), + array( // Query 10 - default record + 'courseid' => SITEID, + 'userid' => 0, + 'roleid' => 0, + 'timeend' => $end, + 'statsreads' => 0, + 'statswrites' => 0, + 'stattype' => 'activity' + ), ), ), ), @@ -557,7 +584,16 @@ class statslib_daily_testcase extends advanced_testcase { 'statswrites' => 0, 'stattype' => 'activity' ), - ), + array( // Query 10 - default record + 'courseid' => SITEID, + 'userid' => 0, + 'roleid' => 0, + 'timeend' => $end, + 'statsreads' => 0, + 'statswrites' => 0, + 'stattype' => 'activity' + ), + ), ), ), array( // Test #5 - Login and view course - Tests queries 4, 6, 10, 12, 14 (read) @@ -672,6 +708,15 @@ class statslib_daily_testcase extends advanced_testcase { 'statswrites' => 0, 'stattype' => 'activity' ), + array( // Query 10 - default record + 'courseid' => SITEID, + 'userid' => 0, + 'roleid' => 0, + 'timeend' => $end, + 'statsreads' => 0, + 'statswrites' => 0, + 'stattype' => 'activity' + ), ), ), ), @@ -794,7 +839,16 @@ class statslib_daily_testcase extends advanced_testcase { 'statswrites' => 0, 'stattype' => 'activity' ), - ), + array( // Query 10 - default record + 'courseid' => SITEID, + 'userid' => 0, + 'roleid' => 0, + 'timeend' => $end, + 'statsreads' => 0, + 'statswrites' => 0, + 'stattype' => 'activity' + ), + ), ), ), array( // Test #7 - Login and view course - Tests queries 13 (not enroled), 14 (not default) @@ -924,6 +978,15 @@ class statslib_daily_testcase extends advanced_testcase { 'statswrites' => 0, 'stattype' => 'activity' ), + array( // Query 10 - default record + 'courseid' => SITEID, + 'userid' => 0, + 'roleid' => 0, + 'timeend' => $end, + 'statsreads' => 0, + 'statswrites' => 0, + 'stattype' => 'activity' + ), ), ), ), @@ -1022,6 +1085,15 @@ class statslib_daily_testcase extends advanced_testcase { 'statswrites' => 0, 'stattype' => 'activity' ), + array( // Query 10 - default record + 'courseid' => SITEID, + 'userid' => 0, + 'roleid' => 0, + 'timeend' => $end, + 'statsreads' => 0, + 'statswrites' => 0, + 'stattype' => 'activity' + ), ), ), ), @@ -1431,6 +1503,15 @@ class statslib_daily_testcase extends advanced_testcase { 'statswrites' => 0, 'stattype' => 'activity' ), + array( // Query 10 - default record + 'courseid' => SITEID, + 'userid' => 0, + 'roleid' => 0, + 'timeend' => $end, + 'statsreads' => 0, + 'statswrites' => 0, + 'stattype' => 'activity' + ), ), ); -- 2.43.0