Commit graph

193 commits

Author SHA1 Message Date
hezx@hezx.(none)
6b5866cce1 Merge zhe@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl
into  hezx.(none):/media/hda5/work/mysql/bkwork/bug#30998/mysql-5.1-new-rpl
2007-12-13 10:49:41 +08:00
aelkin@dl145j.mysql.com
ea68d51793 bug#31552 manual merge and post-make-test-run changes. 2007-12-12 20:12:29 +01:00
kostja@bodhi.(none)
ebb9c5d983 Bug#12713 "Error in a stored function called from a SELECT doesn't
cause ROLLBACK of statement", part 1. Review fixes.

Do not send OK/EOF packets to the client until we reached the end of 
the current statement.
This is a consolidation, to keep the functionality that is shared by all 
SQL statements in one place in the server.
Currently this functionality includes:
- close_thread_tables()
- log_slow_statement().

After this patch and the subsequent patch for Bug#12713, it shall also include:
- ha_autocommit_or_rollback()
- net_end_statement()
- query_cache_end_of_result().

In future it may also include:
- mysql_reset_thd_for_next_command().
2007-12-12 18:21:01 +03:00
aelkin@dl145j.mysql.com
62d87757e3 Merge elkin@aelkin2.mysql.internal:MySQL/TEAM/FIXES/5.1/bug31609-conflict_detection
into  dl145j.mysql.com:/tmp/andrei/bug31552
2007-12-12 11:21:54 +01:00
aelkin/elkin@koti.dsl.inet.fi
d8d6db6f78 Bug#31552 Replication breaks when deleting rows from out-of-sync table
without PK
Bug#31609 Not all RBR slave errors reported as errors
bug#32468 delete rows event on a table with foreign key constraint fails

The first two bugs comprise idempotency issues.
First, there was no error code reported under conditions of the bug
description although the slave sql thread halted.
Second, executions were different with and without presence of prim key in
the table.
Third, there was no way to instruct the slave whether to ignore an error
and skip to the following event or to halt.
Fourth, there are handler errors which might happen due to idempotent
applying of binlog but those were not listed among the "idempotent" error
list.

All the named issues are addressed.
Wrt to the 3rd, there is the new global system variable, changeble at run
time, which controls the slave sql thread behaviour.
The new variable allows further extensions to mimic the sql_mode
session/global variable.
To address the 4th, the new bug#32468 had to be fixed as it was staying
in the way.
2007-12-12 12:14:59 +02:00
hezx@hezx.(none)
90bb675975 Merge hezx.(none):/media/hda5/work/mysql/bkroot/mysql-5.1-new-rpl
into  hezx.(none):/media/hda5/work/mysql/bkwork/bug#30998/5.1
2007-12-12 15:02:28 +08:00
tomas@whalegate.ndb.mysql.com
57c890d501 Merge whalegate.ndb.mysql.com:/home/tomas/cge-5.1
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
2007-12-10 13:32:19 +01:00
tomas@whalegate.ndb.mysql.com
4740565ebb backport test for bug#30674
(bug not present in 5.1)
2007-12-10 13:29:23 +01:00
skozlov/ksm@mysql.com/virtop.localdomain
63800e091a WL#4091, part1. replace --sleep by include/wait_condition.inc 2007-12-06 18:27:10 +03:00
holyfoot/hf@hfmain.(none)
18e6de9f15 Merge mysql.com:/home/hf/work/32247/my51-32247
into  mysql.com:/home/hf/work/mrg/my51-mrg
2007-12-06 16:43:52 +04:00
holyfoot/hf@mysql.com/hfmain.(none)
dc01dba255 Bug #32247 Test reports wrong value of "AUTO_INCREMENT" (on a partitioned InnoDB table).
ha_partition::update_create_info() just calls update_create_info
of a first partition, so only get the autoincrement maximum
of the first partition, so SHOW CREATE TABLE can show
small AUTO_INCREMENT parameters.
Fixed by implementing ha_partition::update_create_info() in a way
other handlers work.
HA_ARCHIVE:stats.auto_increment handling made consistent with other engines
2007-12-06 16:39:42 +04:00
hezx@hezx.(none)
0e0f2feb78 Bug#30998 Drop View breaks replication if view does not exist
When executing drop view statement on the master, the statement is not written into bin-log if any error occurs, this could cause master slave inconsistence if any view has been dropped. 

