- 30 Apr, 2020 1 commit
-
-
Sujatha authored
Post push fix. when "replicate_wild_do_table" and "replicate_wild_ignore_table" filters and changed dynamically the filter list gets cleared but the corresponding "wild_do_table_inited" and "wild_ignore_table_inited" flags are not getting cleared. Fix: Clear the flags.
-
- 29 Apr, 2020 9 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
trx_t::rollback(): Renamed from trx_rollback_to_savepoint(). trx_t::rollback_low(): Renamed from trx_rollback_to_savepoint_low(). fts_sql_commit(): Defined as an alias of trx_commit_for_mysql(). fts_sql_rollback(): Defined as an alias of trx_t::rollback(). fts_rename_aux_tables_to_hex_format(): Fix the error handling that likely never worked because we failed to roll back the first transaction.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
trx_rollback_to_savepoint(): Invoke trx_t::is_wsrep().
-
Marko Mäkelä authored
Replace wsrep_on() with trx_t::is_wsrep() where possible. Also, rename some functions to member functions and remove unused DBUG_EXECUTE_IF instrumentation: trx_t::commit(): Renamed from trx_commit(). trx_t::commit_low(): Renamed from trx_commit_low(). trx_t::commit_in_memory(): Renamed from trx_commit_in_memory().
-
Alexey Botchkov authored
MDEV-22337 Assertion `Alloced_length >= (str_length + length + net_le… …ngth_size(length))' failed in Binary_string::q_net_store_data on long MULTIPOLYGON query with session_track_user_variables=1 (optimized builds). We have to reserve enough space in String to use q_something(). Also pointer calculations fixed.
-
Alexey Botchkov authored
…while using json_arrayagg() as a window function. We don't support JSON_ARRAYAGG and JSON_OBJECTAGG in window functions yet.
-
Marko Mäkelä authored
-
Sujatha authored
Problem: ======= SET @@GLOBAL.replicate_wild_ignore_table=''; SET @@GLOBAL.replicate_wild_do_table=''; Reports following valgrind error. Conditional jump or move depends on uninitialised value(s) Rpl_filter::set_wild_ignore_table(char const*) (rpl_filter.cc:439) Conditional jump or move depends on uninitialised value(s) at 0xF60390: delete_dynamic (array.c:304) by 0x74F3F2: Rpl_filter::set_wild_do_table(char const*) (rpl_filter.cc:421) Analysis: ======== List of values provided for options "wild_do_table" and "wild_ignore_table" are stored in DYNAMIC_ARRAYS. When an empty list is provided these dynamic arrays are not initialized. Existing code treats empty element list as an error and tries to clean the uninitialized list. This results in above valgrind issue. Fix: === The clean up should be initiated only when there is an error while parsing the 'wild_do_table' or 'wild_ignore_table' list and the dynamic_array is in initialized state. Otherwise for empty list it should simply return success.
-
- 28 Apr, 2020 18 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
-
Thirunarayanan Balathandayuthapani authored
- buf_page_get_gen() fails to set error value when it initializes the page with redo logs.
-
Jan Lindström authored
We need to make sure that hton is not same as view_pseudo_hton that is not NULL but not usable.
-
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.
-
Alexey Botchkov authored
The json_arrayagg::val_str should handle NULL result.
-
Eugene Kosov authored
Replace all fsync() with fdatasync() when possible (e.g. On Linux) InnoDB doesn't care about file timestamps. So, to achieve a better performance it makes sense to use fdatasync() everywhere. file_io::flush(): renamed from flush_data_only() os_file_flush_data(): removed os_file_sync_posix(): renamed from os_file_fsync_posix(). Now it uses fdatasync() when it's available.
-
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 12 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.
-
Aleksey Midenkov authored
-
Marko Mäkelä authored
-
Aleksey Midenkov authored
If any of default names clashes with existing names find next large enough name gap for the requested number of partitions.
-
Aleksey Midenkov authored
This is continuation of MDEV-22153 bug when contiguity of history partitions is broken. ha_partition::open_read_partitions() can not handle non-contiguous list of default partitions. Fix: when default partition is dropped convert list of partitions to non-default.
-
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.
-