]> git.joonet.de Git - adminer.git/commitdiff
Fix ALTER export: add columns together with modify
authorJakub Vrana <jakub@vrana.cz>
Sun, 24 Apr 2011 12:42:46 +0000 (14:42 +0200)
committerJakub Vrana <jakub@vrana.cz>
Thu, 5 May 2011 05:10:09 +0000 (07:10 +0200)
adminer/include/adminer.inc.php

index 7596505154ff91864d3eb097f526404f065f5005..420ab06f32d6a7a3b51802999eee03166d4ae863 100644 (file)
@@ -582,10 +582,10 @@ CREATE PROCEDURE adminer_alter (INOUT alter_command text) BEGIN
                        foreach ($fields as $row) {
                                echo "
                                WHEN " . q($row["COLUMN_NAME"]) . " THEN
-                                       SET add_columns = REPLACE(add_columns, ', ADD $row[alter]', '');
-                                       IF NOT (_column_default <=> $row[default]) OR _is_nullable != '$row[IS_NULLABLE]' OR _collation_name != '$row[COLLATION_NAME]' OR _column_type != " . q($row["COLUMN_TYPE"]) . " OR _extra != '$row[EXTRA]' OR _column_comment != " . q($row["COLUMN_COMMENT"]) . " OR after != $row[after] THEN
-                                               SET @alter_table = CONCAT(@alter_table, ', MODIFY $row[alter]');
-                                       END IF;"; //! don't replace in comment
+                                       SET add_columns = REPLACE(add_columns, ', ADD $row[alter]', IF(
+                                               _column_default <=> $row[default] AND _is_nullable = '$row[IS_NULLABLE]' AND _collation_name <=> " . (isset($row["COLLATION_NAME"]) ? "'$row[COLLATION_NAME]'" : "NULL") . " AND _column_type = " . q($row["COLUMN_TYPE"]) . " AND _extra = '$row[EXTRA]' AND _column_comment = " . q($row["COLUMN_COMMENT"]) . " AND after = $row[after]
+                                       , '', ', MODIFY $row[alter]'));"
+                               ; //! don't replace in comment
                        }
                        echo "
                                ELSE