From 585967b7e42fb7f4d80f6817c1dbc240cc3417a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C4=8Ciha=C5=99?= Date: Wed, 1 Mar 2017 15:57:09 +0100 Subject: [PATCH 1/2] Fix columns selection in case of query fails MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michal Čihař --- libraries/relation.lib.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libraries/relation.lib.php b/libraries/relation.lib.php index ac6334d2d9..310aed76de 100644 --- a/libraries/relation.lib.php +++ b/libraries/relation.lib.php @@ -862,9 +862,13 @@ function PMA_getDisplayField($db, $table) /** * Pick first char field */ - foreach ($GLOBALS['dbi']->getColumnsFull($db, $table) as $column) { - if ($GLOBALS['PMA_Types']->getTypeClass($column['DATA_TYPE']) == 'CHAR') { - return $column['COLUMN_NAME']; + $columns = $GLOBALS['dbi']->getColumnsFull($db, $table); + if ($columns) { + foreach ($columns as $column) { + var_dump($column); + if ($GLOBALS['PMA_Types']->getTypeClass($column['DATA_TYPE']) == 'CHAR') { + return $column['COLUMN_NAME']; + } } } From b7a87ce156585fbce20709565e34f7e585c6afbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C4=8Ciha=C5=99?= Date: Wed, 1 Mar 2017 15:57:18 +0100 Subject: [PATCH 2/2] Adjust tests to new column selection code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michal Čihař --- libraries/dbi/DBIDummy.php | 4 ++++ test/libraries/PMA_relation_test.php | 1 + 2 files changed, 5 insertions(+) diff --git a/libraries/dbi/DBIDummy.php b/libraries/dbi/DBIDummy.php index 0fd2f00503..ee4409f206 100644 --- a/libraries/dbi/DBIDummy.php +++ b/libraries/dbi/DBIDummy.php @@ -866,6 +866,10 @@ $GLOBALS['dummy_queries'] = array( 'query' => 'SELECT @@ndb_version_string', 'result' => array(array('ndb-7.4.10')), ), + array( + 'query' => "SELECT *, `COLUMN_NAME` AS `Field`, `COLUMN_TYPE` AS `Type`, `COLLATION_NAME` AS `Collation`, `IS_NULLABLE` AS `Null`, `COLUMN_KEY` AS `Key`, `COLUMN_DEFAULT` AS `Default`, `EXTRA` AS `Extra`, `PRIVILEGES` AS `Privileges`, `COLUMN_COMMENT` AS `Comment` FROM `information_schema`.`COLUMNS` WHERE `TABLE_SCHEMA` = 'information_schema' AND `TABLE_NAME` = 'PMA'", + 'result' => array(), + ), ); /** * Current database. diff --git a/test/libraries/PMA_relation_test.php b/test/libraries/PMA_relation_test.php index 700a4b145b..fe60a4f5e3 100644 --- a/test/libraries/PMA_relation_test.php +++ b/test/libraries/PMA_relation_test.php @@ -38,6 +38,7 @@ class PMA_Relation_Test extends PHPUnit_Framework_TestCase $GLOBALS['db'] = 'db'; $GLOBALS['cfg']['Server']['user'] = 'root'; $GLOBALS['cfg']['Server']['pmadb'] = 'phpmyadmin'; + $GLOBALS['cfg']['Server']['DisableIS'] = false; $GLOBALS['cfg']['ZeroConf'] = true; $_SESSION['relation'][$GLOBALS['server']] = "PMA_relation"; $_SESSION['relation'] = array();