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
Hakan Kuecuekyilmaz 1ee2d81734 Fix for
mysqlslap: setting --engine does not get replicated
    http://bugs.mysql.com/bug.php?id=46967

and
    mysqlslap: specifying --engine and --create does not
    work with --engine=<storage_engine>:<option>
    https://bugs.launchpad.net/maria/+bug/429773

Problems were that an --engine=<storage_engine> was translated
to a "set storage_engine = <storage_engine>", wich is _not_
replicated. A --engine=<storage_engine>:<option> was not always
properly parsed and in some cases crashed.

Fixed by eliminating "set storage_engine = ..." and adding
proper DDL generation. Initialized an unitialized buffer to
prevent crashes and fixed to use proper pointer for in
case of --engine=<storage_engine>:<option> being the last
element in list of --engines.

Also cleaned up code for better readability.

Q: Should MySQL's replication actually replicate a
   "set storage_engine = ..." command or not?
A: No it should not. It is documented here:
   http://dev.mysql.com/doc/refman/5.1/en/replication-features-variables.html
   ...
   "The storage_engine system variable is not replicated, which is a
   good thing for replication between different storage engines." ...

Before the patch, mysqlslap was behaving this way:

+-------------------------------+--------+-------------+
|                               | single | replication |
+-------------------------------+--------+-------------+
| Before patch                                         | 
+-------------------------------+--------+-------------+
| --engine[1]                                          |
+-----+-------------------------+--------+-------------+
| 1.1 | eng1                    |  OK    |   Not OK    |
| 1.2 | eng1,eng2               |  OK    |   Not OK    |
| 1.3 | eng1,eng2,eng3          |  OK    |   Not OK    |
| 1.4 | memory:option           |  OK    |   Not OK    |
| 1.5 | memory:option,eng1      |  OK    |   Not OK    |
| 1.6 | eng1,memory:option      | Not OK |   Not OK    |
| 1.7 | memory:option,eng1,eng2 | Crash  |   Not OK    |
| 1.8 | eng1,memory:option,eng2 |  OK    |   Not OK    |
| 1.9 | eng1,eng2,memory:option | Not OK |   Not OK    |
+-----+-------------------------+--------+-------------+
+-------------------------------+--------+-------------+
| --create --engine[2]                                 |
+-----+-------------------------+--------+-------------+
| 2.1 | eng1                    |  OK    |   Not OK    |
| 2.2 | eng1,eng2               |  OK    |   Not OK    |
| 2.3 | eng1,eng2,eng3          |  OK    |   Not OK    |
| 2.4 | memory:option           | Not OK |   Not OK    |
| 2.5 | memory:option,eng1      | Not OK |   Not OK    |
| 2.6 | eng1,memory:option      | Not OK |   Not OK    |
| 2.7 | memory:option,eng1,eng2 | Crash  |   Not OK    |
| 2.8 | eng1,memory:option,eng2 | Not OK |   Not OK    |
| 2.9 | eng1,eng2,memory:option | Not OK |   Not OK    |
+-----+-------------------------+--------+-------------+

After my final patch, mysqlslap now runs like this:

