- Fixed some issues with partitions and connection_string, which also fixed lp:716890 "Pre- and post-recovery crash in Aria"
- Fixed wrong assert in Aria
Now need to merge with latest xtradb before pushing
sql/ha_partition.cc:
Ensure that m_ordered_rec_buffer is not freed before close.
sql/mysqld.cc:
Changed to use opt_stack_trace instead of opt_pstack.
Removed references to pstack
sql/partition_element.h:
Ensure that connect_string is initialized
storage/maria/ma_key_recover.c:
Fixed wrong assert
for --list_files in mysqltest.
client/mysqltest.cc:
Backported --replace_result for --list_files.
mysql-test/r/mysqltest.result:
updated test.
mysql-test/t/mysqltest.test:
added test for replace_result on list_files.
Added --enable-connect-log, somewhet similar to --enable-query-log
If query log is disabled, disable connect log too
Also some related cleanup in mysqltest.test: removing duplicate test loop
if() treated any non-numeric string as false
Fixed to treat those as true instead
Added some test cases
Fixed missing $ in variable name in include/mix2.inc
valgrind pointed to a buffer allocated by my_realloc which looked fishy
Replaced size with what was probably intended, added test case.
Now also fixed line after review comment
mysql-test/r/func_misc.result:
Move test that requires query cache from main.func_misc to main.query_cache.
mysql-test/r/mysqltest.result:
Fix test failure due to race.
This test case creates > 300 connections in a tight loop, and depending on thread
scheduling and load, even though each connection is immediately disconnected
before connecting the next one, the server max connections may still be exceeded
due to server not being able to free old connections as fast as new ones are made.
mysql-test/r/query_cache.result:
Move test that requires query cache from main.func_misc to main.query_cache.
Move test that requires query cache from main.variables to main.query_cache.
mysql-test/r/query_cache_notembedded.result:
Move test that requires query cache from main.sp_notembedded to main.query_cache_notembedded.
mysql-test/r/sp_notembedded.result:
Move test that requires query cache from main.sp_notembedded to main.query_cache_notembedded.
mysql-test/r/udf.result:
Move test in main.udf that requires query cache to separate file.
mysql-test/r/udf_query_cache.result:
Move test in main.udf that requires query cache to separate file.
mysql-test/r/variables.result:
Move test that requires query cache from main.variables to main.query_cache.
mysql-test/suite/funcs_1/datadict/processlist_val.inc:
Fix race where result file may show state "cleaning up" in the small window
between setting COMMAND to 'Sleep' and clearing STATE.
mysql-test/suite/rpl/r/rpl_temporary.result:
Fix race with suppression of warning message by fixing the test to not generate the
warning message in the first place.
Problem was a race between creating an anonymous account and resetting the slave.
If the slave reset happens before replicating the account, the subsequest deletion
of the account will fail to replicate correctly due to missing row.
mysql-test/suite/rpl/t/rpl_temporary.test:
Fix race with suppression of warning message by fixing the test to not generate the
warning message in the first place.
Problem was a race between creating an anonymous account and resetting the slave.
If the slave reset happens before replicating the account, the subsequest deletion
of the account will fail to replicate correctly due to missing row.
mysql-test/t/func_misc.test:
Move test that requires query cache from main.func_misc to main.query_cache.
Move test that requires query cache from main.variables to main.query_cache.
mysql-test/t/mysqltest.test:
Fix test failure due to race.
This test case creates > 300 connections in a tight loop, and depending on thread
scheduling and load, even though each connection is immediately disconnected
before connecting the next one, the server max connections may still be exceeded
due to server not being able to free old connections as fast as new ones are made.
mysql-test/t/query_cache.test:
Move test that requires query cache to main.query_cache.
mysql-test/t/query_cache_notembedded.test:
Move test that requires query cache from main.sp_notembedded to main.query_cache_notembedded.
mysql-test/t/sp_notembedded.test:
Move test that requires query cache from main.sp_notembedded to main.query_cache_notembedded.
mysql-test/t/udf.test:
Move test in main.udf that requires query cache to separate file.
mysql-test/t/udf_query_cache-master.opt:
Move test in main.udf that requires query cache to separate file.
mysql-test/t/udf_query_cache.test:
Move test in main.udf that requires query cache to separate file.
mysql-test/t/variables.test:
Move test that requires query cache from main.variables to main.query_cache.
tests/mysql_client_test.c:
In tests that require query cache, skip the test if query cache not available.
Do this dynamically rather than using HAVE_QUERY_CACHE, as there is no guarantee
that the server we run against was compiled with same preprocessor #define as
the mysql_client_test program (and since it is trivial to check dynamically).
a "if"
Bug #41913 mysqltest cannot source files from if inside while
Some commands require additional processing which only works first time
Keep content for write_file or append_file with the st_command struct
Add tests for those cases to mysqltest.test
Replaced Unix calls with mysql-test-run's built-in functions / SQL manipulation where possible.
Replaced error codes with error names as well.
Disabled two tests on Windows due to more complex Unix command usage
See Bug#41307, Bug#41308
Problem: In the mysqltest language, it was not possible to set the current
connection from a variable, and it was not possible to read the current
connection.
Fix: Allow setting the connection from a variable, like:
connection $variable;
and introduce the mysqltest language variable $CURRENT_CONNECTION, which
holds the name of the current connection.
client/mysqltest.cc:
- Made select_connection use the common argument parser instead of its own
home-rolled version. That allows variable expansion, for instance.
- Made select_connection_name set the variable $CURRENT_CONNECTION, so that
test scripts can use that.
- Refactored a bit so that stuff that needs to be done when changing connection
is located to one place.
mysql-test/t/mysqltest.test:
Added test case for $CURRENT_CONNECTION and "connection $variable"
mysqltest disconnect/connect-combo could be so
quick that connect would hit the server before
it had processed the disconnect. Since that
resulted in one more concurrent connection than
we meant to have, global or per-user
max-user-connections could be exceeded.
This could lead to "random" failures in tests
that set those limits.
client/mysqltest.c:
Retry max-connect-retries times if connect in
connect_n_handle_errors() unexpectedly fails
on connection-limit as this could be a race.
Break out code that checks for expected --errors
into its own function.
mysql-test/r/mysqltest.result:
show that we throw a warning if test expects a SQL-state from
a command (diff_files, ...) that clearly can't produce one.
mysql-test/t/disabled.def:
re-enable user_limits
mysql-test/t/mysqltest.test:
show that we throw a warning if test expects a SQL-state from
a command (diff_files, ...) that clearly can't produce one.
The problem is that relying on the output of the 'ls' command is not
portable as its behavior is not the same between systems and it might
even not be available at all in (Windows).
So I added list_files that relies on the portable mysys library instead.
(and also list_files_write_file and list_files_append_file,
since the test was using '--exec ls' in that way.)
client/mysqltest.c:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
To be able to replace the use of '--exec ls' I have added
list_files, list_files_write_file and list_files_append_file.
list_files <dirname> [<filename incl. wild-cards>]
is equivalent to 'ls <dirname>/[<filename incl. wild-cards>]'
list_files_write_file creates/overwrites a file with the content
list_files_append_file creates/appends a file with the content
list_files* return a sorted output.
mysql-test/r/mysqltest.result:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
result file change, due to added test of the new list_files command.
mysql-test/suite/parts/inc/partition_check_drop.inc:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Using the new list_files instead of 'ls'.
Changed the use of local variables (ls_file, file_list)
and server variable (@aux).
mysql-test/suite/parts/inc/partition_layout.inc:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Using the new list_files instead of 'ls'.
mysql-test/suite/parts/inc/partition_layout_check1.inc:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Using the new list_files instead of 'ls'.
mysql-test/suite/parts/inc/partition_layout_check2.inc:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Replaces '--exec ls' with list_files.
Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Replaces '--exec ls' with list_files.
Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_alter1_1_myisam.result:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Replaces '--exec ls' with list_files.
Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_alter1_2_myisam.result:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Replaces '--exec ls' with list_files.
Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_alter2_myisam.result:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Replaces '--exec ls' with list_files.
Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_alter3_innodb.result:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Replaces '--exec ls' with list_files.
Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_alter3_myisam.result:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Replaces '--exec ls' with list_files.
Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_basic_innodb.result:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Replaces '--exec ls' with list_files.
Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_basic_myisam.result:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Replaces '--exec ls' with list_files.
Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_basic_symlink_myisam.result:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Replaces '--exec ls' with list_files.
Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_engine_myisam.result:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Replaces '--exec ls' with list_files.
Removal of the directory part of file listing.
mysql-test/suite/parts/r/partition_syntax_myisam.result:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Replaces '--exec ls' with list_files.
Removal of the directory part of file listing.
mysql-test/t/mysqltest.test:
Bug#35736 Test 'parts.partition_basic_symlink_myisam' depends on output of 'ls'
Adding test for the new mysqltest commands list_files,
list_files_write_file and list_files_append_file.
100% effectively on Windows
The mysqltest docs state that the 'replace_result' command
doesn't perform any escape processing.
However the current implementation was processing backslash
escapes in the from/to strings.
This prevents replacing e.g. patch on windows (where backslash
is used as a path separator).
Fixed by removing the backslash escape processing from
'replace_result'.
client/mysqltest.c:
Bug #36041: remove the escape processing from --replace_result
mysql-test/r/mysqltest.result:
Bug #36041: test case
mysql-test/t/mysqltest.test:
Bug #36041: test case