MDL-12618 restore events - apply cross-db sql_compare_text(). MSSQL & Oracle were...
authorstronk7 <stronk7>
Sun, 10 May 2009 14:45:59 +0000 (14:45 +0000)
committerstronk7 <stronk7>
Sun, 10 May 2009 14:45:59 +0000 (14:45 +0000)
backup/restorelib.php

index 34903f0574886c9f736cb80a0db1dd440276e044..f5d1d46e74caec7edbc1299750f563a8a031c2f8 100644 (file)
@@ -3774,8 +3774,11 @@ define('RESTORE_GROUPS_GROUPINGS', 3);
 
                         //Now search if that event exists (by name, description, timestart fields) in
                         //restore->course_id course
-                        $eve_db = $DB->get_records("event",
-                            array('courseid'=>$eve->courseid, 'name'=>$eve->name, 'description'=>$eve->description, 'timestart'=>$eve->timestart));
+                        //Going to compare LOB columns so, use the cross-db sql_compare_text() in both sides.
+                        $compare_description_clause = $DB->sql_compare_text('description')  . "=" .  $DB->sql_compare_text("'" . $eve->description . "'");
+                        $eve_db = $DB->get_record_select('event',
+                            "courseid = ? AND name = ? AND $compare_description_clause AND timestart = ?",
+                            array($eve->courseid, $eve->name, $eve->timestart));
                         //If it doesn't exist, create
                         if (!$eve_db) {
                             $create_event = true;