This does not fix any known bug, but is still a good idea.
sql/log_event.cc:
when we update thd->db in replication, it's safer to update thd->db_length too.
sql/slave.cc:
when we update thd->db in replication, it's safer to update thd->db_length too.
sql/sql_db.cc:
comment
sql/sql_table.cc:
stupid me. error already exists in the function. Using a local 'int error' resulted in global 'error' not being inited, which probably made next steps (those testing global error) go wrong!
sql/log.cc:
removing unneeded class Disable_binlog
sql/sql_class.h:
removing unneeded class Disable_binlog
sql/sql_table.cc:
As discussed, class Disable_binlog is removed and replaced by macros.
query cache errors in query_cache.test). This is because sql_yacc.cc depends on several .h files but those were not listed in
the dependencies of sql_yacc.o. The present patch does fix the issue; but my auto*-expert colleagues may have a better one.
sql/Makefile.am:
sql_yacc.c includes mysql_priv.h, slave.h etc, so sql_yacc.o does depend on these .h files;
so they need to be listed in the dependencies.
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.
If ALTER TABLE ... DROP FOREIGN KEY ... fails because of a wrong constraint name, return a table handler error number 150 instead of 152; the value 152 was misleading, as it referred to '152 = Cannot delete a parent row', whereas '150 = Foreign key constraint is incorrectly formed' is less misleading
sql/ha_innodb.cc:
If ALTER TABLE ... DROP FOREIGN KEY ... fails because of a wrong constraint name, return a table handler error number 150 instead of 152; the value 152 was misleading, as it referred to '152 = Cannot delete a parent row', whereas '150 = Foreign key constraint is incorrectly formed' is less misleading
used in the handle_options() function (instead of using additional
handle_option() parameter). The default value of the
my_getopt_error_reporter is default_reporter(). One can set it to
other functions if case of need.
client/mysql.cc:
Removed extra handle_optins()'s parameter.
client/mysqladmin.c:
Removed extra handle_optins()'s parameter.
client/mysqlbinlog.cc:
Removed extra handle_optins()'s parameter.
client/mysqlcheck.c:
Removed extra handle_optins()'s parameter.
client/mysqldump.c:
Removed extra handle_optins()'s parameter.
client/mysqlimport.c:
Removed extra handle_optins()'s parameter.
client/mysqlmanager-pwgen.c:
Removed extra handle_optins()'s parameter.
client/mysqlmanagerc.c:
Removed extra handle_optins()'s parameter.
client/mysqlshow.c:
Removed extra handle_optins()'s parameter.
client/mysqltest.c:
Removed extra handle_optins()'s parameter.
extra/my_print_defaults.c:
Removed extra handle_optins()'s parameter.
extra/mysql_install.c:
Removed extra handle_optins()'s parameter.
extra/mysql_waitpid.c:
Removed extra handle_optins()'s parameter.
extra/perror.c:
Removed extra handle_optins()'s parameter.
extra/resolve_stack_dump.c:
Removed extra handle_optins()'s parameter.
extra/resolveip.c:
Removed extra handle_optins()'s parameter.
include/my_getopt.h:
Removed extra handle_optins()'s parameter.
isam/isamchk.c:
Removed extra handle_optins()'s parameter.
isam/pack_isam.c:
Removed extra handle_optins()'s parameter.
myisam/mi_test1.c:
Removed extra handle_optins()'s parameter.
myisam/myisam_ftdump.c:
Removed extra handle_optins()'s parameter.
myisam/myisamchk.c:
Removed extra handle_optins()'s parameter.
myisam/myisampack.c:
Removed extra handle_optins()'s parameter.
sql/gen_lex_hash.cc:
Removed extra handle_optins()'s parameter.
sql/mysqld.cc:
Removed extra handle_optins()'s parameter.
tools/mysqlmanager.c:
Removed extra handle_optins()'s parameter.
We must not reset the charset in slave after each statement, otherwise the SET CHARACTER SET is cancelled immediately.
Instead, we write a SET CHARACTER SET DEFAULT to the master's binlog when needed (like we already do for SET FOREIGN_KEY_CHECKS);
such writing is not necessary in 4.1 (in 4.1 the bug does not exist, as the SET ONE_SHOT syntax is used).
I have written a test and it works, but I'm not pushing the test as it requires building with all charsets.
I have noticed differences between what is inserted in the master's table in 4.0 and 4.1, and alerted Bar.
sql/log.cc:
When SET CHARACTER SET has been used, we must reset the charset after the writing the statement, in the binlog.
In 4.1, this resetting is already achieved by the SET ONE_SHOT syntax.
sql/log_event.cc:
In slave, we must not simply reset the charset after each statement: if we do this, the charset gets
immediately after executing the SET CHARACTER SET! (BUG#4500).
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
Wrong UPPER/LOWER translation for Cyrillic letter tse was fixed.
bug#5110
sql/share/charsets/win1251.conf:
Wrong UPPER/LOWER translation for Cyrillic letter tse was fixed.
bug#5110
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Update to new valgrind
mysql-test/mysql-test-run.sh:
Update for new valgrind
sql/mysql_priv.h:
Remove default argument to mysql_truncate()
sql/sql_parse.cc:
Remove default argument to mysql_truncate()
sql_base.cc:
Added code to lowercase database name in insert_fields when lower_case_table_names=1. This fixes bug# 4792
sql/sql_base.cc:
Added code to lowercase database name in insert_fields when lower_case_table_names=1. This fixes bug# 4792
into build.mysql.com:/users/rburnett/mysql-4.0
BitKeeper/etc/logging_ok:
auto-union
client/mysql.cc:
Auto merged
sql/log.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
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.