- 29 Apr, 2020 1 commit
-
-
Marko Mäkelä authored
-
- 28 Apr, 2020 14 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
During the UPDATE of PRIMARY KEY columns, we may miscalculate the size of the clustered index record. row_upd_clust_rec_by_insert(): Pass the total number of off-page columns, which may include such columns that were inherited from the record and not created as part of the UPDATE operation. This is based on mysql/mysql-server@490c45e8c8e07197958dbb21214fd45ed668b559 which is a follow-up to mysql/mysql-server@1fa475b85d24de4b9ce2958c0eed738c221fc82c which we filed and fixed as MDEV-21511. No test case was provided by Oracle.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
INSERT...SELECT reading from an InnoDB table is slow due to creating explicit record locks. Use the sequence engine instead. Also, remove the space before rtr_page_need_second_split to actually make the debug injection work.
-
Marko Mäkelä authored
-
Sergei Golubchik authored
when detecting running mysqld processes to stop, ignore processes in different namespaces.
-
Sergei Golubchik authored
-
Marko Mäkelä authored
-
Sergei Golubchik 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
-
Thirunarayanan Balathandayuthapani authored
- Inplace alter shouldn't set default date column as '0000-00-00' when table is not empty. So mysql_inplace_alter_table() copied alter_ctx.error_if_not_empty to a new field of Alter_inplace_info. In ha_innobase::check_if_supported_inplace_alter() should check the error_if_not_empty flag and return INPLACE_NOT_SUPPORTED if the table is not empty
-
- 27 Apr, 2020 20 commits
-
-
Vlad Lesin authored
lock --ftwrl-wait-timeout does not finish mariabackup execution when acquired backup lock can't be grabbed for the certain amount of time, it just waits for a long queries finishing before acquiring the lock to avoid unnecessary locking. This commit extends --ftwrl-wait-timeout so, that mariabackup execution is finished if it waits for backup lock during certain amount of time.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
dict_stats_update_if_needed(): Replace the parameter THD* with const trx_t& so that trx_t::is_wsrep() can be invoked instead of the more expensive wsrep_on(). Replace also other occurrences of wsrep_on() with trx_t::is_wsrep().
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
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
when opening the `user` table separately, reset `thd->open_tables` for the duration of open, otherwise auto-repair fallback-and-retry will close *all* tables (but reopen only `user`)
-
Sergei Golubchik authored
only use auth1 update (no "auth_or":[]) array, if there was no "auth_or" array in the json yet.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
support upgrades from 5.2 privilege tables
-
Sergei Golubchik authored
revert/simplify f5390eea remove galera-specific checks from mtr and the main suite
-
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.
-
- 26 Apr, 2020 1 commit
-
-
Monty authored
MDEV-18286 Assertion `pagecache->cnt_for_resize_op == 0' failed in check_pagecache_is_cleaned_up on server shutdown The reason for the crash is that the counter-of-pinned-pages in the Aria pagecache goes wrong. This only affects debug builds, as in these we do an assert on shutdown if the counter-of-pinned-pages is not 0 (some page was left pinned). The bug was that in 2 places in the page cache, when not succeeding to pin a page and a retry was made, the counter-of-pinned-pages counter was not properly adjusted. In the given test case, BLOCK_COMMIT flushed all Aria files. If a block was flushed at the same time the insert tried to access it, the insert would retry to get the block and that would cause the counter to go wrong.
-
- 24 Apr, 2020 4 commits
-
-
Eugene Kosov authored
read TLS with my_thread_var write TLS with set_mysys_var() my_thread_var is no longer __attribute__ ((const)): this attribute is simply incorrect here. Read gcc manual for more information. sql/threadpool_generic.cc fails with that attribute.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The reason why we have wsrep_on() at all is that the macro WSREP(thd) depends on the definition of THD, and that is intentionally an opaque data type for InnoDB. So, we cannot avoid invoking wsrep_on(), but we can evaluate the less expensive conditions thd && WSREP_ON before calling the function. Global_read_lock: Use WSREP_NNULL(thd) instead of wsrep_on(thd) because we not only know the definition of THD but also that the pointer is not null. wsrep_open(): Use WSREP(thd) instead of wsrep_on(thd). InnoDB: Replace thd && wsrep_on(thd) with wsrep_on(thd), now that the condition has been merged to the definition of the macro wsrep_on().
-