MariaDB server is a community developed fork of MySQL server. Started by core members of the original MySQL team, MariaDB actively works with outside developers to deliver the most featureful, stable, and sanely licensed open SQL server in the industry.
Find a file
Sivert Sorumgard c8fc3db1b0 Bug #14227431: CHARACTER SET MISMATCH WHEN ALTERING FOREIGN KEYS
CAN LEAD TO MISSING TABLES

Overview
--------
If the FOREIGN_KEY_CHECKS system variable is set to 0, it is
possible to break a foreign key constraint by changing the type
or character set of the foreign key column, or by dropping the
foreign key index (without carrying out corresponding changes on
another table in the relationship).

If we subsequently set FOREIGN_KEY_CHECKS to 1 and execute ALTER
TABLE involving the COPY algorithm on such a table, the following
happens:

1) If ALTER TABLE does not contain a RENAME clause, the attempt 
   to install the new version of the table instead of the old one
   will fail due to the fact that the inconsistency will be 
   detected. An attempt to revert the partially executed alter 
   table operation by restoring the old table definition will 
   fail as well due to FOREIGN_KEY_CHECKS == 1. As a result, the 
   table being altered will be lost.
2) If ALTER TABLE contains the RENAME clause, the inconsistency 
   will not be detected (most probably due to other bugs). But if
   an attempt to install the new version of the table fails (for 
   example, due to a failure when updating triggers associated 
   with the table), reverting the partially executed alter table 
   by restoring the old table definition will fail too. So the 
   table being altered might be lost as well.


Suggested fix
-------------
The suggested fix is to temporarily unset the option bit
representing FOREIGN_KEY_CHECKS when the old table definition is
restored while reverting the partially executed operation.
2013-06-12 09:35:33 +02:00
.bzr-mysql
BUILD Correcting the permissions of the executable files. 2013-03-20 17:50:15 +01:00
client Bug#14236170 MYSQLDUMP 5.5.25 CLIENT FAILS TO DUMP 2013-05-17 18:54:36 +05:30
cmake Bug#11765489 CMAKE BUILD ON MAC OS X DOES NOT DETERMINE CPU TYPE 2013-03-01 13:25:59 +01:00
cmd-line-utils Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
dbug BUG#16402143 - STACK CORRUPTION IN DBUG_EXPLAIN 2013-04-10 11:50:41 +05:30
Docs Merging the changes for Bug 16633169 - MYSQL.INFO CONTAINS OUTDATED INFORMATION. 2013-04-16 12:17:18 +02:00
extra Merge from mysql-5.1 to mysql-5.5 2013-05-16 09:01:11 +02:00
include Bug#16194302: SUPPORT FOR FLOATING-POINT SYSTEM VARIABLES 2013-05-19 23:38:06 +05:30
libmysql Fix for Bug 16395495 - OLD FSF ADDRESS IN GPL HEADER 2013-03-19 15:53:48 +01:00
libmysqld Correcting the permissions of the executable files. 2013-03-20 17:50:15 +01:00
libservices
man
mysql-test Bug #16917425 -DBUILD_CONFIG=MYSQL_RELEASE -DWITH_DEBUG=ON FAILS 4 AND SKIPS 27 MTR TESTS 2013-06-07 21:34:34 +02:00
mysys Bug#16194302: SUPPORT FOR FLOATING-POINT SYSTEM VARIABLES 2013-05-19 23:38:06 +05:30
packaging Fix to remove unreferenced components 2013-05-29 20:09:45 +05:30
plugin Updated/added copyright headers. 2013-02-25 15:26:00 +01:00
regex
scripts Merge of patch for Bug#12671635 from mysql-5.1. 2013-03-21 23:40:25 +05:30
sql Bug #14227431: CHARACTER SET MISMATCH WHEN ALTERING FOREIGN KEYS 2013-06-12 09:35:33 +02:00
sql-bench Bug #13004581 BLACKHOLE BINARY LOG WITH ROW IGNORES UPDATE AND DELETE STATEMENTS 2013-04-27 16:04:54 +08:00
sql-common Bug #16680313: CLIENT DOESN'T READ PLUGIN-DIR FROM MY.CNF SET BY 2013-04-24 17:21:42 +03:00
storage Fixing the bug 16919882 - WRONG FSF ADDRESS IN LICENSES HEADERS 2013-06-10 22:29:41 +02:00
strings Bug#11766191:INVALID MEMORY READ IN DO_DIV_MOD WITH DOUBLY ASSIGNED VARIABLES 2013-05-22 14:36:43 +05:30
support-files Merge from mysql-5.5.31-release 2013-04-18 12:52:59 +02:00
tests Correcting the permissions of the executable files. 2013-03-20 17:50:15 +01:00
unittest BUG #13619394 - MAKE TEST FAILS ON MY_VSNPRINTF 2013-06-03 16:34:43 +05:30
vio Updated/added copyright headers. 2013-02-25 15:26:00 +01:00
win Correcting the permissions of executable files. 2013-03-20 17:49:30 +01:00
zlib Updated/added copyright headers. 2013-02-25 15:26:00 +01:00
.bzrignore
BUILD-CMAKE
CMakeLists.txt Merge from 5.5 to 5.6 2013-05-23 11:06:34 +05:30
config.h.cmake
configure.cmake Bug#11766815 INVALID SYSTEM CHECK TIME_T_UNSIGNED 2013-03-11 16:46:11 +01:00
COPYING
INSTALL-SOURCE Merging the changes for Bug 16633169 - MYSQL.INFO CONTAINS OUTDATED INFORMATION. 2013-04-16 12:17:18 +02:00
INSTALL-WIN-SOURCE Merging the changes for Bug 16633169 - MYSQL.INFO CONTAINS OUTDATED INFORMATION. 2013-04-16 12:17:18 +02:00
README Bug 16401147 - CRLF INSTEAD OF LF IN README 2013-03-19 05:24:03 +01:00
VERSION Raise version number after cloning 5.5.32 2013-05-06 09:51:25 +02:00

