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
Nikita Malyavin e25623e78a MDEV-17556 Assertion `bitmap_is_set_all(&table->s->all_set)' failed
The assertion failed in handler::ha_reset upon SELECT under
READ UNCOMMITTED from table with index on virtual column.

This was the debug-only failure, though the problem is mush wider:
* MY_BITMAP is a structure containing my_bitmap_map, the latter is a raw
 bitmap.
* read_set, write_set and vcol_set of TABLE are the pointers to MY_BITMAP
* The rest of MY_BITMAPs are stored in TABLE and TABLE_SHARE
* The pointers to the stored MY_BITMAPs, like orig_read_set etc, and
 sometimes all_set and tmp_set, are assigned to the pointers.
* Sometimes tmp_use_all_columns is used to substitute the raw bitmap
 directly with all_set.bitmap
* Sometimes even bitmaps are directly modified, like in
TABLE::update_virtual_field(): bitmap_clear_all(&tmp_set) is called.

The last three bullets in the list, when used together (which is mostly
always) make the program flow cumbersome and impossible to follow,
notwithstanding the errors they cause, like this MDEV-17556, where tmp_set
pointer was assigned to read_set, write_set and vcol_set, then its bitmap
was substituted with all_set.bitmap by dbug_tmp_use_all_columns() call,
and then bitmap_clear_all(&tmp_set) was applied to all this.

To untangle this knot, the rule should be applied:
* Never substitute bitmaps! This patch is about this.
 orig_*, all_set bitmaps are never substituted already.

This patch changes the following function prototypes:
* tmp_use_all_columns, dbug_tmp_use_all_columns
 to accept MY_BITMAP** and to return MY_BITMAP * instead of my_bitmap_map*
* tmp_restore_column_map, dbug_tmp_restore_column_maps to accept
 MY_BITMAP* instead of my_bitmap_map*

These functions now will substitute read_set/write_set/vcol_set directly,
and won't touch underlying bitmaps.
2021-01-08 16:04:29 +10:00
BUILD Updated BUILD/SETUP from MariaDB 10.5 2019-09-01 19:17:34 +03:00
client MDEV-22387: Do not violate __attribute__((nonnull)) 2020-11-02 14:19:21 +02:00
cmake Fix RPM packaging on cmake 3.18+ 2020-10-30 10:32:59 +01:00
dbug Merge 10.1 into 10.2 2020-07-01 12:03:55 +03:00
debian travis: 10.2 only - make faster 2020-10-06 22:22:03 +11:00
Docs MDEV-19563 Removed references to deprecated option innodb_locks_unsafe_for_binlog 2019-06-12 13:00:08 +03:00
extra MDEV-22810 mariabackup does not honor open_files_limit from option during backup prepare 2020-12-16 10:23:41 +03:00
include document that a fulltext parser plugin can replace mysql_add_word callback 2020-12-10 08:45:20 +01:00
libmariadb@e382442206 MDEV-22387: Do not violate __attribute__((nonnull)) 2020-11-02 14:19:21 +02:00
libmysqld MDEV-19838: followup, fix for PS & embedded 2020-10-29 22:19:32 +01:00
libservices
man MDEV-23630: mysqldump logically dump system table information 2020-11-01 08:04:36 +11:00
mysql-test MDEV-24482: Added wait condition to make sure table t1 is replicated to node_2. 2021-01-04 15:12:05 +02:00
mysys MDEV-21646: postfix - my_addr_resolve: static Dl_info info 2020-12-15 14:47:16 +11:00
mysys_ssl MDEV-23925: Fixed warnings generated during compilation of mysys_ssl/openssl.c on MacOS 2020-10-21 17:43:23 +07:00
pcre Merge branch '10.1' into 10.2 2020-05-02 08:44:17 +02:00
plugin MDEV-17556 Assertion `bitmap_is_set_all(&table->s->all_set)' failed 2021-01-08 16:04:29 +10:00
randgen/conf
scripts MDEV-22630 mysql_upgrade (MariaDB 5.2.X --> MariaDB 10.3.X) does not fix auth_string to change it to authentication_string 2020-12-19 11:44:42 +01:00
sql MDEV-17556 Assertion `bitmap_is_set_all(&table->s->all_set)' failed 2021-01-08 16:04:29 +10:00
sql-bench Merge 10.1 into 10.2 2020-07-01 12:03:55 +03:00
sql-common UBSAN: Fix a bit shift overflow 2020-09-23 12:42:30 +03:00
storage MDEV-17556 Assertion `bitmap_is_set_all(&table->s->all_set)' failed 2021-01-08 16:04:29 +10:00
strings MDEV-22387: Do not violate __attribute__((nonnull)) 2020-11-02 14:19:21 +02:00
support-files Merge 10.1 into 10.2 2020-09-22 15:21:43 +03:00
tests MDEV-19838: followup to make happy following protocol implementations: 2020-11-05 18:59:00 +01:00
unittest Fix to make it compiling on new ubuntu. 2020-11-14 09:55:09 +01:00
vio Merge branch '10.1' into 10.2 2020-05-02 08:44:17 +02:00
win Fix appveyor build. 2020-06-05 17:56:34 +02:00
wsrep Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
zlib MDEV-24034 Policy CMP0075 is not set during compile 2020-12-15 12:27:13 +01:00
.clang-format .clang-format - do not sort include files. 2019-12-03 22:22:23 +01:00
.gitattributes
.gitignore .gitignore 2020-10-23 15:53:41 +02:00
.gitmodules
.travis.compiler.sh
.travis.yml Travis-CI: Remove builds that always fail to make CI useful again 2020-05-17 15:52:35 +03:00
appveyor.yml appveyor: config backport from 10.2 2020-04-13 13:49:41 +03:00
BUILD-CMAKE
CMakeLists.txt MDEV-24034 Policy CMP0075 is not set during compile 2020-12-15 12:27:13 +01:00
config.h.cmake Merge branch '10.1' into 10.2 2020-08-02 11:05:29 +02:00
configure.cmake Merge branch '10.1' into 10.2 2020-08-02 11:05:29 +02:00
COPYING
CREDITS
EXCEPTIONS-CLIENT
INSTALL-SOURCE
INSTALL-WIN-SOURCE
KNOWN_BUGS.txt
README.md
THIRDPARTY Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
VERSION bump the VERSION 2020-11-11 10:17:22 -05:00

Code status:

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

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.

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/

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)