1
0
mirror of https://github.com/vrana/adminer.git synced 2025-08-13 01:54:00 +02:00

Driver specific create and drop database

git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@1480 7c3ca157-0c34-0410-bff1-cbf682f78f5c
This commit is contained in:
jakubvrana
2010-04-22 23:02:28 +00:00
parent 0acc0c297b
commit edb6401722
5 changed files with 65 additions and 12 deletions

View File

@@ -359,6 +359,14 @@ WHERE OBJECT_NAME(indexes.object_id) = " . $connection2->quote($table)
return $connection->quote($val);
}
function create_database($db, $collation) {
return queries("CREATE DATABASE " . idf_escape($db) . ($collation ? " COLLATE " . idf_escape($collation) : ""));
}
function drop_databases($databases) {
return queries("DROP DATABASE " . implode(", ", array_map('idf_escape', $databases)));
}
function rename_database($name, $collation) {
if ($collation) {
queries("ALTER DATABASE " . idf_escape(DB) . " COLLATE " . idf_escape($collation));

View File

@@ -500,6 +500,27 @@ if (!defined("DRIVER")) {
return "BINARY " . $connection->quote($val);
}
/** Create database
* @param string
* @return string
*/
function create_database($db, $collation) {
return queries("CREATE DATABASE " . idf_escape($db) . ($collation ? " COLLATE " . $connection->quote($collation) : ""));
}
/** Drop databases
* @param array
* @return bool
*/
function drop_databases($databases) {
foreach ($databases as $db) {
if (!queries("DROP DATABASE " . idf_escape($db))) {
return false;
}
}
return true;
}
/** Rename database from DB
* @param string new name
* @return string
@@ -508,7 +529,7 @@ if (!defined("DRIVER")) {
function rename_database($name, $collation) {
global $connection;
$return = false;
if (queries("CREATE DATABASE " . idf_escape($name) . ($collation ? " COLLATE " . $connection->quote($collation) : ""))) {
if (create_database($name, $collation)) {
//! move triggers
$return = true; // table list may by empty
foreach (tables_list() as $table) {
@@ -648,6 +669,9 @@ if (!defined("DRIVER")) {
return $return;
}
/** Get trigger options
* @return array ("Timing" => array(), "Type" => array())
*/
function trigger_options() {
return array(
"Timing" => array("BEFORE", "AFTER"),

View File

@@ -52,6 +52,10 @@ if (isset($_GET["pgsql"])) {
return $link;
}
function close() {
$this->_link = @pg_connect($this->_string);
}
function query($query, $unbuffered = false) {
$result = @pg_query($this->_link, $query);
if (!$result) {
@@ -134,6 +138,9 @@ if (isset($_GET["pgsql"])) {
function select_db($database) {
return (DB == $database);
}
function close() {
}
}
}
@@ -301,6 +308,21 @@ WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name = " . $connection->qu
return $connection->quote($val);
}
function create_database($db, $collation) {
return queries("CREATE DATABASE " . idf_escape($db) . ($collation ? " ENCODING " . idf_escape($collation) : ""));
}
function drop_databases($databases) {
global $connection;
$connection->close();
foreach ($databases as $db) {
if (!queries("DROP DATABASE " . idf_escape($db))) {
return false;
}
}
return true;
}
function rename_database($name, $collation) {
//! current database cannot be renamed
return queries("ALTER DATABASE " . idf_escape(DB) . " RENAME TO " . idf_escape($name));