Commit graph

51335 commits

Author SHA1 Message Date
unknown
aa591861f4 WL#4077. Added new value 'ENABLED' for 'support' column of information_schema.engines
mysql-test/include/have_multi_ndb.inc:
  added new value 'ENABLED' for support column of information_schema.engines
2007-12-18 16:10:58 +03:00
unknown
7477060bb3 Merge hezx.(none):/media/sda3/work/mysql/bkwork/bug#32205/5.1
into  hezx.(none):/media/sda3/work/mysql/bkwork/bug#32205/mysql-5.1-new-rpl


mysql-test/r/mysqlbinlog2.result:
  Auto merged
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
  Auto merged
mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result:
  Auto merged
sql/log_event.cc:
  Auto merged
2007-12-17 21:21:23 +08:00
unknown
0968c713aa BUG#32205 Replaying statements from mysqlbinlog fails with a syntax error, replicates
fine

The reason of this bug is that when mysqlbinlog dumps a query, the query is written to
output with a delimeter appended right after it, if the query string ends with a '--'
comment, then the delimeter would be considered as part of the comment, if there are any
statements after this query, then it will cause a syntax error.

Start a newline before appending delimiter after a query string


mysql-test/r/mysqlbinlog.result:
  Update result for BUG#32205
mysql-test/r/mysqlbinlog2.result:
  Update result for BUG#32205
mysql-test/r/user_var-binlog.result:
  Update result for BUG#32205
mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result:
  Update result for BUG#32205
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
  Update result for BUG#32205
mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam.test:
  fix test for BUG#32205
mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result:
  Update result for BUG#32205
mysql-test/suite/rpl/r/rpl_stm_charset.result:
  Update result for BUG#32205
sql/log_event.cc:
  Start a newline before appending delimiter after a query string
mysql-test/suite/binlog/r/binlog_start_comment.result:
  Add test for BUG#32205
mysql-test/suite/binlog/t/binlog_start_comment.test:
  Add test for BUG#32205
2007-12-17 21:13:25 +08:00
unknown
13946e0f7f Merge riska.(none):/home/sven/bkroot/5.1-new-rpl
into  riska.(none):/home/sven/bk/b32407-5.1-new-rpl-mysqlbinlog_base64
2007-12-14 19:02:30 +01:00
unknown
8d37a30eac 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).


client/client_priv.h:
  Declared the new option for base64 output.
client/mysqlbinlog.cc:
   - Change from using the two-state command line option
    "default/--base64-output" to the three-state
    "--base64-output=[never|auto|always]"
   - Print the FD event even if it is outside the --start-position range.
   - Stop if a row event is about to be printed without a preceding FD
     event.
   - Minor fixes:
      * changed 4 to EVENT_TYPE_OFFSET in some places
      * Added comments
      * before, "mysqlbinlog -xyz" read from stdin; now it does not
        (only "mysqlbinlog -" reads stdin).
mysql-test/r/mysqlbinlog2.result:
  Updated result file: mysqlbinlog now prints ROLLBACK always.
mysql-test/suite/binlog/t/disabled.def:
  The test must be disabled since it reveals another bug: see BUG#33247.
mysql-test/suite/rpl/r/rpl_bug31076.result:
  Updated result file
mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result:
  Updated result file
mysql-test/suite/rpl/t/rpl_bug31076.test:
  Had to add explicit Format_description_log_event before other BINLOG
  statements
mysql-test/t/mysqlbinlog2.test:
  we must suppress base64 output in result file because it contains a
  timestamp
sql/log_event.cc:
   - Made FD events able to print themselves
   - Added check that the current FD event knows about the event type, when
     an event is about to be read. (Hint to reviewers: I had to re-indent
     a big block because of this; use diff -b)
      * To get a decent error message, I also added a class method
        const char* Log_event::get_type_str(Log_event_type)
        which converts number to event type string without having a
        Log_event object.
      * Made Log_event::get_type_str aware of PRE_GA_*_ROWS_LOG_EVENT.
   - Minor fixes:
      * Changed return to DBUG_VOID_RETURN
