summaryrefslogtreecommitdiffstats
path: root/Bugzilla/DB/Mysql.pm
diff options
context:
space:
mode:
authorMax Kanat-Alexander <mkanat@bugzilla.org>2010-07-07 02:13:46 +0200
committerMax Kanat-Alexander <mkanat@bugzilla.org>2010-07-07 02:13:46 +0200
commit333b8fcbaad05e5e3ab01a897529560dea37dd53 (patch)
tree7082f8e981412dcf053c8d9554f56785ea7327d8 /Bugzilla/DB/Mysql.pm
parent569c6b69a7cb3c458279efbdfed1b104cd3d9ae5 (diff)
downloadbugzilla-333b8fcbaad05e5e3ab01a897529560dea37dd53.tar.gz
bugzilla-333b8fcbaad05e5e3ab01a897529560dea37dd53.tar.xz
Bug 552919: Sort group_concat results so that they sort correctly for buglists
r=mkanat, a=mkanat (module owner)
Diffstat (limited to 'Bugzilla/DB/Mysql.pm')
-rw-r--r--Bugzilla/DB/Mysql.pm13
1 files changed, 8 insertions, 5 deletions
diff --git a/Bugzilla/DB/Mysql.pm b/Bugzilla/DB/Mysql.pm
index 4b90a2a34..7f3eb2ef8 100644
--- a/Bugzilla/DB/Mysql.pm
+++ b/Bugzilla/DB/Mysql.pm
@@ -126,12 +126,15 @@ sub bz_last_key {
}
sub sql_group_concat {
- my ($self, $column, $separator) = @_;
- my $sep_sql;
- if ($separator) {
- $sep_sql = " SEPARATOR $separator";
+ my ($self, $column, $separator, $sort) = @_;
+ $separator = $self->quote(', ') if !defined $separator;
+ $sort = 1 if !defined $sort;
+ if ($sort) {
+ my $sort_order = $column;
+ $sort_order =~ s/^DISTINCT\s+//i;
+ $column = "$column ORDER BY $sort_order";
}
- return "GROUP_CONCAT($column$sep_sql)";
+ return "GROUP_CONCAT($column SEPARATOR $separator)";
}
sub sql_regexp {