|
|
|
This error is generated occasionally when running admin/cron.php
<div class="notifytiny" style="text-align:center">ERROR: relation "core_blog" does not exist<br /><br />
DELETE FROM core_tag_instance WHERE
core_tag_instance.id
IN
( SELECT sq1.id
FROM
(SELECT sq2.*
FROM core_tag_instance sq2
LEFT JOIN core_blog item
ON sq2.itemid = item.id
WHERE item.id IS NULL
AND sq2.itemtype = 'blog')
sq1
) <ul style="text-align: left"><li>line 1393 of lib/dmllib.php: call to debugging()</li><li>line 917 of tag/lib.php: call to delete_records_select()</li><li>line 1132 of tag/lib.php: call to tag_instance_table_cleanup()</li><li>line 339 of admin/cron.php: call to tag_cron()</li></ul></div>
This is an interesting error, as it has taken some time for me to spot it. The call to tag_cron() is within the 'only call occasionally' section of admin/cron.php, so it does not always appear.
The fix is very easy. The table <prefix>blog no longer exists. So changing the appropriate line in this query solves the issue:
LEFT JOIN core_blog item //original line
LEFT JOIN core_tag item //corrected line
In the code it is line 910 of tag/lib.php where the variable $type->itemtype should be replaced with 'tag', as is already done in the case just below on line 930.
|
|
Description
|
This error is generated occasionally when running admin/cron.php
<div class="notifytiny" style="text-align:center">ERROR: relation "core_blog" does not exist<br /><br />
DELETE FROM core_tag_instance WHERE
core_tag_instance.id
IN
( SELECT sq1.id
FROM
(SELECT sq2.*
FROM core_tag_instance sq2
LEFT JOIN core_blog item
ON sq2.itemid = item.id
WHERE item.id IS NULL
AND sq2.itemtype = 'blog')
sq1
) <ul style="text-align: left"><li>line 1393 of lib/dmllib.php: call to debugging()</li><li>line 917 of tag/lib.php: call to delete_records_select()</li><li>line 1132 of tag/lib.php: call to tag_instance_table_cleanup()</li><li>line 339 of admin/cron.php: call to tag_cron()</li></ul></div>
This is an interesting error, as it has taken some time for me to spot it. The call to tag_cron() is within the 'only call occasionally' section of admin/cron.php, so it does not always appear.
The fix is very easy. The table <prefix>blog no longer exists. So changing the appropriate line in this query solves the issue:
LEFT JOIN core_blog item //original line
LEFT JOIN core_tag item //corrected line
In the code it is line 910 of tag/lib.php where the variable $type->itemtype should be replaced with 'tag', as is already done in the case just below on line 930. |
Show » |
|
<div class="notifytiny" style="text-align:center">ERROR: syntax error at or near "nr" at character 28<br /><br />
nr
SELECT tb.tagid , COUNT
FROM core_tag_instance ta
INNER JOIN core_tag_instance tb ON ta.itemid = tb.itemid
WHERE ta.tagid = 5
GROUP BY tb.tagid
ORDER BY nr DESC<ul style="text-align: left"><li>line 686 of lib/dmllib.php: call to debugging()</li><li>line 944 of lib/dmllib.php: call to get_recordset_sql()</li><li>line 854 of tag/lib.php: call to get_records_sql()</li><li>line 1137 of tag/lib.php: call to cache_correlated_tags()</li><li>line 339 of admin/cron.php: call to tag_cron()</li></ul></div>
Again the quick fix of course is to add 'as' to line 845 in tag/lib.php:
SELECT tb.tagid , COUNT
as nr
PS I would be happy to make these changes if required, as I will be submitting some other changes to the tag code for
MDL-11992(adding course tagging) next week (I hope).