sql/log_event.h:
   - Declared enum to describe the three base64_output modes
   - Use the enum instead of a flag
   - Declare the new class method get_type_str (see log_event.cc)
sql/share/errmsg.txt:
  Added error msg.
sql/slave.cc:
   - Factored out part of exec_relay_log_event to the new function
     apply_event_and_update_pos, because that code is needed when executing
     BINLOG statements. (this is be functionally equivalent to the
     previous code, except: (1) skipping events is now optional, controlled
     by a parameter to the new function (2) the return value of
     exec_relay_log_event has changed; see next item).
   - Changed returned error value to always be 1. Before, it would return
     the error value from apply_log_event, which was unnecessary. This
     change is safe because the exact return value of exec_relay_log_event
     is never examined; it is only tested to be ==0 or !=0.
   - Added comments describing exec_relay_log_event and
     apply_event_and_update_pos.
   - Minor fixes:
      * Removed duplicate declaration of next_event, made queue_event
        static.
      * Added doxygen code to include this file.
sql/slave.h:
  Declared the new apply_event_and_update_pos
sql/sql_binlog.cc:
   - Made mysql_binlog_statement set the current FD event when the given
     event is an FD event. This entails using the new function
     apply_event_and_update_pos from slave.cc instead of just calling the
     ev->apply method.
   - Made mysql_binlog_statement fail if the first BINLOG statement is not
     an FD event.
mysql-test/suite/binlog/r/binlog_base64_flag.result:
  New test file needs new result file
mysql-test/suite/binlog/t/binlog_base64_flag.test:
  Added test case to verify that:
   - my patch fixes the bug
   - the new --base64-output flag works as expected
   - base64 events not preceded by an FD event give an error
   - an event of a type not known by the current FD event fails cleanly.
mysql-test/suite/binlog/std_data/binlog-bug32407.000001:
  BitKeeper file /home/sven/bk/b32407-5.1-new-rpl-mysqlbinlog_base64/mysql-test/suite/binlog/std_data/binlog-bug32407.000001
2007-12-14 19:02:02 +01:00
unknown
40197b9997 Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.1-rpl
into  mysql.com:/home/bar/mysql-work/mysql-5.1.b29562v2
2007-12-14 20:12:55 +04:00
unknown
65155892f0 NDB didn't like utf-8 in the last change for some reasons
Changing charset to latin1.
2007-12-14 20:11:49 +04:00
unknown
44efa9c18b BUG#26395: if crash during autocommit update to transactional table on master, slave fails
Now, every transaction (including autocommit transactions) starts with
a BEGIN and ends with a COMMIT/ROLLBACK in the binlog.
Added a test case, and updated lots of test case result files.


mysql-test/r/multi_update.result:
  Updated result file
mysql-test/r/sp_trans_log.result:
  Updated result file
mysql-test/suite/binlog/r/binlog_innodb.result:
  Updated result file
mysql-test/suite/binlog/r/binlog_multi_engine.result:
  Updated result file
mysql-test/suite/binlog/r/binlog_stm_blackhole.result:
  Updated result file
mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
  Updated result file
mysql-test/suite/ndb/r/ndb_binlog_format.result:
  Updated result file
mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result:
  Updated result file
mysql-test/suite/rpl/r/rpl_row_charset_innodb.result:
  Updated result file
mysql-test/suite/rpl/r/rpl_row_create_table.result:
  Updated result file
mysql-test/suite/rpl/r/rpl_row_log_innodb.result:
  Updated result file
mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result:
  Updated result file
mysql-test/suite/rpl/r/rpl_truncate_3innodb.result:
  Updated result file
mysql-test/suite/rpl/t/rpl_row_create_table.test:
  Updated result file
mysql-test/suite/rpl_ndb/r/rpl_ndb_stm_innodb.result:
  Updated result file
