Order by first index in Editor by default

Flush before SHOW DATABASES by default

git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@923 7c3ca157-0c34-0410-bff1-cbf682f78f5c
This commit is contained in:
jakubvrana 2009-07-28 11:04:49 +00:00
parent e1abcda063
commit a3d2266a9c
4 changed files with 17 additions and 15 deletions

View file

@ -423,8 +423,6 @@ class Adminer {
function navigation($missing) {
global $SELF, $dbh;
if ($missing != "auth") {
ob_flush();
flush();
$databases = get_databases();
?>
<form action="" method="post">

View file

@ -152,11 +152,15 @@ function connect() {
return $dbh->error;
}
function get_databases() {
function get_databases($flush = true) {
// SHOW DATABASES can take a very long time so it is cached
$return = &$_SESSION["databases"][$_GET["server"]];
if (!isset($return)) {
$return = get_vals("SHOW DATABASES");
if ($flush) {
ob_flush();
flush();
}
}
return $return;
}

View file

@ -32,12 +32,7 @@ $group_by = ($group && count($group) < count($select) ? " GROUP BY " . implode("
if ($_POST && !$error) {
$where_check = "(" . implode(") OR (", array_map('where_check', (array) $_POST["check"])) . ")";
$primary = null; // empty array means that all primary fields are selected
foreach ($indexes as $index) {
if ($index["type"] == "PRIMARY") {
$primary = ($select ? array_flip($index["columns"]) : array());
}
}
$primary = ($indexes["PRIMARY"] ? ($select ? array_flip($indexes["PRIMARY"]["columns"]) : array()) : null); // empty array means that all primary fields are selected
foreach ($select as $key => $val) {
$val = $_GET["columns"][$key];
if (!$val["fun"]) {
@ -189,7 +184,7 @@ if (!$columns) {
if (strlen($name)) {
$order++;
$names[$key] = $name;
echo '<th><a href="' . htmlspecialchars(remove_from_uri('(order|desc)[^=]*') . '&order%5B0%5D=' . urlencode($key) . ($_GET["order"] == array($key) && !$_GET["desc"][0] ? '&desc%5B0%5D=1' : '')) . '">' . apply_sql_function($val["fun"], $name) . "</a>";
echo '<th><a href="' . htmlspecialchars(remove_from_uri('(order|desc)[^=]*') . '&order%5B0%5D=' . urlencode($key) . ($_GET["order"] == array($key) && !$_GET["desc"][0] ? '&desc%5B0%5D=1' : '')) . '">' . apply_sql_function($val["fun"], $name) . "</a>"; //! order by function can collide with column name like min(`id`)
}
next($select);
}

View file

@ -10,7 +10,7 @@ class Adminer {
}
function database() {
$dbs = get_databases();
$dbs = get_databases(false);
return (count($dbs) == 1 ? $dbs[0] : (count($dbs) == 2 && information_schema($dbs[0]) ? $dbs[1] : 'test'));
}
@ -211,10 +211,15 @@ ORDER BY ORDINAL_POSITION"); //! requires MySQL 5
}
function selectOrderProcess($columns, $select, $indexes) {
return ($_GET["order"]
? array(idf_escape($_GET["order"][0]) . (isset($_GET["desc"][0]) ? " DESC" : ""))
: $indexes[$_GET["index_order"]]["columns"]
);
if ($_GET["order"]) {
return array(idf_escape($_GET["order"][0]) . (isset($_GET["desc"][0]) ? " DESC" : ""));
}
if ($_GET["index_order"]) {
return $indexes[$_GET["index_order"]]["columns"];
}
unset($indexes["PRIMARY"]);
$index = reset($indexes);
return ($index ? $index["columns"] : array());
}
function selectLimitProcess() {