From e8fa9e533565eb2503586ce7040236a928a50de2 Mon Sep 17 00:00:00 2001 From: Sampath Liyanage Date: Mon, 27 Jan 2014 21:29:27 +0530 Subject: [PATCH 1/2] bug 4245 fix with minimum changes Signed-off-by: Sampath Liyanage --- libraries/Util.class.php | 12 +++++++++++- libraries/sql.lib.php | 4 +++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/libraries/Util.class.php b/libraries/Util.class.php index 8ff48770b2..fa59874a0d 100644 --- a/libraries/Util.class.php +++ b/libraries/Util.class.php @@ -1012,7 +1012,17 @@ class PMA_Util $sql_query = ''; } } - + + if (isset($GLOBALS['db']) && isset($GLOBALS['table'])){ + // Parse and analyze the query + $analyzed_sql_results = PMA_SQP_getParserAnalyzeMap( + $sql_query, $GLOBALS['db']); + + // Synchronize message(query) with table + PMA_handleSortOrder($GLOBALS['db'], $GLOBALS['table'], + $analyzed_sql_results, $sql_query); + } + if (isset($GLOBALS['using_bookmark_message'])) { $retval .= $GLOBALS['using_bookmark_message']->getDisplay(); unset($GLOBALS['using_bookmark_message']); diff --git a/libraries/sql.lib.php b/libraries/sql.lib.php index f3ee83de94..cfdd42ba75 100644 --- a/libraries/sql.lib.php +++ b/libraries/sql.lib.php @@ -227,7 +227,8 @@ function PMA_getTableHtmlForMultipleQueries( function PMA_handleSortOrder($db, $table, &$analyzed_sql_results, &$full_sql_query) { $pmatable = new PMA_Table($table, $db); - if (empty($analyzed_sql_results['analyzed_sql'][0]['order_by_clause'])) { + if (empty($analyzed_sql_results['analyzed_sql'][0]['order_by_clause']) + && isset($GLOBALS['default_query']) && $GLOBALS['default_query']) { $sorted_col = $pmatable->getUiProp(PMA_Table::PROP_SORTED_COLUMN); if ($sorted_col) { //remove the tablename from retrieved preference @@ -1170,6 +1171,7 @@ function PMA_appendLimitClause($full_sql_query, $analyzed_sql, $display_query) */ function PMA_getDefaultSqlQueryForBrowse($db, $table) { + $GLOBALS['default_query'] = true; include_once 'libraries/bookmark.lib.php'; $book_sql_query = PMA_Bookmark_get( $db, From ea0ad9d41c1726a573d6c0beeba7eec5cfa147c7 Mon Sep 17 00:00:00 2001 From: Sampath Liyanage Date: Mon, 27 Jan 2014 21:53:36 +0530 Subject: [PATCH 2/2] unit tests updated. Some global variables were set in setup functions of some test files. one testing function with mockobjects was changed from once() to exactly(2) because the bug fix has made that function calls twice Signed-off-by: Sampath Liyanage --- test/classes/PMA_Header_test.php | 1 + test/libraries/PMA_insert_edit_test.php | 3 +++ test/libraries/PMA_server_binlog_test.php | 9 ++++++--- test/libraries/PMA_server_privileges_test.php | 3 +++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/test/classes/PMA_Header_test.php b/test/classes/PMA_Header_test.php index 04f194b390..78ae08ce4a 100644 --- a/test/classes/PMA_Header_test.php +++ b/test/classes/PMA_Header_test.php @@ -55,6 +55,7 @@ class PMA_Header_Test extends PHPUnit_Framework_TestCase $GLOBALS['PMA_Config']->enableBc(); $GLOBALS['cfg']['Server']['verbose'] = 'verbose host'; $GLOBALS['cfg']['Server']['pmadb'] = ''; + $GLOBALS['default_query'] = true; } /** diff --git a/test/libraries/PMA_insert_edit_test.php b/test/libraries/PMA_insert_edit_test.php index 2a27bfb9ae..77df46a43f 100644 --- a/test/libraries/PMA_insert_edit_test.php +++ b/test/libraries/PMA_insert_edit_test.php @@ -50,6 +50,9 @@ class PMA_InsertEditTest extends PHPUnit_Framework_TestCase $GLOBALS['text_dir'] = 'ltr'; $GLOBALS['db'] = 'db'; $GLOBALS['table'] = 'table'; + $GLOBALS['cfg']['Server']['pmadb'] = 'pmadb'; + $GLOBALS['cfg']['Server']['table_uiprefs'] = 'table_uiprefs'; + $GLOBALS['cfg']['Server']['user'] = 'user'; } /** diff --git a/test/libraries/PMA_server_binlog_test.php b/test/libraries/PMA_server_binlog_test.php index 66d6304138..36daed383a 100644 --- a/test/libraries/PMA_server_binlog_test.php +++ b/test/libraries/PMA_server_binlog_test.php @@ -51,10 +51,13 @@ class PMA_ServerBinlog_Test extends PHPUnit_Framework_TestCase $GLOBALS['cfg']['ShowSQL'] = true; $GLOBALS['cfg']['TableNavigationLinksMode'] = 'icons'; $GLOBALS['cfg']['LimitChars'] = 100; - + $GLOBALS['cfg']['Server']['pmadb'] = 'pmadb'; + $GLOBALS['cfg']['Server']['table_uiprefs'] = 'table_uiprefs'; + $GLOBALS['cfg']['Server']['user'] = 'user'; + $GLOBALS['table'] = "table"; $GLOBALS['pmaThemeImage'] = 'image'; - + //$_SESSION $_SESSION['PMA_Theme'] = PMA_Theme::load('./themes/pmahomme'); $_SESSION['PMA_Theme'] = new PMA_Theme(); @@ -138,7 +141,7 @@ class PMA_ServerBinlog_Test extends PHPUnit_Framework_TestCase $count = 3; //expects functions - $dbi->expects($this->once())->method('query') + $dbi->expects($this->exactly(2))->method('query') ->will($this->returnValue($result)); $dbi->expects($this->once())->method('numRows') diff --git a/test/libraries/PMA_server_privileges_test.php b/test/libraries/PMA_server_privileges_test.php index 6b69d28ba1..1562879d76 100644 --- a/test/libraries/PMA_server_privileges_test.php +++ b/test/libraries/PMA_server_privileges_test.php @@ -65,6 +65,8 @@ class PMA_ServerPrivileges_Test extends PHPUnit_Framework_TestCase $GLOBALS['cfg']['NavigationTreeDefaultTabTable'] = "db_structure.php"; $GLOBALS['cfg']['Confirm'] = "Confirm"; $GLOBALS['cfg']['ShowHint'] = true; + $GLOBALS['cfg']['Server']['table_uiprefs'] = 'table_uiprefs'; + $GLOBALS['cfg']['Server']['user'] = 'user'; $GLOBALS['cfgRelation'] = array(); $GLOBALS['cfgRelation']['menuswork'] = false; @@ -76,6 +78,7 @@ class PMA_ServerPrivileges_Test extends PHPUnit_Framework_TestCase $GLOBALS['username'] = "username"; $GLOBALS['collation_connection'] = "collation_connection"; $GLOBALS['text_dir'] = "text_dir"; + $GLOBALS['default_query'] = true; //$_POST $_POST['pred_password'] = 'none';