sql/log.cc:
   - Always write BEGIN and COMMIT around statements, even in autocommit
     mode.
   - Added comments for binlog_commit and binlog_rollback.
sql/log_event.cc:
  Added debug trigger to avoid writing xid events to the binlog.
mysql-test/suite/rpl_ndb/r/rpl_ndb_transaction.result:
  Results for new test case
mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction-master.opt:
  Options for new test case
mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction-slave.opt:
  Options for new test case
mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction.test:
  Added new test case.
2007-12-14 14:40:45 +01:00
unknown
89a89950ae Merge kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl
into  kindahl-laptop.dnsalias.net:/home/bk/b31582-mysql-5.1-rpl


sql/log_event.cc:
  Auto merged
2007-12-14 13:06:32 +01:00
unknown
f989bb4f54 Merge mysql.com:/home/bar/mysql-work/mysql-5.1.b29562
into  mysql.com:/home/bar/mysql-work/mysql-5.1.b29562v2


mysql-test/suite/rpl_ndb/t/disabled.def:
  Auto merged
sql/ha_ndbcluster_binlog.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
2007-12-14 13:41:36 +04:00
unknown
5c48e54fdb Merge bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl
into  dl145j.mysql.com:/tmp/andrei/bug31552
2007-12-13 09:33:19 +01:00
unknown
3473d97857 bug#31552 fixing a compilation issue in the debugless build.
sql/log_event.cc:
  relaxing compilation condition as HA_ERR is started to be used for error
  reporting.
2007-12-13 09:32:23 +01:00
unknown
296c2ea8ac Merge zhe@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl
into  hezx.(none):/media/hda5/work/mysql/bkwork/bug#30998/mysql-5.1-new-rpl
2007-12-13 10:49:41 +08:00
unknown
d0b9496f8c fix manual merge 2007-12-13 10:40:39 +08:00
unknown
32c5d070dd bug#31552 manual merge and post-make-test-run changes.
mysql-test/extra/rpl_tests/rpl_row_basic.test:
  changes due to the strict mode gets default. This hunk is being added after merging
  with changes from another bug fixes.
mysql-test/suite/rpl/r/rpl_ignore_table.result:
  results changed
mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result:
  results changed
mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result:
  results changed
mysql-test/suite/rpl/t/rpl_ignore_table.test:
  two queries on mysql db tables are replicated according to binlog_format, ie
  in row-based when that is requested. Due to cancelling the idempotent default
  row based events that previously exectuted successfully now stop the slave sql
  thread.
  We have to explicitly request the idempotent slave execution mode.
mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_advance.result:
  results changed. They are being committed only now since there was another
  bug which fixes my working clone did not have.
mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
  results changed
sql/log_event.cc:
  typo in manual merge earlier
2007-12-12 20:12:29 +01:00
unknown
230f589f51 Merge elkin@aelkin2.mysql.internal:MySQL/TEAM/FIXES/5.1/bug31609-conflict_detection
into  dl145j.mysql.com:/tmp/andrei/bug31552


mysql-test/extra/rpl_tests/rpl_row_basic.test:
  Auto merged
mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result:
  Auto merged
mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result:
  Auto merged
mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
  Auto merged
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
  Auto merged
mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/set_var.h:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/log_event.cc:
  manual merge
2007-12-12 11:21:54 +01:00
unknown
96a51b7f39 Bug#31552 Replication breaks when deleting rows from out-of-sync table
without PK
Bug#31609 Not all RBR slave errors reported as errors
bug#32468 delete rows event on a table with foreign key constraint fails

The first two bugs comprise idempotency issues.
First, there was no error code reported under conditions of the bug
description although the slave sql thread halted.
Second, executions were different with and without presence of prim key in
the table.
Third, there was no way to instruct the slave whether to ignore an error
and skip to the following event or to halt.
Fourth, there are handler errors which might happen due to idempotent
applying of binlog but those were not listed among the "idempotent" error
list.

