From: gbateson Date: Fri, 28 Apr 2006 01:37:17 +0000 (+0000) Subject: optimization fo the removal of orphan records X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=8955d22ac627f8b5aede7af79532193d4b366afa;p=moodle.git optimization fo the removal of orphan records --- diff --git a/mod/hotpot/db/mysql.php b/mod/hotpot/db/mysql.php index bf4234dcbd..9b7ee1ba55 100644 --- a/mod/hotpot/db/mysql.php +++ b/mod/hotpot/db/mysql.php @@ -33,7 +33,7 @@ function hotpot_upgrade($oldversion) { require_once $update_to_v2; $ok = $ok && hotpot_update_to_v2_1_17(); } - if ($oldversion < 2006042801) { + if ($oldversion < 2006042802) { require_once $update_to_v2; $ok = $ok && hotpot_update_to_v2_1_18(); } diff --git a/mod/hotpot/db/postgres7.php b/mod/hotpot/db/postgres7.php index 63baf900d8..8c7a3e8d3a 100644 --- a/mod/hotpot/db/postgres7.php +++ b/mod/hotpot/db/postgres7.php @@ -37,7 +37,7 @@ function hotpot_upgrade($oldversion) { require_once $update_to_v2; $ok = $ok && hotpot_update_to_v2_1_17(); } - if ($oldversion < 2006042801) { + if ($oldversion < 2006042802) { require_once $update_to_v2; $ok = $ok && hotpot_update_to_v2_1_18(); } diff --git a/mod/hotpot/db/update_to_v2.php b/mod/hotpot/db/update_to_v2.php index d5b33eaa42..cd578f34b9 100644 --- a/mod/hotpot/db/update_to_v2.php +++ b/mod/hotpot/db/update_to_v2.php @@ -12,7 +12,7 @@ function hotpot_update_to_v2_1_18() { return $ok; } -function hotpot_remove_orphans($secondarytable, $secondarykeyfield, $primarytable) { +function hotpot_remove_orphans($secondarytable, $secondarykeyfield, $primarytable, $primarykeyfield='id') { global $CFG,$db; $ok = true; @@ -22,23 +22,21 @@ function hotpot_remove_orphans($secondarytable, $secondarykeyfield, $primarytabl $records = get_records_sql(" SELECT - t2.id, t2.id + t2.$secondarykeyfield, t2.$secondarykeyfield FROM {$CFG->prefix}$secondarytable AS t2 LEFT JOIN {$CFG->prefix}$primarytable AS t1 ON (t2.$secondarykeyfield = t1.id) WHERE - t1.id IS NULL - ORDER BY - t2.id + t1.$primarykeyfield IS NULL "); // restore SQL message echo setting $db->debug = $debug; if ($records) { - $ids = implode(',', array_keys($records)); - print 'removing '.count($records)." orphan record(s) from {$CFG->prefix}$secondarytable
"; - $ok = $ok && execute_sql("DELETE FROM {$CFG->prefix}$secondarytable WHERE $secondarykeyfield IN ($ids)"); + $keys = implode(',', array_keys($records)); + print "removing orphan record(s) from {$CFG->prefix}$secondarytable
"; + $ok = $ok && execute_sql("DELETE FROM {$CFG->prefix}$secondarytable WHERE $secondarykeyfield IN ($keys)"); } return $ok; diff --git a/mod/hotpot/version.php b/mod/hotpot/version.php index b8bfff228c..a596514fc1 100644 --- a/mod/hotpot/version.php +++ b/mod/hotpot/version.php @@ -3,7 +3,7 @@ /// Code fragment to define the version of hotpot /// This fragment is called by moodle_needs_upgrading() and /admin/index.php ///////////////////////////////////////////////////////////////////////////////// -$module->version = 2006042801; // release date of this version (see note below) +$module->version = 2006042802; // release date of this version (see note below) $module->release = 'v2.1.18'; // human-friendly version name (used in mod/hotpot/lib.php) $module->cron = 0; // period for cron to check this module (secs) // interpretation of YYYYMMDDXY version numbers