I thought this would solve the issue. But the underlying problem is
caused by the query SHOW TABLE STATUS FROM DB_NAME

Tried it in phpMyAdmin-3.4.0-rc2-english

This is the trace

/usr/share/phpMyAdmin-3.4.0-rc2-english/libraries/dbi/mysqli.dbi.lib.php (199)
/usr/share/phpMyAdmin-3.4.0-rc2-english/libraries/database_interface.lib.php 
(1186)
/usr/share/phpMyAdmin-3.4.0-rc2-english/libraries/database_interface.lib.php 
(345)
/usr/share/phpMyAdmin-3.4.0-rc2-english/libraries/common.lib.php (720)
/usr/share/phpMyAdmin-3.4.0-rc2-english/navigation.php (249)

On line 341 this is done

if ($table || (true === $tbl_is_group)) {
    $sql = 'SHOW TABLE STATUS FROM '
               . PMA_backquote($each_database)
               .' LIKE \'' . PMA_escape_mysql_wildcards(addslashes($table)) . 
'%\'';
} else {
    $sql = 'SHOW TABLE STATUS FROM '
               . PMA_backquote($each_database);
}

So the SHOW TABLE STATUS FROM db is called because of the else clause,
so the query goes on to get all tables. The thing is mysql does not
support limit and offset for SHOW TABLE STATUS.

I started working on the issue but I do not have enough time right now.

I tried to emulate the show table status by changing the else clause to:
$sql = 'select * from information_schema.tables where table_schema = \''
           . $each_database . '\' LIMIT ' . $limit_count . ' OFFSET ' . 
$limit_offset;

The thing is that the results need to be formatted to be compatible with
show table status results. Also it seems to be limited by the user
priviliges.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/754647

Title:
  Having 10000+ tables on a single database crashes phpmyadmin

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to