- 05 Jan, 2017 2 commits
-
-
Elena Stepanova authored
When the test is run as a part of the suite with valgrind, only allow it to be executed if --big-test is set. If the test is run by specifying its name explicitly, it will still be executed, even with valgrind without big-test, MTR has special logic for that
-
Elena Stepanova authored
The guilty part of the test checks for performance degradation on a query with numerous joins on an empty table. The test expects the query to take less than 1 second, and fails if it is not so (which can happen on very slow builders). The solution is to add more JOINs to the query. On a fixed server, it should not have any noticeable impact on the query execution, while on the unfixed version the query would take several times longer (e.g. 6.5 sec vs 1.5 sec). Thus, we can increase the margin for the error, and make the test fail when the query takes longer than 5 seconds.
-
- 04 Jan, 2017 3 commits
-
-
Sergei Golubchik authored
correct the error message in case of setuid/setgid failures
-
Elena Stepanova authored
Backport the fix to 5.5, because it fails there too The patch fixes two test failures: - on slow builders, sometimes a connection attempt which should fail due to the exceeded number of thread_pool_max_threads actually succeeds; - on even slow builders, MTR sometimes cannot establish the initial connection, and check-testcase fails prior to the test start The problem with check-testcase was caused by connect-timeout=2 which was set for all clients in the test config file. On slow builders it might be not enough. There is no way to override it for the pre-test check, so it needed to be substantially increased or removed. The other problem was caused by a race condition between sleeps that the test performs in existing connections and the connect timeout for the connection attempt which was expected to fail. If sleeps finished before the connect-timeout was exceeded, it would allow the connection to succeed. To solve each problem without making the other one worse, connect-timeout should be configured dynamically during the test. Due to the nature of the test (all connections must be busy at the moment when we need to change the timeout, and cannot execute SET GLOBAL ...), it needs to be done independently from the server. The solution: - recognize 'connect_timeout' as a connection option in mysqltest's "connect" command; - remove connect-timeout from the test configuration file; - use the new connect_timeout option for those connections which are expected to fail; - re-arrange the test flow to allow running a huge SLEEP without affecting the test execution time (because it would be interrupted after the main test flow is finished). The test is still subject to false negatives, e.g. if the connection fails due to timeout rather than due to the exceeded number of allowed threads, or if the connection on extra port succeeds due to a race condition and not because the special logic for the extra port. But those false negatives have always been possible there on slow builders, they should not be critical because faster builders should catch such failures if they appear. Conflicts: client/mysqltest.cc mysql-test/r/pool_of_threads.result mysql-test/t/pool_of_threads.test
-
Elena Stepanova authored
main.log_slow might leave mysql.slow_log table non-empty, and tests which later use it might fail. Make sure that the table is properly truncated
-
- 24 Dec, 2016 1 commit
-
-
Daniel Bartholomew authored
-
- 22 Dec, 2016 7 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
and use is_supported_parser_charset() instead of direct check
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Varun Gupta authored
In file sql/filesort.cc,when merge_buffers() is called then - queue_remove(&queue,0) is called - For the function queue_remove there is assertion states that the element to be removed should have index >=1 - this is causing the assertion to fail. Fixed by removing the top element.
-
- 21 Dec, 2016 1 commit
-
-
Alexander Barkov authored
MDEV-10386 Assertion `fixed == 1' failed in virtual String* Item_func_conv_charset::val_str(String*) The patch b96c196f added a new call for safe_charset_converter() without a corresponding fix_fields(). In case of a sub-query the created Item remained in non-fixed state. The problem did not show up with literal derived expressions, only subselects were affected. This patch adds a corresponding fix_fields() to the previously added safe_charset_converter().
-
- 20 Dec, 2016 4 commits
-
-
Sergey Vojtovich authored
Added test case.
-
Ronak Jain authored
-
Vladislav Vaintroub authored
Do not use 0x%p to output thd address, use %p
-
Oleksandr Byelkin authored
count duplicate of UNION SELECT separately to awoid influence on lokal LIMIT clause.
-
- 19 Dec, 2016 4 commits
-
-
Sergei Petrunia authored
Fix st_select_lex::is_merged_child_of to work across merged views or derived tables.
-
Sergei Petrunia authored
The bug occurred when a subquery - has a reference to outside, to grand-parent query or further up - is converted to a semi-join (i.e. merged into its parent). Then the reference to outside had form Item_ref(Item_field(...)). - Conversion to semi-join would call item->fix_after_pullout() for the outside reference. - Item_ref::fix_after_pullout would call Item_field->fix_after_pullout - The Item_field would construct a new Name_resolution_context object This process ignored the fact that the Item_field does not belong to any of the subselects being flattened. The result was crash in the next call to Item_field::fix_fields(), where we would try to use an invalid Name_resolution_context object. Fixed by not creating Name_resolution_context object if the Item_field's context does not belong to the subselect(s) that were flattened.
-
Alexey Botchkov authored
MDEV-10274 Bundling insert with create statement for table with unsigned Decimal primary key issues warning 1194. Flags are important for key_length calculations, so them should be set before it, not after.
-
Alexander Barkov authored
This change is a backport from 10.0 to 5.5 for: 1. The full patch for: MDEV-4841 Wrong character set of ADDTIME() and DATE_ADD() 9adb6e99 2. A small fragment of: MDEV-5298 Illegal mix of collations on timestamp 03f6778d which overrides Item_temporal_hybrid_func::cmp_type(), and adds a new line into cache_temporal_4265.result.
-
- 17 Dec, 2016 1 commit
-
-
iangilfillan authored
-
- 16 Dec, 2016 4 commits
-
-
Sergei Golubchik authored
double the timeout for threads to die on shutdown
-
Sergei Golubchik authored
some trivial simplifications. drinking the ocean, one drop at a time
-
Sergei Golubchik authored
MDEV-11552 Queries executed by event scheduler are written to slow log incorrectly or not written at all because thd->update_server_status() is used to measure the query time for the slow log (not only to set protocol level flags), it needs to be called also when the server isn't going to send anything to the client.
-
Alexey Botchkov authored
MySQL has a bug failing to handle MYSQL_THDVAR_STR(... PLUGIN_VAR_NOSYSVAR | PLUGIN_VAR_NOCMDOPT | PLUGIN_VAR_MEMALLOC) so fall back to just PLUGIN_VAR_READONLY | PLUGIN_VAR_MEMALLOC whem MySQL started.
-
- 10 Dec, 2016 1 commit
-
-
Elena Stepanova authored
-
- 08 Dec, 2016 2 commits
-
-
Sergei Golubchik authored
MDEV-10713: signal 11 error on multi-table update - crash in handler::increment_statistics or in make_select or assertion failure pfs_thread == ((PFS_thread*) pthread_getspecific((THR_PFS))) Different fix. Don't allow Item_func_sp to be evaluated unless all tables are prelocked. Extend the test case to make sure Item_func_sp::val_str is called (the table must have at least one row for that).
-
Sergei Golubchik authored
Revert "MDEV-10713: signal 11 error on multi-table update - crash in handler::increment_statistics or in make_select or assertion failure pfs_thread == ((PFS_thread*) pthread_getspecific((THR_PFS)))" This reverts commit 035a5ac6. Two minor problems and one regression: 1. caching the value in str_result. Other Item methods may use it, destroying the cache. See, for example, Item::save_in_field, where str_result is moved to use a local buffer (this failed main.grant) 2. Item_func_conv_charset::safe is now set too late, it's initialized only in val_str() but checked before that, this failed many tests in optimized builds. to fix 1 - use tmp_result instead of str_result, to fix 2, use the else branch in the Item_func_conv_charset constructor to set safe purely from charset properties. But this introduces a regression, constant strings can no longer be converted, say, from utf8 to latin1 (because 'safe' will be false). This fails few tests too. There is no way to fix it without reverting the commit and converting constants, as before, in the constructor.
-
- 07 Dec, 2016 2 commits
-
-
Sergei Golubchik authored
truncate unused IO_CACHE backing store files in binlog_cache_data to release the disk space they were occupying
-
Alexey Botchkov authored
Rpl_filter::parse_filter_rule() made NULL-safe.
-
- 06 Dec, 2016 4 commits
-
-
Oleksandr Byelkin authored
check for VIEW/DERIVED fields
-
Oleksandr Byelkin authored
MDEV-10713: signal 11 error on multi-table update - crash in handler::increment_statistics or in make_select or assertion failure pfs_thread == ((PFS_thread*) pthread_getspecific((THR_PFS))) Move expression execution out of Item constructor.
-
Oleksandr Byelkin authored
Exclude untouched in prepare phese subqueries from the select/unit tree because they became unreachable by execution.
-
Alexander Barkov authored
The problem was that null_value was not set to "false" on a well-formed row. If an ill-formed row was followed by a well-forned row, null_value remained "true" in the call of Item::send() for the well-formed row.
-
- 05 Dec, 2016 2 commits
-
-
Sergei Golubchik authored
Check for readline before checking for curses headers, because MYSQL_CHECK_READLINE fails when curses is not found, but CHECK_INCLUDE_FILES simply remembers the fact and continues. So if there's no curses, MYSQL_CHECK_READLINE will abort, the user will then installs curses and continue the build. Thus, CHECK_INCLUDE_HEADERS will remember that there is no curses, but other checks from MYSQL_CHECK_READLINE will remember that curses are there. It will result in inconsistent HAVE_xxx defines.
-
Sergei Golubchik authored
-
- 03 Dec, 2016 2 commits
-
-
Sergei Golubchik authored
Don't assume that a word of n bytes can match a word of at most n * charset->mbmaxlen bytes, always go for the worst.
-
Sergei Golubchik authored
-