If some error occured and no view has been dropped, don't bin-log the statement, if at least one view has been dropped the query is bin-logged possible with an error.
2007-12-03 16:54:44 +08:00
mkindahl@dl145h.mysql.com
0d13a48c25 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-new-rpl
2007-11-28 12:34:25 +01:00
mkindahl@dl145h.mysql.com
93d9d62353 Post-merge fixes. 2007-11-23 12:51:14 +01:00
mkindahl@dl145h.mysql.com
0c7f3bdeba Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2007-11-21 21:15:33 +01:00
skozlov/ksm@mysql.com/virtop.localdomain
f2222a1eaa WL#3949, second part. Added soft switching of the binlog format (w/o restart a server) 2007-11-20 19:55:51 +03:00
gluh@eagle.(none)
58336411c9 Merge mysql.com:/home/gluh/MySQL/Merge/5.1
into  mysql.com:/home/gluh/MySQL/Merge/5.1-opt
2007-11-14 17:30:16 +04:00
mkindahl@dl145h.mysql.com
6b5cb11dba Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-new-rpl
2007-11-14 11:07:30 +01:00
mats@kindahl-laptop.dnsalias.net
240f3fa2b4 BUG#31552 (Replication breaks when deleting rows from out-of-sync table without PK):
Pushing test case for bug only. Bug already fixed as a result of the patch for BUG#19958.
2007-11-09 11:02:51 +01:00
mats@kindahl-laptop.dnsalias.net
9b728dde4b Fixing some tests to make the replication team tree green. 2007-11-09 09:13:47 +01:00
mats@kindahl-laptop.dnsalias.net
7b833f9eef Merge kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl
into  kindahl-laptop.dnsalias.net:/home/bk/b12092-mysql-5.1-rpl
2007-11-08 10:31:51 +01:00
mats@kindahl-laptop.dnsalias.net
191c503a79 Merge kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl
into  kindahl-laptop.dnsalias.net:/home/bk/b28086-mysql-5.1-rpl
2007-11-07 16:11:59 +01:00
mats@kindahl-laptop.dnsalias.net
21497124ea BUG#12092 (FOUND_ROWS() not replicated):
In BUG#30244 added FOUND_ROWS() as an unsafe function, but that
works only in mixed mode under 5.1. There is a workaround that
can be used in statement-based mode either under 5.0 or 5.1
where the result of FOUND_ROWS() is stored into a user vari-
able and used that way instead. This will replicate correctly
even under statement-based replication, since it will write
a User_var entry to the binary log. For some other cases, the
value has to be passed explicitly.

This patch adds tests to demonstrate that the workarounds docu-
mented for statement-based replication works as advertised, and
does more extensive tests for cases that does not work under sta-
tement-based replication actually work under mixed mode by switch-
ing to row-based replication.
2007-11-06 17:51:32 +01:00
mats@kindahl-laptop.dnsalias.net
4e55c9a140 Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl
into  kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl
2007-11-06 09:46:15 +01:00
aelkin/elkin@koti.dsl.inet.fi
b22f5077a4 Merge aelkin@bk-internal.mysql.com:/home/bk/mysql-5.1-rpl
into  koti.dsl.inet.fi:/home/elkin/MySQL/TEAM/FIXES/5.1/bug31554-rpl_truncate
2007-11-02 14:05:51 +02:00
aelkin/elkin@koti.dsl.inet.fi
4b9b015457 Bug #31554 rpl.rpl_truncate_2myisam test failure: wrong master binlog file name
Actually, the failure happened with 3innodb as well. Most probably
the reason is in failing to delete a binlog file on __NT__ so that
that master increments the index of the binlog file.
The test results hide valueable warning that windows could generate
about that.

The scope of this fix is to make sure we have such warning and
to lessen chances for binlog file being held at time of closing.
The dump thread is getting a good chance to leave and 
release the file for its successful deletion.

We shall watch over the two tests as regression is not excluded.
In that case we would have an extra info possibly explaining why
__NT__ env can not close/delete the file.
However, regardless of that reason, there is alwasy workaround to mask out
non-deterministic binlog index number.
2007-11-02 14:00:38 +02:00
mats@kindahl-laptop.dnsalias.net
16c1655471 BUG#28086 (SBR of USER() becomes corrupted on slave):
Marking statements containing USER() or CURRENT_USER() as unsafe, causing
them to switch to using row-based logging in MIXED mode and generate a
warning in STATEMENT mode.
2007-10-31 21:09:52 +01:00
jmiller/jbmiller@ndbqa01.mysql.com
9f87735289 Merge jmiller@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl
into  mysql.com:/usr/clones/rpl-push
2007-10-31 09:52:05 -05:00
mats@kindahl-laptop.dnsalias.net
afc9097076 Post-merge fixes to handle some test failures. 2007-10-31 10:45:31 +01:00
mats@kindahl-laptop.dnsalias.net
7a1c7ab9a2 Merge kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl
into  kindahl-laptop.dnsalias.net:/home/bk/b19958-mysql-5.1-rpl
2007-10-30 21:23:53 +01:00
mats@kindahl-laptop.dnsalias.net
9cc4b8dd80 BUG#19958 (RBR idempotency issue for UPDATE and DELETE):
The rpl_trigger test case indicated a problem with idempotency support when run
under row-based replication, which this patch fixes.

However, despite this, the test is not designed for execution under row-based
replication and hence rpl_trigger.test is not executed under row-based
replication.

The problem is that the test expects triggers to be executed when the slave
updates rows on the slave, and this is (deliberately) not done with row-based
replication.
2007-10-30 21:17:19 +01:00
jmiller/root@ndbqa01.mysql.com
1a7bf0c630 Merge mysql.com:/usr/clones/mysql-5.1-new-rpl
into  mysql.com:/usr/clones/rpl-push
2007-10-30 10:02:37 -05:00
tomas@whalegate.ndb.mysql.com
b0e90a43cb correct manual merge 2007-10-30 14:04:41 +01:00
aelkin/elkin@koti.dsl.inet.fi
01f86563cb Manual merge 5.0-rpl -> 5.1-rpl.
involved bug#12691, bug#27571
2007-10-30 13:49:42 +02:00
tomas@whalegate.ndb.mysql.com
a214b1b9ba Merge whalegate.ndb.mysql.com:/home/tomas/cge-5.1
into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb-merge
2007-10-30 11:28:19 +01:00
bar@bar.myoffice.izhnet.ru
70488d7dfe Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.1
into  mysql.com:/home/bar/mysql-work/mysql-5.1-new-rpl-merge
2007-10-30 12:03:34 +04:00
gshchepa/uchum@gleb.loc
bf2bb35430 Many files:
Error message numbers.
2007-10-28 11:30:36 +04:00
gshchepa/uchum@gleb.loc
5ebb07a8c0 rpl_row_tabledefs_2myisam.result, sp.result, rpl_row_colSize.result:
Error message numbers.
2007-10-28 02:09:24 +04:00
gshchepa/uchum@gleb.loc
6fbac59c5c Many files:
Error message numbers.
2007-10-27 01:40:48 +05:00
aelkin/elkin@koti.dsl.inet.fi
c1f751ba9b Merge aelkin@bk-internal.mysql.com:/home/bk/mysql-5.1-rpl
into  koti.dsl.inet.fi:/home/elkin/MySQL/TEAM/FIXES/5.1/bug30594-rpl.rpl_skip_error_is_nondeterministic
2007-10-25 19:28:38 +03:00
mats@kindahl-laptop.dnsalias.net
71bd1522e0 Merge kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl
into  kindahl-laptop.dnsalias.net:/home/bk/b24860-mysql-5.1-rpl
2007-10-24 16:54:18 +02:00
mats@kindahl-laptop.dnsalias.net
b9de3ce2a9 BUG#31702 (Missing row on slave causes assertion failure under row-based
replication):

