diff options
author | Max Kanat-Alexander <mkanat@bugzilla.org> | 2010-07-06 17:13:46 -0700 |
---|---|---|
committer | Max Kanat-Alexander <mkanat@bugzilla.org> | 2010-07-06 17:13:46 -0700 |
commit | 333b8fcbaad05e5e3ab01a897529560dea37dd53 (patch) | |
tree | 7082f8e981412dcf053c8d9554f56785ea7327d8 /Bugzilla/DB/Mysql.pm | |
parent | 569c6b69a7cb3c458279efbdfed1b104cd3d9ae5 (diff) | |
download | bugs-333b8fcbaad05e5e3ab01a897529560dea37dd53.tar bugs-333b8fcbaad05e5e3ab01a897529560dea37dd53.tar.gz bugs-333b8fcbaad05e5e3ab01a897529560dea37dd53.tar.bz2 bugs-333b8fcbaad05e5e3ab01a897529560dea37dd53.tar.xz bugs-333b8fcbaad05e5e3ab01a897529560dea37dd53.zip |
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.pm | 13 |
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 { |