From bbc552d728f3a30ce0f315d4e21384dbcabd9189 Mon Sep 17 00:00:00 2001 From: Marc Delisle Date: Fri, 21 Dec 2007 18:18:44 +0000 Subject: [PATCH] bug #1783620 [parser] Subquery results without "as" are ignored --- ChangeLog | 3 ++- libraries/sqlparser.lib.php | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 544469508..eec61b36f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,7 +20,8 @@ $HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyA - bug #1764182 [cookies] Suhosin cookie encryption breaks phpMyAdmin - bug #1798786 [import] Wrong error when a string contains semicolon - bug #1813508 [login] Missing parameter: field after re-login -- bug #1710144 [parser] space after COUNT breaks Export but not Query +- bug #1710144 [parser] Space after COUNT breaks Export but not Query +- bug #1783620 [parser] Subquery results without "as" are ignored 2.11.3.0 (2007-12-08) - patch #1818389 to remove a notice (failed to flush buffer), thanks to diff --git a/libraries/sqlparser.lib.php b/libraries/sqlparser.lib.php index 30882ac0d..d03745d89 100644 --- a/libraries/sqlparser.lib.php +++ b/libraries/sqlparser.lib.php @@ -830,6 +830,7 @@ if (! defined('PMA_MINIMUM_COMMON')) { $number_of_brackets = 0; $in_subquery = false; + $seen_subquery = false; // for SELECT EXTRACT(YEAR_MONTH FROM CURDATE()) // we must not use CURDATE as a table_ref @@ -1101,6 +1102,7 @@ if (! defined('PMA_MINIMUM_COMMON')) { if ($upper_data == 'SELECT') { if ($number_of_brackets > 0) { $in_subquery = true; + $seen_subquery = true; // this is a subquery so do not analyze inside it continue; } @@ -1149,7 +1151,9 @@ if (! defined('PMA_MINIMUM_COMMON')) { break; } // end switch - if ($subresult['querytype'] == 'SELECT' && !$in_group_concat) { + if ($subresult['querytype'] == 'SELECT' + && ! $in_group_concat + && ! ($seen_subquery && $arr[$i - 1]['type'] == 'punct_bracket_close_round')) { if (!$seen_from) { if ($previous_was_identifier && isset($chain)) { // found alias for this select_expr, save it