Commit graph

497 commits

Author SHA1 Message Date
serg@serg.mylan
323e683cbf merged 2004-09-07 21:30:28 +02:00
guilhem@mysql.com
168e4c9c6b when we update thd->db in replication, it's safer to update thd->db_length too.
This does not fix any known bug, but is still a good idea.
2004-09-07 14:57:54 +02:00
monty@mysql.com
31122efde7 Merge with 4.1
(Includes merge of arena code in 4.1 and 5.0)
2004-09-06 15:14:10 +03:00
monty@mysql.com
054cea4ca8 Merge with 4.0 2004-09-01 04:12:09 +03:00
guilhem@mysql.com
93101561fd Fix for BUG#4500 "set character set replicates incorrectly"
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.
2004-08-29 14:13:51 +02:00
guilhem@mysql.com
31f61883df Replication: various small fixes specific to the new binlog format of 5.0
(including one which may explain autobuild's failure of yesterday)
2004-07-26 19:42:59 +02:00
serg@serg.mylan
c9fd775777 merged 2004-07-21 23:32:11 +02:00
bell@sanja.is.com.ua
a1b6f6db0e LEX initialization fixed 2004-07-21 22:44:12 +03:00
guilhem@mysql.com
e649dbfcb0 Sanja will probably rework this tomorrow; we need to unify the normal
client code and replication slave code, as far as LOAD DATA INFILE and
other queries' execution is concerned. Duplication of code leads to
replication bugs, because the replication duplicate lags much behind.
Fix for 2 Valgrind errors on slave replicating LOAD DATA INFILE
  - one serious (causing a random test failure in rpl_loaddata in 5.0)
  - one not serious (theoretically a bug but not dangerous): uninited thd->row_count
2004-07-21 00:52:35 +02:00
monty@mysql.com
31fe2837f9 Merge with 4.1 2004-07-12 08:20:24 +03:00
monty@mysql.com
064b8b8f65 Merge with 4.0 to get bug fixes 2004-07-09 02:29:28 +03:00
monty@mysql.com
db7efa2780 New handler::index_flags() definition to make it easy to check the full used key and a specific key part.
Added key part to optimize_range() to fix problems when using fields in key parts.
2004-07-08 15:45:25 +03:00
monty@mysql.com
1e31199995 Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
guilhem@mysql.com
74809f7445 Fix for BUG#4326 "Replicated LOAD DATA INFILE show nothing in
processlist on slave":
we now report in SHOW PROCESSLIST that we are writing to the temp
files or loading the table. When we are writing to the tmp file:
| 3  | system user |                 |    | Connect | 6    | Making temp file /tmp/SQL_LOAD-2-1-2.data | 
and when we are actually loading the .data temp file into the table:
| 3  | system user |                 | test | Connect | 2    | | LOAD DATA INFILE '/tmp/SQL_LOAD-2-1-2.data' INTO TABLE `t` <...> |
2004-06-30 15:41:35 +02:00
guilhem@mysql.com
b514e6a8c5 Correction to replication of charsets in 4.1:
In mysqlbinlog, there was a problem with how we escaped the content of a string user variable.
To be perfect, we should have escaped with character_set_client. But this charset is unknown
to mysqlbinlog. So the simplest is to print the string in hex. This is unreadable but
100% safe with any charset (checked with Bar), no more need to bother with character_set_client.
2004-06-08 19:55:04 +02:00
guilhem@mysql.com
86e8ecc965 Implementation of WL#1824 "Add replication of character set variables in 4.1",
by binlogging some SET ONE_SHOT CHARACTER_SETetc,
which will be enough until we have it more compact and more complete in 5.0. With the present patch,
replication will work ok between 4.1.3 master and slaves, as long as:
- master and slave have the same GLOBAL.COLLATION_SERVER
- COLLATION_DATABASE and CHARACTER_SET_DATABASE are not used
- application does not use the fact that table is created with charset of the USEd db (BUG#2326).
all of which are not too hard to fulfill. 
ONE_SHOT is reserved for internal use of mysqlbinlog|mysql and works only for charsets,
so we give error if used for non-charset vars.
Fix for BUG#3875 "mysqlbinlog produces wrong ouput  if query uses
 variables containing quotes" and BUG#3943 "Queries with non-ASCII literals are not replicated
 properly after SET NAMES".
Detecting that master and slave have different global charsets or server ids.
2004-06-03 23:17:18 +02:00
monty@mysql.com
61a6557307 merge with 4.0 to get windows fixes 2004-05-27 00:30:28 +03:00
hf@deer.(none)
78f58ff384 Fix to make Windows compilation smoother 2004-05-26 21:40:27 +05:00
pem@mysql.com
71eddc362e Merging 4.1 to 5.0. 2004-05-26 17:04:45 +02:00
monty@mysql.com
3f5ce7bd25 After merge fixes 2004-05-17 11:22:30 +03:00
monty@mysql.com
cd3dab49cc Merge with 4.0.20 2004-05-17 01:52:13 +03:00
heikki@hundin.mysql.fi
02f51ccf2d Many files:
Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
2004-05-14 16:48:56 +03: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
a5aeb8f7fa Fix for Bug#3357 "If the statement is long, the error message is trunc and important info is lost";
in hard-coded replication messages, always put small-length info (error codes, explanation of the error) at the beginning,
so that it is not cut by truncation if the query is very long (which happens if the query goes first).
2004-05-04 15:48:40 +02:00
pem@mysql.comhem.se
d42b145817 Post-merge fixes, some quite complex. client/mysqlbinlog.cc and sql/log_event.cc
merged manually by guilhem.
2004-04-28 12:08:54 +02:00
monty@mishka.local
21fd1d270e Merge with 4.0 2004-04-26 15:53:31 +03:00
guilhem@mysql.com
58e90107d9 Fix for BUG#3415 "mysqlbinlog loses a USE command when LOAD DATA INFILE is involved":
if you are printing LOAD DATA INFILE and its USE as comments, don't update 'last_db' (because you
have not actually changed the db in the server).
2004-04-07 18:34:31 +02:00
bell@sanja.is.com.ua
61fd95d168 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1
into sanja.is.com.ua:/home/bell/mysql/bk/work-ps3-4.1
2004-04-07 15:23:05 +03:00
bell@sanja.is.com.ua
560a9f66d3 after review changes 2004-04-07 13:25:24 +03: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
42cf92ce37 Fixed many compiler warnings
Fixed bugs in group_concat with ORDER BY and DISTINCT (Bugs #2695, #3381 and #3319)
Fixed crash when doing rollback in slave and the io thread catched up with the sql thread
Set locked_in_memory properly
2004-04-05 13:56:05 +03:00
bell@sanja.is.com.ua
1e4af935c1 removed old way to prevent using stack tables for caching Items in PS
fixed error code in union test
2004-04-04 03:05:44 +03:00
monty@mysql.com
53c810cda4 merge fixes (use old code) 2004-03-18 00:16:04 +02:00
monty@mysql.com
350b433569 merge with 4.0 2004-03-16 22:41:30 +02:00
miguel@hegel.local
bdd771edc5 Merge miguel@bk-internal.mysql.com:/home/bk/mysql-4.1
into hegel.local:/home/miguel/bk/mysql-4.1
2004-03-16 15:55:51 -03:00
miguel@hegel.local
0c92e90441 Cast for VC++ compiler errors 2004-03-12 18:05:51 -03:00
guilhem@mysql.com
69517b22a1 Fix for BUG#2983 "If statement was killed on master, slave errors despite replicate-wild-ignore-t"
We introduce a new function mysql_test_parse_for_slave().
If the slave sees that the query got a really bad error on master
(killed e.g.), then it calls this function to know if this query
can be ignored because of replicate-*-table rules (do not worry
about replicate-*-db rules: they are checked so early that they have
no bug). If the answer is yes, it skips the query and continues. If
it's no, then it stops and say "fix your slave data manually" (like it
did before this change).
2004-03-11 17:38:19 +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
monty@mysql.com
7738d08294 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/my/mysql-4.0
2004-03-10 13:48:41 +02:00
monty@mysql.com
4ee44751d9 Fixed memory leak in DROP DATABASE when using RAID tables (Bug #2882) 2004-03-10 13:46:11 +02:00
guilhem@mysql.com
2c31370a30 Fix for BUG#3081 "if an INSERT DELAYED is killed, it is binlogged as killed but it's not needed".
INSERT DELAYED works only for one-row inserts (in latest 4.0 versions
at least). So killing a delayed_insert thread does not spoil replication:
the rows which actually went into the table are exactly those listed
in the binlog. So when the delayed_insert thread is killed, don't log
it as 'killed', because it causes superfluous stops on the slave.
2004-03-08 14:47:13 +01:00
guilhem@mysql.com
bce65d4b76 Fix for BUG#3015
"(binlog, position) stored by InnoDB for a replication slave can be wrong".
This code contains conditional #if to distinguish between versions;
it should be merged into 4.1 and 5.0.
2004-03-01 15:15:58 +01:00
guilhem@mysql.com
e022ba6063 Fix for BUG#3017
"wrong Relay_Log_Pos if Rotate is in the middle of a transaction in relay log"
increment 'pending' instead of 'relay_log_pos'.
2004-03-01 00:46:31 +01:00
Greg@greg-laptop.
f4ebcaff4d Changes to fix errors encountered in test builds on Windows. 2004-02-27 16:51:01 +01:00
bell@sanja.is.com.ua
14b9fa3588 revision of fix_fields() calls (BUG2838) 2004-02-18 01:08:52 +02:00
monty@mysql.com
d1d48a9dd5 Merge with 4.0 to get fix for mysqlbinlog 2004-02-16 10:15:52 +02:00
monty@mysql.com
f43093ec0e After merge fixes
Added more DBUG statements
Ensure that we are comparing end space with BINARY strings
Use 'any_db' instead of '' to mean any database. (For HANDLER command)
Only strip ' ' when comparing CHAR, not other space-like characters (like \t)
2004-02-16 10:03:25 +02:00
monty@mysql.com
fb8f27f017 Always use libtool with "--preserve-dup-deps"
Always use all LOAD DATA options in replication.
Fixed problem in mysqlbinlog where LOAD DATA options could be overwritten.
2004-02-13 16:05:09 +02:00
monty@mysql.com
ce14578909 Merge with 4.0.18 2004-02-11 00:06:46 +01:00