mirror of
https://github.com/vrana/adminer.git
synced 2025-08-21 05:41:27 +02:00
Always return array from table_status()
This commit is contained in:
@@ -17,8 +17,8 @@ $orig_fields = array();
|
||||
$table_status = array();
|
||||
if ($TABLE != "") {
|
||||
$orig_fields = fields($TABLE);
|
||||
$table_status = table_status($TABLE);
|
||||
if (!$table_status) {
|
||||
$table_status = table_status1($TABLE);
|
||||
if (count($table_status) < 2) { // there's only the Name field
|
||||
$error = lang('No tables.');
|
||||
}
|
||||
}
|
||||
|
@@ -357,9 +357,6 @@ if (isset($_GET["mssql"])) {
|
||||
FROM sys.all_objects AS ao
|
||||
WHERE schema_id = SCHEMA_ID(" . q(get_schema()) . ") AND type IN ('S', 'U', 'V') " . ($name != "" ? "AND name = " . q($name) : "ORDER BY name")) as $row
|
||||
) {
|
||||
if ($name != "") {
|
||||
return $row;
|
||||
}
|
||||
$return[$row["Name"]] = $row;
|
||||
}
|
||||
return $return;
|
||||
@@ -662,7 +659,7 @@ WHERE sys1.xtype = 'TR' AND sys2.name = " . q($table)) as $row
|
||||
|
||||
function create_sql($table, $auto_increment, $style) {
|
||||
global $driver;
|
||||
if (is_view(table_status($table))) {
|
||||
if (is_view(table_status1($table))) {
|
||||
$view = view($table);
|
||||
return "CREATE VIEW " . table($table) . " AS $view[select]";
|
||||
}
|
||||
|
@@ -549,7 +549,7 @@ if (!defined('Adminer\DRIVER')) {
|
||||
/** Get table status
|
||||
* @param string
|
||||
* @param bool return only "Name", "Engine" and "Comment" fields
|
||||
* @return array{Name:string, Engine:string, Comment:string, Oid:int, Rows:int, Collation:string, Auto_increment:int, Data_length:int, Index_length:int, Data_free:int}[] or only inner array with $name
|
||||
* @return array{Name:string, Engine:string, Comment:string, Oid:int, Rows:int, Collation:string, Auto_increment:int, Data_length:int, Index_length:int, Data_free:int}[]
|
||||
*/
|
||||
function table_status($name = "", $fast = false) {
|
||||
$return = array();
|
||||
@@ -570,7 +570,6 @@ if (!defined('Adminer\DRIVER')) {
|
||||
if ($name != "") {
|
||||
// MariaDB: Table name is returned as lowercase on macOS, so we fix it here.
|
||||
$row["Name"] = $name;
|
||||
return $row;
|
||||
}
|
||||
$return[$row["Name"]] = $row;
|
||||
}
|
||||
|
@@ -298,9 +298,6 @@ ORDER BY 1"
|
||||
UNION SELECT view_name, 'view', 0, 0 FROM $view" . ($name != "" ? " WHERE view_name = $search" : "") . "
|
||||
ORDER BY 1") as $row
|
||||
) {
|
||||
if ($name != "") {
|
||||
return $row;
|
||||
}
|
||||
$return[$row["Name"]] = $row;
|
||||
}
|
||||
return $return;
|
||||
|
@@ -414,7 +414,7 @@ WHERE relkind IN ('r', 'm', 'v', 'f', 'p')
|
||||
) {
|
||||
$return[$row["Name"]] = $row;
|
||||
}
|
||||
return ($name != "" ? $return[$name] : $return);
|
||||
return $return;
|
||||
}
|
||||
|
||||
function is_view($table_status) {
|
||||
@@ -683,7 +683,7 @@ ORDER BY conkey, conname") as $row
|
||||
|
||||
function drop_tables($tables) {
|
||||
foreach ($tables as $table) {
|
||||
$status = table_status($table);
|
||||
$status = table_status1($table);
|
||||
if (!queries("DROP " . strtoupper($status["Engine"]) . " " . table($table))) {
|
||||
return false;
|
||||
}
|
||||
@@ -693,7 +693,7 @@ ORDER BY conkey, conname") as $row
|
||||
|
||||
function move_tables($tables, $views, $target) {
|
||||
foreach (array_merge($tables, $views) as $table) {
|
||||
$status = table_status($table);
|
||||
$status = table_status1($table);
|
||||
if (!queries("ALTER " . strtoupper($status["Engine"]) . " " . table($table) . " SET SCHEMA " . idf_escape($target))) {
|
||||
return false;
|
||||
}
|
||||
@@ -834,7 +834,7 @@ AND typelem = 0"
|
||||
function foreign_keys_sql($table) {
|
||||
$return = "";
|
||||
|
||||
$status = table_status($table);
|
||||
$status = table_status1($table);
|
||||
$fkeys = foreign_keys($table);
|
||||
ksort($fkeys);
|
||||
|
||||
@@ -850,7 +850,7 @@ AND typelem = 0"
|
||||
$return_parts = array();
|
||||
$sequences = array();
|
||||
|
||||
$status = table_status($table);
|
||||
$status = table_status1($table);
|
||||
if (is_view($status)) {
|
||||
$view = view($table);
|
||||
return rtrim("CREATE VIEW " . idf_escape($table) . " AS $view[select]", ";");
|
||||
@@ -927,7 +927,7 @@ AND typelem = 0"
|
||||
}
|
||||
|
||||
function trigger_sql($table) {
|
||||
$status = table_status($table);
|
||||
$status = table_status1($table);
|
||||
$return = "";
|
||||
foreach (triggers($table) as $trg_id => $trg) {
|
||||
$trigger = trigger($trg_id, $status['Name']);
|
||||
|
@@ -233,7 +233,7 @@ if (isset($_GET["sqlite"])) {
|
||||
foreach (get_rows("SELECT * FROM sqlite_sequence", null, "") as $row) {
|
||||
$return[$row["name"]]["Auto_increment"] = $row["seq"];
|
||||
}
|
||||
return ($name != "" ? $return[$name] : $return);
|
||||
return $return;
|
||||
}
|
||||
|
||||
function is_view($table_status) {
|
||||
|
@@ -1051,7 +1051,7 @@ class Adminer {
|
||||
}
|
||||
|
||||
/** Set up syntax highlight for code and <textarea>
|
||||
* @param array[] result of table_status()
|
||||
* @param array[] result of table_status('', true)
|
||||
*/
|
||||
function syntaxHighlighting($tables) {
|
||||
global $connection;
|
||||
|
@@ -260,7 +260,7 @@ abstract class SqlDriver {
|
||||
}
|
||||
|
||||
/** Check whether table supports indexes
|
||||
* @param array result of table_status()
|
||||
* @param array result of table_status1()
|
||||
* @return bool
|
||||
*/
|
||||
function supportsIndex($table_status) {
|
||||
|
@@ -701,11 +701,11 @@ function friendly_url($val) {
|
||||
/** Get status of a single table and fall back to name on error
|
||||
* @param string
|
||||
* @param bool
|
||||
* @return array[] same as table_status()
|
||||
* @return array one element from table_status()
|
||||
*/
|
||||
function table_status1($table, $fast = false) {
|
||||
$return = table_status($table, $fast);
|
||||
return ($return ?: array("Name" => $table));
|
||||
return ($return ? reset($return) : array("Name" => $table));
|
||||
}
|
||||
|
||||
/** Find out foreign keys for each column
|
||||
|
@@ -3,7 +3,7 @@ namespace Adminer;
|
||||
|
||||
$TABLE = $_GET["indexes"];
|
||||
$index_types = array("PRIMARY", "UNIQUE", "INDEX");
|
||||
$table_status = table_status($TABLE, true);
|
||||
$table_status = table_status1($TABLE, true);
|
||||
if (preg_match('~MyISAM|M?aria' . (min_version(5.6, '10.0.5') ? '|InnoDB' : '') . '~i', $table_status["Engine"])) {
|
||||
$index_types[] = "FULLTEXT";
|
||||
}
|
||||
|
@@ -5,7 +5,7 @@ $TABLE = $_GET["view"];
|
||||
$row = $_POST;
|
||||
$orig_type = "VIEW";
|
||||
if (JUSH == "pgsql" && $TABLE != "") {
|
||||
$status = table_status($TABLE);
|
||||
$status = table_status1($TABLE);
|
||||
$orig_type = strtoupper($status["Engine"]);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user