Commit graph

151 commits

Author SHA1 Message Date
lars@mysql.com
ad126d90e0 WL#1012: All changes as one single changeset.
This includes both code and test cases.
2005-12-22 06:39:02 +01:00
monty@mysql.com
a6f5375cb0 Merge mysql.com:/home/my/mysql-5.0
into  mysql.com:/home/my/mysql-5.1
2005-11-05 01:32:55 +02:00
guilhem@mysql.com
4252b546b3 Merge mysql.com:/home/mysql_src/mysql-4.1
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
2005-10-12 21:58:02 +02:00
guilhem@mysql.com
4c1c9db823 Fix for BUG#13023: "SQL Thread is up but doesn't move forward". Details in slave.cc;
in short we now record whenever the slave I/O thread ignores a master's event because of its server id,
and use this info in the slave SQL thread to advance Exec_master_log_pos. Because if we
do not, this variable stays at the position of the last executed event, i.e. the last *non-ignored*
executed one, which may not be the last of the master's binlog (and so the slave *looks* behind
the master though it's data-wise it's not).
2005-10-12 13:29:55 +02:00
serg@serg.mylan
2e2d18b7cf Merge serg.mylan:/usr/home/serg/Abk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.1
2005-10-09 19:10:19 +02:00
serg@serg.mylan
e91712d9bb pthread_handler_decl() changed to be ctags-friendly
(and contain extern "C" when necessary)
2005-10-08 16:39:55 +02:00
tomas@poseidon.ndb.mysql.com
620b7bafb0 Merge 2005-10-06 10:54:07 +02:00
jani@ua141d10.elisa.omakaista.fi
4099872e2c Fixed several boolean type options used in my_long_options[].
Some options were declared as 'bool', but since those are being
handled in my_getopt.c, bool can be machine dependent. To make
sure it works in all circumstances, the type should be my_bool
for C (not C++) programs.
2005-10-04 19:52:12 +03:00
patg@patrick.local
8e0eb65f9a 5.0 to 5.1 merge 2005-04-01 12:32:17 -08:00
gbichot@quadita2.mysql.com
5acca04c7c merge from 4.1 2005-03-24 14:32:40 +01:00
gbichot@quadita2.mysql.com
19499229ed "After Monty's review" changes to the fix for BUG#8325 "Deadlock in replication thread stops replication":
s/sleep/safe_sleep (thread safe); sleep 0/1/2/3/4/5/5/5 (get slave less late);
no message on error log (deadlock is too common sometimes), a global counter
instead (SHOW STATUS LIKE 'slave_retried_transactions').
Plus a fix for libmysql/Makefile.shared
2005-03-23 19:19:36 +01:00
lars@mysql.com
7428dde19a WL#2472: Fixes according to review 2005-03-22 10:19:24 +01:00
gbichot@production.mysql.com
c766efdc5d Last part of WL#1062: better replication of timezones: no more use
of SET ONE_SHOT; storing tz info directly in event (if this info is needed),
it's now allowed to have different global tz on master and slave.
2005-03-22 00:26:12 +01:00
lars@mysql.com
efb077502d Merge 2005-03-21 23:05:55 +01:00
lars@mysql.com
c6d85289ab WL#2472:
Renamed Table_filter to Rpl_filter
Eliminated very annoying memory leak
2005-03-21 22:09:42 +01:00
lars@mysql.com
7ed7fc7f58 WL#2472: Addendum: Fixes after Mats review 2005-03-10 14:36:48 +01:00
lars@mysql.com
26787260b7 WL#2472: Refactoring of replication and binlog filtering.
Needed to be able to have multiple masters connected 
to same slave server with different filters.
2005-03-08 21:12:35 +01:00
guilhem@mysql.com
c6cedf52e3 Merge 2005-03-02 14:46:19 +01:00
guilhem@mysql.com
11a1c83c03 Fix for BUG#8325 "Deadlock in replication thread stops replication":
in slave SQL thread: if a transaction fails because of InnoDB deadlock or innodb_lock_wait_timeout exceeded,
optionally retry the transaction a certain number of times (new variable --slave_transaction_retries).
2005-03-02 11:29:48 +01:00
serg@serg.mylan
fd828e5b4d manually merged 2005-02-14 21:50:09 +01:00
guilhem@mysql.com
ed1696f6b9 WL#1062 "log charset info into all Query_log_event":
we store 7 bytes (1 + 2*3) in every Query_log_event.
In the future if users want binlog optimized for small size and less safe,
we could add --binlog-no-charset (and binlog-no-sql-mode etc): charset info
is something by design optional (even if for now we don't offer possibility to disable it):
it's not a binlog format change.
We try to reduce the number of get_charset() calls in the slave SQL thread to a minimum
by caching the charset read from the previous event (which will often be equal to the one of the current event).
We don't use SET ONE_SHOT for charset-aware repl (we still do for timezones, will be fixed later).
No more errors if one changes the global value of charset vars on master or slave
(as we log charset info in all Query_log_event).
Not fixing Load_log_event as it will be rewritten soon by Dmitri.
Testing how mysqlbinlog behaves in rpl_charset.test.
mysqlbinlog needs to know where charset file is (to be able to convert a charset number found
in binlog (e.g. in User_var_log_event) to a charset name); mysql-test-run needs to pass
the correct value for this option to mysqlbinlog.
Many result udpates (adding charset info into every event shifts log_pos in SHOW BINLOG EVENTS).
Roughly the same job is to be done for timezones :)
2005-02-03 16:22:16 +01:00
serg@serg.mylan
fb78bfebe4 open binlog index file *before* tc_log->open() and binlog itself *after* 2005-02-01 15:36:48 +01:00
monty@mishka.local
4f4bbfc279 Merge with 4.1 2004-12-22 13:54:39 +02:00
guilhem@mysql.com
ea99ce4e09 A change of behaviour of Seconds_Behind_Master from SHOW SLAVE STATUS. It's going into 4.1
because old behaviour was somewhat nonsensical (kind of bug). Changes are that if repl threads are
down or disconnected the column will be NULL, and if master is idle the column will not grow indefinitely anymore.
2004-12-16 18:12:22 +01:00
monty@mysql.com
0de4777187 Merge with 4.1 2004-12-06 11:38:56 +02:00
lars@mysql.com
f900433bbe Due to a compiler bug, slave.cc:tables_ok() sometimes wrongly returns
1 if the return type is int or int_fast8_t.  The test case that showed
this problem is rpl000001 and the tested version was MySQL 5.0.2.  The
compiler with the problem is GCC 3.0.4 runing on "Linux bitch 2.4.18
#2 Thu Apr 11 14:37:17 EDT 2002 sparc64 unknown".

