(race cond)
It was possible for one thread to interrupt a Data Definition Language
statement and thereby get messages to the binlog out of order. Consider:
Connection 1: Drop Foo x
Connection 2: Create or replace Foo x
Connection 2: Log "Create or replace Foo x"
Connection 1: Log "Drop Foo x"
Local end would have Foo x, but the replicated slaves would not.
The fix for this is to wrap all DDL and logging of a kind in the same mutex.
Since we already use mutexes for the various parts of altering the server,
this only entails moving the logging events down close to the action, inside
the mutex protection.
BitKeeper/etc/collapsed:
BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
---
BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
---
BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
---
BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
---
BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
---
BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
---
BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
---
BitKeeper file /home/cmiller/work/mysql/bug14262/my50-bug14262/BitKeeper/etc/collapsed
sql/sp.cc:
Move logging inside the routine drop and update functions, so it can be
protected by a LOCK_open mutex. (The "create" function already had such
a LOCK_open protection.)
sql/sql_acl.cc:
Move logging inside the grant functions, so that it can be protected by
LOCK_grant .
sql/sql_db.cc:
Add comments that describe how each logging event is protected.
sql/sql_parse.cc:
Move all logging statements about DDL statements close to the actual event,
so each can be protected by the same mutex.
sql/sql_table.cc:
Widen the scope of the mutex so that logging events are also protected.
sql/sql_trigger.cc:
Widen the scope of the mutex so that logging events are also protected.
sql/sql_view.cc:
Pass the head of the table linked-list so we can create a logging statement.
Move the logging statement inside the worker function, and notably inside
the LOCK_open mutex. Widen the same mutex a little to make room for logging.
sql/sql_view.h:
Pass the head of the table linked-list so we can create a logging statement.
into mysql.com:/home/mysql_src/mysql-5.0;
a very bad automerge (issues with non-ascii chars), plus some hard conflicts I'll fix by hand in a next cset
BitKeeper/deleted/.del-compile-pentium64-valgrind-max:
Delete: BUILD/compile-pentium64-valgrind-max
BitKeeper/etc/config:
Auto merged
sql/log.cc:
Auto merged
sql/slave.h:
Auto merged
client/mysqltest.c:
manual merge
mysql-test/r/subselect.result:
manual merge
mysql-test/t/subselect.test:
manual merge
sql/log_event.cc:
manual merge
sql/log_event.h:
manual merge
sql/slave.cc:
manual merge
sql/sql_yacc.yy:
manual merge
Logging to logging@openlogging.org accepted
DbtcMain.cpp, testTimeout.cpp:
Bug #11290 TransactionInactiveTimeout = 0 does not result in infinite timeout
ndb/test/ndbapi/testTimeout.cpp:
Bug #11290 TransactionInactiveTimeout = 0 does not result in infinite timeout
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Bug #11290 TransactionInactiveTimeout = 0 does not result in infinite timeout
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Added a test case for bug #11167.
sql_select.cc:
Fixed bug #11167.
In 4.1 char/varchar fields are limited by 255 characters in
length that make them longer than 255 bytes in size for such
character sets as UTF8. The functions store_record_in_cache
and read_cached_records did not take into account this
Moreover the code did not take into account that the size
of the varchar fields in 5.0 can be up to 65535 bytes
sql/sql_select.cc:
Fixed bug #11167.
In 4.1 char/varchar fields are limited by 255 characters in
length that make them longer than 255 bytes in size for such
character sets as UTF8. The functions store_record_in_cache
and read_cached_records did not take into account this
Moreover the code did not take into account that the size
of the varchar fields in 5.0 can be up to 65535 bytes
mysql-test/r/ctype_utf8.result:
Added a test case for bug #11167.
mysql-test/t/ctype_utf8.test:
Added a test case for bug #11167.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
- show_msg.inc - displays a message followed by a line of '-' at the length of the messgae
- show_msg80.inc - displays a message followed by a line of '-' with a fixed length of 80
mysql-test/r/mysqltest.result:
Updated result file
mysql-test/t/mysqltest.test:
Added test cases to test the show_msg.inc and show_msg80.inc auxiliary files
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
into rurik.mysql.com:/home/igor/dev/mysql-5.0-0
BitKeeper/etc/ignore:
auto-union
BitKeeper/etc/logging_ok:
auto-union
myisam/mi_key.c:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/ps_1general.result:
Auto merged
mysql-test/r/ps_2myisam.result:
Auto merged
mysql-test/r/ps_3innodb.result:
Auto merged
mysql-test/r/ps_4heap.result:
Auto merged
mysql-test/r/ps_5merge.result:
Auto merged
sql/item_buff.cc:
Auto merged
sql/sql_class.cc:
Auto merged
Analyze table corrupts the state on
data_file_length, records, index_file_length...
by writing the shared state when there is an updated internal
state due to inserts or deletes
Fixed by synching the shared state with the internal state before
writing it to disk
Added test cases of 2 error cases and a normal case in new
analyze test case
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Bug #11064 some read error not detected in replication on 64-bit platform
sql/sql_repl.cc:
Bug #11064 some read error not detected in replication on 64-bit platform
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Fixed bug #9939: a wrong conversion of arguments
for functions COALESCE and IFNULL.
The str_op virtual method was added into Item_func_numhybrid.
item_func.cc:
Fixed bug #9939: a wrong conversion of arguments
for functions COALESCE and IFNULL.
The str_op virtual method was added into Item_func_numhybrid.
item_cmpfunc.h, item_cmpfunc.cc:
Fixed bug #9939: a wrong conversion of arguments
for functions COALESCE and IFNULL.
Item_func_coalesce and Item_func_ifnull now
inherit from a modified Item_func_numhybrid.
case.test, case.result:
Added test cases for bug #9939.
mysql-test/r/case.result:
Added test cases for bug #9939.
mysql-test/t/case.test:
Added test cases for bug #9939.
sql/item_cmpfunc.cc:
Fixed bug #9939: a wrong conversion of arguments
for functions COALESCE and IFNULL.
Item_func_coalesce and Item_func_ifnull now
inherit from a modified Item_func_numhybrid.
sql/item_cmpfunc.h:
Fixed bug #9939: a wrong conversion of arguments
for functions COALESCE and IFNULL.
Item_func_coalesce and Item_func_ifnull now
inherit from a modified Item_func_numhybrid.
sql/item_func.cc:
Fixed bug #9939: a wrong conversion of arguments
for functions COALESCE and IFNULL.
The str_op virtual method was added into Item_func_numhybrid.
sql/item_func.h:
Fixed bug #9939: a wrong conversion of arguments
for functions COALESCE and IFNULL.
he str_op virtual method was added into Item_func_numhybrid.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
mysql-test/r/federated.result:
new join test results
mysql-test/t/federated.test:
new simple join tests (more to come with subsequent commits)
sql/ha_federated.cc:
This fixes joins not working. Monty discussed that having to deal
with table->status needs to be moved from the handler/storage engine
to a higher level
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
into bk-internal.mysql.com:/data0/bk/mysql-5.0
BitKeeper/etc/gone:
auto-union
BitKeeper/etc/logging_ok:
auto-union
mysql-test/r/lowercase_table.result:
Auto merged
mysql-test/t/lowercase_table.test:
Auto merged
mysys/my_open.c:
Auto merged
mysql-test/r/subselect.result:
test fro bug 10020
mysql-test/t/subselect.test:
bug 10020 test suite
sql/item.cc:
any constant allowed here BUG#10020)
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
BitKeeper/etc/logging_ok:
auto-union
BitKeeper/deleted/.del-errmsg.txt~31abf77f9e7b9211:
Auto merged
configure.in:
Auto merged
libmysql/libmysql.c:
Auto merged
sql/ha_blackhole.cc:
Auto merged
sql/share/Makefile.am:
Auto merged
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/czech/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/danish/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/dutch/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/english/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/estonian/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/french/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/german/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/greek/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/hungarian/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/italian/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/japanese/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/japanese-sjis/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/korean/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/norwegian/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/norwegian-ny/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/polish/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/portuguese/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/romanian/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/russian/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/serbian/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/slovak/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/spanish/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/swedish/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/ukrainian/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
mysql-test/r/sp.result:
Correct the result file for the changed test.
mysql-test/t/sp.test:
1) Correct the "fib" stored procedure and its initial data to be mathematical correct: fib(0) = 0
2) Do a small run of "fib" first, that is not likely to hit a memory limit (see entry 9937 in the bug DB).
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/czech/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/danish/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/dutch/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/english/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/estonian/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/french/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/german/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/greek/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/hungarian/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/italian/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/japanese/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/korean/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/norwegian/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/norwegian-ny/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/polish/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/portuguese/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/romanian/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/russian/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/slovak/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/spanish/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/swedish/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
sql/share/ukrainian/errmsg.txt:
Add newline at EOF for proper processing by comp-err.exe on Windows where fgets() works differently than Linux (Bug #6195).
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
fail.
mysql-test/r/innodb.result:
Test case for BUG#7709 - Boolean fulltext query against
unsupported engines does not fail added.
mysql-test/t/innodb.test:
Test case for BUG#7709 - Boolean fulltext query against
unsupported engines does not fail added.
sql/item_func.cc:
Check if table supports fulltext.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
when merging just use "ul"] In configure.in, don't remove $AVAILABLE_LANGUAGES_ERRORS_RULES at end
because config.status may later need this file (if it does not find it
it won't incorporate dependencies of errmsg.sys in sql/share/Makefile).
In sql/share/Makefile.am using "all:" leads to double-"all:" in Makefile.
configure.in:
Don't remove $AVAILABLE_LANGUAGES_ERRORS_RULES at end of configure.in
because config.status may later need this file (if it does not find it
it won't incorporate dependencies of errmsg.sys in sql/share/Makefile :( )
sql/share/Makefile.am:
using "all:" leads to double-"all:" in Makefile (counting the auto-generated);
all-local is the standard way to :
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted