From da8a1b66b96c900a9cb933279bc3df5e25127d5b Mon Sep 17 00:00:00 2001 From: jakubvrana Date: Wed, 5 May 2010 16:27:39 +0000 Subject: [PATCH] Respect move and drop column support git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@1518 7c3ca157-0c34-0410-bff1-cbf682f78f5c --- adminer/drivers/mssql.inc.php | 2 +- adminer/drivers/mysql.inc.php | 9 +-------- adminer/drivers/pgsql.inc.php | 4 ++-- adminer/drivers/sqlite.inc.php | 4 +++- adminer/include/editing.inc.php | 19 +++++++++++-------- todo.txt | 1 - 6 files changed, 18 insertions(+), 21 deletions(-) diff --git a/adminer/drivers/mssql.inc.php b/adminer/drivers/mssql.inc.php index bf980807..c57af416 100644 --- a/adminer/drivers/mssql.inc.php +++ b/adminer/drivers/mssql.inc.php @@ -490,7 +490,7 @@ WHERE sys1.xtype = 'TR' AND sys2.name = " . $connection->quote($table) } function support($feature) { - return ereg('^(trigger)$', $feature); //! view|routine| + return ereg('^(trigger|drop_col)$', $feature); //! view|routine| } $driver = "mssql"; diff --git a/adminer/drivers/mysql.inc.php b/adminer/drivers/mysql.inc.php index b8d9a4cb..c0dc2e41 100644 --- a/adminer/drivers/mysql.inc.php +++ b/adminer/drivers/mysql.inc.php @@ -790,14 +790,7 @@ if (!defined("DRIVER")) { */ function support($feature) { global $connection; - $features = array( - "view" => ($connection->server_info >= 5), - "routine" => ($connection->server_info >= 5), - "trigger" => ($connection->server_info >= 5), - "event" => ($connection->server_info >= 5.1), - "partitioning" => ($connection->server_info >= 5.1), - ); - return (isset($features[$feature]) ? $features[$feature] : true); + return ($connection->server_info >= 5.1 || ($connection->server_info >= 5 && !ereg("event|partitioning")) || !ereg("view|routine|trigger")); } $driver = "sql"; ///< @var string JUSH identifier diff --git a/adminer/drivers/pgsql.inc.php b/adminer/drivers/pgsql.inc.php index 4b6cc429..eaf3ee03 100644 --- a/adminer/drivers/pgsql.inc.php +++ b/adminer/drivers/pgsql.inc.php @@ -197,7 +197,7 @@ if (isset($_GET["pgsql"])) { function table_status($name = "") { global $connection; $return = array(); - $result = $connection->query("SELECT relname AS \"Name\", CASE relkind WHEN 'r' THEN '' ELSE 'view' END AS \"Engine\", pg_relation_size(oid) AS \"Data_length\", pg_catalog.obj_description(oid, 'pg_class') AS \"Comment\" + $result = $connection->query("SELECT relname AS \"Name\", CASE relkind WHEN 'r' THEN '' ELSE 'view' END AS \"Engine\", pg_relation_size(oid) AS \"Data_length\", pg_total_relation_size(oid) - pg_relation_size(oid) AS \"Index_length\", pg_catalog.obj_description(oid, 'pg_class') AS \"Comment\" FROM pg_catalog.pg_class WHERE relkind IN ('r','v') AND relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema())" @@ -457,7 +457,7 @@ WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name = " . $connection->qu } function support($feature) { - return ereg('^(comment|view|routine|trigger)$', $feature); + return ereg('^(comment|view|trigger|drop_col)$', $feature); //! routine| } $driver = "pgsql"; diff --git a/adminer/drivers/sqlite.inc.php b/adminer/drivers/sqlite.inc.php index 58b5f026..028b0e5d 100644 --- a/adminer/drivers/sqlite.inc.php +++ b/adminer/drivers/sqlite.inc.php @@ -393,7 +393,9 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) { global $connection; $alter = array(); foreach ($fields as $field) { - $alter[] = ($table != "" && $field[0] == "" ? "ADD " : " ") . implode("", $field[1]); + if ($field[1]) { + $alter[] = ($table != "" && $field[0] == "" ? "ADD " : " ") . implode("", $field[1]); + } } $alter = array_merge($alter, $foreign); if ($table != "") { diff --git a/adminer/include/editing.inc.php b/adminer/include/editing.inc.php index 6aa71835..ce2f1d6c 100644 --- a/adminer/include/editing.inc.php +++ b/adminer/include/editing.inc.php @@ -203,16 +203,17 @@ function edit_fields($fields, $collations, $type = "TABLE", $allowed = 0, $forei " . lang('Comment') : ""); ?> -"; ?> +"; ?> $field) { $i++; - $display = (isset($_POST["add"][$i-1]) || (isset($field["field"]) && !$_POST["drop_col"][$i])); + $orig = $field[($_POST ? "orig" : "field")]; + $display = (isset($_POST["add"][$i-1]) || (isset($field["field"]) && !$_POST["drop_col"][$i])) && (support("drop_col") || $orig == ""); ?> > " . html_select("fields[$i][inout]", $inout, $field["inout"]) : ""); ?> -" onchange=" 1 ? "" : "editingAddRow(this, $allowed); "); ?>editingNameChange(this);" maxlength="64">"> +" onchange=" 1 ? "" : "editingAddRow(this, $allowed); "); ?>editingNameChange(this);" maxlength="64"> @@ -221,11 +222,13 @@ function edit_fields($fields, $collations, $type = "TABLE", $allowed = 0, $forei " : ""); ?> "; - echo " "; - echo " "; - echo " "; + echo ""; + echo (support("move_col") ? + " " + . " " + . " " + : ""); + echo ($orig == "" || support("drop_col") ? "" : ""); echo "\n"; } return $comments; diff --git a/todo.txt b/todo.txt index 41b20087..4beb904c 100644 --- a/todo.txt +++ b/todo.txt @@ -37,7 +37,6 @@ Users - SELECT * FROM pg_user ORDER BY COUNT(*) Table schema - SELECT * FROM pg_namespace, CREATE|ALTER|DROP SCHEMA, SET default_tablespace Export - http://www.postgresql.org/docs/8.4/static/functions-info.html -Table status - http://www.postgresql.org/docs/8.4/static/functions-admin.html Column rights - http://www.postgresql.org/docs/8.4/static/functions-info.html Dollar terminated string in SQL command Move table - ALTER TABLE SET SCHEMA -- 2.39.5