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
Marko Mäkelä cf2a4426a2 MDEV-14717 RENAME TABLE in InnoDB is not crash-safe
This is a backport of commit 0bc36758ba
and commit 9eb3fcc9fb.

InnoDB in MariaDB 10.2 appears to only write MLOG_FILE_RENAME2
redo log records during table-rebuilding ALGORITHM=INPLACE operations.
We must write the records for any .ibd file renames, so that the
operations are crash-safe.

If InnoDB is killed during a RENAME TABLE operation, it can happen that
the transaction for updating the data dictionary will be rolled back.
But, nothing will roll back the renaming of the .ibd file
(the MLOG_FILE_RENAME2 only guarantees roll-forward), or for that matter,
the renaming of the dict_table_t::name in the dict_sys cache. We introduce
the undo log record TRX_UNDO_RENAME_TABLE to fix this.

fil_space_for_table_exists_in_mem(): Remove the parameters
adjust_space, table_id and some code that was trying to work around
these deficiencies.

fil_name_write_rename(): Write a MLOG_FILE_RENAME2 record.

dict_table_rename_in_cache(): Invoke fil_name_write_rename().

trx_undo_rec_copy(): Set the first 2 bytes to the length of the
copied undo log record.

trx_undo_page_report_rename(), trx_undo_report_rename():
Write a TRX_UNDO_RENAME_TABLE record with the old table name.

row_rename_table_for_mysql(): Invoke trx_undo_report_rename()
before modifying any data dictionary tables.

row_undo_ins_parse_undo_rec(): Roll back TRX_UNDO_RENAME_TABLE
by invoking dict_table_rename_in_cache(), which will take care
of both renaming the table and the file.

ha_innobase::truncate(): Remove a work-around.
2018-09-07 22:10:02 +03:00
BUILD Disable rocksdb when building with ASAN 2018-01-27 14:39:33 +02:00
client Merge 10.1 into 10.2 2018-08-02 08:19:57 +03:00
cmake Merge 10.1 into 10.2 2018-08-02 08:19:57 +03:00
dbug
debian Merge 10.1 into 10.2 2018-08-21 15:20:34 +03:00
Docs
extra MDEV-13564 Mariabackup does not work with TRUNCATE 2018-09-07 22:10:02 +03:00
include Merge 10.1 into 10.2 2018-08-02 08:19:57 +03:00
libmariadb@d0f201451d SLES11 OpenSSL 0.9.8 support 2018-08-09 11:29:15 +02:00
libmysqld Bug#27759871: BACKRONYM ISSUE IS STILL IN MYSQL 5.7 2018-05-14 11:28:13 +05:30
libservices
man Fix BB failure: file INSTALL cannot find ... man/tokuft_logdump.1. 2018-09-01 15:06:16 +03:00
mysql-test MDEV-14717 RENAME TABLE in InnoDB is not crash-safe 2018-09-07 22:10:02 +03:00
mysys Merge 10.1 into 10.2 2018-08-02 08:19:57 +03:00
mysys_ssl MDEV-14567: CRYPTO_set_mem_functions fails in FIPS mode 2018-02-07 11:45:01 +01:00
pcre Merge branch '10.1' into 10.2 2018-05-10 13:01:42 +02:00
plugin Merge 10.1 into 10.2 2018-08-31 15:10:02 +03:00
randgen/conf
scripts Merge 10.1 into 10.2 2018-08-31 15:10:02 +03:00
sql MDEV-13564 Mariabackup does not work with TRUNCATE 2018-09-07 22:10:02 +03:00
sql-bench MDEV-15448 Remove "innodb_additional_mem_pool_size" setting from my-innodb-heavy-4G.cnf file 2018-03-03 01:59:52 +02:00
sql-common Merge 10.1 into 10.2 2018-08-02 08:19:57 +03:00
storage MDEV-14717 RENAME TABLE in InnoDB is not crash-safe 2018-09-07 22:10:02 +03:00
strings Merge 10.1 into 10.2 2018-08-02 08:19:57 +03:00
support-files Merge 10.1 into 10.2 2018-08-02 08:19:57 +03:00
tests fix failing main.mysql_client_test test on 32bit 2018-05-15 12:10:48 +02:00
unittest MDEV-14014 Multi-Slave Replication Fail: bogus data in log event 2018-06-28 15:47:03 +02:00
vio MDEV-15596 10.2 doesn't work with openssl 1.1.1 2018-06-21 10:15:27 +02:00
win Fix 2 more VS2015 warnings 2018-02-19 15:22:24 +00:00
wsrep Prevent building WSREP without INNODB 2018-02-15 15:00:46 +00:00
zlib
.gitattributes Merge branch '10.0' into 10.1 2018-05-05 14:01:59 +02:00
.gitignore Merge branch '10.1' into 10.2 2018-06-21 23:47:39 +02:00
.gitmodules
.travis.compiler.sh
.travis.yml travis: osx - xcode 8.3 -> 9.1 2017-10-31 11:21:28 +04:00
appveyor.yml Add some hints for finding bison on its usual locations on Windows. 2018-02-14 17:01:07 +00:00
BUILD-CMAKE
CMakeLists.txt Merge 10.1 into 10.2 2018-08-02 08:19:57 +03:00
config.h.cmake MDEV-13785: move defination HAVE_LARGE_PAGES -> HAVE_LINUX_LARGE_PAGES 2018-03-29 18:55:18 +04:00
configure.cmake Merge remote-tracking branch 'origin/10.1' into 10.2 2018-03-16 14:12:00 +02:00
COPYING
COPYING.thirdparty
CREDITS Update contributors 2018-04-05 14:23:18 +04:00
EXCEPTIONS-CLIENT
INSTALL-SOURCE
INSTALL-WIN-SOURCE
KNOWN_BUGS.txt
README.md Better Link Spacing 2018-06-01 12:29:37 +04:00
VERSION bump the VERSION 2018-08-14 12:32:44 -04:00

