Defect #23839

Updated by Toshi MARUYAMA almost 5 years ago

Prerequisite: this happens only with MS SQL
# 1. Filter a list of issues by grouping on the fixed version field, and showing the priority field
# 2. Click on the Fixed version field to sort on it in descending order, click on the priority field to also sort on that field
This should result in a query like "this one":[]=tracker&c[]=status&c[]=author&c[]=subject&c[]=fixed_version&c[]=due_date&c[]=priority&f[]=status_id&f[]=assigned_to_id&f[]=fixed_version_id&f[]=&group_by=fixed_version&op[assigned_to_id]=%3D&op[fixed_version_id]=%3D&op[status_id]=o&set_filter=1&sort=priority%3Adesc%2Cfixed_version%3Adesc%2Cid%3Adesc&utf8=%E2%9C%93&v[assigned_to_id][]=1&v[fixed_version_id][]=121&v[fixed_version_id][]=122&v[fixed_version_id][]=119 for example
# 3. Click on one bug of the list
Result: Error 500, Invalid query. In the log, it is indicated that there are duplicated column names in an ORDER BY clause
Note: the issue also happens on MySQL, but MySQL does not consider duplicated sort columns as an error.

The issue happens in the feature to be able to navigate with arrows to the next or previous bug in the list we came from.
As the Fixed_version field implements a call back with its own sortable columns, this comes into the group_by_sort_order statement, which then brings columns duplicated with the ones coming from the options.

Note that with a MySQL-backed Redmine site, the effect is that the order of the list can be incorrect in the previous/Next arrows on the displayed bug.

See attached patch for a suggested fix.