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'])