diff --git a/libraries/Table.class.php b/libraries/Table.class.php index f0311ecadd..6a51f794e3 100644 --- a/libraries/Table.class.php +++ b/libraries/Table.class.php @@ -410,7 +410,7 @@ class PMA_Table $type ); if (! empty($collation) && $collation != 'NULL' && $matches) { - $query .= PMA_generateCharsetQueryPart($collation); + $query .= PMA_generateCharsetQueryPart($collation, true); } if ($null !== false) { diff --git a/libraries/mysql_charsets.lib.php b/libraries/mysql_charsets.lib.php index ad8e2284b7..39049aec4d 100644 --- a/libraries/mysql_charsets.lib.php +++ b/libraries/mysql_charsets.lib.php @@ -84,15 +84,21 @@ function PMA_generateCharsetDropdownBox($type = PMA_CSDROPDOWN_COLLATION, /** * Generate the charset query part * - * @param string $collation Collation + * @param string $collation Collation + * @param boolean optional $override force 'CHARACTER SET' keyword * * @return string */ -function PMA_generateCharsetQueryPart($collation) +function PMA_generateCharsetQueryPart($collation, $override = false) { if (!PMA_DRIZZLE) { list($charset) = explode('_', $collation); - return ' CHARSET=' . $charset + $keyword = ' CHARSET='; + + if ($override) { + $keyword = ' CHARACTER SET '; + } + return $keyword . $charset . ($charset == $collation ? '' : ' COLLATE ' . $collation); } else { return ' COLLATE ' . $collation; diff --git a/test/classes/PMA_Table_test.php b/test/classes/PMA_Table_test.php index fa3e902235..1fd6469d2c 100644 --- a/test/classes/PMA_Table_test.php +++ b/test/classes/PMA_Table_test.php @@ -713,7 +713,7 @@ class PMA_Table_Test extends PHPUnit_Framework_TestCase . "COLLATE charset1 NULL DEFAULT 'VARCHAR' " . "AUTO_INCREMENT COMMENT 'PMA comment' AFTER `new_name`"; } else { - $expect = "`name` `new_name` VARCHAR(2) new_name CHARSET=" + $expect = "`name` `new_name` VARCHAR(2) new_name CHARACTER SET " . "charset1 NULL DEFAULT 'VARCHAR' " . "AUTO_INCREMENT COMMENT 'PMA comment' AFTER `new_name`"; }