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.
  • MariaDB\ 71.8%
  • C++ 16.4%
  • C 10.4%
  • Shell 0.5%
  • Perl 0.4%
  • Other 0.3%
Find a file
Monty 47010ccffa MDEV-23842 Atomic RENAME TABLE
- Major rewrite of ddl_log.cc and ddl_log.h
  - ddl_log.cc described in the beginning how the recovery works.
  - ddl_log.log has unique signature and is dynamic. It's easy to
    add more information to the header and other ddl blocks while still
    being able to execute old ddl entries.
  - IO_SIZE for ddl blocks is now dynamic. Can be changed without affecting
    recovery of old logs.
  - Code is more modular and is now usable outside of partition handling.
  - Renamed log file to dll_recovery.log and added option --log-ddl-recovery
    to allow one to specify the path & filename.
- Added ddl_log_entry_phase[], number of phases for each DDL action,
  which allowed me to greatly simply set_global_from_ddl_log_entry()
- Changed how strings are stored in log entries, which allows us to
  store much more information in a log entry.
- ddl log is now always created at start and deleted on normal shutdown.
  This simplices things notable.
- Added probes debug_crash_here() and debug_simulate_error() to simply
  crash testing and allow crash after a given number of times a probe
  is executed. See comments in debug_sync.cc and rename_table.test for
  how this can be used.
- Reverting failed table and view renames is done trough the ddl log.
  This ensures that the ddl log is tested also outside of recovery.
