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 b6ff139aa3 Reduce usage of strlen()
Changes:
- To detect automatic strlen() I removed the methods in String that
  uses 'const char *' without a length:
  - String::append(const char*)
  - Binary_string(const char *str)
  - String(const char *str, CHARSET_INFO *cs)
  - append_for_single_quote(const char *)
  All usage of append(const char*) is changed to either use
  String::append(char), String::append(const char*, size_t length) or
  String::append(LEX_CSTRING)
- Added STRING_WITH_LEN() around constant string arguments to
  String::append()
- Added overflow argument to escape_string_for_mysql() and
  escape_quotes_for_mysql() instead of returning (size_t) -1 on overflow.
  This was needed as most usage of the above functions never tested the
  result for -1 and would have given wrong results or crashes in case
  of overflows.
- Added Item_func_or_sum::func_name_cstring(), which returns LEX_CSTRING.
  Changed all Item_func::func_name()'s to func_name_cstring()'s.
  The old Item_func_or_sum::func_name() is now an inline function that
  returns func_name_cstring().str.
- Changed Item::mode_name() and Item::func_name_ext() to return
  LEX_CSTRING.
- Changed for some functions the name argument from const char * to
  to const LEX_CSTRING &:
  - Item::Item_func_fix_attributes()
  - Item::check_type_...()
  - Type_std_attributes::agg_item_collations()
  - Type_std_attributes::agg_item_set_converter()
  - Type_std_attributes::agg_arg_charsets...()
  - Type_handler_hybrid_field_type::aggregate_for_result()
  - Type_handler_geometry::check_type_geom_or_binary()
  - Type_handler::Item_func_or_sum_illegal_param()
  - Predicant_to_list_comparator::add_value_skip_null()
  - Predicant_to_list_comparator::add_value()
  - cmp_item_row::prepare_comparators()
  - cmp_item_row::aggregate_row_elements_for_comparison()
  - Cursor_ref::print_func()
- Removes String_space() as it was only used in one cases and that
  could be simplified to not use String_space(), thanks to the fixed
  my_vsnprintf().
- Added some const LEX_CSTRING's for common strings:
  - NULL_clex_str, DATA_clex_str, INDEX_clex_str.
- Changed primary_key_name to a LEX_CSTRING
- Renamed String::set_quick() to String::set_buffer_if_not_allocated() to
  clarify what the function really does.
- Rename of protocol function:
  bool store(const char *from, CHARSET_INFO *cs) to
  bool store_string_or_null(const char *from, CHARSET_INFO *cs).
  This was done to both clarify the difference between this 'store' function
  and also to make it easier to find unoptimal usage of store() calls.
- Added Protocol::store(const LEX_CSTRING*, CHARSET_INFO*)
- Changed some 'const char*' arrays to instead be of type LEX_CSTRING.
- class Item_func_units now used LEX_CSTRING for name.

Other things:
- Fixed a bug in mysql.cc:construct_prompt() where a wrong escape character
  in the prompt would cause some part of the prompt to be duplicated.
- Fixed a lot of instances where the length of the argument to
  append is known or easily obtain but was not used.
- Removed some not needed 'virtual' definition for functions that was
  inherited from the parent. I added override to these.
- Fixed Ordered_key::print() to preallocate needed buffer. Old code could
  case memory overruns.
- Simplified some loops when adding char * to a String with delimiters.
2021-05-19 22:27:48 +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 Reduce usage of strlen() 2021-05-19 22:27:48 +02:00
cmake Merge 10.5 into 10.6 2021-05-10 11:42:04 +03: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 Reduce usage of strlen() 2021-05-19 22:27:48 +02:00
libmariadb@01ada4b85f Merge 10.5 into 10.6 2021-05-07 15:00:27 +03:00
libmysqld Reduce usage of strlen() 2021-05-19 22:27:48 +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 Add support for minimum field width for strings to my_vsnprintf() 2021-05-19 22:27:29 +02:00
mysys Reduce usage of strlen() 2021-05-19 22:27:48 +02:00
mysys_ssl Merge 10.3 into 10.4 2020-10-22 13:27:18 +03:00
plugin Reduce usage of strlen() 2021-05-19 22:27:48 +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 Reduce usage of strlen() 2021-05-19 22:27:48 +02:00
sql-bench MDEV-24854: Change innodb_flush_method=O_DIRECT by default 2021-02-20 11:58:58 +02:00
sql-common MDEV-8334: Rename utf8 to utf8mb3 2021-05-19 06:48:36 +02:00
storage Reduce usage of strlen() 2021-05-19 22:27:48 +02:00
strings Add support for minimum field width for strings to my_vsnprintf() 2021-05-19 22:27:29 +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 Add support for minimum field width for strings to my_vsnprintf() 2021-05-19 22:27:29 +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