MariaDB: drop-in replacement for MySQL

MariaDB is designed as a drop-in replacement of MySQL(R) with more features, new storage engines, fewer bugs, and better performance.

MariaDB is brought to you by the MariaDB Foundation. Please read the CREDITS file for details about the MariaDB Foundation, and who is developing MariaDB.

MariaDB is developed by many of the original developers of MySQL who now work for the MariaDB Foundation and the MariaDB Corporation, and by many people in the community.

MySQL, which is the base of MariaDB, is a product and trademark of Oracle Corporation, Inc. For a list of developers and other contributors, see the Credits appendix. You can also run 'SHOW authors' to get a list of active contributors.

A description of the MariaDB project and a manual can be found at:

https://mariadb.org/

https://mariadb.com/kb/en/

https://mariadb.com/kb/en/mariadb-vs-mysql-features/

https://mariadb.com/kb/en/mariadb-versus-mysql-features/

https://mariadb.com/kb/en/mariadb-versus-mysql-compatibility/

As MariaDB is a full replacement of MySQL, the MySQL manual at http://dev.mysql.com/doc is generally applicable.

Help:

More help is available from the Maria Discuss mailing list https://launchpad.net/~maria-discuss and the #maria IRC channel on Freenode.

License:


NOTE:

MariaDB is specifically available only under version 2 of the GNU General Public License (GPLv2). (I.e. Without the "any later version" clause.) This is inherited from MySQL. Please see the README file in the MySQL distribution for more information.

License information can be found in the COPYING, COPYING.LESSER, and COPYING.thirdparty files.


Bug Reports:

Bug and/or error reports regarding MariaDB should be submitted at https://mariadb.org/jira

Bugs in the MySQL code can also be submitted at https://bugs.mysql.com

The code for MariaDB, including all revision history, can be found at: https://github.com/MariaDB/server


Code status:

  • tests status travis-ci.org (10.2 branch)