- 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.
-
- 23 Apr, 2020 1 commit
-
-
Elena Stepanova authored
-
- 17 Apr, 2020 2 commits
-
-
Marko Mäkelä authored
maria_page_crc_check_index(): Do not attempt to convert HA_ERR_WRONG_CRC (176) to my_bool (char). On platforms where char is signed, the 176 will be converted to -80. It turns out that the callers only care whether the result is zero. Let us return 1 in this case, like we do in all other error cases.
-
Marko Mäkelä authored
Several tests that involve stored procedures fail on 10.4 kvm-asan (clang 10) due to stack overrun. The main contributor to this stack overrun is mysql_execute_command(), which is invoked recursively during stored procedure execution. Rebuilding with cmake -DWITH_WSREP=OFF shrunk the stack frame size of mysql_execute_command() by more than 10 kilobytes in a WITH_ASAN=ON, CMAKE_BUILD_TYPE=Debug build. The culprit turned out to be the macro WSREP_LOG, which is allocating a separate 1KiB buffer for every occurrence. We replace the macro with a function, so that the stack will be allocated only when the function is actually invoked. In this way, no stack space will be wasted by default (when WSREP and Galera are disabled). This backports commit b6c5657e from MariaDB 10.3.1. Without ASAN, compilers can be smarter and optimize the stack usage. The original commit message mentions that 1KiB was saved on GCC 5.4, and 4KiB on Mac OS X Lion, which presumably uses a clang-based compiler.
-
- 16 Apr, 2020 2 commits
-
-
Varun Gupta authored
-
Varun Gupta authored
-
- 15 Apr, 2020 2 commits
-
-
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. This is a backport of commit b8b3edff.
-
Marko Mäkelä authored
For some reason, when mbstream is compiled with GCC 10, ld will fail to link it due to a multiple definition of datasink_buffer. The code appears to have been like that since the very beginning. Let us remove the duplicate dummy definition.
-
- 14 Apr, 2020 2 commits
-
-
Daniel Black authored
Windows GNU patch 2.7.6 is ok without it. So account for the old buildbot version for now. Linux works without it. --binary fails on FreeBSD-12.0: $ patch --version patch 2.0-12u11 FreeBSD $ patch --binary patch: unrecognized option `--binary'
-
Marko Mäkelä authored
-
- 13 Apr, 2020 4 commits
-
-
Vicențiu Ciorbaru authored
This reverts commit 1749a689. The reason why we need --binary for patch is because of a bug in patch.exe 2.5.9. We need to supply binary otherwise the patch program crashes.
-
Vicențiu Ciorbaru authored
Tests will fail otherwise. Backport change from: 867809f2
-
Daniel Black authored
Include CMAKE_C{XX,}_FLAGS=/W0 as 10k warnings exist in 10.1 branch which cause the build to fail.
-
Daniel Black authored
This causes problems on FreeBSD which doesn't have a patch that supports this. Linux and Windows don't require it either. Was added in c3987707 without explaination.
-
- 08 Apr, 2020 2 commits
-
-
Varun Gupta authored
When index_merge_sort_union is turned off only ror scans were considered for range scans, which is wrong. To fix the problem ensure both ror scans and non ror scans are considered for range access
-
Julius Goryavsky authored
When trying to start mariadb via systemctl, WSREP failed to start mysqld for wsrep recovery, because the binary "galera-recovery" is neither searching the mysqld in the same folder as the binary itself nor in the path variable but instead expects the root to be /usr/local/mysql. This fix changes the current directory to the desired directory before starting mysqld.
-
- 07 Apr, 2020 1 commit
-
-
Rasmus Johansson authored
A new parameter has been added called xml-report, with which the filename of the XML file is given to which the XML result is written. There is also xml-package for adding a package value in the XML output. Example usage: ./mysql-test-run.pl main.events_bugs innodb.count_distinct main.explain_json innodb.file_format_defaults json.json_no_table --suite=main,innodb,json --force --xml-report=build123456789.xml --xml-package=simpletestrun
-
- 05 Apr, 2020 1 commit
-
-
Alexander E. Patrakov authored
The log file is opened as root since commit bb7a70c9, so there is no need to chown it.
-
- 03 Apr, 2020 1 commit
-
-
Hannu Hartikainen authored
It took me a long time to debug why my configs were not being loaded, and judging from online discussions I'm not the only one. Make the comment in the default my.cnf a bit more helpful. The !includedir directive is implemented in mysys/my_default.c. - f_extensions[] is a list of file extensions. It includes .ini and .cnf on Windows, and only .cnf on all other platforms. - search_default_file_with_ext() contains the !includedir directive. It filters files in the directory to those matching f_extensions[]. This file should only be applicable on Unix-like platforms, so only files with the .cnf extension are read. Closes #1485
-
- 01 Apr, 2020 2 commits
-
-
Marko Mäkelä authored
Let us enable all GCC and clang warnings independently of the MYSQL_MAINTAINER_MODE setting for both Debug and RelWithDebInfo builds, and have MYSQL_MAINTAINER_MODE only enable -Werror. The default setting of MYSQL_MAINTAINER_MODE=AUTO will continue to apply the -Werror only to CMAKE_BUILD_TYPE=Debug. To build a debug version without -Werror, MYSQL_MAINTAINER_MODE=OFF can be used.
-
Marko Mäkelä authored
-
- 25 Mar, 2020 2 commits
-
-
Oleksandr Byelkin authored
--ignore-table-data parameter added.
-
Thirunarayanan Balathandayuthapani authored
FOREIGN_KEY_CHECKS is disabled - dict_foreign_find_index() can return NULL if InnoDB already dropped the foreign index when FOREIGN_KEY_CHECKS is disabled.
-
- 24 Mar, 2020 1 commit
-
-
Vladislav Vaintroub authored
-
- 23 Mar, 2020 1 commit
-
-
Sergei Golubchik authored
these three SHOW statements (and more) are issued from include/analyze-sync_with_master.test too. no need to do it twice.
-
- 20 Mar, 2020 1 commit
-
-
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++.
-
- 15 Mar, 2020 1 commit
-
-
Igor Babaev authored
This bug could manifest itself in a very rare cases when the optimizer chose an execution plan by which a joined table was accessed by a table scan and the optimizer was checking whether ranges checked for each record could improve this plan. In such cases the optimizer evaluates range conditions over a table that depend on other tables. For such conditions the constructed SEL_ARG trees are marked as MAYBE_KEY. If a SEL_ARG object constructed for a sargable condition marked as RANGE_KEY had the same first key part as a MAYBE_KEY SEL_ARG object and the key_and() function was called for this pair of SEL_ARG objects then an invalid SEL_ARG object could be constructed that ultimately could lead to a crash before the execution phase.
-
- 14 Mar, 2020 2 commits
-
-
Sergei Golubchik authored
to work better for CPUs with more than 2000 bogomips. old behavior is preserved if less than 2500 bogomips.
-
Sergei Golubchik authored
see e.g. `add_to_status()`
-