mirror of
https://github.com/vrana/adminer.git
synced 2025-08-05 22:27:24 +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"]);
|
||||
}
|
||||
|
||||
|
@@ -127,7 +127,7 @@ ORDER BY ORDINAL_POSITION", null, "") as $row
|
||||
$return[$row["TABLE_NAME"]]["keys"][$row["CONSTRAINT_NAME"]][$row["COLUMN_NAME"]] = $row["REFERENCED_COLUMN_NAME"];
|
||||
}
|
||||
foreach ($return as $key => $val) {
|
||||
$name = $this->tableName(table_status($key, true));
|
||||
$name = $this->tableName(table_status1($key, true));
|
||||
if ($name != "") {
|
||||
$search = preg_quote($tableName);
|
||||
$separator = "(:|\\s*-)?\\s+";
|
||||
@@ -660,7 +660,7 @@ ORDER BY ORDINAL_POSITION", null, "") as $row
|
||||
if (list($target, $id, $name) = $this->_foreignColumn(column_foreign_keys($table), $column)) {
|
||||
$return = &$this->values[$target];
|
||||
if ($return === null) {
|
||||
$table_status = table_status($target);
|
||||
$table_status = table_status1($target);
|
||||
$return = ($table_status["Rows"] > 1000 ? "" : array("" => "") + get_key_vals("SELECT $id, $name FROM " . table($target) . " ORDER BY 2"));
|
||||
}
|
||||
if (!$return && $value !== null) {
|
||||
|
@@ -23,7 +23,7 @@ ORDER BY ORDINAL_POSITION", null, "") as $row
|
||||
$return[$row["TABLE_NAME"]]["keys"][$row["CONSTRAINT_NAME"]][$row["COLUMN_NAME"]] = $row["REFERENCED_COLUMN_NAME"];
|
||||
}
|
||||
foreach ($return as $key => $val) {
|
||||
$name = Adminer\adminer()->tableName(Adminer\table_status($key, true));
|
||||
$name = Adminer\adminer()->tableName(Adminer\table_status1($key, true));
|
||||
if ($name != "") {
|
||||
$search = preg_quote($tableName);
|
||||
$separator = '(:|\s*-)?\s+';
|
||||
|
@@ -309,9 +309,6 @@ if (isset($_GET["clickhouse"])) {
|
||||
'Name' => $table['name'],
|
||||
'Engine' => $table['engine'],
|
||||
);
|
||||
if ($name === $table['name']) {
|
||||
return $return[$table['name']];
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
@@ -384,16 +384,17 @@ if (isset($_GET["elastic"])) {
|
||||
|
||||
if ($name != "") {
|
||||
if (isset($stats["indices"][$name])) {
|
||||
return format_index_status($name, $stats["indices"][$name]);
|
||||
return array(format_index_status($name, $stats["indices"][$name]));
|
||||
} else {
|
||||
foreach ($aliases as $index_name => $index) {
|
||||
foreach ($index["aliases"] as $alias_name => $alias) {
|
||||
if ($alias_name == $name) {
|
||||
return format_alias_status($alias_name, $stats["indices"][$index_name]);
|
||||
return array(format_alias_status($alias_name, $stats["indices"][$index_name]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return array();
|
||||
}
|
||||
|
||||
ksort($stats["indices"]);
|
||||
|
@@ -184,16 +184,13 @@ if (isset($_GET["firebird"])) {
|
||||
function table_status($name = "", $fast = false) {
|
||||
$connection = connection();
|
||||
$return = array();
|
||||
$data = tables_list();
|
||||
$data = ($name != "" ? array($name => 1) : tables_list());
|
||||
foreach ($data as $index => $val) {
|
||||
$index = trim($index);
|
||||
$return[$index] = array(
|
||||
'Name' => $index,
|
||||
'Engine' => 'standard',
|
||||
);
|
||||
if ($name == $index) {
|
||||
return $return[$index];
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
@@ -44,7 +44,7 @@ if (isset($_GET["imap"])) {
|
||||
preg_match_all('~"uid" = (\d+)~', $query, $matches);
|
||||
return imap_delete($this->imap, implode(",", $matches[1]), FT_UID);
|
||||
} elseif (preg_match('~^SELECT COUNT\(\*\)\sFROM "(.+?)"~s', $query, $match)) {
|
||||
$status = table_status($match[1]);
|
||||
$status = table_status1($match[1]);
|
||||
return new Result(array(array($status["Rows"])));
|
||||
} elseif (preg_match('~^SELECT (.+)\sFROM "(.+?)"(?:\sWHERE "uid" = (\d+))?.*?(?:\sLIMIT (\d+)(?:\sOFFSET (\d+))?)?~s', $query, $match)) {
|
||||
list(, $columns, $table, $uid, $limit, $offset) = $match;
|
||||
@@ -233,11 +233,8 @@ if (isset($_GET["imap"])) {
|
||||
}
|
||||
|
||||
function table_status($name = "", $fast = false) {
|
||||
if ($name != "") {
|
||||
return connection()->table_status($name, $fast);
|
||||
}
|
||||
$return = array();
|
||||
foreach (tables_list() as $table => $type) {
|
||||
foreach (($name != "" ? array($name => 1) : tables_list()) as $table => $type) {
|
||||
$return[$table] = connection()->table_status($table, $fast);
|
||||
}
|
||||
return $return;
|
||||
|
@@ -391,11 +391,8 @@ if (isset($_GET["mongo"])) {
|
||||
|
||||
function table_status($name = "", $fast = false) {
|
||||
$return = array();
|
||||
foreach (tables_list() as $table => $type) {
|
||||
$return[$table] = array("Name" => $table);
|
||||
if ($name == $table) {
|
||||
return $return[$table];
|
||||
}
|
||||
foreach (($name != "" ? array($name => 1) : tables_list()) as $table => $type) {
|
||||
$return[$table] = array("Name" => $table, "Engine" => "");
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
@@ -316,9 +316,6 @@ if (isset($_GET["simpledb"])) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($name != "") {
|
||||
return $row;
|
||||
}
|
||||
$return[$table] = $row;
|
||||
}
|
||||
return $return;
|
||||
|
Reference in New Issue
Block a user