mariadb/include
guilhem@gbichot2 66a32e8925 This will be pushed only after I fix the testsuite.
This is the main commit for Worklog tasks:
 * A more dynamic binlog format which allows small changes (1064)
 * Log session variables in Query_log_event (1063)
Below 5.0 means 5.0.0.
MySQL 5.0 is able to replicate FOREIGN_KEY_CHECKS, UNIQUE_KEY_CHECKS (for speed),
SQL_AUTO_IS_NULL, SQL_MODE. Not charsets (WL#1062), not some vars (I can only think
of SQL_SELECT_LIMIT, which deserves a special treatment). Note that this
works for queries, except LOAD DATA INFILE (for this it would have to wait
for Dmitri's push of WL#874, which in turns waits for the present push, so...
the deadlock must be broken!). Note that when Dmitri pushes WL#874 in 5.0.1,
5.0.0 won't be able to replicate a LOAD DATA INFILE from 5.0.1.
Apart from that, the new binlog format is designed so that it can tolerate
a little variation in the events (so that a 5.0.0 slave could replicate a
5.0.1 master, except for LOAD DATA INFILE unfortunately); that is, when I
later add replication of charsets it should break nothing. And when I later
add a UID to every event, it should break nothing.
The main change brought by this patch is a new type of event, Format_description_log_event,
which describes some lengthes in other event types. This event is needed for
the master/slave/mysqlbinlog to understand a 5.0 log. Thanks to this event,
we can later add more bytes to the header of every event without breaking compatibility.
Inside Query_log_event, we have some additional dynamic format, as every Query_log_event
can have a different number of status variables, stored as pairs (code, value); that's
how SQL_MODE and session variables and catalog are stored. Like this, we can later
add count of affected rows, charsets... and we can have options --don't-log-count-affected-rows
if we want.
MySQL 5.0 is able to run on 4.x relay logs, 4.x binlogs.
Upgrading a 4.x master to 5.0 is ok (no need to delete binlogs),
upgrading a 4.x slave to 5.0 is ok (no need to delete relay logs);
so both can be "hot" upgrades.
Upgrading a 3.23 master to 5.0 requires as much as upgrading it to 4.0.
3.23 and 4.x can't be slaves of 5.0.
So downgrading from 5.0 to 4.x may be complicated.
Log_event::log_pos is now the position of the end of the event, which is
more useful than the position of the beginning. We take care about compatibility
with <5.0 (in which log_pos is the beginning).
I added a short test for replication of SQL_MODE and some other variables.
TODO:
- after committing this, merge the latest 5.0 into it
- fix all tests
- update the manual with upgrade notes.
2003-12-18 01:09:05 +01:00
..
.cvsignore
config-netware.h
config-os2.h
config-win.h Add charset #defines for Windows platform (as of 4.1.1) 2003-12-04 11:54:04 -05:00
errmsg.h Second part of WL #519: 2003-11-28 13:11:44 +03:00
ft_global.h make a clear distinction between max_word_length in *characters* and in *bytes* 2003-12-04 21:58:28 +01:00
hash.h
heap.h
keycache.h mf_keycache.c, keycache.h: 2003-11-25 10:40:14 -08:00
m_ctype.h Update VC++ files 2003-11-21 01:53:01 +02:00
m_string.h
Makefile.am Added missing file keycache.h 2003-11-21 12:22:51 +02:00
md5.h
merge.h
my_aes.h
my_alarm.h
my_alloc.h
my_base.h Update VC++ files 2003-11-21 01:53:01 +02:00
my_bitmap.h
my_dbug.h
my_dir.h
my_getopt.h
my_global.h Merge 4.1 to 5.0 2003-12-01 16:14:40 +01:00
my_handler.h
my_list.h
my_net.h
my_no_pthread.h
my_nosys.h
my_pthread.h
my_semaphore.h
my_sys.h This will be pushed only after I fix the testsuite. 2003-12-18 01:09:05 +01:00
my_tree.h
my_xml.h
myisam.h Fixed compiler warnings from Intel compiler in Win64 2003-11-23 14:36:41 +02:00
myisammrg.h
myisampack.h
mysql.h Second part of WL #519: 2003-11-28 13:11:44 +03:00
mysql_com.h Merged 4.1 -> 5.0 2003-12-09 19:00:34 +01:00
mysql_embed.h
mysql_version.h.in Merge mysql.com:/my/mysql-4.0 into mysql.com:/my/mysql-4.1 2003-11-26 03:32:39 +02:00
mysqld_error.h Merge 4.1 to 5.0. 2003-12-16 16:12:28 +01:00
mysys_err.h
nisam.h
queues.h
raid.h
rijndael.h
sha1.h
sql_common.h Added missing SSL library (Should be in source distribution) 2003-11-28 12:18:13 +02:00
sql_state.h Merged 4.1 -> 5.0 2003-12-05 13:11:50 +01:00
sslopt-case.h
sslopt-longopts.h
sslopt-vars.h
t_ctype.h
thr_alarm.h
thr_lock.h
typelib.h
violite.h