+-------------------------------+--------+-------------+
|                               | single | replication |
+-------------------------------+--------+-------------+
| After third patch                                    | 
+-------------------------------+--------+-------------+
| --engine[1]                                          |
+-----+-------------------------+--------+-------------+
| 1.1 | eng1                    |  OK    |  OK         |
| 1.2 | eng1,eng2               |  OK    |  OK         |
| 1.3 | eng1,eng2,eng3          |  OK    |  OK         |
| 1.4 | memory:option           |  OK    |  OK         |
| 1.5 | memory:option,eng1      |  OK    |  OK         |
| 1.6 | eng1,memory:option      |  OK    |  OK         |
| 1.7 | memory:option,eng1,eng2 |  OK    |  OK         |
| 1.8 | eng1,memory:option,eng2 |  OK    |  OK         |
| 1.9 | eng1,eng2,memory:option |  OK    |  OK         |
+-----+-------------------------+--------+-------------+
+-------------------------------+--------+-------------+
| --create --engine[2]                                 |
+-----+-------------------------+--------+-------------+
| 2.1 | eng1                    |  OK    |  OK         |
| 2.2 | eng1,eng2               |  OK    |  OK         |
| 2.3 | eng1,eng2,eng3          |  OK    |  OK         |
| 2.4 | memory:option           |  OK    |  OK         |
| 2.5 | memory:option,eng1      |  OK    |  OK         |
| 2.6 | eng1,memory:option      |  OK    |  OK         |
| 2.7 | memory:option,eng1,eng2 |  OK    |  OK         |
| 2.8 | eng1,memory:option,eng2 |  OK    |  OK         |
| 2.9 | eng1,eng2,memory:option |  OK    |  OK         |
+-----+-------------------------+--------+-------------+
2009-09-18 05:30:54 +02:00
.bzr-mysql
BitKeeper
BUILD Fix make dist after solaris build file fixes. 2009-08-29 21:04:46 +02:00
client Fix for 2009-09-18 05:30:54 +02:00
cmd-line-utils merge of 5.1-main into 5.1-maria; MyISAM changes are also ported to Maria. 2009-03-11 16:32:42 +01:00
config/ac-macros Fix most Compiler warnings seen in buildbot. 2009-09-03 15:20:22 +02:00
dbug Fix Valgrind errors seen in buildbot. 2009-04-08 18:55:26 +02:00
Docs Imported freely distributable documentation from upstream MySQL 5.1.34 source tarball. 2009-05-25 11:59:47 +02:00
extra Fix most Compiler warnings seen in buildbot. 2009-09-03 15:20:22 +02:00
include MWL#17: Table-elimination 2009-09-01 00:02:09 +04:00
libmysql Trivial fixes for windows compile failures 2009-09-01 15:59:54 +04:00
libmysql_r
libmysqld Merge maria-5.1 -> maria-5.1-table-elimination 2009-08-14 01:12:12 +04:00
man Imported freely distributable documentation from upstream MySQL 5.1.34 source tarball. 2009-05-25 11:59:47 +02:00
mysql-test Merge. 2009-09-04 09:45:34 +02:00
mysys Fix most Compiler warnings seen in buildbot. 2009-09-03 15:20:22 +02:00
netware
plugin merge of 5.1-main into 5.1-maria. MyISAM changes are propagated to Maria except 2009-04-01 11:34:52 +02:00
pstack
regex
scripts Added MY_CS_NONASCII marker for character sets that are not compatible with latin1 for characters 0x00-0x7f 2009-07-02 13:15:33 +03:00
server-tools Merged with mysql-5.1 tree. 2009-04-25 13:05:32 +03:00
sql Fix that thd->query_plan_flags was not initialised prior to executing non-query commands 2009-09-07 15:13:58 +02:00
sql-bench MWL#17: Table elimination 2009-09-02 01:41:16 +04:00
sql-common Fix memory leak in mysql_ssl_set() when called more than once. 2009-06-23 14:00:24 +02:00
storage Fix ha_maria to compile on Windows 2009-09-06 19:49:40 +04:00
strings Fix most Compiler warnings seen in buildbot. 2009-09-03 15:20:22 +02:00
support-files Fix most Compiler warnings seen in buildbot. 2009-09-03 15:20:22 +02:00
tests Added some changes inspired by Zardosht Kasheff: 2009-06-30 00:03:30 +03:00
unittest Trivial fixes for windows compile failures 2009-09-01 15:59:54 +04:00
vio Added "pool-of-threads" handling (with libevent) 2009-03-13 00:27:35 +02:00
win
zlib
.bzrignore Merge maria-5.1 -> maria-5.1-table-elimination 2009-08-14 01:12:12 +04:00
.cvsignore
CMakeLists.txt Merge of Percona XtraDB into MariaDB. 2009-06-11 19:49:51 +02:00
configure.in Merge of Percona XtraDB into MariaDB. 2009-06-11 19:49:51 +02:00
COPYING
EXCEPTIONS-CLIENT
INSTALL-SOURCE Imported freely distributable documentation from upstream MySQL 5.1.34 source tarball. 2009-05-25 11:59:47 +02:00
INSTALL-WIN-SOURCE Imported freely distributable documentation from upstream MySQL 5.1.34 source tarball. 2009-05-25 11:59:47 +02:00
KNOWN_BUGS.txt Updated documentation files to reflect MariaDB and not the Maria storage engine or MySQL 2009-09-03 17:05:38 +03:00
Makefile.am Added "pool-of-threads" handling (with libevent) 2009-03-13 00:27:35 +02:00
README Updated documentation files to reflect MariaDB and not the Maria storage engine or MySQL 2009-09-03 17:05:38 +03:00

This is a release of MariaDB, a branch of MySQL.

MariaDB is a drop-in replacement of MySQL, with more features, less
bugs and better performance.

MariaDB is brought to you by many of the original developers of MySQL,
that now work for Monty Program Ab, and by many people in the
community.

MySQL, which is the base of MariaDB, is brought to you by Sun.

License information can be found in these files:
- For GPL (free) distributions, see the COPYING file and
  the EXCEPTIONS-CLIENT file.

A description of the MariaDB project can be found at:
http://askmonty.org/wiki/index.php/MariaDB

The differences between MariaDB and MySQL can be found at:
http://askmonty.org/wiki/index.php/MariaDB_versus_MySQL

Documentation about MySQL can be found at:
http://dev.mysql.com/doc

For further information about MySQL documentation, see:
- The current MySQL documentation: 

Some manual sections of special interest:

- For a list of developers and other contributors, see the Credits
  appendix.

A local copy of the MySQL Reference Manual can be found in the Docs
directory in GNU Info format.  You can also browse the manual online or
download it in any of several formats from
http://dev.mysql.com/doc

************************************************************

IMPORTANT:

Bug or error reports regarding MariaDB should be sent to
https://bugs.launchpad.net/maria
Bugs in the MySQL code can also be sent to http://bugs.mysql.com