Commit graph

186 commits

Author SHA1 Message Date
aelkin/andrei@mysql1000.(none)
5ef66b37ae wl#4091
improving a test that shows a failure.

the wait condition was for data in tables but the 
log positions are updates after the data are unlocked.
So there was a time window
[after_table_unlock_for_select, log_pos_updated] where the
orig cond was true but log position might be changed.
the correct one is to expect the last pos of the
slave's insert in the output of show_slave_status on the
master.
2008-03-28 18:25:49 +02:00
mkindahl@dl145h.mysql.com
f48aa05fd0 Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
2008-03-14 18:18:14 +01:00
mkindahl@dl145h.mysql.com
c5fefc688c Post-merge fixes. 2008-03-14 17:52:57 +01:00
mkindahl@dl145h.mysql.com
b5ebc67855 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
2008-03-12 13:07:35 +01:00
sven@riska.(none)
38b406cec8 Removed pushbuild errors.
Problem: rpl_variables_stm.test used a character set and a collation which
are not included on all platforms.
Fix: replace the character set and collation by ones that are included on
all platforms. (rpl_variables_stm does not rely on which character set is
used, the only important aspect is the fact that it changes.)
2008-03-11 18:43:29 +01:00
sven@riska.(none)
81b1d712bf BUG#31168: @@hostname does not replicate
Problem: in mixed and statement mode, a query that refers to a
system variable will use the slave's value when replayed on
slave. So if the value of a system variable is inserted into a
table, the slave will differ from the master.
Fix: mark statements that refer to a system variable as "unsafe",
meaning they will be replicated by row in mixed mode and produce a warning
in statement mode. There are some exceptions: some variables are actually
replicated. Those should *not* be marked as unsafe.
BUG#34732: mysqlbinlog does not print default values for auto_increment variables
Problem: mysqlbinlog does not print default values for some variables,
including auto_increment_increment and others. So if a client executing
the output of mysqlbinlog has different default values, replication will
be wrong.
Fix: Always print default values for all variables that are replicated.
I need to fix the two bugs at the same time, because the test cases would
fail if I only fixed one of them.
2008-03-07 13:59:36 +01:00
aelkin/andrei@mysql1000.(none)
9c2ef8377f Bug #28780 report_host is not available through SELECT @@report_host
merging and post-make-test changes.
2008-03-07 14:39:37 +02:00
aelkin/andrei@mysql1000.(none)
65bb7d3e2d Merge mysql1000.(none):/home/andrei/MySQL/FIXES/5.1/bug28780_report_host_no_show
into  mysql1000.(none):/home/andrei/MySQL/MERGE/5.1
2008-03-06 20:33:29 +02:00
aelkin/andrei@mysql1000.(none)
0958a508f8 Bug #28780 report_host is not available through SELECT @@report_host
There was no way to see if report-{host,port,user,password} were set up.

Fixed with introducing new global variables.
The variables are made read-only because of a possible need to change them
most probably require the slave server restart.

