From 7909da2ea01b15aad44689c9cc59051d747d0381 Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Mon, 1 Aug 2011 16:05:36 +0200 Subject: [PATCH 1/2] quick fix for issue #3383711 Signed-off-by: Sven Strickroth --- libraries/display_tbl.lib.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libraries/display_tbl.lib.php b/libraries/display_tbl.lib.php index c871612143..a27243fc40 100644 --- a/libraries/display_tbl.lib.php +++ b/libraries/display_tbl.lib.php @@ -766,8 +766,10 @@ function PMA_displayTableHeaders(&$is_display, &$fields_meta, $fields_cnt = 0, $ // the orgname member does not exist for all MySQL versions // but if found, it's the one on which to sort $name_to_use_in_sort = $fields_meta[$i]->name; + $is_orgname = false; if (isset($fields_meta[$i]->orgname) && strlen($fields_meta[$i]->orgname)) { $name_to_use_in_sort = $fields_meta[$i]->orgname; + $is_orgname = true; } // $name_to_use_in_sort might contain a space due to // formatting of function expressions like "COUNT(name )" @@ -794,12 +796,14 @@ function PMA_displayTableHeaders(&$is_display, &$fields_meta, $fields_cnt = 0, $ // 2.1.3 Check the field name for a bracket. // If it contains one, it's probably a function column // like 'COUNT(`field`)' - if (strpos($name_to_use_in_sort, '(') !== false) { + // This check is not sufficient, see bug #3383711, it still might be a column name of a view, check is_orgname + if (strpos($name_to_use_in_sort, '(') !== false && !$is_orgname) { $sort_order = ' ORDER BY ' . $name_to_use_in_sort . ' '; } else { $sort_order = ' ORDER BY ' . $sort_tbl . PMA_backquote($name_to_use_in_sort) . ' '; } unset($name_to_use_in_sort); + unset($is_orgname); // 2.1.4 Do define the sorting URL if (! $is_in_sort) { From 68e21b05e46f144735faa849b80734d83812c7e6 Mon Sep 17 00:00:00 2001 From: Madhura Jayaratne Date: Thu, 4 Aug 2011 00:04:16 +0530 Subject: [PATCH 2/2] Changelog entry for bug #3383711. Some formatting --- ChangeLog | 1 + libraries/display_tbl.lib.php | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index dbcc2adce4..77d630c14d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,7 @@ phpMyAdmin - ChangeLog - bug #3375325 [interface] Page list in navigation frame looks odd - bug #3313235 [interface] Error div misplaced - bug #3374802 [interface] Comment on a column breaks inline editing +- bug #3383711 [display] Order by a column in a view doesn't work in some cases 3.4.4.0 (not yet released) - bug #3323060 [parser] SQL parser breaks AJAX requests if query has unclosed quotes diff --git a/libraries/display_tbl.lib.php b/libraries/display_tbl.lib.php index a27243fc40..3fa26c1f3f 100644 --- a/libraries/display_tbl.lib.php +++ b/libraries/display_tbl.lib.php @@ -796,8 +796,9 @@ function PMA_displayTableHeaders(&$is_display, &$fields_meta, $fields_cnt = 0, $ // 2.1.3 Check the field name for a bracket. // If it contains one, it's probably a function column // like 'COUNT(`field`)' - // This check is not sufficient, see bug #3383711, it still might be a column name of a view, check is_orgname - if (strpos($name_to_use_in_sort, '(') !== false && !$is_orgname) { + // It still might be a column name of a view. See bug #3383711 + // Check is_orgname. + if (strpos($name_to_use_in_sort, '(') !== false && ! $is_orgname) { $sort_order = ' ORDER BY ' . $name_to_use_in_sort . ' '; } else { $sort_order = ' ORDER BY ' . $sort_tbl . PMA_backquote($name_to_use_in_sort) . ' ';