You are here

function multichoice_update_7502 in Quiz 7.5

Normalize data storage.

File

question_types/multichoice/multichoice.install, line 257
Multichoice questions install file.

Code

function multichoice_update_7502() {

  // Cleanup duplicates from 4.x.
  $sql = "delete from {quiz_multichoice_user_answers}\n    where id in (select id from (select id from {quiz_multichoice_user_answers} ua group by result_id, question_nid, question_vid having count(*) > 1) as q)";
  while (db_query($sql)
    ->rowCount()) {
  }
  db_add_field('quiz_multichoice_user_answers', 'result_answer_id', array(
    'type' => 'int',
    'unsigned' => TRUE,
    'not null' => FALSE,
  ));
  db_query("UPDATE {quiz_multichoice_user_answers} qtua\n    INNER JOIN {quiz_node_results_answers} qnra ON (qtua.question_nid = qnra.question_nid\n    AND qtua.question_vid = qnra.question_vid\n    AND qtua.result_id = qnra.result_id)\n    SET qtua.result_answer_id = qnra.result_answer_id");
  db_drop_field('quiz_multichoice_user_answers', 'result_id');
  db_drop_field('quiz_multichoice_user_answers', 'question_nid');
  db_drop_field('quiz_multichoice_user_answers', 'question_vid');
  db_add_unique_key('quiz_multichoice_user_answers', 'result_answer_id', array(
    'result_answer_id',
  ));
}