All the named issues are addressed.
Wrt to the 3rd, there is the new global system variable, changeble at run
time, which controls the slave sql thread behaviour.
The new variable allows further extensions to mimic the sql_mode
session/global variable.
To address the 4th, the new bug#32468 had to be fixed as it was staying
in the way.


include/my_bitmap.h:
  basic operations with bits of an integer type are added.
mysql-test/extra/rpl_tests/rpl_foreign_key.test:
  regression test for bug#32468
mysql-test/extra/rpl_tests/rpl_row_basic.test:
  changes due to bug#31552/31609 idempotency is not default any longer
mysql-test/extra/rpl_tests/rpl_row_tabledefs.test:
  changes due to bug#31552/31609 idempotency is not default any longer
mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result:
  results changed
mysql-test/suite/rpl/r/rpl_idempotency.result:
  results changed
mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result:
  results changed
mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result:
  results changed
mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result:
  results changed
mysql-test/suite/rpl/r/rpl_row_mystery22.result:
  results changed
mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
  results changed
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
  results changed
mysql-test/suite/rpl/r/rpl_temporary_errors.result:
  results changed
mysql-test/suite/rpl/t/rpl_idempotency.test:
  extenstions to the test providing testing of complements to the
  idempotent error set and checking how slave halts when it faces an error
  from the list when the mode is STRICT.
mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test:
  changes due to bug#31552/31609 idempotency is not default any longer.
mysql-test/suite/rpl/t/rpl_row_mystery22.test:
  changes due to bug#31552/31609 idempotency is not default any longer
mysql-test/suite/rpl/t/rpl_temporary_errors.test:
  changes due to bug#31552/31609 idempotency is not default any longer
mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_advance.result:
  results changed
mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
  results changed
sql/log_event.cc:
  the fix for bug#32468 delete rows event on a table with foreign key constraint fails
  ensures the flags are set at proper time so that their values will be caught
  by innodb.
  reseting the flags is done along the common error and errorless execution
  path.
  The list of idempotent error is extended with foreign keys related items.
  NDB engine write events are designed with the replace sematics in mind.
  Therefore the corrsponding ndb handler's flag are (re)set regardless of
  the slave's execution mode.
  Rows_log_event::write_row() starts using the bool replace argument as its
  caller sets it depending on the event's execution mode.
sql/log_event.h:
  adding a new member to hold the slave's mode during execution of the event.
sql/mysql_priv.h:
  changes to link the command line option with the new global sys var.
sql/mysqld.cc:
  introduction of the new command line option.
  providing its initialization to a default.
  changes to link the command line option with the new global sys var.
sql/rpl_rli.cc:
  rli post-event-execution cleanup restores the default bits.
sql/set_var.cc:
  The new "standard" sys_var_set class' and the new global system var related
  declarations and definitions.
  fix_slave_exec_mode() is used as with the update method of a new class so
  as at time of the command line arguments parsing.
sql/set_var.h:
  new declarations. The class for the new global sys var is based on
  yet another new "standard" one.
sql/share/errmsg.txt:
  slave_exec_mode setting error;
  slave inconsistency error which may be not an error when the intention
  is "idempotent". I.e consisting of row-based events binlog is being
  applied for the 2nd (more) time.
sql/sql_class.h:
  The names for the bits of the new sever slave_exec_mode_options.
mysql-test/suite/rpl/t/rpl_idempotency-master.opt:
  innodb is necessary
mysql-test/suite/rpl/t/rpl_idempotency-slave.opt:
  innodb is necessary, as well as the tests start with non-default
  IDEMPOTENT slave execution mode.
2007-12-12 12:14:59 +02:00
unknown
3fc4a67a1d Merge hezx.(none):/media/hda5/work/mysql/bkwork/bug#30998/mysql-5.0-rpl
into  hezx.(none):/media/hda5/work/mysql/bkwork/bug#30998/merge-mysql-5.1-new-rpl


sql/sql_string.cc:
  Auto merged
