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ä e5c4c0842d MDEV-35443: opt_search_plan_for_table() may degrade to full table scan
opt_calc_index_goodness(): Correct an inaccurate condition.
We can very well use a clustered index of a table that is subject
to online rebuild. But we must not choose an index that has not been
committed (it is a secondary index that was not fully created)
or that is corrupted or not a normal B-tree index.

opt_search_plan_for_table(): Remove some redundant code, now that
opt_calc_index_goodness() checks against corrupted indexes.

The test case allows this code to be exercised. The main observation
in the following:
	./mtr --rr innodb.stats_persistent
	rr replay var/log/mysqld.1.rr/latest-trace
should be that when opt_search_plan_for_table() is being invoked by
dict_stats_update_persistent() on the being-altered statistics table
in the 2nd call after ha_innobase::inplace_alter_table(),
and the fix in opt_calc_index_goodness() is absent,
it would choose the code path if (n_fields == 0), that is, a full
table scan, instead of searching for the record. The GDB commands to
execute in "rr replay" would be as follows:
	break ha_innobase::inplace_alter_table
	continue
	break opt_search_plan_for_table
	continue
	continue
	next
	next
	…

Reviewed by: Vladislav Lesin
2024-12-19 14:05:16 +02:00
BUILD
client MDEV-35574 remove obsolete pthread_exit calls 2024-12-10 12:12:20 +11:00
cmake Dtrace cmake fix for clang 2024-12-03 13:49:42 +03:00
dbug
debian
Docs
extra Update my_print_defaults to accept --mariadbd as an option 2024-11-26 14:23:31 +02:00
include Change my_umask{,_dir} to mode_t and remove os_innodb_umask 2024-12-11 17:21:01 +11:00
libmariadb@9a40079349 new CC 3.1 2024-10-23 08:40:22 +02:00
libmysqld
libservices
man
mysql-test MDEV-35443: opt_search_plan_for_table() may degrade to full table scan 2024-12-19 14:05:16 +02:00
mysys In allocate_dynamic() fixed return value on error. 2024-12-12 12:36:42 +01:00
mysys_ssl
plugin MDEV-35632: HandlerSocket uses deprecated auto_ptr 2024-12-12 11:58:11 +02:00
randgen/conf
scripts MDEV-34716 Fix mysql.servers socket max length too short 2024-12-17 10:40:57 +11:00
sql Remove error handling from wsrep_sync_wait() 2024-12-17 09:52:32 +01:00
sql-bench
sql-common MDEV-34348: my_hash_get_key fixes 2024-11-23 08:14:22 -07:00
storage MDEV-35443: opt_search_plan_for_table() may degrade to full table scan 2024-12-19 14:05:16 +02:00
strings MDEV-35578 innodb_gis.rtree_debug fails on mac 2024-12-18 11:28:25 +11:00
support-files MDEV-35407 Suppress STDERR while determining rpm package vendor 2024-11-13 10:24:30 +11:00
tests MDEV-34958: after Trigger doesn't work correctly with bulk insert 2024-12-13 16:19:39 +07:00
tpool MDEV-35273 tpool::worker_data - replace MY_ALIGNED with pad member 2024-10-28 16:24:53 +01:00
unittest MDEV-35574 remove obsolete pthread_exit calls 2024-12-10 12:12:20 +11:00
vio
win
wsrep-lib@70cd967f5e galera: wsrep-lib submodule update 2024-12-17 09:53:19 +01:00
zlib
.clang-format
.gitattributes
.gitignore
.gitlab-ci.yml
.gitmodules
appveyor.yml
BUILD-CMAKE
CMakeLists.txt
config.h.cmake MDEV-34533 asan error about stack overflow when writing record in Aria 2024-10-16 17:24:46 +03:00
configure.cmake MDEV-34533 asan error about stack overflow when writing record in Aria 2024-10-16 17:24:46 +03:00
CONTRIBUTING.md
COPYING
CREDITS
INSTALL-SOURCE
INSTALL-WIN-SOURCE
KNOWN_BUGS.txt
README.md
THIRDPARTY
VERSION bump the VERSION 2024-11-01 11:13:09 -04:00

Code status:

  • Appveyor CI status ci.appveyor.com

MariaDB: The innovative open source 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/

Getting the code, building it and testing it

Refer to the following guide: https://mariadb.org/get-involved/getting-started-for-developers/get-code-build-test/ which outlines how to build the source code correctly and run the MariaDB testing framework, as well as which branch to target for your contributions.

Help

More help is available from the Maria Discuss mailing list https://lists.mariadb.org/postorius/lists/discuss.lists.mariadb.org/ and MariaDB's Zulip instance, https://mariadb.zulipchat.com/

Licensing


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