2000-07-31 21:29:14 +02:00
|
|
|
# Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
|
|
|
#
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
|
|
# it under the terms of the GNU General Public License as published by
|
|
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
|
|
# (at your option) any later version.
|
|
|
|
#
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
# GNU General Public License for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
|
|
# along with this program; if not, write to the Free Software
|
|
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
|
|
|
|
# This file is public domain and comes with NO WARRANTY of any kind
|
|
|
|
|
2002-11-26 15:33:30 +01:00
|
|
|
#AUTOMAKE_OPTIONS = nostdinc
|
2004-10-26 19:30:01 +03:00
|
|
|
INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/regex \
|
2004-12-13 22:51:54 +02:00
|
|
|
$(openssl_includes) -I$(top_srcdir)/extra
|
2000-07-31 21:29:14 +02:00
|
|
|
LIBS = @CLIENT_LIBS@
|
2004-11-19 17:21:27 +00:00
|
|
|
DEPLIB= ../libmysql/libmysqlclient.la
|
2004-03-30 22:13:25 +03:00
|
|
|
LDADD = @CLIENT_EXTRA_LDFLAGS@ $(DEPLIB)
|
2001-08-09 18:16:43 -06:00
|
|
|
bin_PROGRAMS = mysql mysqladmin mysqlcheck mysqlshow \
|
2001-09-22 21:47:57 -06:00
|
|
|
mysqldump mysqlimport mysqltest mysqlbinlog mysqlmanagerc mysqlmanager-pwgen
|
2001-09-21 16:36:23 +03:00
|
|
|
noinst_HEADERS = sql_string.h completion_hash.h my_readline.h \
|
|
|
|
client_priv.h
|
2000-07-31 21:29:14 +02:00
|
|
|
mysql_SOURCES = mysql.cc readline.cc sql_string.cc completion_hash.cc
|
2004-11-18 18:38:38 +00:00
|
|
|
mysqladmin_SOURCES = mysqladmin.cc
|
2000-07-31 21:29:14 +02:00
|
|
|
mysql_LDADD = @readline_link@ @TERMCAP_LIB@ $(LDADD) $(CXXLDFLAGS)
|
2002-01-02 21:29:41 +02:00
|
|
|
mysqlbinlog_LDADD = $(LDADD) $(CXXLDFLAGS)
|
2004-03-30 22:13:25 +03:00
|
|
|
mysql_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) $(DEPLIB)
|
|
|
|
mysqladmin_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) $(DEPLIB)
|
|
|
|
mysqlcheck_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) $(DEPLIB)
|
|
|
|
mysqlshow_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) $(DEPLIB)
|
|
|
|
mysqldump_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) $(DEPLIB)
|
|
|
|
mysqlimport_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) $(DEPLIB)
|
2004-09-27 17:01:26 +02:00
|
|
|
mysqltest_SOURCES= mysqltest.c ../mysys/my_getsystime.c
|
2004-03-30 22:13:25 +03:00
|
|
|
mysqltest_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) $(DEPLIB)
|
2004-10-26 19:30:01 +03:00
|
|
|
mysqltest_LDADD = $(LDADD) $(top_builddir)/regex/libregex.a
|
2003-05-20 17:03:18 -04:00
|
|
|
mysqlbinlog_SOURCES = mysqlbinlog.cc ../mysys/mf_tempdir.c
|
2004-03-30 22:13:25 +03:00
|
|
|
mysqlbinlog_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) $(DEPLIB)
|
2001-09-19 14:30:43 -06:00
|
|
|
mysqlmanagerc_SOURCES = mysqlmanagerc.c
|
2004-03-30 22:13:25 +03:00
|
|
|
mysqlmanagerc_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) $(DEPLIB)
|
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
|
|
|
sql_src=log_event.h mysql_priv.h log_event.cc
|
2000-07-31 21:29:14 +02:00
|
|
|
|
|
|
|
# Fix for mit-threads
|
|
|
|
DEFS = -DUNDEF_THREADS_HACK
|
|
|
|
|
2001-08-09 18:16:43 -06:00
|
|
|
link_sources:
|
|
|
|
for f in $(sql_src) ; do \
|
2001-08-30 12:51:58 +03:00
|
|
|
rm -f $(srcdir)/$$f; \
|
|
|
|
@LN_CP_F@ $(top_srcdir)/sql/$$f $(srcdir)/$$f; \
|
|
|
|
done;
|
2001-08-09 18:16:43 -06:00
|
|
|
|
2000-08-16 05:14:02 +03:00
|
|
|
# Don't update the files from bitkeeper
|
|
|
|
%::SCCS/s.%
|