BitKeeper/deleted/.del-compile-solaris-amd64:
  Auto merged
sql/sql_view.cc:
  Manual merged
2007-12-12 15:43:52 +08:00
unknown
127ef56129 Merge hezx.(none):/media/hda5/work/mysql/bkroot/mysql-5.1-new-rpl
into  hezx.(none):/media/hda5/work/mysql/bkwork/bug#30998/5.1
2007-12-12 15:02:28 +08:00
unknown
77f4d9124f Merge hezx.(none):/media/hda5/work/mysql/bkroot/mysql-5.0-rpl
into  hezx.(none):/media/hda5/work/mysql/bkwork/bug#30998/5.0
2007-12-11 17:34:37 +08:00
unknown
d27196b43b WL#4091, part1. replace --sleep by include/wait_condition.inc
mysql-test/suite/rpl/r/rpl_start_stop_slave.result:
  updated result
mysql-test/suite/rpl/t/rpl_critical_errors.test:
  replace --sleep
mysql-test/suite/rpl/t/rpl_err_ignoredtable.test:
  replace --sleep
mysql-test/suite/rpl/t/rpl_init_slave.test:
  remove --sleep
mysql-test/suite/rpl/t/rpl_insert.test:
  replace --sleep
mysql-test/suite/rpl/t/rpl_loadfile.test:
  replace --sleep
mysql-test/suite/rpl/t/rpl_row_sp001.test:
  replace --sleep
mysql-test/suite/rpl/t/rpl_row_sp005.test:
  replace --sleep
mysql-test/suite/rpl/t/rpl_row_stop_middle.test:
  replace --sleep
mysql-test/suite/rpl/t/rpl_row_trig001.test:
  replace --sleep
mysql-test/suite/rpl/t/rpl_row_trig003.test:
  replace --sleep
mysql-test/suite/rpl/t/rpl_ssl1.test:
  replace --sleep
mysql-test/suite/rpl/t/rpl_start_stop_slave.test:
  replace --sleep
mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test:
  replace --sleep
mysql-test/suite/rpl/t/rpl_temporary.test:
  replace --sleep
2007-12-06 18:27:10 +03:00
unknown
29fb5d17e0 BUG#31582 (5.1-telco-6.1 -> 5.1.22. Slave crashes when reading UPDATE for VARCHAR):
Just adding testcase. This bug was fixed by patch for BUG#31583.


mysql-test/suite/bugs/t/rpl_bug31583.test:
  Dropping tables to clean up after the test.
mysql-test/suite/bugs/r/rpl_bug31582.result:
  New BitKeeper file ``mysql-test/suite/bugs/r/rpl_bug31582.result''
mysql-test/suite/bugs/t/rpl_bug31582.test:
  New BitKeeper file ``mysql-test/suite/bugs/t/rpl_bug31582.test''
