diff --git a/Documentation.html b/Documentation.html
index 3ffc733b1b..d5defdc167 100644
--- a/Documentation.html
+++ b/Documentation.html
@@ -1658,7 +1658,10 @@ CREATE DATABASE,ALTER DATABASE,DROP DATABASE
$cfg['ShowAll'] boolean
Defines whether a user should be displayed a
- "show all (rows)" button in browse mode or not.
+ "Show all" button in browse mode or not in all cases.
+ By default it is shown only on small tables (less than 5 ×
+ $cfg['MaxRows'] rows) to avoid performance
+ issues while getting too many rows.
$cfg['MaxRows'] integer
Number of rows displayed when browsing a result set and no LIMIT
diff --git a/libraries/display_tbl.lib.php b/libraries/display_tbl.lib.php
index 75698ade99..63121ac73a 100644
--- a/libraries/display_tbl.lib.php
+++ b/libraries/display_tbl.lib.php
@@ -308,6 +308,7 @@ function PMA_displayTableNavigation($pos_next, $pos_prev, $sql_query, $id_for_di
} // end move back
+ $nbTotalPage = 1;
//page redirection
// (unless we are showing all records)
if ('all' != $_SESSION['tmp_user_values']['max_rows']) { //if1
@@ -345,7 +346,7 @@ function PMA_displayTableNavigation($pos_next, $pos_prev, $sql_query, $id_for_di
} //_if1
// Display the "Show all" button if allowed
- if ($GLOBALS['cfg']['ShowAll'] && ($num_rows < $unlim_num_rows)) {
+ if (($num_rows < $unlim_num_rows) && ($GLOBALS['cfg']['ShowAll'] || ($GLOBALS['cfg']['MaxRows'] * 5 >= $unlim_num_rows))) {
echo "\n";
?>
diff --git a/sql.php b/sql.php
index d736bdf58c..42d72caae2 100644
--- a/sql.php
+++ b/sql.php
@@ -448,7 +448,7 @@ if ($GLOBALS['cfg']['RememberSorting']
}
// Do append a "LIMIT" clause?
-if ((! $cfg['ShowAll'] || $_SESSION['tmp_user_values']['max_rows'] != 'all')
+if (($_SESSION['tmp_user_values']['max_rows'] != 'all')
&& ! ($is_count || $is_export || $is_func || $is_analyse)
&& isset($analyzed_sql[0]['queryflags']['select_from'])
&& ! isset($analyzed_sql[0]['queryflags']['offset'])
|