$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.');
}
}
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;
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]";
}
/** 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();
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;
}
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;
) {
$return[$row["Name"]] = $row;
}
- return ($name != "" ? $return[$name] : $return);
+ return $return;
}
function is_view($table_status) {
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;
}
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;
}
function foreign_keys_sql($table) {
$return = "";
- $status = table_status($table);
+ $status = table_status1($table);
$fkeys = foreign_keys($table);
ksort($fkeys);
$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]", ";");
}
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']);
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) {
}
/** 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;
}
/** Check whether table supports indexes
- * @param array result of table_status()
+ * @param array result of table_status1()
* @return bool
*/
function supportsIndex($table_status) {
/** 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
$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";
}
$row = $_POST;
$orig_type = "VIEW";
if (JUSH == "pgsql" && $TABLE != "") {
- $status = table_status($TABLE);
+ $status = table_status1($TABLE);
$orig_type = strtoupper($status["Engine"]);
}
$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+";
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) {
$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+';
'Name' => $table['name'],
'Engine' => $table['engine'],
);
- if ($name === $table['name']) {
- return $return[$table['name']];
- }
}
return $return;
}
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"]);
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;
}
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;
}
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;
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;
}
}
}
}
- if ($name != "") {
- return $row;
- }
$return[$table] = $row;
}
return $return;