diff --git a/adminer/create.inc.php b/adminer/create.inc.php index 051c7df3..9215d6f3 100644 --- a/adminer/create.inc.php +++ b/adminer/create.inc.php @@ -168,7 +168,7 @@ if (!$_POST) { } $collations = collations(); -$engines = engines(); +$engines = $driver->engines(); // case of engine may differ foreach ($engines as $engine) { if (!strcasecmp($engine, $row["Engine"])) { diff --git a/adminer/drivers/mssql.inc.php b/adminer/drivers/mssql.inc.php index 6b573f04..d21451ec 100644 --- a/adminer/drivers/mssql.inc.php +++ b/adminer/drivers/mssql.inc.php @@ -309,10 +309,6 @@ if (isset($_GET["mssql"])) { return get_val("SELECT collation_name FROM sys.databases WHERE name = " . q($db)); } - function engines() { - return array(); - } - function logged_user() { return get_val("SELECT SUSER_NAME()"); } diff --git a/adminer/drivers/mysql.inc.php b/adminer/drivers/mysql.inc.php index 924b6f98..23cff3bf 100644 --- a/adminer/drivers/mysql.inc.php +++ b/adminer/drivers/mysql.inc.php @@ -410,6 +410,16 @@ if (!defined('Adminer\DRIVER')) { } return $c_style; } + + function engines() { + $return = array(); + foreach (get_rows("SHOW ENGINES") as $row) { + if (preg_match("~YES|DEFAULT~", $row["Support"])) { + $return[] = $row["Engine"]; + } + } + return $return; + } } @@ -508,19 +518,6 @@ if (!defined('Adminer\DRIVER')) { return $return; } - /** Get supported engines - * @return array - */ - function engines() { - $return = array(); - foreach (get_rows("SHOW ENGINES") as $row) { - if (preg_match("~YES|DEFAULT~", $row["Support"])) { - $return[] = $row["Engine"]; - } - } - return $return; - } - /** Get logged user * @return string */ diff --git a/adminer/drivers/oracle.inc.php b/adminer/drivers/oracle.inc.php index e0bbcc0f..b22c2600 100644 --- a/adminer/drivers/oracle.inc.php +++ b/adminer/drivers/oracle.inc.php @@ -247,10 +247,6 @@ ORDER BY 1" return get_val("SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET'"); //! respect $db } - function engines() { - return array(); - } - function logged_user() { return get_val("SELECT USER FROM DUAL"); } diff --git a/adminer/drivers/pgsql.inc.php b/adminer/drivers/pgsql.inc.php index 1c8a1987..65ae2b1a 100644 --- a/adminer/drivers/pgsql.inc.php +++ b/adminer/drivers/pgsql.inc.php @@ -366,10 +366,6 @@ ORDER BY datname"); return get_val("SELECT datcollate FROM pg_database WHERE datname = " . q($db)); } - function engines() { - return array(); - } - function logged_user() { return get_val("SELECT user"); } diff --git a/adminer/drivers/sqlite.inc.php b/adminer/drivers/sqlite.inc.php index 4b5639a9..c0edd037 100644 --- a/adminer/drivers/sqlite.inc.php +++ b/adminer/drivers/sqlite.inc.php @@ -219,10 +219,6 @@ if (isset($_GET["sqlite"])) { return get_val("PRAGMA encoding"); // there is no database list so $db == DB } - function engines() { - return array(); - } - function logged_user() { return get_current_user(); // should return effective user } diff --git a/adminer/include/driver.inc.php b/adminer/include/driver.inc.php index 75b462ab..f4a5b17a 100644 --- a/adminer/include/driver.inc.php +++ b/adminer/include/driver.inc.php @@ -253,6 +253,13 @@ abstract class SqlDriver { return false; } + /** Get supported engines + * @return array + */ + function engines() { + return array(); + } + /** Check whether table supports indexes * @param array result of table_status() * @return bool diff --git a/plugins/drivers/elastic.php b/plugins/drivers/elastic.php index 92753eb0..348ab8d2 100644 --- a/plugins/drivers/elastic.php +++ b/plugins/drivers/elastic.php @@ -348,10 +348,6 @@ if (isset($_GET["elastic"])) { // } - function engines() { - return array(); - } - function count_tables($databases) { $return = connection()->rootQuery('_aliases'); return array("elastic" => ($return ? count($return) : 0)); diff --git a/plugins/drivers/firebird.php b/plugins/drivers/firebird.php index 1d319f39..96934776 100644 --- a/plugins/drivers/firebird.php +++ b/plugins/drivers/firebird.php @@ -159,10 +159,6 @@ if (isset($_GET["firebird"])) { function db_collation($db, $collations) { } - function engines() { - return array(); - } - function logged_user() { $adminer = adminer(); $credentials = $adminer->credentials(); diff --git a/plugins/drivers/imap.php b/plugins/drivers/imap.php index 8e8cd5ba..e467e691 100644 --- a/plugins/drivers/imap.php +++ b/plugins/drivers/imap.php @@ -252,10 +252,6 @@ if (isset($_GET["imap"])) { function fk_support($table_status) { } - function engines() { - return array(); - } - function alter_table($table, $name, $fields, $foreign, $comment, $engine, $collation, $auto_increment, $partitioning) { return connection()->create($name); } diff --git a/plugins/drivers/mongo.php b/plugins/drivers/mongo.php index 6af8fb07..ac29c226 100644 --- a/plugins/drivers/mongo.php +++ b/plugins/drivers/mongo.php @@ -500,10 +500,6 @@ if (isset($_GET["mongo"])) { function fk_support($table_status) { } - function engines() { - return array(); - } - function alter_table($table, $name, $fields, $foreign, $comment, $engine, $collation, $auto_increment, $partitioning) { if ($table == "") { connection()->_db->createCollection($name); diff --git a/plugins/drivers/simpledb.php b/plugins/drivers/simpledb.php index f2493fff..e7fec2b3 100644 --- a/plugins/drivers/simpledb.php +++ b/plugins/drivers/simpledb.php @@ -368,10 +368,6 @@ if (isset($_GET["simpledb"])) { function fk_support($table_status) { } - function engines() { - return array(); - } - function alter_table($table, $name, $fields, $foreign, $comment, $engine, $collation, $auto_increment, $partitioning) { return ($table == "" && sdb_request('CreateDomain', array('DomainName' => $name))); }