By changing the return type to bool the problem disappear.  (Another
way to make the problem disappear is to simply print the returned
value with printf("%d",?).  The printed returned value is always 0 in
the test cases I have run.)  This is only a partial solution to the
problem, since someone could later change the return type of the
function back to int or some other type that does not work.
2004-12-03 15:18:25 +01:00
tomas@poseidon.ndb.mysql.com
97c8234b46 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
2004-11-26 13:44:49 +00:00
mats@mysql.com
9ffb3fd39c Merge 2004-11-25 12:23:41 +01:00
mats@mysql.com
c06cae0f55 Fix for Bug#6148. Only rewind read position in binary log when the
slave SQL thread is started.
2004-11-25 09:26:45 +01:00
serg@serg.mylan
e68bd85b77 merged 2004-11-17 18:04:36 +01:00
guilhem@mysql.com
d34421c127 Fixes for compilation errors in Windows (casts from uint32* to uint*) in repl and charset code.
Moving the part of user_var.test using UCS2 to ctype_ucs.test
2004-11-17 16:41:30 +01:00
bell@sanja.is.com.ua
1555469b64 merge 2004-11-12 15:36:31 +02:00
brian@avenger.(none)
f05daf02ba Resolved merge from 4.1 -> 5.0 (mainly Guilhem's work with mysqldump) 2004-11-11 18:58:57 -08:00
monty@mysql.com
afbe601302 merge with 4.1 2004-10-29 19:26:52 +03:00
bell@sanja.is.com.ua
4714a6e744 errors without code removed
net_printf/send_error calls replaced by my_error family functions
-1/1 (sent/unsent) error reporting removed
(WL#2133)
2004-10-20 04:04:37 +03:00
guilhem@mysql.com
41b808d224 Optimization: in the replication slave, we can avoid doing one strlen() per event's execution,
as we already have db_len in Log_event. Only if rewrite_db() changed the db we need a strlen
(so we now do the strlen() in rewrite_db). Plus a test (we had none for --replicate-rewrite-db :( ).
2004-10-19 22:27:19 +02:00
monty@mysql.com
62f3cd6a31 Merge with 4.0 for 4.1 release
Noteworthy:
- New HANDLER code
- New multi-update-grant-check code
- Table lock code in ha_innodb.cc was not applied
2004-10-06 19:14:33 +03:00
brian@brian-akers-computer.local
df461bdeab Updating the headers on a few files to include GPL header. 2004-09-08 18:26:19 -07:00
pem@mysql.comhem.se
ec92106535 Post-merge fixes.
Note: One sp.test still fails (prime), and rpl_server_id2.test fails (will be fixed by guilhem ASAP).
2004-05-14 16:00:57 +02:00
pem@mysql.com
bf45960eef Merge 4.1 -> 5.0 2004-05-07 18:52:06 +02:00
monty@mysql.com
d21d49a32a Merge with 4.0.19 2004-05-05 17:05:24 +03:00
guilhem@mysql.com
3fc39188ec A new option --replicate-same-server-id to force a slave to execute queries originating from itself
(WL#794). This can be of interest in some recovery-from-backup scenarios, and also when you have
two databases in one mysqld, having a certain similarity and you want one db to be updated when the other is
(some sort of trigger).
Plus small fix for BUG#3568 "MySQL server crashes when built --with-debug and CHANGE MASTER +MASTER_POS_WAIT"
2004-04-28 18:24:46 +02:00
monty@mishka.local
e9cfe01db0 After merge fixes
Changed 'SHOW FIELD STATUS' to use 'Engine' instead of 'Type'
2004-04-27 15:33:40 +03:00
pem@mysql.com
dfd59e296e Merge 4.1 -> 5.0. 2004-04-07 19:07:44 +02:00
guilhem@mysql.com
b5ffdec204 This is a fix for a bug in 3.23 -> 4.0 replication: Exec_master_log_pos is always
too big by 6 bytes. So I add code to substract 6 bytes if the master is 3.23.
This is not perfect (because it won't work if the slave I/O thread has not
noticed yet that the master is 3.23), but as long as the slave I/O thread
starts Exec_master_log_pos will be ok.
It must be merged to 4.1 but not to 5.0 (or it can be, because of #if MYSQL_VERSION_ID),
because 5.0 already works if the master is 3.23 (and in a more natural way:
in 5.0 we store the end_log_pos in the binlog and relay log).
I had to move functions from slave.h to slave.cc to satisfy gcc.
2004-04-07 00:57:14 +02:00
monty@mysql.com
44667503b7 After merge fixes 2004-03-17 10:30:40 +02:00
monty@mysql.com
350b433569 merge with 4.0 2004-03-16 22:41:30 +02:00
guilhem@mysql.com
cf287341cc Fix for BUG#2921 "Replication problem on mutex lock in mySQL-4.0.18":
re-using unused LOCK_active_mi to serialize all administrative
commands related to replication:
START SLAVE, STOP SLAVE, RESET SLAVE, CHANGE MASTER, init_slave()
(replication autostart at server startup), end_slave() (replication
autostop at server shutdown), LOAD DATA FROM MASTER.
This protects us against a handful of deadlocks (like BUG#2921
when two START SLAVE, but when two STOP SLAVE too).
Removing unused variables.
2004-03-11 16:23:35 +01:00
guilhem@mysql.com
1c0d5ad25c Backporting parts of
ChangeSet 1.1620.12.1 and ChangeSet 1.1625.2.1
from 4.1. This makes the slave I/O thread flush the relay log 
after every event, which provides additional safety in case
of brutal crash (reduces chances to lose a part of the relay log).
2004-03-10 16:56:28 +01:00
guilhem@mysql.com
30541b324c Undoing 2 parts of changeset 1.1730.1.1 :
- the one about BUG#2921
- the one about relay log flushing
Both will be rewritten in a next changeset
(this one will not be pushed before the next changeset).
2004-03-10 16:30:47 +01:00