MDL-29912 course search - oracle inabilities with concats, empties, nulls and type...
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Wed, 26 Oct 2011 17:04:31 +0000 (19:04 +0200)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Wed, 26 Oct 2011 17:04:31 +0000 (19:04 +0200)
lib/datalib.php

index 3e31ee2..d6b0988 100644 (file)
@@ -717,7 +717,12 @@ function get_courses_search($searchterms, $sort='fullname ASC', $page=0, $record
     $params     = array();
     $i = 0;
 
     $params     = array();
     $i = 0;
 
-    $concat = $DB->sql_concat("COALESCE(c.summary, '". $DB->sql_empty() ."')", "' '", 'c.fullname', "' '", 'c.idnumber', "' '", 'c.shortname');
+    // Thanks Oracle for your non-ansi concat and type limits in coalesce. MDL-29912
+    if ($DB->get_dbfamily() == 'oracle') {
+        $concat = $DB->sql_concat('c.summary', "' '", 'c.fullname', "' '", 'c.idnumber', "' '", 'c.shortname');
+    } else {
+        $concat = $DB->sql_concat("COALESCE(c.summary, '". $DB->sql_empty() ."')", "' '", 'c.fullname', "' '", 'c.idnumber', "' '", 'c.shortname');
+    }
 
     foreach ($searchterms as $searchterm) {
         $i++;
 
     foreach ($searchterms as $searchterm) {
         $i++;