Details
Description
When I add block "Tags" to the homepage, I am getting the following error:
ERROR: column "tg.tagtype" must appear in the GROUP BY clause or be used in an aggregate function
SELECT tg.rawname, tg.id, tg.name, tg.tagtype, COUNT(ti.id) AS count, tg.flag FROM mdl_tag_instance ti INNER JOIN mdl_tag tg ON tg.id = ti.tagid GROUP BY tg.id, tg.rawname, tg.name, tg.flag ORDER BY count DESC, tg.name ASC
- line 686 of lib/dmllib.php: call to debugging()
- line 949 of lib/dmllib.php: call to get_recordset_sql()
- line 27 of tag/locallib.php: call to get_records_sql()
- line 64 of blocks/tags/block_tags.php: call to tag_print_cloud()
- line 240 of blocks/moodleblock.class.php: call to block_tags->get_content()
- line 264 of blocks/moodleblock.class.php: call to block_base->is_empty()
- line 338 of lib/blocklib.php: call to block_base->_print_block()
- line 265 of index.php: call to blocks_print_group()
Warning: Invalid argument supplied for foreach() in XXXXXXXXXXXXXX/tag/locallib.php on line 35
Attachments
Issue Links
| This issue duplicates: | ||||
| MDL-13769 | Tags Postgress Group by error |
|
|
|
The fix of GROUP BY is quite easy - the problem is self explaining. The problem with produced warning can be handled by an extra empty() check of get_records_sql() result.
MDL-13791.patch.txt works for me at PostgreSQL 8.1. I haven't tested on MySQL but should be fine as well.MDL-13791.patch.txt works for me at PostgreSQL 8.1. I haven't tested on MySQL but should be fine as well.