- 07 May, 2020 1 commit
-
-
Marko Mäkelä authored
The InnoDB insert buffer was upgraded in MySQL 5.5 into a change buffer that also covers delete-mark and delete (purge) operations. There is an important constraint for delete operations: a B-tree leaf page must not become empty unless the entire tree becomes empty, consisting of an empty root page. Because change buffer merges only occur on a single leaf page at a time, delete operations must not be buffered if it is possible that the last record of the page could be deleted. (In that case, we would refuse to use the change buffer, and if we really delete the last record, we would shrink the index tree.) The function ibuf_get_volume_buffered_hash() is part of our insurance that the page would not become empty. It is supposed to map each buffered INSERT or DELETE_MARK record payload into a hash value. We will only count each such record as a distinct key if there is no hash collision. DELETE operations will always decrement the predicted number fo records in the page. Due to a bug in the function, we would actually compute the hash value not only on the record payload, but also on some following bytes, in case the record contains NULL values. In MySQL Bug #61104, we had some examples of this dating back to 2012. But back then, we failed to reproduce the bug, and in commit d84c9557 we simply demoted the hard assertion to a message printout and a debug assertion failure. ibuf_get_volume_buffered_hash(): Correctly compute the hash value of the payload bytes only. Note: we will consider ('foo','bar'),(NULL,'foobar'),('foob','ar') to be equal, but this is not a problem, because in case of a hash collision, we could also consider ('boo','far') to be equal, and underestimate the number of records in the page, leading to refusing to buffer a DELETE.
-
- 06 May, 2020 2 commits
-
-
Vladislav Vaintroub authored
-
Anel Husakovic authored
-
- 05 May, 2020 1 commit
-
-
Vladislav Vaintroub authored
-
- 04 May, 2020 3 commits
-
-
Rasmus Johansson authored
-
Rasmus Johansson authored
-
Thirunarayanan Balathandayuthapani authored
FOREIGN_KEY_CHECKS is disabled - Referenced index can be null While renaming the referenced column name. In that case, rename the referenced column name in dict_foreign_t and find the equivalent referenced index.
-
- 30 Apr, 2020 12 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Sergei Golubchik authored
queues.c cleanup and refactoring. Restore old version of _downhead() (from before cd483c55) that works well in an average case. Use it for queue_fix(). Move existing specialized version of _downhead() to queue_replace() where it'll be handling the case it was specifically optimized for (moving the element to the end of the queue). And correct it to fix the heap not only down, but also up (this fixes BUG#30301356). Add unit tests. Collateral cosmetic fixes.
-
Sergei Golubchik authored
CONCAT_WS didn't have it
-
Anushree Prakash B authored
DESCRIPTION: ============ There can be issues if the packets sent by the server are not proper. Certain checks should be performed at the client side while unpacking fields data. FIX: ==== Check for the appropriate fields data and error out if it is not present. RB: 23601
-
Sivert Sorumgard authored
The event scheduler has a THD which is used for e.g. keeping track of the timing of the events. Thus, each scheduling of an event will make use of this THD, which in turn allocates memory in the THD's mem root. However, the mem root was never cleared, and hence, the memory occupied would monotonically increase throughout the life time of the server. The root cause was found by Jon Olav Hauglid, and this fix clears the THD's mem root for each event being scheduled. Change-Id: I462d2b9fd9658c9f33ab5080f7cd0e0ea28382df
-
Sergei Golubchik authored
in fact, in MariaDB it cannot, but it can show spurious slaves in SHOW SLAVE HOSTS. slave was registered in COM_REGISTER_SLAVE and un-registered after COM_BINLOG_DUMP. If there was no COM_BINLOG_DUMP, it would never unregister.
-
Daniel Black authored
Fix mtr error: Bareword "HAVE_WIN32_CONSOLE" not allowed while "strict subs" in use at mysql-test-run.pl line 387. Execution of mysql-test-run.pl aborted due to compilation errors. Added in e3f5789a
-
- 29 Apr, 2020 7 commits
-
-
Vladislav Vaintroub authored
Also fix the link to unicode.org repo, it is now on github.
-
Vladislav Vaintroub authored
Port this functionality from to Windows. It requires Win32::Console module, which is already included into Strawberry perl
-
Sergei Golubchik authored
-
Sergei Golubchik authored
test case
-
Maheedhar PV authored
Cause: In case of version based condtional comments, if the condition evaluates to false, it is converted to a regular comment for replication by replacing "!" by " ". Nested comment in a conditional comment is replicated as is. Nested comments are supported only in case of conditional comments and when a the comment on slave is no more a conditional comment, the statement execution fails on the slave. Fix: Convert the nested comment, start from "/*" to "(*" and comment end from "*/" to "*)" for replication. Change-Id: I1a8e385a267b2370529eade094f0258fa96886c0
-
Sergei Golubchik authored
-
Daniel Black authored
-
- 28 Apr, 2020 4 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Several MYSQL_SYSVAR_STR parameters that employ both a validate function callback fail to copy the string for saving the validated value. The affected variables include the following: innodb_ft_aux_table innodb_ft_server_stopword_table innodb_ft_user_stopword_table innodb_buffer_pool_filename The test case is an enhanced version of mysql/mysql-server@0b0c30641fd66336e87394ac28587e40864f8af9 and the code changes are inspired by their fixes. We are also importing and adjusting the test innodb_fts.stopword to get coverage for the variable innodb_ft_user_stopword_table. buf_dump(), buf_load(): Protect srv_buf_dump_filename with LOCK_global_system_variables. fts_load_user_stopword(): Minor cleanup fts_load_stopword(): Remove the parameter global_stopword_table. innobase_fts_load_stopword(): Protect innodb_server_stopword_table against concurrent SET GLOBAL.
-
Marko Mäkelä authored
innodb_buffer_pool_evict_uncompressed(): Restart the loop when prev_block might not enjoy mutex protection. This is based on mysql/mysql-server@eccaecac070b6747ecf14d6b9150791f8c3e8f6d
-
Marko Mäkelä authored
-
- 27 Apr, 2020 8 commits
-
-
Marko Mäkelä authored
The only change is a change of the version number. As noted in commit 02af6278 there were no changes to InnoDB between MySQL 5.6.46 and 5.6.47 either.
-
Marko Mäkelä authored
The function wsrep_on() was being called rather frequently in InnoDB and XtraDB. Let us cache it in trx_t and invoke trx_t::is_wsrep() instead. innobase_trx_init(): Cache trx->wsrep = wsrep_on(thd). ha_innobase::write_row(): Replace many repeated calls to current_thd, and test the cheapest condition first.
-
Sergei Golubchik authored
fix embedded innodb_plugin tests followup for 7198c6ab
-
Sergei Golubchik authored
Backport INSALL_SYMLINK cmake macro from 10.3. It'll make libmysqlclient_r.* symlinks to link to the actual shared library file, not to another symlink. As a bonus it'll fix cmake warning about deprecated LOCATION property
-
Marko Mäkelä authored
This is a backport of the applicable part of commit 93475aff and commit 2c39f69d from 10.4. Before 10.4 and Galera 4, WSREP_ON is a macro that points to a global Boolean variable, so it is not that expensive to evaluate, but we will add an unlikely() hint around it. WSREP_ON_NEW: Remove. This macro was introduced in commit c863159c when reverting WSREP_ON to its previous definition. We replace some use of WSREP_ON with WSREP(thd), like it was done in 93475aff. Note: the macro WSREP() in 10.1 is equivalent to WSREP_NNULL() in 10.4. Item_func_rand::seed_random(): Avoid invoking current_thd when WSREP is not enabled.
-
Marko Mäkelä authored
_ma_fetch_keypage(): Correct an assertion that used to always hold. Thanks to clang -Wint-in-bool-context for flagging this. double_to_datetime_with_warn(): Suppress -Wimplicit-int-float-conversion by adding a cast. LONGLONG_MAX converted to double will actually be LONGLONG_MAX+1.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Since commit 7198c6ab the ./mtr --embedded tests would fail to start innodb_plugin because of an undefined reference to the symbol wsrep_log(). Let us define a stub for that function. The embedded server is never built WITH_WSREP, but there are no separate storage engine builds for the embedded server. Hence, by default, the dynamic InnoDB storage engine plugin would be built WITH_WSREP and it would fail to load into the embedded server library due to a reference to the undefined symbol.
-
- 25 Apr, 2020 1 commit
-
-
Marko Mäkelä authored
The name was correctly encoded in UTF-8 before commit 0ce12f70.
-
- 24 Apr, 2020 1 commit
-
-
Anel Husakovic authored
In case of ipv6 not enabled tests like `main.ipv6, rpl.rpl_ipv6` failed on aarch buildbot. Fix it by following commits 70dcb46e and 0bae1957 for `10.2`.
-