As I cannot be 100% sure that there won't be issues with some of our exotic platforms
(who knows if the charset of <obscure old OS> will play fair?), I'll send an email to the build guys.
Well, this holds if bk does not crash on binary chars of this cset.
BitKeeper/etc/ignore:
Added support-files/my-innodb-heavy-4G.cnf to the ignore list
mysql-test/r/union.result:
drop table added
mysql-test/t/union.test:
drop table added
Added a test case for bug #5333.
null_key.result, key_primary.result:
Made covering index usable for const tables.
sql_select.cc:
Made covering index usable for const tables:
downported the corresponding code from 4.1.
Simultaneously fixed bug #5333 reported for 4.1.
The bug was due to the fact that field index in join
structures was always set to 0 for const tables.
sql/sql_select.cc:
Made covering index usable for const tables:
downported the corresponding code from 4.1.
Simultaneously fixed bug #5333 reported for 4.1.
The bug was due to the fact that field index in join
structures was always set to 0 for const tables.
mysql-test/t/select.test:
Added a test case for bug #5333.
mysql-test/r/key_primary.result:
Made covering index usable for const tables.
mysql-test/r/null_key.result:
Made covering index usable for const tables.
mysql-test/r/select.result:
Added a test case for bug #5333.
with the sleep value we use for the test suite run during the
release builds
BitKeeper/deleted/.del-flush_block_commit-master.opt~3bcd295d5bf68796:
Delete: mysql-test/t/flush_block_commit-master.opt
Initialize LOG_error_log before get_options to not use an uninitalized mutex in case of an error from handle_options()
mysql-test/r/lowercase_table.result:
Changed foo database -> mysqltest
More test cases
mysql-test/t/lowercase_table.test:
Changed foo database -> mysqltest
More test cases
mysys/my_getopt.c:
Fix new code to use MySQL indentation style
sql/log.cc:
Change to use MySQL indentation style and naming conventions
Remove usage of strlen() and strcat()
sql/mysqld.cc:
Initialize LOG_error_log before get_options to not use an uninitalized mutex in case of an error from handle_options()
sql/sql_base.cc:
Added comment
sql/table.cc:
Added #if MYSQL_VERSION_ID < 40100 to ensure code is merged correctly
lowercase_table.result:
New results for modified lowercase_table test
lowercase_table.test:
Added test case for all uppercase database when running under lower_case_table_names. This really only failed under Windows. Bug# 4792
mysql-test/t/lowercase_table.test:
Added test case for all uppercase database when running under lower_case_table_names. This really only failed under Windows. Bug# 4792
mysql-test/r/lowercase_table.result:
New results for modified lowercase_table test
mysql-test/r/func_set.result:
Fix for bug #4340: find_in_set is case insensitive even on binary operators
mysql-test/t/func_set.test:
Fix for bug #4340: find_in_set is case insensitive even on binary operators
sql/item_func.cc:
Fix for bug #4340: find_in_set is case insensitive even on binary operators
(ok'd by CTO to fix it in 4.0).
Fix to make mysql-test-run work with all Valgrind versions.
mysql-test/mysql-test-run.sh:
fixing mysql-test-run.sh so that it works indifferently with Valgrind 1.x, 2.x
(versions <= 2.0.0 refuse --tool option; versions >=2.1.2 require it; 2.1.0 accepts it).
I hope the shell code is portable enough; anyway Valgrind only runs on Linux...
I tested it with 2.0.0, 2.1.0, 2.1.2.
mysql-test/r/truncate.result:
result update
mysql-test/t/truncate.test:
testing if TRUNCATE resets autoinc counter for temp tables (BUG#5033); testing difference with DELETE FROM.
sql/sql_delete.cc:
in mysql_truncate(), always reset the autoinc counter, as manual says (even if it's a temp table, which was BUG#5033).
mysql-test/r/variables.result:
Test case for BUG#5135, check that setting log_warnings actually works.
mysql-test/t/variables.test:
Test case for BUG#5135, check that setting log_warnings actually works.
sql/mysqld.cc:
Set a max value for log_warnings, so se can set it to something other than 0.
Added test case for bug #4256.
join_outer.result:
Fixed bug #4256.
item_cmpfunc.h:
Fixed inconsistency of values of used_tables_cache and
const_item_cache for Item_func_isnull objects.
This inconsistency caused bug #4256.
sql/item_cmpfunc.h:
Fixed inconsistency of values of used_tables_cache and
const_item_cache for Item_func_isnull objects.
This inconsistency caused bug #4256.
mysql-test/r/join_outer.result:
Fixed bug #4256.
mysql-test/r/null.result:
Added test case for bug #4256.
mysql-test/t/null.test:
Added test case for bug #4256.
in a deadlock-free manner. This splits locking the global read lock in two steps.
This fixes a consequence of this bug, known as:
BUG#4953 'mysqldump --master-data may report incorrect binlog position if using InnoDB'
And a test.
sql/handler.cc:
making COMMIT wait if FLUSH TABLES WITH READ LOCK happened.
sql/lock.cc:
an additional stage so that FLUSH TABLES WITH READ LOCK blocks COMMIT:
make_global_read_lock_block_commit():
taking the global read lock is TWO steps (2nd step is optional; without
it, COMMIT of existing transactions will be allowed):
lock_global_read_lock() THEN make_global_read_lock_block_commit().
sql/mysql_priv.h:
new argument to wait_if_global_read_lock()
sql/sql_class.h:
THD::global_read_lock now an uint to reflect the 2 steps of global read lock (does not block COMMIT / does)
sql/sql_db.cc:
update for new prototype
sql/sql_parse.cc:
implementing the two steps of global read lock so that FLUSH TABLES WITH READ LOCK can block COMMIT without deadlocking with COMMITs.
replacing the no_log argument of mysql_create_table() by some safer method
(temporarily setting OPTION_BIN_LOG to 0) which guarantees that even the automatic
DELETE FROM heap_table does not get into the binlog when a not-yet-existing HEAP table
is opened by mysql_create_table().
mysql-test/r/rpl_heap.result:
result update
mysql-test/t/rpl_heap.test:
testing a bug
sql/log.cc:
new class Disable_binlog used to temporarily disable binlogging for one thread.
sql/mysql_priv.h:
removing argument no_log from mysql_create_table(); no_log was perfect as some
binlogging could still be done by open_unireg_entry() for a HEAP table.
sql/sql_class.h:
new class Disable_binlog used to temporarily disable binlogging for one thread.
sql/sql_parse.cc:
removing no_log
sql/sql_table.cc:
removing no_log from mysql_create_table(); instead using new class Disable_binlog.
Disabling binlogging in some cases, where the binlogging is done later by some other code
(case of CREATE SELECT and ALTER).
from the select list and TEXT field
make setup_copy_fields to insert Item_copy_string for blobs in
the beginning of the copy_funcs (push_back instead of push_front)
the thing is that Item_copy_string::copy for function can call
Item_copy_string::val_int for blob via Item_ref.
But if Item_copy_string::copy for blob isn't called before,
it's value will be wrong.
So all the Item_copy_string::copy for blobs should be called before
Item_copy_string::copy for functions.
mysql-test/r/having.result:
added test case for
Bug #4358 Problem with HAVING clause that uses
alias from the select list and TEXT field
mysql-test/t/having.test:
added test case for
Bug #4358 Problem with HAVING clause that uses
alias from the select list and TEXT field
sql/sql_select.cc:
make setup_copy_fields to insert Item_copy_string for blobs in
the beginning of the copy_funcs (push_back instead of push_front)
the thing is that Item_copy_string::copy for function can call
Item_copy_string::val_int for blob via Item_ref.
But if Item_copy_string::copy for blob isn't called before,
it's value will be wrong.
So all the Item_copy_string::copy for blobs should be called before
Item_copy_string::copy for functions.
fixed
Bug #4358 Problem with HAVING clause that
uses alias from the select list and TEXT field
Fix for server hang bug
mysql-test/r/heap.result:
Bug#4411
Test for server hang bug
mysql-test/t/heap.test:
Bug#4411
Test for server hang bug
sql/opt_sum.cc:
Bug#4411
Allow code to exit the loop.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
We should allow 19 as length of newly created TIMESTAMP fields.
mysql-test/r/type_timestamp.result:
Added test of TIMESTAMP(19) support.
mysql-test/t/type_timestamp.test:
Added test of TIMESTAMP(19) support.
sql/sql_parse.cc:
add_field_to_list(): TIMESTAMP columns should also support 19 as length since it is
length of 4.1 compatible representation.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
The problem was that (for any storage engine), the created temporary table was not removed if CREATE SELECT failed (because
of a constraint violation for example). This was not consistent with the manual and with CREATE SELECT (no TEMPORARY).
sql/sql_insert.cc:
Fix for BUG#4551 "Temporary InnoDB tables not replicated properly with CREATE TABLE .. SELECT"
The problem was that (for any storage engine), the created temporary table was not removed if CREATE SELECT failed (because
of a constraint violation for example). This was not consistent with the manual and with CREATE SELECT (no TEMPORARY).
And it led to the above bug, because the binlogging of CREATE SELECT is done by select_insert::send_eof() (same function
as INSERT SELECT) and so, if the table is transactional and there is a failure, the statement is considered as rolled
back and so nothing is written in the binlog. So temp table MUST be deleted.
BUG#4506 "mysqlbinlog --position --read-from-remote-server has wrong "# at" lines",
BUG#4553 "Multi-table DROP TABLE replicates improperly for nonexistent table" with a test file.
It was not possible to add a test for BUG#4506 as in the test suite we must use --short-form
which does not display the "# at" lines.
client/mysqlbinlog.cc:
Fix for BUG#4506 "mysqlbinlog --position --read-from-remote-server has wrong "# at" lines"
when reading a remote binlog, the start position is not always BIN_LOG_HEADER_SIZE (4).
sql/sql_table.cc:
Fix for BUG#4553 "Multi-table DROP TABLE replicates improperly for nonexistent table"
we must my_error() _before_ we write to the binlog, so that a meaningful error code is available
in thd->net.last_errno for storage of the DROP TABLE statement into the binlog.
(Bug #4446)
innobase/row/row0ins.c:
row_ins_foreign_check_on_constraint(): limit recursion for UPDATE too
mysql-test/r/innodb.result:
Add test for recursion depth limit
mysql-test/t/innodb.test:
Add test for recursion depth limit