Skip to content

Commit

Permalink
MDL-50851 core_tag: fix db query failure on oracle
Browse files Browse the repository at this point in the history
  • Loading branch information
marinaglancy committed Jan 14, 2016
1 parent 1002024 commit 25430f7
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
2 changes: 1 addition & 1 deletion blog/locallib.php
Original file line number Diff line number Diff line change
Expand Up @@ -631,7 +631,7 @@ public function get_entry_fetch_sql($count=false, $sort='lastmodified DESC', $us

$allnamefields = \user_picture::fields('u', null, 'useridalias');
// The query used to locate blog entries is complicated. It will be built from the following components:
$requiredfields = "p.*, $allnamefields, u.email"; // The SELECT clause.
$requiredfields = "p.*, $allnamefields"; // The SELECT clause.
$tables = array('p' => 'post', 'u' => 'user'); // Components of the FROM clause (table_id => table_name).
// Components of the WHERE clause (conjunction).
$conditions = array('u.deleted = 0', 'p.userid = u.id', '(p.module = \'blog\' OR p.module = \'blog_external\')');
Expand Down
8 changes: 5 additions & 3 deletions tag/classes/area.php
Original file line number Diff line number Diff line change
Expand Up @@ -401,13 +401,15 @@ public static function move_tags($component, $itemtype, $tagcollid) {
$result->close();

// Find all tags that are used for this itemtype/component and are not present in the target tag collection.
$sql = "SELECT DISTINCT t.id, t.name, t.rawname, t.description, t.descriptionformat,
t.userid, t.tagtype, t.flag
// This query is a little complicated because Oracle does not allow to run SELECT DISTINCT on CLOB fields.
$sql = "SELECT id, name, rawname, description, descriptionformat, userid, tagtype, flag
FROM {tag} WHERE id IN
(SELECT t.id
FROM {tag_instance} ti
JOIN {tag} t ON t.id = ti.tagid AND t.tagcollid <> :tagcollid1
LEFT JOIN {tag} tt ON tt.name = t.name AND tt.tagcollid = :tagcollid2
WHERE ti.itemtype = :itemtype2 AND ti.component = :component2
AND tt.id IS NULL";
AND tt.id IS NULL)";
$todelete = array();
$result = $DB->get_records_sql($sql, $params);
foreach ($result as $tag) {
Expand Down

0 comments on commit 25430f7

Please sign in to comment.