]> git.joonet.de Git - adminer.git/commitdiff
Fix alter table
authorJakub Vrana <jakub@vrana.cz>
Wed, 5 May 2010 20:42:25 +0000 (22:42 +0200)
committerJakub Vrana <jakub@vrana.cz>
Wed, 5 May 2010 20:42:25 +0000 (22:42 +0200)
adminer/drivers/pgsql.inc.php
adminer/include/editing.inc.php

index 230ac7cc0f5c6d44ce24fa717d65f6bb5d1d0c0f..c3436a5f91fd33797715c187e484ffd05d71051a 100644 (file)
@@ -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) : "''");
                                }
                        }
                }
index ce2f1d6c14fea77323b4d30f5055fc02933bbc68..c22aeaab048a0c470e255370fe7310f307b40ac5 100644 (file)
@@ -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),
        );
 }