2007-12-05 20:49:50 +01:00
unknown
7a5f3f12bc BUG#31583 (5.1-telco-6.1 -> 5.1.22. Slave returns Error in unknown event):
In the patch for BUG#21842, the code for handling old rows events were
refactored.  There were a bug in the refactored code (possibly introduced
after the patch for BUG#21842) that caused caused the refactored old events
to read a columns bitmap after image even though there is no such bitmap
for old events. As a result, the reading got out of sync, and started reading
invalid data.

This patch removes all trace of the after image column bitmap from the refactored
old events and removes functions that are no longer needed because they are empty. 


sql/log_event.cc:
  Adding debug printouts and adding old rows events names to output
  so that they are not printed as unknown events.
sql/log_event_old.cc:
  Adding debug printouts to see how the old events are partitioned
  when being decoded.  Removing all traces of the column bitmap for
  the after image in the old events since there is none.
  
  Removing the following functions since they are no longer needed:
  - Update_rows_log_event_old::init()
  - Update_rows_log_event_old::~Update_rows_log_event_old()
  
  Removing unused local variable.
sql/log_event_old.h:
  Removing all traces of the column bitmap for the after image in
  the old events since there is none.
  
  Removing the following functions since they are no longer needed:
  - Update_rows_log_event_old::init()
  - Update_rows_log_event_old::is_valid()
  - Update_rows_log_event_old::~Update_rows_log_event_old()
  
  Removing unused local variable.
mysql-test/suite/bugs/r/rpl_bug31583.result:
  New BitKeeper file ``mysql-test/suite/bugs/r/rpl_bug31583.result''
mysql-test/suite/bugs/t/rpl_bug31583.test:
  New BitKeeper file ``mysql-test/suite/bugs/t/rpl_bug31583.test''
2007-12-05 20:00:14 +01:00
unknown
c4faf61acd sql_string.cc:
Fixing a wrong comment.


sql/sql_string.cc:
  Fixing a wrong comment.
2007-12-05 12:26:21 +04:00
unknown
26946f3176 Bug#30998 Drop View breaks replication if view does not exist
When executing drop view statement on the master, the statement is not written into bin-log if any error occurs, this could cause master slave inconsistence if any view has been dropped. 

If some error occured and no view has been dropped, don't bin-log the statement, if at least one view has been dropped the query is bin-logged possible with an error.


sql/sql_view.cc:
  If at least one view has been dropped the query is bin-logged possible with an error.
mysql-test/suite/rpl/r/rpl_drop_view.result:
  Add test result for bug#30998
mysql-test/suite/rpl/t/rpl_drop_view.test:
  Add test case for bug#30998
2007-12-03 16:54:44 +08:00
unknown
df35f2c353 Bug#30998 Drop View breaks replication if view does not exist
When executing drop view statement on the master, the statement is written
into bin-log without checking for possible errors, so the statement would 
always be bin-logged with error code cleared even if some error might occur, 
for example, some of the views being dropped does not exist. This would cause 
failure on the slave.

Writing bin-log after check for errors, if at least one view has been dropped
the query is bin-logged possible with an error.


sql/sql_view.cc:
  Writing bin-log after check for errors, if at least one view has been dropped
  the query is bin-logged possible with an error.
mysql-test/r/rpl_drop_view.result:
  Add test result for bug#30998
mysql-test/t/rpl_drop_view.test:
  Add test for bug#30998
2007-12-03 13:11:40 +08:00
unknown
a196adacfd Revert bad merge, should have used local code 2007-11-29 12:23:18 +01:00
unknown
7ed596398b bug#29562 default collation of ucs2_unicode_ci crashes slave
Problem: some pieces of code relied on the default character
set settings, which didn't work in case of default character set
ucs2.
Fix: Specifying character set explicitly, not to depend on
the default settings.


mysql-test/suite/rpl_ndb/r/rpl_ndb_ctype_ucs2_def.result:
  Recording correct test result
mysql-test/suite/rpl_ndb/t/disabled.def:
  Enabling test
sql/ha_ndbcluster_binlog.cc:
  Character set of the NDB helper tables should
  not rely of the default settings, to avoid creating
  tables in different character sets on master and slave.
  Adding explicit character set. UTF8 should be fine.
  
  character_set_client should not rely on the default
  character set settings, which can be ucs2. Helper SQL queries
  sent by NDB are all in pure ASCII. Setting client_character_set
  to latin1.
sql/log_event.cc:
  Adding assert to make sure that binary log does not have 
  queries in character set which parser does not understand
  (e.g. ucs2).
2007-11-28 15:35:25 +04:00
unknown
9e96081ea9 Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-new-rpl


mysql-test/lib/mtr_report.pl:
  Auto merged
mysql-test/r/mysqlbinlog.result:
  Auto merged
mysql-test/t/mysqlbinlog.test:
  Auto merged
sql/log_event.cc:
  Auto merged
mysql-test/mysql-test-run.pl:
  Manual merge
mysql-test/lib/mtr_cases.pl:
  Manual merge, using remote code.
2007-11-28 12:34:25 +01:00
unknown
d2a6621462 Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-rpl
into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-new-rpl
2007-11-28 12:05:35 +01:00
unknown
54953ec25c Disabling several tests that fail and reported as errors.
mysql-test/suite/ndb/t/disabled.def:
  Disabling failing tests.
mysql-test/suite/rpl/t/disabled.def:
  Disabling failing tests.
mysql-test/suite/rpl/t/rpl_ssl.test:
  Disabling part of test that fails.
2007-11-27 11:02:00 +01:00
unknown
80b33c48b1 Increase the slave_net_timeout to double of what the master
uses for connect_timeout
2007-11-27 10:56:46 +01:00
unknown
ec3976ed3e Remove disabling of testcases 2007-11-26 20:05:52 +01:00
unknown
53cf19216f Bug#25146 Some warnings/errors not shown when using --show-warnings
- Additional patch to fix compiler warnings


client/mysql.cc:
  Initialize warnings to 0 to avid compiler warning
  Call 'print_warnings' also when error occured
mysql-test/r/mysql.result:
  Change test to make is possible to see that second set of warnings
  are from second invocation of mysql
mysql-test/t/mysql.test:
  Change test to make is possible to see that second set of warnings
  are from second invocation of mysql
2007-11-26 19:50:43 +01:00
unknown
835dcc0971 Revert 2007-11-26 19:42:07 +01:00
unknown
bc60aa3228 Fix warning about possibly uninitialized variable "warnings" 2007-11-26 16:45:58 +01:00
unknown
747049ccb8 Merge bk-internal:/home/bk/mysql-5.1-rpl-merge
into  pilot.mysql.com:/data/msvensson/mysql/mysql-5.1-rpl-merge
2007-11-26 16:42:19 +01:00
unknown
a440fd39ef Add suppressions for expected warning messages that appears in
slave's error log when running rpl_extraColmaster_*.test
2007-11-26 16:31:35 +01:00
unknown
aa2030d647 Disabling testcases that have warnings that PB cannot handle. 2007-11-26 16:20:37 +01:00
unknown
75ea7c7e66 Disable combinations processing until next version 2007-11-26 16:19:34 +01:00
unknown
f3ccf02daa Remove lib/* from EXTRA_DIST and pointout exactly which subdir
of lib/ that should be included
2007-11-26 15:43:47 +01:00
unknown
72cafd4787 Disabling failing test that has been reported as bug.
mysql-test/suite/rpl_ndb/t/disabled.def:
  Disabling failing test.
2007-11-26 15:36:23 +01:00
unknown
75abdd321b Remove superfluous check for "skip", it's already done previous in the loop 2007-11-26 10:53:21 +01:00
unknown
29ba787047 WL#3949, Added the optimization of rpl tests if mtr started w/o a combination and --mysqld=--binlog-format=XXX
mysql-test/lib/mtr_cases.pl:
  Added the optimization of rpl tests
2007-11-24 20:34:30 +03:00
unknown
0e0322c968 Add mysql-test/lib/*.sql to dists*
mysql-test/Makefile.am:
  Add mysql-test/include/*.sql to dist
scripts/make_binary_distribution.sh:
  Add mysql-test/include/*.sql to bindist
2007-11-23 18:12:14 +01:00
unknown
e4d2c9d3c8 Remove printout 2007-11-23 16:19:42 +01:00
unknown
1ada48bad5 - Don't process already skipped testcases one more time
in optimization phase
- Don't check specified binlog format if hasn't been assigned one
2007-11-23 16:14:56 +01:00
unknown
b048e1fbf0 Add lib to extra dist 2007-11-23 15:59:50 +01:00
unknown
269b6f35bf Apply patch for BUG#30630 2007-11-23 15:54:11 +01:00
unknown
7c338deb65 Merge bk-internal:/home/bk/mysql-5.1-rpl
into  shellback.(none):/home/msvensson/mysql/mysql-5.1-rpl-wl3949
2007-11-23 15:03:43 +01:00