When using CREATE TEMPORARY TABLE LIKE to create a temporary table,
or using TRUNCATE to delete all rows of a temporary table, they
did not set the tmp_table_used flag, and cause the omission of
"SET @@session.pseudo_thread_id" when dumping binlog with mysqlbinlog,
and cause error when replay the statements.
This patch fixed the problem by setting tmp_table_used in these two
cases. (Done by He Zhenxing 2009-01-12)
When a MEMORY table is full the error is returned to client but not written
to error log.
Fixed the handler api to write the error mesage to error log when the table is
full.
Note: No TestCase included as testing the error log is non-trivial.
The fix for BUG#20103 "Escaping with backslash does not work as expected"
was implemented too greedy though in that it not only changes the behavior
of backslashes within strings but in general, so disabling command shortcuts
like \G or \C (which in turn leads to Bug #36391: "mysqlbinlog creates invalid charset
statements").
The fix allows the escaping with backslash to take place only inside a string,
thus enabling the execution of command shortcuts and presevering the fix for
BUG#20103.
- Make a rough filtering of the servers error log and write
all suspicious warnings to $error_log.warnings
The .warnings file is then examined more carefully by check_warnings.test
- This will speed things up, doing all of this in a server running
under valgrind takes far too long time.
- Add a "skip-ssl=1" to [mysqltest] section so that
mysqltest will not run with ssl turned on by default
but stil be able to turn it on when requested
- This avoids that check_warnings and check_testcase
connects to the server woth SSL turned on
Fixing pb failures caused by mtr invokes the test with --tmpdir to which
there are sensitive operations in the test
and setup_fake_relay_log.inc also needed --secure-file-priv for its own separate
directory.
Fixed with removing SELECT INTO OUTFILE and deploying --exec echo instead in the marco.
The test's opt file should contain --secure-file-priv=$MYSQL_TEST_DIR as the test
operations deal with files located in $MYSQL_TEST_DIR.
The test fails with timeout when applying diff on two tables.
In this test case, there can be a situation when the slave is not yet synced
with the master, thence the changes may not be on the slave at diff time.
This patch addresses this issue by synchronizing master and slave before the
diff takes place.
Overriding a default value of --secure-file-priv on pb.mtr to be $MYSQLTEST_VARDIR which
makes pb's mtr happy to execute the regression test for the bug.
- rewrite "check warnings" to be faster by not creating a full join
between error_log and suspicious_patterns while running REGEXP.
Instead add a column to error_log that will be set to 1 to indicate
a warning and run the 6 REGEXP's we have for suspicious lines as
6 separate full table scans.
- Remove the "suspicious_patterns" table from mtr db
- Use 'xykls37' as separator when loading the error log, that line should
hopefully never exist in a line that should be a warning
myisam_repair_threads > 1 causes crash
Problem: parallel repair (myisam_repair_threads > 1) of a myisam
table with two or more fulltext keys that use the same parser may
lead to a server crash. ALTER TABLE ENABLE KEYS is affected as well.
Fix: properly initialize fulltext structures for parallel repair.
Note: 1. there's no deterministic test case.
2. now we call parser->init() for each fulltext key
(not for each fulltext parser used).
- Clear test variables "comment" and "logfile" to make sure thay aren't
already set from previous run of same test
- Print warning if test result already set and set it anyway
in trigger
Interchangeable calls to the mysql_change_user client function
and invocations of a trigger changing some user variable caused
a memory corruption and a crash.
The mysql_change_user API call forces TDH::cleanup() on a server
that frees user variable entries.
However it didn't reset Item_func_set_user_var::entry to NULL
because Item_func_set_user_var::cleanup() was not overloaded.
So, Item_func_set_user_var::entry held a pointer to freed memory,
that caused a crash.
The Item_func_set_user_var::cleanup method has been overloaded
to cleanup the Item_func_set_user_var::entry field.