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:
parent
e1abcda063
commit
a3d2266a9c
|
@ -423,8 +423,6 @@ class Adminer {
|
||||||
function navigation($missing) {
|
function navigation($missing) {
|
||||||
global $SELF, $dbh;
|
global $SELF, $dbh;
|
||||||
if ($missing != "auth") {
|
if ($missing != "auth") {
|
||||||
ob_flush();
|
|
||||||
flush();
|
|
||||||
$databases = get_databases();
|
$databases = get_databases();
|
||||||
?>
|
?>
|
||||||
<form action="" method="post">
|
<form action="" method="post">
|
||||||
|
|
|
@ -152,11 +152,15 @@ function connect() {
|
||||||
return $dbh->error;
|
return $dbh->error;
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_databases() {
|
function get_databases($flush = true) {
|
||||||
// SHOW DATABASES can take a very long time so it is cached
|
// SHOW DATABASES can take a very long time so it is cached
|
||||||
$return = &$_SESSION["databases"][$_GET["server"]];
|
$return = &$_SESSION["databases"][$_GET["server"]];
|
||||||
if (!isset($return)) {
|
if (!isset($return)) {
|
||||||
$return = get_vals("SHOW DATABASES");
|
$return = get_vals("SHOW DATABASES");
|
||||||
|
if ($flush) {
|
||||||
|
ob_flush();
|
||||||
|
flush();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,12 +32,7 @@ $group_by = ($group && count($group) < count($select) ? " GROUP BY " . implode("
|
||||||
|
|
||||||
if ($_POST && !$error) {
|
if ($_POST && !$error) {
|
||||||
$where_check = "(" . implode(") OR (", array_map('where_check', (array) $_POST["check"])) . ")";
|
$where_check = "(" . implode(") OR (", array_map('where_check', (array) $_POST["check"])) . ")";
|
||||||
$primary = null; // empty array means that all primary fields are selected
|
$primary = ($indexes["PRIMARY"] ? ($select ? array_flip($indexes["PRIMARY"]["columns"]) : array()) : 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());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
foreach ($select as $key => $val) {
|
foreach ($select as $key => $val) {
|
||||||
$val = $_GET["columns"][$key];
|
$val = $_GET["columns"][$key];
|
||||||
if (!$val["fun"]) {
|
if (!$val["fun"]) {
|
||||||
|
@ -189,7 +184,7 @@ if (!$columns) {
|
||||||
if (strlen($name)) {
|
if (strlen($name)) {
|
||||||
$order++;
|
$order++;
|
||||||
$names[$key] = $name;
|
$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);
|
next($select);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ class Adminer {
|
||||||
}
|
}
|
||||||
|
|
||||||
function database() {
|
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'));
|
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) {
|
function selectOrderProcess($columns, $select, $indexes) {
|
||||||
return ($_GET["order"]
|
if ($_GET["order"]) {
|
||||||
? array(idf_escape($_GET["order"][0]) . (isset($_GET["desc"][0]) ? " DESC" : ""))
|
return array(idf_escape($_GET["order"][0]) . (isset($_GET["desc"][0]) ? " DESC" : ""));
|
||||||
: $indexes[$_GET["index_order"]]["columns"]
|
}
|
||||||
);
|
if ($_GET["index_order"]) {
|
||||||
|
return $indexes[$_GET["index_order"]]["columns"];
|
||||||
|
}
|
||||||
|
unset($indexes["PRIMARY"]);
|
||||||
|
$index = reset($indexes);
|
||||||
|
return ($index ? $index["columns"] : array());
|
||||||
}
|
}
|
||||||
|
|
||||||
function selectLimitProcess() {
|
function selectLimitProcess() {
|
||||||
|
|
Loading…
Reference in a new issue