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
Monty 15e889c300 MDEV-30699: Updated prev_record_reads() to be more exact
The old code in prev_record_reads() did give wrong estimates when a
join_buffer was used or if the table was depending on more than one
other tables. When join_cache is used, it will cause a re-order of row
combinations, which causes more calls to the engine for tables that
are depending on tables before the join_cached one.

The new prev_records_read() code provides more exact estimates and
should never give a 'too low estimate', assuming that the data to the
function is correct

The definition of prev_record_read() is also updated.
The new definition is:
  "Estimate the number of engine ha_index_read_calls for EQ_REF tables
  when taking into account the one-row-cache in join_read_always_key()"

The cost of using prev_record_reads() value is changed. The value is
now used similar as before to calculate the cost of the storage engine
calls. However the cost of the WHERE cost is changed to take into
account the total number of row combinations as the WHERE has to be
checked even if the one-row-cache is used. This makes the cost
slightly higher than before (for the same prev_record_reads() value).

Other things:
- Cached return value of prev_record_read() in best_access_path() to
  avoid some function calls.
- Fixed bug where position[].use_join_buffer was set in
  best_acess_path() when join buffer was not used. This confused the
  semi join optimizer to try to reoptimize plans that did not need to be
  reoptimized.
  The effect of the bug fix is that we avoid doing some re-optimziations
  with semi-joins when join_buffer is not used. In these cases the value
  shown for the 'Filtering' column in EXPLAIN EXTENDED may change.
- Added 'prev_record.cc' that was used to verify the logic in
  prev_record_reads().

Changes in test suite:
- EQ_REF tables are moved up to be earlier. This is because either the
  higher WHERE cost when EQ_REF is used with more row combination or
  change of cost when using join_cache.
- Filtered has changed (to the better) for some cases using semi-joins
  subselect_sj.test subselect_sj_jcl6.test
2023-02-21 15:36:39 +03:00
.github Add CODING_STANDARDS.md file 2023-02-03 15:47:17 +11:00
BUILD Change BUILD scripts to use wolfss by default 2023-02-03 10:57:13 +03:00
client Merge 10.11 into 11.0 2023-02-16 13:34:45 +02:00
cmake Merge 10.11 into 11.0 2023-02-16 13:34:45 +02:00
dbug Merge 10.6 into 10.8 2023-02-10 13:43:53 +02:00
debian Merge 10.11 into 11.0 2023-02-16 13:34:45 +02:00
Docs typos in comments, etc 2023-02-10 12:59:36 +02:00
extra Merge 10.11 into 11.0 2023-02-16 13:34:45 +02:00
include Merge 10.11 into 11.0 2023-02-16 13:34:45 +02:00
libmariadb@12bd1d5511 MDEV-30423 Deadlock on Replica during BACKUP STAGE BLOCK_COMMIT on XA transactions 2023-01-23 19:01:48 +02:00
libmysqld Merge 10.9 into 10.10 2022-12-14 08:57:39 +02:00
libservices MDEV-12933 sort out the compression library chaos 2021-10-27 15:55:14 +02:00
man more changes to man page handling 2023-02-12 12:15:22 +01:00
mysql-test MDEV-30699: Updated prev_record_reads() to be more exact 2023-02-21 15:36:39 +03:00
mysys Merge 10.11 into 11.0 2023-02-16 13:34:45 +02:00
mysys_ssl Merge 10.4 into 10.5 2023-02-10 12:02:11 +02:00
plugin Merge 10.11 into 11.0 2023-02-16 13:34:45 +02:00
randgen/conf
scripts Merge 11.0-selectivity into 11.0 2023-02-15 12:03:12 +03:00
sql MDEV-30699: Updated prev_record_reads() to be more exact 2023-02-21 15:36:39 +03:00
sql-bench MDEV-24854: Change innodb_flush_method=O_DIRECT by default 2021-02-20 11:58:58 +02:00
sql-common MDEV-28910 remove the 5.5.5- version hack 2023-01-25 15:40:32 +01:00
storage MDEV-30544 Deprecate innodb_defragment and related parameters 2023-02-21 13:33:47 +02:00
strings Merge 10.10 into 10.11 2023-02-16 11:41:18 +02:00
support-files Merge branch '10.10' into 10.11 2022-12-15 10:32:58 +11:00
tests MDEV-30699: Updated prev_record_reads() to be more exact 2023-02-21 15:36:39 +03:00
tpool Merge 10.10 into 10.11 2023-02-16 11:41:18 +02:00
unittest Merge 10.9 into 10.10 2022-12-07 09:49:38 +02:00
vio Merge branch '10.5' into 10.6 2022-11-02 14:33:20 +01:00
win Merge 10.6 into 10.8 2023-02-10 13:43:53 +02:00
wsrep-lib@275a0af8c5 Update wsrep-lib submodule 2023-02-10 11:30:46 +01:00
zlib zlib: remove redundant and generated files 2022-07-26 16:46:27 +02:00
.clang-format Merge 10.4 into 10.5 2019-12-27 21:17:16 +02:00
.gitattributes Merge branch '10.5' into 10.6 2022-02-03 17:01:31 +01:00
.gitignore more changes to man page handling 2023-02-12 12:15:22 +01:00
.gitlab-ci.yml Merge 10.7 into 10.8 2023-01-10 14:42:50 +02:00
.gitmodules Merge 10.4 into 10.5 2023-01-03 17:08:42 +02:00
appveyor.yml Merge 10.5 into 10.6 2022-07-27 17:52:37 +03:00
BUILD-CMAKE
CMakeLists.txt Use MariaDB as the project name in CMakeLists.txt (fix) 2023-01-17 13:53:06 +11:00
CODING_STANDARDS.md Updated coding standards 2023-02-14 19:25:08 +02:00
config.h.cmake Merge 10.6 into 10.7 2022-10-13 10:05:29 +03:00
configure.cmake Merge 10.6 into 10.7 2022-10-13 10:05:29 +03:00
CONTRIBUTING.md Add CODING_STANDARDS.md file 2023-02-03 15:47:17 +11:00
COPYING
CREDITS CREDITS: re-instate Tencent Cloud 2023-01-25 16:44:26 +11:00
INSTALL-SOURCE
INSTALL-WIN-SOURCE
KNOWN_BUGS.txt
README.md Remove mention of Freenode 2021-09-22 07:15:08 +02:00
THIRDPARTY Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
VERSION bump the maturity 2023-02-20 10:18:45 +01:00

Code status:

  • 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/

Live QA for beginner contributors

MariaDB has a dedicated time each week when we answer new contributor questions live on Zulip. 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