Todo: transform the startup options to be CHANGE master parameters - i.e
to deprecate `report-' options, and to change the new vars 
to be updatable at time of CHANGE master executes with new
values.
2008-03-05 12:25:55 +02:00
mkindahl@dl145h.mysql.com
15e7050499 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
2008-03-05 10:16:20 +01:00
skozlov/ksm@mysql.com/virtop.(none)
46c0342279 WL#4091, fix for rpl_flushlog_loop for windows platforms 2008-03-02 20:17:39 +03:00
skozlov/ksm@mysql.com/virtop.(none)
e9b8538fdc WL#4091, enable rpl_flushlog_loop.test and fix for rpl_drop_temp.test 2008-03-01 00:05:23 +03:00
davi@buzz.(none)
2905909d89 Merge buzz.(none):/home/davi/mysql-5.0-runtime
into  buzz.(none):/home/davi/mysql-5.1-runtime
2008-02-28 20:22:50 -03:00
skozlov/ksm@mysql.com/virtop.(none)
0771579b82 Bug#32663, Bug#33045, Bug#23533, WL#4091 2008-02-29 00:50:15 +03:00
skozlov/ksm@mysql.com/virtop.(none)
3c108889fb WL#4091, replace sleeps 2008-02-28 14:36:14 +03:00
aelkin/andrei@mysql1000.(none)
49915eb88a Merge aelkin@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl
into  mysql1000.(none):/home/andrei/MySQL/FIXES/5.1/bug31316-sss_server_id_clashes
2008-02-20 23:25:01 +02:00
aelkin/andrei@mysql1000.(none)
7e93d94ce5 Bug #31316 Report server id clashes in SHOW SLAVE STATUS
"Server_IO_State" field

Critical error messages from get_master_version_and_clock() were written
only to the slave errorlog while Show slave status did not display any
incident happened.

Although the artifact was reported for a particular --replicate-same-server-id
related issue the fix refines all critical error reporting with 
deploying rli->report().

The test for the bug covers only --replicate-same-server-id error reporting.
2008-02-20 23:18:01 +02:00
mkindahl@dl145h.mysql.com
482997ea65 Removing deliberately generated errors for rpl_bug33931 test
and moving test to replication suite.
2008-02-19 19:59:48 +01:00
mkindahl@dl145h.mysql.com
e8e74a734f Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
2008-02-19 14:47:29 +01:00
mkindahl@dl145h.mysql.com
fd5d7fa761 Fixing test rpl_events to not give false failures. 2008-02-14 10:53:12 +01:00
mkindahl@dl145h.mysql.com
b1fadc4cf9 The test rpl_row_charset and it dependent rpl_ndb_charset is
irrelevant to execute since the charset information does not
affect replication for row-based replication. The row-based
versions of the tests were removed, and the statement-based
version of the test was made executable by all three modes.

This involves removing any lines that causes the test to be
dependent on the contents of the binary log, and instead we
just check that the replication works as it should.
2008-02-13 11:37:06 +01:00
sven@riska.(none)
5fb3cc65c3 Moved mysql-test/suite/rpl/rpl_variables.test into
mysql-test/t/variables.test, because:
 - mysql-test/suite/rpl/t/rpl_variables.test does not replicate anything,
so should not be in the rpl suite.
 - mysql-test/t/variables.test is the place for testing variable-related
problems and features.
 - I will soon commit a patch containing a test case that tests
replication of variables. It would be good if I could call the test case
mysql-test/suite/rpl/t/rpl_variables.test. I'm making place for that now.
2008-02-12 17:22:04 +01:00
mkindahl@dl145h.mysql.com
7e0f4a6fa7 Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
2008-02-05 14:52:20 +01:00
mkindahl@dl145h.mysql.com
1604acd9bf Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-02-04 12:33:28 +01:00
mkindahl@dl145h.mysql.com
d6fd94f77b More fixes to remove test failures in pushbuild. 2008-02-04 12:12:03 +01:00
mkindahl@dl145h.mysql.com
ec9d14f844 Yet more changes to fix the merge clone. 2008-02-04 08:43:22 +01:00
mkindahl@dl145h.mysql.com
e493906588 Minor fix to make rpl_loaddata_map pass without warnings. 2008-02-04 06:49:15 +01:00
mkindahl@dl145h.mysql.com
4c95b29614 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-01-31 17:46:50 +01:00
mkindahl@dl145h.mysql.com
2d9c3b715d Fixes to make tests pass on pushbuild. 2008-01-31 15:53:47 +01:00
mkindahl@dl145h.mysql.com
6aacc6415a Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl-merge
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-01-31 12:32:48 +01:00
hezx@mail.hezx.com
43c4a4c359 Post merge fix 2008-01-31 16:51:55 +08:00
mkindahl@dl145h.mysql.com
018cb16b3a Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-01-30 12:53:33 +01:00
tsmith@ramayana.hindu.god
3906cc27d7 Merge ramayana.hindu.god:/home/tsmith/m/bk/51
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/51
2008-01-25 10:37:29 -07:00
tsmith@ramayana.hindu.god
6668554a8d Merge ramayana.hindu.god:/home/tsmith/m/bk/51
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/51
2008-01-22 15:56:15 -07:00
hezx@mail.hezx.com
fff3c90e9f Merge mail.hezx.com:/media/sda3/work/mysql/bkwork/versional/mysql-5.1-new-rpl
into  mail.hezx.com:/media/sda3/work/mysql/bkwork/versional/merge-51
2008-01-14 17:59:08 +08:00
hezx@mail.hezx.com
cdc67c13e8 fix for versional test 2008-01-14 17:54:23 +08:00
hezx@mail.hezx.com
41bb6f988c Merge mail.hezx.com:/media/sda3/work/mysql/bkwork/versional/mysql-5.1-new-rpl
into  mail.hezx.com:/media/sda3/work/mysql/bkwork/versional/merge-51
2008-01-14 15:41:28 +08:00
hezx@mail.hezx.com
2720b76c4a Fix for versional test
Mask binlog positions, error, warning and other information that are not significant for the test
2008-01-14 15:38:02 +08:00
mkindahl@dl145h.mysql.com
0e31b77207 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-01-11 18:13:00 +01:00
mkindahl@dl145h.mysql.com
940c3ef6d6 Fixing failing test case. 2008-01-11 18:09:17 +01:00
mkindahl@dl145h.mysql.com
da73cb9930 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-01-11 16:32:31 +01:00
mkindahl@dl145h.mysql.com
431199b7a3 Post-merge changes to make tests pass. 2008-01-11 16:26:03 +01:00
mkindahl@dl145h.mysql.com
940ecc23c6 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2008-01-11 14:20:06 +01:00
gshchepa/uchum@host.loc
32d13ab23d Bug#33699: The UPDATE statement allows NULL as new value on a NOT NULL
columns (default datatype value is assigned).

The mysql_update function has been modified to generate
an error when trying to set a NOT NULL field to NULL rather than a warning
in the set_field_to_null_with_conversions function.
2008-01-11 05:06:08 +04:00
skozlov/ksm@mysql.com/virtop.localdomain
04ee08b9fe WL#4077, added mask for SHOW DATABASES statement 2007-12-25 22:10:22 +03:00
hezx@mail.hezx.com
aa36cb781b Move test rpl_server_id to suite rpl 2007-12-24 15:03:23 +08:00
mkindahl@dl145h.mysql.com
bdea24f483 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
2007-12-19 18:51:46 +01:00
gkodinov/kgeorge@magare.gmz
af1231fa80 Merge magare.gmz:/home/kgeorge/mysql/autopush/B19390-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/B19390-5.1-opt
2007-12-18 11:07:08 +02:00
cmiller@zippy.cornsilk.net
6accbba0c0 Order results to be deterministic.
Follow SergG's lead with mysqlcheck result.
2007-12-17 08:51:29 -05:00
sven@riska.(none)
5cc348a6a6 BUG#32407: Impossible to do point-in-time recovery from older binlog
Problem: it is unsafe to read base64-printed events without first
reading the Format_description_log_event (FD).  Currently, mysqlbinlog
cannot print the FD.

As a side effect, another bug has also been fixed: When mysqlbinlog
--start-position=X was specified, no ROLLBACK was printed. I changed
this, so that ROLLBACK is always printed.

This patch does several things:

 - Format_description_log_event (FD) now print themselves in base64
   format.

 - mysqlbinlog is now able to print FD events.  It has three modes:
    --base64-output=auto    Print row events in base64 output, and print
                            FD event.  The FD event is printed even if
                            it is outside the range specified with
                            --start-position, because it would not be
                            safe to read row events otherwise. This is
                            the default.

    --base64-output=always  Like --base64-output=auto, but also print
                            base64 output for query events.  This is
                            like the old --base64-output flag, which
                            is also a shorthand for
                            --base64-output=always

    --base64-output=never   Never print base64 output, generate error if
                            row events occur in binlog.  This is
                            useful to suppress the FD event in binlogs
                            known not to contain row events (e.g.,
                            because BINLOG statement is unsafe,
                            requires root privileges, is not SQL, etc)

 - the BINLOG statement now handles FD events correctly, by setting
   the thread's rli's relay log's description_event_for_exec to the
   loaded event.

   In fact, executing a BINLOG statement is almost the same as reading
   an event from a relay log.  Before my patch, the code for this was
   separated (exec_relay_log_event in slave.cc executes events from
   the relay log, mysql_client_binlog_statement in sql_binlog.cc
   executes BINLOG statements).  I needed to augment
   mysql_client_binlog_statement to do parts of what
   exec_relay_log_event does.  Hence, I did a small refactoring and
   moved parts of exec_relay_log_event to a new function, which I
   named apply_event_and_update_pos.  apply_event_and_update_pos is
   called both from exec_relay_log_event and from
   mysql_client_binlog_statement.

 - When a non-FD event is executed in a BINLOG statement, without
   previously executing a FD event in a BINLOG statement, it generates
   an error, because that's unsafe.  I took a new error code for that:
   ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENTS.

   In order to get a decent error message containing the name of the
   event, I added the class method char*
   Log_event::get_type_str(Log_event_type type), which returns a
   string name for the given Log_event_type.  This is just like the
   existing char* Log_event::get_type_str(), except it is a class
   method that takes the log event type as parameter.

   I also added PRE_GA_*_ROWS_LOG_EVENT to Log_event::get_type_str(),
   so that names of old rows event are properly printed.

 - When reading an event, I added a check that the event type is known
   by the current Format_description_log_event. Without this, it may
   crash on bad input (and I was struck by this several times).

 - I patched the following test cases, which all contain BINLOG
   statements for row events which must be preceded by BINLOG
   statements for FD events:
    - rpl_bug31076

While I was here, I fixed some small things in log_event.cc:

 - replaced hard-coded 4 by EVENT_TYPE_OFFSET in 3 places

 - replaced return by DBUG_VOID_RETURN in one place

 - The name of the logfile can be '-' to indicate stdin.  Before my
   patch, the code just checked if the first character is '-'; now it
   does a full strcmp().  Probably, all arguments that begin with a -
   are already handled somewhere else as flags, but I still think it
   is better that the code reflects what it is supposed to do, with as
   little dependencies as possible on other parts of the code.  If we
   one day implement that all command line arguments after -- are
   files (as most unix tools do), then we need this.

I also fixed the following in slave.cc:

 - next_event() was declared twice, and queue_event was not static but
   should be static (not used outside the file).
2007-12-14 19:02:02 +01:00