- 21 Mar, 2020 2 commits
-
-
Sergey Vojtovich authored
-
Daniele Sciascia authored
* Remove dead code * MDEV-21675 Data inconsistency after multirow insert rollback This patch fixes data inconsistencies that happen after rollback of multirow inserts, with binlog disabled. For example, statements such as `INSERT INTO t1 VALUES (1,'a'),(1,'b')` that fail with duplicate key error. In such cases the whole statement is rolled back. However, with wsrep_emulate_binlog in effect, the IO_CACHE would not be truncated, and the pending rows events would be replicated to the rest of the cluster. In the above example, it would result in row (1,'a') being replicated, whereas locally the statement is rolled back entirely. Making the cluster inconsistent. The patch changes the code so that prior to statement rollback, pending rows event are removed and the stmt cache reset. That patch also introduces MTR tests that excercise multirow insert statements for regular, and streaming replication.
-
- 20 Mar, 2020 10 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Also, clean up the test innodb_gis.geometry a little further.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Remove CREATE/DROP database. Remove some unnecessary suppressions, replacements, and SQL statements. Populate tables via have_sequence.inc to avoid the creation of explicit InnoDB record locks in INSERT...SELECT. This will remove some gaps in AUTO_INCREMENT values.
-
Marko Mäkelä authored
After MDEV-12353, the consistency check that I originally added for commit 1b9fe0bb (InnoDB Plugin for MySQL 5.1) started randomly failing. It turns out that the IMPORT TABLESPACE code was always incorrect: it did not update the (redundantly stored) tablespace ID in index tree root pages. It only does that for page headers and BLOB pointers. PageConverter::update_index_page(): Update the tablespace ID in the BTR_SEG_TOP and BTR_SEG_LEAF of index root pages.
-
Marko Mäkelä authored
-
seppo authored
Forcing wait on nodes 2 and 3, to turn wsrep_ready to 'ON' before querying wsrep status variables. This guarantees that status reads don't come too early on these nodes
-
Jan Lindström authored
-
Alexander Barkov authored
The problem happened in these line: uval0= (ulonglong) (val0_negative ? -val0 : val0); uval1= (ulonglong) (val1_negative ? -val1 : val1); return check_integer_overflow(val0_negative ? -(longlong) res : res, !val0_negative); when unary minus was performed on -9223372036854775808. This behavior is undefined in C/C++.
-
- 19 Mar, 2020 8 commits
-
-
Marko Mäkelä authored
Several macros such as sint2korr() and uint4korr() are using the arithmetic + operator while a bitwise or operator would suffice. GCC 5 and clang 5 and later can detect patterns consisting of bitwise or and shifts by multiples of 8 bits, such as those used in the InnoDB function mach_read_from_4(). They actually translate that verbose low-level code into high-level machine language (i486 bswap instruction or fused into the Haswell movbe instruction). We should do the same for MariaDB Server code that is outside InnoDB. Note: The Microsoft C compiler is lacking this optimization. There, we might consider using _byteswap_ushort(), _byteswap_ulong(), _byteswap_uint64(). But, those would lead to unaligned reads, which are bad for reasons stated in MDEV-20277. Besides, outside InnoDB, most data is already being stored in the native little-endian format of that compiler.
-
Marko Mäkelä authored
fil_delete_tablespace(): Remove the unused parameter drop_ahi, and add the parameter if_exists=false. We want to suppress error messages if we know that the tablespace has been discarded. dict_table_rename_in_cache(): Pass the new parameter to fil_delete_tablespace(), that is, do not complain about missing tablespace if the tablespace has been discarded. row_make_new_pathname(): Declare as static. row_drop_table_for_mysql(): Tolerate !table->data_dir_path when the tablespace has been discarded. row_rename_table_for_mysql(): Skip part of the RENAME TABLE when fil_space_get_first_path() returns NULL.
-
Marko Mäkelä authored
buf_pool_resize(): Simplify the fault injection for innodb.buf_pool_resize_oom. innodb.buf_pool_resize_oom: Use a small buffer pool. innodb.innodb_buffer_pool_load_now: Make use of the sequence engine, to avoid creating explicit InnoDB record locks. Clean up the accesses to information_schema.innodb_buffer_page_lru.
-
Jan Lindström authored
-
Jan Lindström authored
-
https://github.com/codership/mariadb-serverJan Lindström authored
Merge branch '10.4-MDEV-19966' of https://github.com/codership/mariadb-server into codership-10.4-MDEV-19966
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 18 Mar, 2020 5 commits
-
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Alexey Botchkov authored
Tests fixed. MBR::Within() function fixed.
-
Thirunarayanan Balathandayuthapani authored
- This issue is caused by MDEV-19176 (bba59abb). - Problem is that there is miscalculation of available memory during recovery if innodb_buffer_pool_instances > 1. - Ignore the buffer pool instance while calculating available_memory - Removed recv_n_pool_free_frames variable and use buf_pool_get_n_pages() instead.
-
Oleksandr Byelkin authored
-
- 17 Mar, 2020 8 commits
-
-
Monty authored
Added options: --datadir --ignore-control-file --require-control-file - Improved error messages if open fails - If control file can't be found/opened, assume that all rows in the tables are commited.
-
Marko Mäkelä authored
Temporary tables are typically short-lived, and temporary tables are assumed to be accessed only by the thread that is handling the owning connection. Hence, they must not be subject to defragmenting. ha_innobase::optimize(): Do not add temporary tables to the defragment_table() queue.
-
Thirunarayanan Balathandayuthapani authored
AUTO_INCREMENT values are nondeterministic after crash recovery. While MDEV-6076 guarantees that the AUTO_INCREMENT values of committed transactions will not roll back, it is possible that the AUTO_INCREMENT values will be durably incremented for incomplete transactions. So changing the test case to avoid showing the result of AUTO_INCREMENT value.
-
Monty authored
Problem was that replace_dynstr_append_mem() assumed strings are null terminated which is not always the case.
-
Alexey Botchkov authored
Error message now shows the whole value.
-
Marko Mäkelä authored
Rows_log_event::change_to_flashback_event(): Reduce the scope of the variable swap_buff2, and do not duplicate conditions. GCC 9.3.0 flagged the -Wmaybe-uninitialized when compiling the 10.5 branch using cmake -DWITH_ASAN=ON -DCMAKE_CXX_FLAGS=-O2
-
Igor Babaev authored
'index_merge_sort_union=off' When index_merge_sort_union is set to 'off' and index_merge_union is set to 'on' then any evaluated index merge scan must consist only of ROR scans. The cheapest out of such index merges must be chosen. This index merge might not be the cheapest index merge.
-
Monty authored
This was to remove a performance regression between 10.3 and 10.4 In 10.5 we will have a better implementation of records_in_range that will enable us to get more statistics. This change was not done in 10.4 because the 10.5 will be part of a larger change that is not suitable for the GA 10.4 version Other things: - Changed default handler block_size to 8192 to fix things statistics for engines that doesn't set the block size. - Fixed a bug in spider when using multiple part const ranges (Patch from Kentoku)
-
- 16 Mar, 2020 7 commits
-
-
Vladislav Vaintroub authored
It did not work, eventhough the default for Windows was changed to 1 for the corresponding system variable. This be because test_flags was zeroed mysql_init_variables. The patch fixes this glitch.
-
Petr Vaněk authored
Function os_file_get_last_error_low returns error number + OS_FILE_ERROR_MAX (which is currently set to 200) for unknown numbers to this program.
-
Monty authored
This should fix the following failure: + Warnings: + Warning 1639 debug sync point wait timed out
-
Marko Mäkelä authored
mi_records_in_range(): Because HA_POS_ERROR cannot be accurately represented in double (it will be off by one), add an explicit cast to silence the warning.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-