Incremental patch to enable idempotency support for update events again.
The final handling of errors will be done in BUG#31609, and until then
the handling of errors should be consistent between the different types
of changes.
2007-10-24 16:02:37 +02:00
aelkin/elkin@koti.dsl.inet.fi
271c98d067 Bug #30594 rpl.rpl_skip_error is nondeterministic
Non-determinism in the tests was due to results of SBR are different from those gained
with row binlog format.

Because tests effectively verify skipping only ER_DUP_ENTRY it is explicitly required
to run the test on in mixed and stmt binlog format.
ER_DUP_ENTRY is automatically ignored when happened in RBR because of implicit rule
favoring reentrant reading from binlog rule
which means that a Write_rows_log_event overwrites a slave's row
if the one has the same primary key.

If future we might have skipping error due to applying of row-based events.
The comments added saying a new file would be needed for that: rpl_row_skip_error or smth.
2007-10-22 21:45:21 +03:00
mats@kindahl-laptop.dnsalias.net
b65a9888c0 Post-merge fixes. 2007-10-22 10:32:35 +02:00
mats@kindahl-laptop.dnsalias.net
105a9c3e67 Merge kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl
into  kindahl-laptop.dnsalias.net:/home/bk/b28618-mysql-5.1-rpl
2007-10-22 08:50:08 +02:00
mats@kindahl-laptop.dnsalias.net
012bccc09f BUG#24860 (Incorrect SLAVE_TRANSACTION_RETRIES code can result in slave stuck):
If a temporary error occured inside a group on an event that was not the first
event of the group, the slave could get stuck because the retry counter is reset
whenever an event was executed successfully.

This patch only reset the retry counter when an entire group has been successfully
executed, or failed with a non-transient error.
2007-10-20 20:16:12 +02:00
mats@kindahl-laptop.dnsalias.net
24ea15a24d Bug#31702 (Missing row on slave causes assertion failure under row-based replication):
When replicating an update pair (before image, after image) under row-based
replication, and the before image is not found on the slave, the after image
was not discared, and was hence read as a before image for the next row.
Eventually, this lead to an after image being read outside the block of rows
in the event, causing an assertion to fire.

This patch fixes this by reading the after image in the event that the row
was not found on the slave, adds some extra debug assertion to catch future
errors earlier, and also adds a few non-debug checks to prevent reading
outside the block of the event.
2007-10-20 18:19:55 +02:00
mats@kindahl-laptop.dnsalias.net
f2ba11c327 BUG#28618 (Skipping into the middle of a group with SQL_SLAVE_SKIP_COUNTER
is possible):

When skipping the beginning of a transaction starting with BEGIN, the OPTION_BEGIN
flag was not set correctly, which caused the slave to not recognize that it was
inside a group. This patch sets the OPTION_BEGIN flag for BEGIN, COMMIT, ROLLBACK,
and XID events. It also adds checks if inside a group before decreasing the
slave skip counter to zero.

Begin_query_log_event was not marked that it could not end a group, which is now
corrected.
2007-10-19 14:18:41 +02:00
skozlov/ksm@mysql.com/virtop.localdomain
253bb96e79 Fix for non-deterministic behavior of SELECTs and VIEWs 2007-10-16 23:19:39 +04:00
mats@kindahl-laptop.dnsalias.net
d32c1d616e Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl
into  kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl
2007-10-12 13:24:28 +02:00