- 04 May, 2020 3 commits
-
-
Thirunarayanan Balathandayuthapani authored
- Instant alter should change the metadata alone when table is discarded. It shouldn't try to add metadata record in clustered index. Also make the clustered index to non-instant format.
-
Thirunarayanan Balathandayuthapani authored
- ALTER_ALGORITHM should be substituted when there is no mention of algorithm in alter statement. - Introduced algorithm(thd) in Alter_info. It returns the user requested algorithm. If user doesn't specify algorithm explicitly then it returns alter_algorithm variable. - changed algorithm() to get_algorithm(thd) to return algorithm name for displaying the error. - set_requested_algorithm(algo_value) to avoid direct assignment on requested_algorithm variable. - Avoid direct access of requested_algorithm to encapsulate requested_algorithm variable
-
Thirunarayanan Balathandayuthapani authored
- Added the test case to prove that alter_algorithm variable doesn't affect when ALTER statement during PREPARE PHASE or CREATE PROCEDURE. Only when execution/call happens, alter uses the alter_algorithm variable when user does not mention algorithm explicitly
-
- 01 May, 2020 1 commit
-
-
Varun Gupta authored
For a unique key if all the keyparts are NOT NULL or the predicates involving the keyparts is NULL rejecting, then we can use EQ_REF access instead of ref access with the unique key
-
- 30 Apr, 2020 1 commit
-
-
Eugene Kosov authored
Maybe this patch will help catch problems like buffer overflow. log_t::first_in_use: removed log_t::buf: this is where mtr_t are supposed to append data log_t::flush_buf: this is from server writes to a file Those two buffers are std::swap()ped when some thread is gonna write to a file
-
- 28 Apr, 2020 13 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
-
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 14 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
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
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.
-
- 24 Apr, 2020 3 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
row_vers_vc_matches_cluster(): Remove the parameter in_purge, which was always passed as in_purge=true. This parameter became constant in mysql/mysql-server@1dec14d346ac55fe72989dccb071f84b3b0d3bd6 and it always was constant in MariaDB starting from the introduction of the function in commit 2e814d47 (MariaDB 10.2.2).
-
- 23 Apr, 2020 3 commits
-
-
Marko Mäkelä authored
row_prebuilt_free(): Do not attempt to drop orphan indexes that might have been left behind by a failed ADD UNIQUE INDEX. This avoids the execution of unwanted transactions during shutdown.
-
Elena Stepanova authored
-
Marko Mäkelä authored
mysqld_exit(): Change the assertion failure on global_status_var.global_memory_used == 0 to fprintf, like in 0bcb65d3 It appears that in some cases, that variable may be nonzero even when LeakSanitizer (WITH_ASAN) would not report errors. This was observed in 10.4 88cf6f1c with the MDEV-22348 test case (Aria startup failure when running main.default_storage_engine).
-
- 22 Apr, 2020 2 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-