From 25ac0dcf5b32ecfc45c80765395a407358b6e186 Mon Sep 17 00:00:00 2001 From: Carsten Schmitz Date: Wed, 31 Oct 2012 13:02:10 +0100 Subject: [PATCH] Fixed issue: Memory usage on integrity check too big --- application/controllers/admin/checkintegrity.php | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/application/controllers/admin/checkintegrity.php b/application/controllers/admin/checkintegrity.php index d6dd281c7b9..015cf460fd2 100644 --- a/application/controllers/admin/checkintegrity.php +++ b/application/controllers/admin/checkintegrity.php @@ -435,15 +435,11 @@ protected function _checkintegrity() /**********************************************************************/ /* Check question attributes */ /**********************************************************************/ - $question_attributes = Question_attributes::model()->findAll(); + $question_attributes = Question_attributes::model()->findAllBySql('select qid from {{question_attributes}} where qid not in (select qid from {{questions}})'); if (Question_attributes::model()->hasErrors()) safeDie(Question_attributes::model()->getError()); foreach ($question_attributes as $question_attribute) { - $iRowCount = Questions::model()->countByAttributes(array('qid' => $question_attribute['qid'])); - if (Questions::model()->hasErrors()) safeDie(Questions::model()->getError()); - if (!$iRowCount) { - $aDelete['questionattributes'][] = array('qid' => $question_attribute['qid']); - } + $aDelete['questionattributes'][] = array('qid' => $question_attribute['qid']); } // foreach