MySQL Server 5.5

This is a release of MySQL, a dual-license SQL database server.
For the avoidance of doubt, this particular copy of the software 
is released under the version 2 of the GNU General Public License. 
MySQL is brought to you by Oracle.

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

License information can be found in the COPYING file.

MySQL FOSS License Exception
We want free and open source software applications under certain
licenses to be able to use specified GPL-licensed MySQL client
libraries despite the fact that not all such FOSS licenses are
compatible with version 2 of the GNU General Public License.  
Therefore there are special exceptions to the terms and conditions 
of the GPLv2 as applied to these client libraries, which are 
identified and described in more detail in the FOSS License 
Exception at 
<http://www.mysql.com/about/legal/licensing/foss-exception.html>.

This distribution may include materials developed by third
parties. For license and attribution notices for these
materials, please refer to the documentation that accompanies
this distribution (see the "Licenses for Third-Party Components"
appendix) or view the online documentation at 
<http://dev.mysql.com/doc/>.

GPLv2 Disclaimer
For the avoidance of doubt, except that if any license choice
other than GPL or LGPL is available it will apply instead, 
Oracle elects to use only the General Public License version 2 
(GPLv2) at this time for any software where a choice of GPL 
license versions is made available with the language indicating 
that GPLv2 or any later version may be used, or where a choice 
of which version of the GPL is applied is otherwise unspecified.

For further information about MySQL or additional documentation, 
see:
- The latest information about MySQL: http://www.mysql.com
- The current MySQL documentation: http://dev.mysql.com/doc

Some Reference Manual sections of special interest:
- If you are migrating from an older version of MySQL, please 
  read the "Upgrading from..." section.
- To see what MySQL can do, take a look at the features section.
- For installation instructions, see the Installing and Upgrading
  chapter.
- For the new features/bugfix history, see the MySQL Change History 
  appendix.

You can browse the MySQL Reference Manual online or download it 
in any of several formats at the URL given earlier in this file.
Source distributions include a local copy of the manual in the
Docs directory.