- Added helper function 'handler::needs_lower_case_filenames()'
- Extend binary log with Q_XID events. ddl log handling is using this
  to check if a ddl log entry was logged to the binary log (if yes,
  it will be deleted from the log during ddl_log_close_binlogged_events()
- If a DDL entry fails 3 time, disable it. This is to ensure that if
  we have a crash in ddl recovery code the server will not get stuck
  in a forever crash-restart-crash loop.

mysqltest.cc changes:
- --die will now replace $variables with their values
- $error will contain the error of the last failed statement

storage engine changes:
- maria_rename() was changed to be more robust against crashes during
  rename.
2021-05-19 22:54:12 +02:00
.github Add a Github CODEOWNERS file to project 2020-08-14 09:03:34 +10:00
BUILD Enable BUILD scripts to work with clang 2021-05-19 22:27:28 +02:00
client MDEV-23842 Atomic RENAME TABLE 2021-05-19 22:54:12 +02:00
cmake Added comment to create_inital_db.cmake of how to run it 2021-05-19 22:54:11 +02:00
dbug Fix cross-compile to consider CMAKE_CROSSCOMPILING_EMULATOR 2021-04-15 10:07:50 +10:00
debian Merge 10.5 into 10.6 2021-05-07 15:00:27 +03:00
Docs Clean up logcheck.ignore.* configs and unify MariaDB.org links with https 2020-04-23 10:07:07 +03:00
extra Reduce usage of strlen() 2021-05-19 22:27:48 +02:00
include MDEV-24285 support oracle build-in function: sys_guid 2021-05-19 22:54:11 +02:00
libmariadb@01ada4b85f Merge 10.5 into 10.6 2021-05-07 15:00:27 +03:00
libmysqld MDEV-23842 Atomic RENAME TABLE 2021-05-19 22:54:12 +02:00
libservices Add build on AIX 2020-12-16 08:07:04 +11:00
man Merge 10.5 into 10.6 2021-05-18 11:13:45 +03:00
mysql-test MDEV-23842 Atomic RENAME TABLE 2021-05-19 22:54:12 +02:00
mysys MDEV-24285 support oracle build-in function: sys_guid 2021-05-19 22:54:11 +02:00
mysys_ssl Merge 10.3 into 10.4 2020-10-22 13:27:18 +03:00
plugin Change CHARSET_INFO character set and collaction names to LEX_CSTRING 2021-05-19 22:54:07 +02:00
randgen/conf Group commit for maria engine. 2010-02-12 15:12:28 +02:00
scripts MDEV-8334: Rename utf8 to utf8mb3 2021-05-19 06:48:36 +02:00
sql MDEV-23842 Atomic RENAME TABLE 2021-05-19 22:54:12 +02:00
sql-bench MDEV-24854: Change innodb_flush_method=O_DIRECT by default 2021-02-20 11:58:58 +02:00
sql-common Change CHARSET_INFO character set and collaction names to LEX_CSTRING 2021-05-19 22:54:07 +02:00
storage MDEV-23842 Atomic RENAME TABLE 2021-05-19 22:54:12 +02:00
strings Change CHARSET_INFO character set and collaction names to LEX_CSTRING 2021-05-19 22:54:07 +02:00
support-files Merge 10.5 into 10.6 2021-04-29 16:35:26 +03:00
tests MDEV-8334: Rename utf8 to utf8mb3 2021-05-19 06:48:36 +02:00
tpool io_liburing: ENOMEM handling - use io_uring_mlock_size 2021-04-15 07:42:13 +10:00
unittest Change CHARSET_INFO character set and collaction names to LEX_CSTRING 2021-05-19 22:54:07 +02:00
vio Merge 10.5 into 10.6 2021-03-27 18:03:03 +02:00
win Merge branch '10.4' into 10.5 2021-02-23 13:06:22 +01:00
wsrep-lib@f271ad0c6e Update wsrep-lib 2021-04-30 07:17:54 +03:00
zlib Merge branch '10.3' into 10.4 2020-12-25 09:13:28 +01:00
.clang-format Merge 10.4 into 10.5 2019-12-27 21:17:16 +02:00
.gitattributes .gitattributes - correct language detection 2021-01-15 18:29:35 +11:00
.gitignore MDEV-5536: add systemd socket activation 2021-03-28 13:53:55 +11:00
.gitmodules Add stub for building ColumnStore 2020-06-19 21:04:17 +02:00
.travis.compiler.sh MDEV-19780 Remove the TokuDB storage engine 2020-05-14 10:11:47 +03:00
.travis.yml MDEV-25090: Deb: Use libpmem-dev when available 2021-03-17 13:23:18 +02:00
appveyor.yml Fix appvyeor's perl.exe path 2020-11-03 10:47:25 +01:00
BUILD-CMAKE Minor spelling fixes in code comments, docs and output 2018-01-12 16:49:02 +02:00
CMakeLists.txt Fixes that enables my_new.cc (new wrapper using my_malloc) 2021-05-19 22:27:27 +02:00
config.h.cmake Merge 10.5 into 10.6 2021-04-14 13:39:28 +03:00
configure.cmake Merge 10.3 into 10.4 2021-04-21 07:58:42 +03:00
CONTRIBUTING.md Add CONTRIBUTING file and modify README file about live QA regarding new contributors 2018-12-04 23:15:33 +04:00
COPYING Update FSF Address 2019-05-11 21:29:06 +03:00
CREDITS Update sponsors 2021-03-12 07:02:29 +11:00
INSTALL-SOURCE Update AskMonty and Atlassian references to MariaDB 2016-03-08 15:24:01 +02:00
INSTALL-WIN-SOURCE Update AskMonty and Atlassian references to MariaDB 2016-03-08 15:24:01 +02:00
KNOWN_BUGS.txt Changed some MySQL names in messages to MariaDB 2018-12-09 20:49:05 +02:00
README.md Update README 2020-05-05 18:28:52 +02:00
THIRDPARTY Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
VERSION bump the VERSION 2021-05-10 11:33:29 -04:00

Code status:

  • Travis CI status travis-ci.org (10.5 branch)
  • Appveyor CI status ci.appveyor.com

MariaDB: The open source relational database

MariaDB was 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 and the MariaDB Corporation. 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 Corporation, the MariaDB Foundation 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-compatibility/

https://mariadb.com/kb/en/new-and-old-releases/

Help

More help is available from the Maria Discuss mailing list https://launchpad.net/~maria-discuss, MariaDB's Zulip instance, https://mariadb.zulipchat.com/ and the #maria IRC channel on Freenode.

Live QA for beginner contributors

MariaDB has a dedicated time each week when we answer new contributor questions live on Zulip and IRC. From 8:00 to 10:00 UTC on Mondays, and 10:00 to 12:00 UTC on Thursdays, anyone can ask any questions theyd like, and a live developer will be available to assist.

New contributors can ask questions any time, but we will provide immediate feedback during that interval.

Licensing


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 file. Third party license information can be found in the THIRDPARTY file.


Bug Reports

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

For reporting security vulnerabilities see: https://mariadb.org/about/security-policy/

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