bug #1887204 [GUI] Order columns in result list messing up query
This commit is contained in:
@@ -21,6 +21,7 @@ $HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyA
|
|||||||
- bug #1799691 [export] "Propose table structure" and Export
|
- bug #1799691 [export] "Propose table structure" and Export
|
||||||
- bug #1884911 [GUI] Space usage
|
- bug #1884911 [GUI] Space usage
|
||||||
- bug #1863326 [GUI] Wrong error message / no edit (Suhosin)
|
- bug #1863326 [GUI] Wrong error message / no edit (Suhosin)
|
||||||
|
- bug #1887204 [GUI] Order columns in result list messing up query
|
||||||
|
|
||||||
2.11.4.0 (2008-01-12)
|
2.11.4.0 (2008-01-12)
|
||||||
- bug #1843428 [GUI] Space issue with DROP/DELETE/ALTER TABLE
|
- bug #1843428 [GUI] Space issue with DROP/DELETE/ALTER TABLE
|
||||||
|
@@ -1436,6 +1436,7 @@ if (! defined('PMA_MINIMUM_COMMON')) {
|
|||||||
$seen_reserved_word = FALSE;
|
$seen_reserved_word = FALSE;
|
||||||
$seen_group = FALSE;
|
$seen_group = FALSE;
|
||||||
$seen_order = FALSE;
|
$seen_order = FALSE;
|
||||||
|
$seen_order_by = FALSE;
|
||||||
$in_group_by = FALSE; // true when we are inside the GROUP BY clause
|
$in_group_by = FALSE; // true when we are inside the GROUP BY clause
|
||||||
$in_order_by = FALSE; // true when we are inside the ORDER BY clause
|
$in_order_by = FALSE; // true when we are inside the ORDER BY clause
|
||||||
$in_having = FALSE; // true when we are inside the HAVING clause
|
$in_having = FALSE; // true when we are inside the HAVING clause
|
||||||
@@ -1446,7 +1447,6 @@ if (! defined('PMA_MINIMUM_COMMON')) {
|
|||||||
$after_limit = FALSE; // true when we are after the LIMIT clause
|
$after_limit = FALSE; // true when we are after the LIMIT clause
|
||||||
$in_from = FALSE; // true when we are in the FROM clause
|
$in_from = FALSE; // true when we are in the FROM clause
|
||||||
$in_group_concat = FALSE;
|
$in_group_concat = FALSE;
|
||||||
$unsorted_query = '';
|
|
||||||
$first_reserved_word = '';
|
$first_reserved_word = '';
|
||||||
$current_identifier = '';
|
$current_identifier = '';
|
||||||
|
|
||||||
@@ -1589,6 +1589,10 @@ if (! defined('PMA_MINIMUM_COMMON')) {
|
|||||||
$group_by_clause = '';
|
$group_by_clause = '';
|
||||||
}
|
}
|
||||||
if ($seen_order) {
|
if ($seen_order) {
|
||||||
|
$seen_order_by = TRUE;
|
||||||
|
// here we assume that the ORDER BY keywords took
|
||||||
|
// exactly 8 characters
|
||||||
|
$unsorted_query = substr($arr['raw'], 0, $arr[$i]['pos'] - 8);
|
||||||
$in_order_by = TRUE;
|
$in_order_by = TRUE;
|
||||||
$order_by_clause = '';
|
$order_by_clause = '';
|
||||||
}
|
}
|
||||||
@@ -1676,19 +1680,20 @@ if (! defined('PMA_MINIMUM_COMMON')) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// to grab the rest of the query after the ORDER BY clause
|
||||||
if (isset($subresult['queryflags']['select_from'])
|
if (isset($subresult['queryflags']['select_from'])
|
||||||
&& $subresult['queryflags']['select_from'] == 1
|
&& $subresult['queryflags']['select_from'] == 1
|
||||||
&& ! $in_order_by
|
&& ! $in_order_by
|
||||||
&& $upper_data != 'ORDER') {
|
&& $seen_order_by
|
||||||
|
&& $upper_data != 'BY') {
|
||||||
$unsorted_query .= $arr[$i]['data'];
|
$unsorted_query .= $arr[$i]['data'];
|
||||||
|
|
||||||
if ($arr[$i]['type'] != 'punct_bracket_open_round'
|
if ($arr[$i]['type'] != 'punct_bracket_open_round'
|
||||||
&& $arr[$i]['type'] != 'punct_bracket_close_round'
|
&& $arr[$i]['type'] != 'punct_bracket_close_round'
|
||||||
&& $arr[$i]['type'] != 'punct') {
|
&& $arr[$i]['type'] != 'punct') {
|
||||||
$unsorted_query .= $sep;
|
$unsorted_query .= $sep;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($in_limit) {
|
if ($in_limit) {
|
||||||
if ($upper_data == 'OFFSET') {
|
if ($upper_data == 'OFFSET') {
|
||||||
$limit_clause .= $sep;
|
$limit_clause .= $sep;
|
||||||
|
Reference in New Issue
Block a user