From 736d6e43f45a194d7a37a83ab6dd3cfd3d4fb318 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Wed, 5 May 2010 22:42:25 +0200 Subject: [PATCH] Fix alter table --- adminer/drivers/pgsql.inc.php | 14 +++++++------- adminer/include/editing.inc.php | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/adminer/drivers/pgsql.inc.php b/adminer/drivers/pgsql.inc.php index 230ac7cc..c3436a5f 100644 --- a/adminer/drivers/pgsql.inc.php +++ b/adminer/drivers/pgsql.inc.php @@ -329,7 +329,7 @@ WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name = " . $connection->qu } function auto_increment() { - return true; + return ""; } function alter_table($table, $name, $fields, $foreign, $comment, $engine, $collation, $auto_increment, $partitioning) { @@ -344,8 +344,8 @@ WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name = " . $connection->qu } else { $val5 = $val[5]; unset($val[5]); - if ($val[6]) { // auto_increment - $val = array($val[0], ($val[1] == "bigint" ? "big" : "") . "serial"); + if (isset($val[6]) && $field[0] == "") { // auto_increment + $val[1] = ($val[1] == "bigint" ? " big" : " ") . "serial"; } if ($field[0] == "") { $alter[] = ($table != "" ? "ADD " : " ") . implode("", $val); @@ -353,14 +353,14 @@ WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name = " . $connection->qu if ($column != $val[0]) { $queries[] = "ALTER TABLE " . idf_escape($table) . " RENAME $column TO $val[0]"; } - $alter[] = "ALTER $column TYPE $val[1]"; + $alter[] = "ALTER $column TYPE$val[1]"; if (!$val[6]) { - $alter[] = "ALTER $column" . ($val[3] ? " SET$val[3]" : " DROP DEFAULT"); //! quoting + $alter[] = "ALTER $column " . ($val[3] ? "SET$val[3]" : "DROP DEFAULT"); //! quoting $alter[] = "ALTER $column " . ($val[2] == " NULL" ? "DROP NOT" : "SET") . $val[2]; } } - if ($table != "" || $val5 != "") { - $queries[] = "COMMENT ON COLUMN " . idf_escape($table) . ".$val[0] IS " . substr($val5, 9); + if ($field[0] != "" || $val5 != "") { + $queries[] = "COMMENT ON COLUMN " . idf_escape($table) . ".$val[0] IS " . ($val5 != "" ? substr($val5, 9) : "''"); } } } diff --git a/adminer/include/editing.inc.php b/adminer/include/editing.inc.php index ce2f1d6c..c22aeaab 100644 --- a/adminer/include/editing.inc.php +++ b/adminer/include/editing.inc.php @@ -153,7 +153,7 @@ function process_field($field, $type_field) { (isset($field["default"]) ? " DEFAULT " . ($field["type"] == "timestamp" && eregi("^CURRENT_TIMESTAMP$", $field["default"]) ? $field["default"] : $connection->quote($field["default"])) : ""), ($field["on_update"] ? " ON UPDATE $field[on_update]" : ""), (support("comment") && $field["comment"] != "" ? " COMMENT " . $connection->quote($field["comment"]) : ""), - ($field["auto_increment"] ? auto_increment() : ""), + ($field["auto_increment"] ? auto_increment() : null), ); }