Skip to content
  • Sven Sandberg's avatar
    9ad6b773
    WL#7592 step 10. GTIDs: Generate Gtid_log_event and Previous_gtids_log_event... · 9ad6b773
    Sven Sandberg authored
    WL#7592 step 10. GTIDs: Generate Gtid_log_event and Previous_gtids_log_event always. Fix failing tests.
    
    This patch fixes all test cases that fails due to the previous two
    patches. In addition it fixes two code bugs that were exposed/introduced
    due to the previous two patches, and which caused some of the test
    failures.
    
    - Fix bug in START SLAVE UNTIL MASTER_LOG_POS logic.
      The problem was: some Rotate_log_events in the relay log are generated
      on the slave, not on the master. Thus, their end_log_pos field is
      relative to the slave relay log. Since MASTER_LOS_POS is relative to
      the master binary log, we must not evaluate the MASTER_LOS_POS
      condition for such slave-generated Rotate_log_events. But the logic to
      skip the until check for slave-generated events was missing, and this
      caused tests to fail.
    
      The fix is to avoid evaluating the until condition for slave-generated
      events. This is easy because such events are easily distinguishable
      since their server_id is zero. So we check if the server_id==0, and in
      that case we don't evaluate the until condition.
    
      This did not cause any tests to fail before this worklog, because the
      events appeared so early in the relay log that their positions would
      be smaller than the position specified by MASTER_LOG_POS. However,
      after this patch, the events appear after Previous_gtids_log_event,
      which moves the position forward so much that it causes the slave
      thread to stop before the rotate event, which causes the test to fail.
    
      This was also not triggered by running the suite with gtid_mode=on,
      because the test was using include/not_gtid_enabled.inc.
    
    - Fix bug in sql_slave_skip_counter with GTIDs.
      sql_slave_skip_counter did not compute transaction boundaries
      correctly in the presence of Gtid_log_events. This did not cause any
      problems before this patch since sql_slave_skip_counter is not allowed
      when gtid_mode=on.
    
      sql_slave_skip_counter is supposed to decrease for every event
      processed, except it should not decrease down to 0 in the middle of a
      group. This ensures that the applier thread does not stop in the
      middle of a transaction. However, the applier thread did not consider
      Gtid_log_event to be part of a group, and therefore it could stop
      after the Gtid_log_event.
    
      The problem was that Gtid_log_event implemented a specialized
      do_shall_skip function. This caused it to decrease the counter down to
      zero. The fix is to implement Gtid_log_event::do_shall_skip and make
      it call continue_group.
    
    - Fix simplified-binlog-recovery.
      Writing Previous_gtids_log_event always broke the logic for
      simplified-binlog-recovery.
      Background:
      Before this patch, simplified-binlog-recovery would avoid
      iterating over multiple binary logs only in the case that the
      binlog lacks a Previous_gtids_log_event.
      Problem:
      Since we now generate Previous_gtids_log_event always,
      recovery would iterate over all binary logs even when
      simplified-binlog-recovery was enabled.
      Fix:
      Make it so that simplified-binlog-recovery skips the rest
      of the binary logs also in the case that the first binary log
      contains a Previous_gtids_log_event and no Gtid_log_event.
    
    @mysql-test/extra/binlog_tests/binlog.test
    - Use show_binlog_events.inc instead of SHOW BINLOG EVENTS, so that
      Gtid/Anonymous events gets masked appropriately.
    - This particular test requires that columns 1, 2, and 5 are masked out
      (so that server_id is not masked out). However, show_binlog_events.inc
      only masks columns 2, 4, 5. Changed show_binlog_events.inc so that it
      allows user to specify the set of columns to be masked.
    
    @mysql-test/extra/binlog_tests/binlog_mysqlbinlog_row.inc
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/extra/binlog_tests/ctype_ucs_binlog.test
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/extra/binlog_tests/drop_tables_logical_timestamp.inc
    - Update test because grep_pattern.inc was altered.
    
    @mysql-test/extra/binlog_tests/logical_timestamping.inc
    - Update test because grep_pattern.inc was moved and altered.
    
    @mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test
    - Test was failing because it was expecting an exact number of events in
      the binlog. Fixed by adding an auxiliary test script
      include/get_row_count.inc that computes the number of events in the
      binlog.
    - While I was here, also changed to use assertion.
    
    @mysql-test/extra/binlog_tests/mysqlbinlog_row_engine.inc
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/extra/binlog_tests/mysqlbinlog_start_stop_2.inc
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/extra/rpl_tests/check_type.inc
    - Provide more debug info if $rpl_debug is set.
    
    @mysql-test/extra/rpl_tests/create_recursive_construct.inc
    - The test expected that an empty binlog would contain 2 events. Changed
      this to 3.
    - The test expected that the third event of a binlog containing only one
      DML transaction in row format would be a Table_map. Changed third to
      fifth.
    - Simplify code to use assertions, to make it more readable and produce
      more debug output on failure.
    
    @mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test
    - Fix test failure:
      This test executed some statements and then asserted that there was a
      COMMIT after a specific number of events in the binary log. Since
      we now write more events to the binary log, we have to increase this
      number in order for the test to succeed.
    - Use assert.inc instead of manual 'if' statements.
    - Rename variable $ok to $check_position_of_commit_event, since that
      explains better what the variable does.
    - Clarify purpose of the test.
    
    @mysql-test/extra/rpl_tests/rpl_insert_ignore.test
    - Test failure fix:
      The test asserted that there was a query_log_event after a specific
      number of events in the binary log. Since the number of events has
      changed, this number has to be updated.
    - The test case used to have a special case for gtid_mode=on, handled
      by extra/rpl_tests/rpl_insert_ignore_gtid_on.inc
      Since there is now no difference in event count between gtid_mode=on
      and gtid_mode=off, we can hardcode the number again and do not need
      the include file. Removed the include file.
    
    @mysql-test/extra/rpl_tests/rpl_insert_ignore_gtid_on.inc
    - Remove this file as it is not needed any more.
      See changeset comment for
      mysql-test/extra/rpl_tests/rpl_insert_ignore.test
    
    @mysql-test/extra/rpl_tests/rpl_log.test
    - Update the LIMIT clause for SHOW BINLOG EVENTS because
      the number of events in the binlog has changed. Now we can
      unify this instead of having different cases for GTID_MODE=ON
      and GTID_MODE=OFF.
    
    @mysql-test/extra/rpl_tests/rpl_row_show_relaylog_events.inc
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/extra/rpl_tests/rpl_show_binlog_events.inc
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/extra/rpl_tests/rpl_show_log_events_with_varying_options.inc
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/extra/rpl_tests/rpl_sp.test
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/extra/rpl_tests/rpl_start_stop_slave.test
    - Disable a part of the test that crashes MTS, which will be fixed in a
      separate bug.
    
    @mysql-test/extra/rpl_tests/rpl_stm_mix_show_relaylog_events.inc
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/extra/rpl_tests/type_conversions.test
    - Provide more debug info if $rpl_debug is set, but do not output lots
      of junk to the result file if $rpl_debug is unset.
    
    @mysql-test/include/assert_grep.inc
    - New auxiliary test script to be used instead of
      include/grep_pattern.inc
    
    @mysql-test/include/assert_gtid_mode_on.inc
    - New auxiliary file that causes the test to fail if gtid_mode is not
      ON. This was added to avoid similar bugs to the one found in
      rpl_incompatible_gtids_in_relay_log.test (see commit comments for that
      file for details). This file is sourced from the auxiliary files
      include/sync_*.inc
    
    @mysql-test/include/filter_file.inc
    - Add parameter to allow masking a given set of columns. This is needed
      to implement the new $show_binlog_events_mask_columns parameter of
      show_binlog_events.inc.
    
    @mysql-test/include/get_row_count.inc
    - New auxiliary file used by
      mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test.
    
    @mysql-test/include/grep_pattern.inc
    - Add $grep_output parameter, to allow different modes of output. This
      was needed in order to fix a bug in
      mysql-test/extra/rpl_test/rpl_large_serverid.inc
      (see changeset comment for that file for details).
    - Move the file to mysql-test/include. This is a generic utility, and
      as such it belongs to mysql-test/include. mysql-test/extra/... is
      generally used for test-specific includes.
    - Use mtr variables instead of environment variables for parameters.
    - Remove extra newline that was printed after each output row.
    - Improve the output: s/Occurrences of the $pattern/Occurrences of
      '$pattern'/
    - Suggest using include/assert_grep.inc
    
    @mysql-test/include/mysqlbinlog.inc
    - New test framework file to filter out nondeterministic output.
      (Before, similar filter regexes were repeated in lots of places all
      over the test suite.)
    
    @mysql-test/include/rpl_change_topology_helper.inc
    - Assert that gtid_mode=on if $use_gtids is set
      (see motivation in changeset comment for assert_gtid_mode_on.inc).
    - Provide more debug info.
    
    @mysql-test/include/rpl_init.inc
    - Allow user to override $use_gtids=1 when gtid_mode=on.
    
    @mysql-test/include/save_io_thread_pos.inc
    - Assert that gtid_mode=on if $use_gtids is set
      (see motivation in changeset comment for assert_gtid_mode_on.inc).
    
    @mysql-test/include/save_master_pos.inc
    - Assert that gtid_mode=on if $use_gtids is set
      (see motivation in changeset comment for assert_gtid_mode_on.inc).
    
    @mysql-test/include/show_binlog_events.inc
    - Add missing documentation for existing parameter
      $mask_binlog_commit_events.
    - Add documentation for new parameters $show_binlog_events_verbose and
      $show_binlog_events_mask_columns (see show_events.inc for details).
    
    @mysql-test/include/show_events.inc
    - Change SQL commands to UPPERCASE.
    - Add $show_binlog_events_verbose parameter that will print statement
      with positions and filenames masked.
    - Add output of full statement if $rpl_debug is set.
    - Add parameter to allow masking out a given set of columns. This
      is needed in order to fix and simplify
      mysql-test/extra/binlog_tests/binlog.test
    - Mask out Anonymous_Gtid so that output is the same whether GTID_MODE
      is ON or OFF.
    - Correct a variable name, s/sidno/gno/.
    
    @mysql-test/include/show_rpl_debug_info.inc
    - Select from P_S tables.
    - Add $rpl_topology to output.
    
    @mysql-test/include/sync_slave_io.inc
    - Assert that gtid_mode=on if $use_gtids is set
      (see motivation in changeset comment for assert_gtid_mode_on.inc).
    
    @mysql-test/include/sync_slave_sql.inc
    - Assert that gtid_mode=on if $use_gtids is set
      (see motivation in changeset comment for assert_gtid_mode_on.inc).
    - Fix typo to produce correct output on timeout.
    
    @mysql-test/include/wait_for_query_to_succeed.inc
    - Document the file.
    - Write debug info when it fails.
    
    @mysql-test/include/write_result_to_file.inc
    - Print perl's error text ($!) on error.
    - Print $stmt on error.
    
    @mysql-test/r/flush_block_commit_notembedded.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/r/mysqlbinlog.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/r/user_var-binlog.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/binlog/r/binlog_gtid_mysqlbinlog_row.result
    - Update result file because test now uses include/mysqlbinlog.inc.
    
    @mysql-test/suite/binlog/r/binlog_gtid_mysqlbinlog_row_innodb.result
    - Update result file because test now uses include/mysqlbinlog.inc.
    
    @mysql-test/suite/binlog/r/binlog_gtid_mysqlbinlog_row_myisam.result
    - Update result file because test now uses include/mysqlbinlog.inc.
    
    @mysql-test/suite/binlog/r/binlog_gtid_mysqlbinlog_start_stop.result
    - Update result file because test now uses include/mysqlbinlog.inc.
    
    @mysql-test/suite/binlog/r/binlog_gtid_row_ctype_ucs.result
    - Update result file because test now uses include/mysqlbinlog.inc.
    
    @mysql-test/suite/binlog/r/binlog_gtid_stm_ctype_ucs.result
    - Update result file because test now uses include/mysqlbinlog.inc.
    
    @mysql-test/suite/binlog/r/binlog_hexdump.result
    - Update result file because output of mysqlbinlog has changed.
    
    @mysql-test/suite/binlog/r/binlog_implicit_commit.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/binlog/r/binlog_innodb.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/binlog/r/binlog_mts_logical_clock.result
    - Update result because grep_pattern.inc output was changed.
    
    @mysql-test/suite/binlog/r/binlog_mts_logical_clock_gtid.result
    - Update result because grep_pattern.inc output was changed.
    
    @mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/binlog/r/binlog_mysqlbinlog_start_stop.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-
    test/suite/binlog/r/binlog_mysqlbinlog_start_stop_slave_server_id.result
    - Update result file since the test uses include/mysqlbinlog.inc instead
      of $MYSQL_BINLOG.
    
    @mysql-test/suite/binlog/r/binlog_rewrite_suppress_use.result
    - Update result because grep_pattern.inc output was changed.
    
    @mysql-test/suite/binlog/r/binlog_row_binlog.result
    - Update result file since we now use show_binlog_events.inc instead of
      SHOW BINLOG EVENTS. show_binlog_events.inc filters out
      Format_description_log_events.
    
    @mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/binlog/r/binlog_row_insert_select.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/binlog/r/binlog_stm_binlog.result
    - Update result file because of changes in test.
    
    @mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/binlog/r/binlog_stm_insert_select.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    - Also an assert was added.
    
    @mysql-test/suite/binlog/r/binlog_unsafe.result
    - Update result file because assert was added.
    
    @mysql-test/suite/binlog/t/binlog_killed.test
    - The code assumed a specific number of events in the binlog, and had a
      case distinction between GTID_MODE=ON or OFF. Simplified this since we
      now expect the same number of events always.
    - Removed useless replace_result.
    
    @mysql-test/suite/binlog/t/binlog_mts_logical_clock.test
    - Update test since grep_pattern.inc has moved and changed.
    
    @mysql-test/suite/binlog/t/binlog_mts_logical_clock_gtid.test
    - Update test since grep_pattern.inc has moved and changed.
    
    @mysql-test/suite/binlog/t/binlog_mysqlbinlog_concat.test
    - This test started failing because of this worklog. The test generates
      three binary logs: one with GTID_MODE=ON, one with GTID_MODE=OFF, and
      one with GTID_MODE=ON. Then it runs mysqlbinlog and executes the
      output from mysqlbinlog on a server that uses GTID_MODE=ON.
      Before this worklog, this did not cause any problems, because the
      binary log generated with GTID_MODE=OFF did not contain any GTIDs.
      Now, it contains Anonymous_gtid_log_event, which is not allowed when
      GTID_MODE=ON.
      To fix this, we use the --skip-gtids with mysqlbinlog when processing
      the second binary log file.
    
    @mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans.test
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/suite/binlog/t/binlog_rewrite_suppress_use.test
    - Update test since grep_pattern.inc has moved and changed.
    
    @mysql-test/suite/binlog/t/binlog_row_query_log_events.test
    - The code assumed a specific number of events in the binlog, and had a
      case distinction between GTID_MODE=ON or OFF. Simplified this since we
      now expect the same number of events always.
    
    @mysql-test/suite/binlog/t/binlog_server_id.test
    - The code assumed a specific number of events in the binlog, and had a
      case distinction between GTID_MODE=ON or OFF. Simplified this since we
      now expect the same number of events always.
    
    @mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result
    - Updated result file because of changes in test file.
    
    @mysql-test/suite/rpl/r/rpl_do_db_filter.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/rpl/r/rpl_filter_warnings.result
    - Update result because output from grep_pattern.inc has changed.
    
    @mysql-test/suite/rpl/r/rpl_gtid_binlog_errors.result.THIS
    - Now, rpl_binlog_errors.test and rpl_gtid_binlog_errors.test
      have identical result files. Having different result files was
      the only reason for separating them into different tests. Thus,
      reconciled them into one test by removing the .test files (which
      were just wrappers), replacing them by the .inc file, and removing
      all the rpl_gtid_binlog_error* files.
    
    @mysql-test/suite/rpl/r/rpl_gtid_mode.result
    - Update result file because of changes in test file and in output
      from SHOW BINLOG EVENTS.
    
    @mysql-test/suite/rpl/r/rpl_gtid_row_show_relaylog_events.result
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/r/rpl_gtid_stm_mix_show_relaylog_events.result
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/r/rpl_ignore_db_filter.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/rpl/r/rpl_loaddata_s.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result
    - Update result file.
    
    @mysql-test/suite/rpl/r/rpl_mts_logical_clock_timestamping.result
    - Update result since output from grep_pattern.inc has changed.
    
    @mysql-test/suite/rpl/r/rpl_mts_logical_clock_wrong_start_pos.result
    - Update result because of change in test.
    
    @mysql-test/suite/rpl/r/rpl_mysqlbinlog_gtid_on.result
    - Update result.
    
    @mysql-test/suite/rpl/t/rpl_recovery_replicate_same_server_id.result
    - Update result file because of clarifications in the main test file.
    
    @mysql-test/suite/rpl/r/rpl_replicate_same_server_id.result
    - Update result file because of clarifications in the main test file.
    - Rename the file since this really tests replicate-same-server-id.
    
    @mysql-test/suite/rpl/r/rpl_replication_observers_example_plugin.result
    - Update result because grep_pattern.inc output was changed.
    
    @mysql-
    test/suite/rpl/r/rpl_replication_observers_example_plugin_io.result
    - Update result because grep_pattern.inc output was changed.
    
    @mysql-test/suite/rpl/r/rpl_row_event_max_size.result
    - Update result file because binlog now contains
      Anonymous_gtids_log_event.
    
    @mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result
    - Update result file because assert was added.
    
    @mysql-test/suite/rpl/r/rpl_row_mts_show_relaylog_events.result
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result
    - Update result because test uses the new mysqlbinlog.inc file.
    
    @mysql-test/suite/rpl/r/rpl_row_show_relaylog_events.result
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/r/rpl_row_until.result
    - Update result file because of simplification in main file.
    
    @mysql-test/suite/rpl/r/rpl_server_id.result
    - Renamed this file. No need to have a numeric suffix.
    
    @mysql-test/suite/rpl/r/rpl_server_uuid.result
    - Update result file because test file was changed.
    
    @mysql-test/suite/rpl/r/rpl_show_relaylog_events.result
    - Result file for new test.
    
    @mysql-test/suite/rpl/r/rpl_skip_slave_err_warnings.result
    - Update result since output from grep_pattern.inc has changed.
    
    @mysql-test/suite/rpl/r/rpl_sp_innodb.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/rpl/r/rpl_sp_myisam.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result
    - Update result file because assert was added in the test file.
    
    @mysql-test/suite/rpl/r/rpl_stm_mix_mts_show_relaylog_events.result
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/r/rpl_stm_mix_show_relaylog_events.result
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/r/rpl_typeconv.result
    - Update result file because the test file was simplified.
    
    @mysql-test/suite/rpl/t/rpl_begin_commit_rollback-master.opt
    - Rename database to make test more readable.
    
    @mysql-test/suite/rpl/t/rpl_begin_commit_rollback-slave.opt
    - Rename database to make test more readable.
    
    @mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test
    - Test failure fix:
      The test did a START SLAVE UNTIL MASTER_LOG_POS, where
      MASTER_LOG_POS was one byte into a transaction. With no
      Gtid_log_event, that will round the position up so that the entire
      transaction is exeucted on slave. However, if the position is one byte
      into a Gtid_log_event, it will instead stop before the transaction has
      been committed. This caused the test to fail. The fix is to set
      MASTER_LOG_POS to one byte into the BEGIN query_log_event instead.
    - Cosmetic fix:
      added comments to explain what the test does
    - Improve debugging:
      use assertions instead of 'eval SELECT $result as 'Must be 0'
    - Cleanup:
      The test did:
        echo [on master]
        SET SESSION AUTOCOMMIT=0;
      Since there was no semicolon after the echo, the SET statement
      was never executed, only echoed. This was very confusing, and
      the test would fail if we actually set autocommit=0 here. So
      removed this.
    - Cosmetic fix:
      removed redundant DROP DATABASE IF EXISTS at the beginning of the test
    - Cosmetic fix:
      renamed databases to make test more readable:
      db1 -> replicate_do_db
      db2 -> binlog_ignore_db
    - Cosmetic fix:
      replaced
        connection master;
        echo [on master];
      by
        --source include/rpl_connection_master.inc
    - Cosmetic fix:
      use uppercase for SQL in some cases
    
    @mysql-test/suite/rpl/t/rpl_binlog_errors.test
    - Change LIMIT clause of SHOW BINLOG EVENTS to compensate for adding two
      more events.
    - Now, rpl_binlog_errors.test and rpl_gtid_binlog_errors.test
      have identical result files. Having different result files was
      the only reason for separating them into different tests. Thus,
      reconciled them into one test by removing the .test files (which
      were just wrappers), replacing them by the .inc file, and removing
      all the rpl_gtid_binlog_error* files.
    
    @mysql-test/suite/rpl/t/rpl_binlog_errors.test
    - Now, rpl_binlog_errors.test and rpl_gtid_binlog_errors.test
      have identical result files. Having different result files was
      the only reason for separating them into different tests. Thus,
      reconciled them into one test by removing the .test files (which
      were just wrappers), replacing them by the .inc file, and removing
      all the rpl_gtid_binlog_error* files.
    
    @mysql-test/suite/rpl/t/rpl_dual_pos_advance.test
    - Fix failing test:
      because the number of events has changed, we change the LIMIT options
      for SHOW BINLOG EVENTS.
    
    @mysql-test/suite/rpl/t/rpl_filter_warnings.test
    - Update test because grep_pattern.inc was moved and altered.
    
    @mysql-test/suite/rpl/t/rpl_grant_plugin.test
    - The code assumed a specific number of events in the binlog, and had a
      case distinction between GTID_MODE=ON or OFF. Simplified this since we
      now expect the same number of events always.
    
    @mysql-test/suite/rpl/t/rpl_gtid_binlog_errors-master.opt
    - Now, rpl_binlog_errors.test and rpl_gtid_binlog_errors.test
      have identical result files. Having different result files was
      the only reason for separating them into different tests. Thus,
      reconciled them into one test by removing the .test files (which
      were just wrappers), replacing them by the .inc file, and removing
      all the rpl_gtid_binlog_error* files.
    
    @mysql-test/suite/rpl/t/rpl_gtid_binlog_errors.test
    - Now, rpl_binlog_errors.test and rpl_gtid_binlog_errors.test
      have identical result files. Having different result files was
      the only reason for separating them into different tests. Thus,
      reconciled them into one test by removing the .test files (which
      were just wrappers), replacing them by the .inc file, and removing
      all the rpl_gtid_binlog_error* files.
    
    @mysql-test/suite/rpl/t/rpl_gtid_drop_table.test
    - Fix typos in comment.
    - Simplify test assertion.
    
    @mysql-test/suite/rpl/t/rpl_gtid_mode.test
    - Fix failing test:
      because the number of events has changed, we change the LIMIT options
      for SHOW BINLOG EVENTS.
    
    @mysql-test/suite/rpl/t/rpl_gtid_row_show_relaylog_events.test
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/t/rpl_gtid_stm_mix_show_relaylog_events.test
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/t/rpl_mts_logical_clock_timestamping.test
    - Update test because grep_pattern.inc was moved and altered.
    
    @mysql-test/suite/rpl/t/rpl_mts_logical_clock_wrong_start_pos.test
    - Mask out positions from result file.
    
    @mysql-test/suite/rpl/t/rpl_mysqlbinlog_gtid_on.test
    - Add comments explaining the purpose of the test.
    - Remove last part of the test. The tested behavior is not intended, and
      this part of the test failed.
    
    @mysql-test/suite/rpl/t/rpl_recovery_replicate_same_server_id.test
    - Use include/assert_grep.inc instead of grep_pattern.inc since
      grep_pattern.inc has changed.
    
    @mysql-test/suite/rpl/t/rpl_replicate_same_server_id-master.opt
    - Rename this file to better reflect what is being tested.
    
    @mysql-test/suite/rpl/t/rpl_replicate_same_server_id-slave.opt
    - Rename this file to better reflect what is being tested.
    
    @mysql-test/suite/rpl/t/rpl_replicate_same_server_id.test
    - Rename this file to better reflect what is being tested.
    - Add comments to explain what is being tested.
    - Upgrade to our current coding standards.
    - Remove a possible race.
    
    @mysql-test/suite/rpl/t/rpl_replication_observers_example_plugin.test
    - Update test since grep_pattern.inc has moved and changed.
    
    @mysql-test/suite/rpl/t/rpl_replication_observers_example_plugin_io.test
    - Update test since grep_pattern.inc has moved and changed.
    
    @mysql-test/suite/rpl/t/rpl_row_ignorable_event.test
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/suite/rpl/t/rpl_row_mts_show_relaylog_events.test
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/suite/rpl/t/rpl_row_show_relaylog_events.test
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/t/rpl_row_until.test
    - Read master position using SHOW MASTER STATUS instead of
      SHOW BINLOG EVENTS, because SHOW BINLOG EVENTS requires that you
      give the exact number of events.
    - Use replace_result to filter out exact positions, instead of echoing
      the filtered statement and disabling the query log while executing the
      statement.
    
    @mysql-test/suite/rpl/t/rpl_server_id.test
    - Improve and clarify the comment.
    - Change the name of the test.
    
    @mysql-test/suite/rpl/t/rpl_server_uuid.test
    - Improvements in readability, used when debugging the test. (Eventually
      the fix was elsewhere but we may as well keep the improvements.)
    
    @mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    - Simplify the test suite:
      This family of tests contained a lot of duplications and
      confusions:
      - The following tests existed in the suite:
          rpl.rpl_stm_mix_show_relaylog_events
          rpl.rpl_stm_mix_gtid_show_relaylog_events
          rpl.rpl_stm_mix_mts_show_relaylog_events
          rpl.rpl_row_show_relaylog_events
          rpl.rpl_row_gtid_show_relaylog_events
          rpl.rpl_row_mts_show_relaylog_events
      - The *_mts_* tests were not specific to mts, they were specific to
        innodb. The only difference was that their result files differed on
        the commit events, which were Xid_log_events for MTS and
        query_log_event(COMMIT) events for non-MTS.  There is a flag in
        show_binlog_events.inc to mask Xid events so that they look like
        query_log_events, so we can merge them to one file.
      - The *_gtid_* tests were only different because there was a
        Gtid_log_event when GTID_MODE=ON and no event when GTID_MODE=OFF.
        Now we always have an event, so we can merge the files together.
      - The *_stm_mix_* and *_row_* tests were only different because there
        was DML in the binlogs.  There is no need for DML in this test case,
        it's enough to test with DDL, so we can merge these files together
        too.
      - So now that the output has been unified, we only need one test file
        and one result file.
      - The test used four levels of include files. This was redundant
        and made it very difficult to follow the logic. The test now
        invokes include/show_relaylog_events.inc directly, which
        makes it easier to understand what is going on.
      - The test used show_binlog_events.inc. This was unnecesary since
        the purpose is to test SHOW RELAYLOG EVENTS. Other tests test
        SHOW BINLOG EVENTS. So I have removed SHOW BINLOG EVENTS.
    - Fix test failure:
      The tests were failing because the output of SHOW RELAYLOG EVENTS
      has changed because Gtid_log_event is now generated.
    
    @mysql-test/suite/rpl/t/rpl_skip_slave_err_warnings.test
    - Update test because grep_pattern.inc was moved and altered.
    
    @mysql-test/suite/rpl/t/rpl_stm_mix_mts_show_relaylog_events.test
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/t/rpl_stm_mix_show_relaylog_events.test
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/t/mysqlbinlog.test
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/t/sp_trans_log.test
    - Change LIMIT clause of SHOW BINLOG EVENTS since binlog now
      contains two new events.
    
    @mysql-test/t/user_var-binlog.test
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @sql/binlog.cc
    - Make simplified-gtid-recovery stop iteration over binary logs in the
      case that the first binary log contains a Previous_gtids_log_event.
    - Improve English in a comment.
    
    @sql/log_event.cc
    - Document logic for sql_slave_skip_counter.
    - Remove printing of logical timestamps from Query_log_event. The code
      for these timestamps will be removed in the next patch, but we remove
      the output already in this patch so that the necessary upates of
      tests get included in this patch.
    - Fix bug in Gtid_log_event for sql_slave_skip_counter, by implementing
      Gtid_log_event::do_shall_skip and make it call continue_group.
    
    @sql/log_event.h
    - Implement Gtid_log_event::do_shall_skip.
    
    @sql/rpl_rli.cc
    - Fix bug in START SLAVE UNTIL MASTER_LOG_POS.
    
    @sql/rpl_rli.h
    - Document logic and purpose of is_in_group.
    
    @mysql-test/suite/engines/funcs/t/disabled.def
    - Disable rpl_row_until due to BUG#20365935 (which is unrelated to this worklog).
    9ad6b773
    WL#7592 step 10. GTIDs: Generate Gtid_log_event and Previous_gtids_log_event...
    Sven Sandberg authored
    WL#7592 step 10. GTIDs: Generate Gtid_log_event and Previous_gtids_log_event always. Fix failing tests.
    
    This patch fixes all test cases that fails due to the previous two
    patches. In addition it fixes two code bugs that were exposed/introduced
    due to the previous two patches, and which caused some of the test
    failures.
    
    - Fix bug in START SLAVE UNTIL MASTER_LOG_POS logic.
      The problem was: some Rotate_log_events in the relay log are generated
      on the slave, not on the master. Thus, their end_log_pos field is
      relative to the slave relay log. Since MASTER_LOS_POS is relative to
      the master binary log, we must not evaluate the MASTER_LOS_POS
      condition for such slave-generated Rotate_log_events. But the logic to
      skip the until check for slave-generated events was missing, and this
      caused tests to fail.
    
      The fix is to avoid evaluating the until condition for slave-generated
      events. This is easy because such events are easily distinguishable
      since their server_id is zero. So we check if the server_id==0, and in
      that case we don't evaluate the until condition.
    
      This did not cause any tests to fail before this worklog, because the
      events appeared so early in the relay log that their positions would
      be smaller than the position specified by MASTER_LOG_POS. However,
      after this patch, the events appear after Previous_gtids_log_event,
      which moves the position forward so much that it causes the slave
      thread to stop before the rotate event, which causes the test to fail.
    
      This was also not triggered by running the suite with gtid_mode=on,
      because the test was using include/not_gtid_enabled.inc.
    
    - Fix bug in sql_slave_skip_counter with GTIDs.
      sql_slave_skip_counter did not compute transaction boundaries
      correctly in the presence of Gtid_log_events. This did not cause any
      problems before this patch since sql_slave_skip_counter is not allowed
      when gtid_mode=on.
    
      sql_slave_skip_counter is supposed to decrease for every event
      processed, except it should not decrease down to 0 in the middle of a
      group. This ensures that the applier thread does not stop in the
      middle of a transaction. However, the applier thread did not consider
      Gtid_log_event to be part of a group, and therefore it could stop
      after the Gtid_log_event.
    
      The problem was that Gtid_log_event implemented a specialized
      do_shall_skip function. This caused it to decrease the counter down to
      zero. The fix is to implement Gtid_log_event::do_shall_skip and make
      it call continue_group.
    
    - Fix simplified-binlog-recovery.
      Writing Previous_gtids_log_event always broke the logic for
      simplified-binlog-recovery.
      Background:
      Before this patch, simplified-binlog-recovery would avoid
      iterating over multiple binary logs only in the case that the
      binlog lacks a Previous_gtids_log_event.
      Problem:
      Since we now generate Previous_gtids_log_event always,
      recovery would iterate over all binary logs even when
      simplified-binlog-recovery was enabled.
      Fix:
      Make it so that simplified-binlog-recovery skips the rest
      of the binary logs also in the case that the first binary log
      contains a Previous_gtids_log_event and no Gtid_log_event.
    
    @mysql-test/extra/binlog_tests/binlog.test
    - Use show_binlog_events.inc instead of SHOW BINLOG EVENTS, so that
      Gtid/Anonymous events gets masked appropriately.
    - This particular test requires that columns 1, 2, and 5 are masked out
      (so that server_id is not masked out). However, show_binlog_events.inc
      only masks columns 2, 4, 5. Changed show_binlog_events.inc so that it
      allows user to specify the set of columns to be masked.
    
    @mysql-test/extra/binlog_tests/binlog_mysqlbinlog_row.inc
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/extra/binlog_tests/ctype_ucs_binlog.test
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/extra/binlog_tests/drop_tables_logical_timestamp.inc
    - Update test because grep_pattern.inc was altered.
    
    @mysql-test/extra/binlog_tests/logical_timestamping.inc
    - Update test because grep_pattern.inc was moved and altered.
    
    @mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test
    - Test was failing because it was expecting an exact number of events in
      the binlog. Fixed by adding an auxiliary test script
      include/get_row_count.inc that computes the number of events in the
      binlog.
    - While I was here, also changed to use assertion.
    
    @mysql-test/extra/binlog_tests/mysqlbinlog_row_engine.inc
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/extra/binlog_tests/mysqlbinlog_start_stop_2.inc
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/extra/rpl_tests/check_type.inc
    - Provide more debug info if $rpl_debug is set.
    
    @mysql-test/extra/rpl_tests/create_recursive_construct.inc
    - The test expected that an empty binlog would contain 2 events. Changed
      this to 3.
    - The test expected that the third event of a binlog containing only one
      DML transaction in row format would be a Table_map. Changed third to
      fifth.
    - Simplify code to use assertions, to make it more readable and produce
      more debug output on failure.
    
    @mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test
    - Fix test failure:
      This test executed some statements and then asserted that there was a
      COMMIT after a specific number of events in the binary log. Since
      we now write more events to the binary log, we have to increase this
      number in order for the test to succeed.
    - Use assert.inc instead of manual 'if' statements.
    - Rename variable $ok to $check_position_of_commit_event, since that
      explains better what the variable does.
    - Clarify purpose of the test.
    
    @mysql-test/extra/rpl_tests/rpl_insert_ignore.test
    - Test failure fix:
      The test asserted that there was a query_log_event after a specific
      number of events in the binary log. Since the number of events has
      changed, this number has to be updated.
    - The test case used to have a special case for gtid_mode=on, handled
      by extra/rpl_tests/rpl_insert_ignore_gtid_on.inc
      Since there is now no difference in event count between gtid_mode=on
      and gtid_mode=off, we can hardcode the number again and do not need
      the include file. Removed the include file.
    
    @mysql-test/extra/rpl_tests/rpl_insert_ignore_gtid_on.inc
    - Remove this file as it is not needed any more.
      See changeset comment for
      mysql-test/extra/rpl_tests/rpl_insert_ignore.test
    
    @mysql-test/extra/rpl_tests/rpl_log.test
    - Update the LIMIT clause for SHOW BINLOG EVENTS because
      the number of events in the binlog has changed. Now we can
      unify this instead of having different cases for GTID_MODE=ON
      and GTID_MODE=OFF.
    
    @mysql-test/extra/rpl_tests/rpl_row_show_relaylog_events.inc
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/extra/rpl_tests/rpl_show_binlog_events.inc
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/extra/rpl_tests/rpl_show_log_events_with_varying_options.inc
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/extra/rpl_tests/rpl_sp.test
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/extra/rpl_tests/rpl_start_stop_slave.test
    - Disable a part of the test that crashes MTS, which will be fixed in a
      separate bug.
    
    @mysql-test/extra/rpl_tests/rpl_stm_mix_show_relaylog_events.inc
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/extra/rpl_tests/type_conversions.test
    - Provide more debug info if $rpl_debug is set, but do not output lots
      of junk to the result file if $rpl_debug is unset.
    
    @mysql-test/include/assert_grep.inc
    - New auxiliary test script to be used instead of
      include/grep_pattern.inc
    
    @mysql-test/include/assert_gtid_mode_on.inc
    - New auxiliary file that causes the test to fail if gtid_mode is not
      ON. This was added to avoid similar bugs to the one found in
      rpl_incompatible_gtids_in_relay_log.test (see commit comments for that
      file for details). This file is sourced from the auxiliary files
      include/sync_*.inc
    
    @mysql-test/include/filter_file.inc
    - Add parameter to allow masking a given set of columns. This is needed
      to implement the new $show_binlog_events_mask_columns parameter of
      show_binlog_events.inc.
    
    @mysql-test/include/get_row_count.inc
    - New auxiliary file used by
      mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test.
    
    @mysql-test/include/grep_pattern.inc
    - Add $grep_output parameter, to allow different modes of output. This
      was needed in order to fix a bug in
      mysql-test/extra/rpl_test/rpl_large_serverid.inc
      (see changeset comment for that file for details).
    - Move the file to mysql-test/include. This is a generic utility, and
      as such it belongs to mysql-test/include. mysql-test/extra/... is
      generally used for test-specific includes.
    - Use mtr variables instead of environment variables for parameters.
    - Remove extra newline that was printed after each output row.
    - Improve the output: s/Occurrences of the $pattern/Occurrences of
      '$pattern'/
    - Suggest using include/assert_grep.inc
    
    @mysql-test/include/mysqlbinlog.inc
    - New test framework file to filter out nondeterministic output.
      (Before, similar filter regexes were repeated in lots of places all
      over the test suite.)
    
    @mysql-test/include/rpl_change_topology_helper.inc
    - Assert that gtid_mode=on if $use_gtids is set
      (see motivation in changeset comment for assert_gtid_mode_on.inc).
    - Provide more debug info.
    
    @mysql-test/include/rpl_init.inc
    - Allow user to override $use_gtids=1 when gtid_mode=on.
    
    @mysql-test/include/save_io_thread_pos.inc
    - Assert that gtid_mode=on if $use_gtids is set
      (see motivation in changeset comment for assert_gtid_mode_on.inc).
    
    @mysql-test/include/save_master_pos.inc
    - Assert that gtid_mode=on if $use_gtids is set
      (see motivation in changeset comment for assert_gtid_mode_on.inc).
    
    @mysql-test/include/show_binlog_events.inc
    - Add missing documentation for existing parameter
      $mask_binlog_commit_events.
    - Add documentation for new parameters $show_binlog_events_verbose and
      $show_binlog_events_mask_columns (see show_events.inc for details).
    
    @mysql-test/include/show_events.inc
    - Change SQL commands to UPPERCASE.
    - Add $show_binlog_events_verbose parameter that will print statement
      with positions and filenames masked.
    - Add output of full statement if $rpl_debug is set.
    - Add parameter to allow masking out a given set of columns. This
      is needed in order to fix and simplify
      mysql-test/extra/binlog_tests/binlog.test
    - Mask out Anonymous_Gtid so that output is the same whether GTID_MODE
      is ON or OFF.
    - Correct a variable name, s/sidno/gno/.
    
    @mysql-test/include/show_rpl_debug_info.inc
    - Select from P_S tables.
    - Add $rpl_topology to output.
    
    @mysql-test/include/sync_slave_io.inc
    - Assert that gtid_mode=on if $use_gtids is set
      (see motivation in changeset comment for assert_gtid_mode_on.inc).
    
    @mysql-test/include/sync_slave_sql.inc
    - Assert that gtid_mode=on if $use_gtids is set
      (see motivation in changeset comment for assert_gtid_mode_on.inc).
    - Fix typo to produce correct output on timeout.
    
    @mysql-test/include/wait_for_query_to_succeed.inc
    - Document the file.
    - Write debug info when it fails.
    
    @mysql-test/include/write_result_to_file.inc
    - Print perl's error text ($!) on error.
    - Print $stmt on error.
    
    @mysql-test/r/flush_block_commit_notembedded.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/r/mysqlbinlog.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/r/user_var-binlog.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/binlog/r/binlog_gtid_mysqlbinlog_row.result
    - Update result file because test now uses include/mysqlbinlog.inc.
    
    @mysql-test/suite/binlog/r/binlog_gtid_mysqlbinlog_row_innodb.result
    - Update result file because test now uses include/mysqlbinlog.inc.
    
    @mysql-test/suite/binlog/r/binlog_gtid_mysqlbinlog_row_myisam.result
    - Update result file because test now uses include/mysqlbinlog.inc.
    
    @mysql-test/suite/binlog/r/binlog_gtid_mysqlbinlog_start_stop.result
    - Update result file because test now uses include/mysqlbinlog.inc.
    
    @mysql-test/suite/binlog/r/binlog_gtid_row_ctype_ucs.result
    - Update result file because test now uses include/mysqlbinlog.inc.
    
    @mysql-test/suite/binlog/r/binlog_gtid_stm_ctype_ucs.result
    - Update result file because test now uses include/mysqlbinlog.inc.
    
    @mysql-test/suite/binlog/r/binlog_hexdump.result
    - Update result file because output of mysqlbinlog has changed.
    
    @mysql-test/suite/binlog/r/binlog_implicit_commit.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/binlog/r/binlog_innodb.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/binlog/r/binlog_mts_logical_clock.result
    - Update result because grep_pattern.inc output was changed.
    
    @mysql-test/suite/binlog/r/binlog_mts_logical_clock_gtid.result
    - Update result because grep_pattern.inc output was changed.
    
    @mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/binlog/r/binlog_mysqlbinlog_start_stop.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-
    test/suite/binlog/r/binlog_mysqlbinlog_start_stop_slave_server_id.result
    - Update result file since the test uses include/mysqlbinlog.inc instead
      of $MYSQL_BINLOG.
    
    @mysql-test/suite/binlog/r/binlog_rewrite_suppress_use.result
    - Update result because grep_pattern.inc output was changed.
    
    @mysql-test/suite/binlog/r/binlog_row_binlog.result
    - Update result file since we now use show_binlog_events.inc instead of
      SHOW BINLOG EVENTS. show_binlog_events.inc filters out
      Format_description_log_events.
    
    @mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/binlog/r/binlog_row_insert_select.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/binlog/r/binlog_stm_binlog.result
    - Update result file because of changes in test.
    
    @mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/binlog/r/binlog_stm_insert_select.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    - Also an assert was added.
    
    @mysql-test/suite/binlog/r/binlog_unsafe.result
    - Update result file because assert was added.
    
    @mysql-test/suite/binlog/t/binlog_killed.test
    - The code assumed a specific number of events in the binlog, and had a
      case distinction between GTID_MODE=ON or OFF. Simplified this since we
      now expect the same number of events always.
    - Removed useless replace_result.
    
    @mysql-test/suite/binlog/t/binlog_mts_logical_clock.test
    - Update test since grep_pattern.inc has moved and changed.
    
    @mysql-test/suite/binlog/t/binlog_mts_logical_clock_gtid.test
    - Update test since grep_pattern.inc has moved and changed.
    
    @mysql-test/suite/binlog/t/binlog_mysqlbinlog_concat.test
    - This test started failing because of this worklog. The test generates
      three binary logs: one with GTID_MODE=ON, one with GTID_MODE=OFF, and
      one with GTID_MODE=ON. Then it runs mysqlbinlog and executes the
      output from mysqlbinlog on a server that uses GTID_MODE=ON.
      Before this worklog, this did not cause any problems, because the
      binary log generated with GTID_MODE=OFF did not contain any GTIDs.
      Now, it contains Anonymous_gtid_log_event, which is not allowed when
      GTID_MODE=ON.
      To fix this, we use the --skip-gtids with mysqlbinlog when processing
      the second binary log file.
    
    @mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans.test
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/suite/binlog/t/binlog_rewrite_suppress_use.test
    - Update test since grep_pattern.inc has moved and changed.
    
    @mysql-test/suite/binlog/t/binlog_row_query_log_events.test
    - The code assumed a specific number of events in the binlog, and had a
      case distinction between GTID_MODE=ON or OFF. Simplified this since we
      now expect the same number of events always.
    
    @mysql-test/suite/binlog/t/binlog_server_id.test
    - The code assumed a specific number of events in the binlog, and had a
      case distinction between GTID_MODE=ON or OFF. Simplified this since we
      now expect the same number of events always.
    
    @mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result
    - Updated result file because of changes in test file.
    
    @mysql-test/suite/rpl/r/rpl_do_db_filter.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/rpl/r/rpl_filter_warnings.result
    - Update result because output from grep_pattern.inc has changed.
    
    @mysql-test/suite/rpl/r/rpl_gtid_binlog_errors.result.THIS
    - Now, rpl_binlog_errors.test and rpl_gtid_binlog_errors.test
      have identical result files. Having different result files was
      the only reason for separating them into different tests. Thus,
      reconciled them into one test by removing the .test files (which
      were just wrappers), replacing them by the .inc file, and removing
      all the rpl_gtid_binlog_error* files.
    
    @mysql-test/suite/rpl/r/rpl_gtid_mode.result
    - Update result file because of changes in test file and in output
      from SHOW BINLOG EVENTS.
    
    @mysql-test/suite/rpl/r/rpl_gtid_row_show_relaylog_events.result
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/r/rpl_gtid_stm_mix_show_relaylog_events.result
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/r/rpl_ignore_db_filter.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/rpl/r/rpl_loaddata_s.result
    - Update result file because output from SHOW BINLOG EVENTS has changed.
      Before, the result set was empty. Now, it contains one row with a
      Previous_gtids_log_event. But the row is filtered out by
      show_binlog_events.inc. The end result is that the column headers are
      added.
    
    @mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result
    - Update result file.
    
    @mysql-test/suite/rpl/r/rpl_mts_logical_clock_timestamping.result
    - Update result since output from grep_pattern.inc has changed.
    
    @mysql-test/suite/rpl/r/rpl_mts_logical_clock_wrong_start_pos.result
    - Update result because of change in test.
    
    @mysql-test/suite/rpl/r/rpl_mysqlbinlog_gtid_on.result
    - Update result.
    
    @mysql-test/suite/rpl/t/rpl_recovery_replicate_same_server_id.result
    - Update result file because of clarifications in the main test file.
    
    @mysql-test/suite/rpl/r/rpl_replicate_same_server_id.result
    - Update result file because of clarifications in the main test file.
    - Rename the file since this really tests replicate-same-server-id.
    
    @mysql-test/suite/rpl/r/rpl_replication_observers_example_plugin.result
    - Update result because grep_pattern.inc output was changed.
    
    @mysql-
    test/suite/rpl/r/rpl_replication_observers_example_plugin_io.result
    - Update result because grep_pattern.inc output was changed.
    
    @mysql-test/suite/rpl/r/rpl_row_event_max_size.result
    - Update result file because binlog now contains
      Anonymous_gtids_log_event.
    
    @mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result
    - Update result file because assert was added.
    
    @mysql-test/suite/rpl/r/rpl_row_mts_show_relaylog_events.result
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result
    - Update result because test uses the new mysqlbinlog.inc file.
    
    @mysql-test/suite/rpl/r/rpl_row_show_relaylog_events.result
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/r/rpl_row_until.result
    - Update result file because of simplification in main file.
    
    @mysql-test/suite/rpl/r/rpl_server_id.result
    - Renamed this file. No need to have a numeric suffix.
    
    @mysql-test/suite/rpl/r/rpl_server_uuid.result
    - Update result file because test file was changed.
    
    @mysql-test/suite/rpl/r/rpl_show_relaylog_events.result
    - Result file for new test.
    
    @mysql-test/suite/rpl/r/rpl_skip_slave_err_warnings.result
    - Update result since output from grep_pattern.inc has changed.
    
    @mysql-test/suite/rpl/r/rpl_sp_innodb.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/rpl/r/rpl_sp_myisam.result
    - Update result file because output of mysqlbinlog has changed and we
      now use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG'.
    
    @mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result
    - Update result file because assert was added in the test file.
    
    @mysql-test/suite/rpl/r/rpl_stm_mix_mts_show_relaylog_events.result
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/r/rpl_stm_mix_show_relaylog_events.result
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/r/rpl_typeconv.result
    - Update result file because the test file was simplified.
    
    @mysql-test/suite/rpl/t/rpl_begin_commit_rollback-master.opt
    - Rename database to make test more readable.
    
    @mysql-test/suite/rpl/t/rpl_begin_commit_rollback-slave.opt
    - Rename database to make test more readable.
    
    @mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test
    - Test failure fix:
      The test did a START SLAVE UNTIL MASTER_LOG_POS, where
      MASTER_LOG_POS was one byte into a transaction. With no
      Gtid_log_event, that will round the position up so that the entire
      transaction is exeucted on slave. However, if the position is one byte
      into a Gtid_log_event, it will instead stop before the transaction has
      been committed. This caused the test to fail. The fix is to set
      MASTER_LOG_POS to one byte into the BEGIN query_log_event instead.
    - Cosmetic fix:
      added comments to explain what the test does
    - Improve debugging:
      use assertions instead of 'eval SELECT $result as 'Must be 0'
    - Cleanup:
      The test did:
        echo [on master]
        SET SESSION AUTOCOMMIT=0;
      Since there was no semicolon after the echo, the SET statement
      was never executed, only echoed. This was very confusing, and
      the test would fail if we actually set autocommit=0 here. So
      removed this.
    - Cosmetic fix:
      removed redundant DROP DATABASE IF EXISTS at the beginning of the test
    - Cosmetic fix:
      renamed databases to make test more readable:
      db1 -> replicate_do_db
      db2 -> binlog_ignore_db
    - Cosmetic fix:
      replaced
        connection master;
        echo [on master];
      by
        --source include/rpl_connection_master.inc
    - Cosmetic fix:
      use uppercase for SQL in some cases
    
    @mysql-test/suite/rpl/t/rpl_binlog_errors.test
    - Change LIMIT clause of SHOW BINLOG EVENTS to compensate for adding two
      more events.
    - Now, rpl_binlog_errors.test and rpl_gtid_binlog_errors.test
      have identical result files. Having different result files was
      the only reason for separating them into different tests. Thus,
      reconciled them into one test by removing the .test files (which
      were just wrappers), replacing them by the .inc file, and removing
      all the rpl_gtid_binlog_error* files.
    
    @mysql-test/suite/rpl/t/rpl_binlog_errors.test
    - Now, rpl_binlog_errors.test and rpl_gtid_binlog_errors.test
      have identical result files. Having different result files was
      the only reason for separating them into different tests. Thus,
      reconciled them into one test by removing the .test files (which
      were just wrappers), replacing them by the .inc file, and removing
      all the rpl_gtid_binlog_error* files.
    
    @mysql-test/suite/rpl/t/rpl_dual_pos_advance.test
    - Fix failing test:
      because the number of events has changed, we change the LIMIT options
      for SHOW BINLOG EVENTS.
    
    @mysql-test/suite/rpl/t/rpl_filter_warnings.test
    - Update test because grep_pattern.inc was moved and altered.
    
    @mysql-test/suite/rpl/t/rpl_grant_plugin.test
    - The code assumed a specific number of events in the binlog, and had a
      case distinction between GTID_MODE=ON or OFF. Simplified this since we
      now expect the same number of events always.
    
    @mysql-test/suite/rpl/t/rpl_gtid_binlog_errors-master.opt
    - Now, rpl_binlog_errors.test and rpl_gtid_binlog_errors.test
      have identical result files. Having different result files was
      the only reason for separating them into different tests. Thus,
      reconciled them into one test by removing the .test files (which
      were just wrappers), replacing them by the .inc file, and removing
      all the rpl_gtid_binlog_error* files.
    
    @mysql-test/suite/rpl/t/rpl_gtid_binlog_errors.test
    - Now, rpl_binlog_errors.test and rpl_gtid_binlog_errors.test
      have identical result files. Having different result files was
      the only reason for separating them into different tests. Thus,
      reconciled them into one test by removing the .test files (which
      were just wrappers), replacing them by the .inc file, and removing
      all the rpl_gtid_binlog_error* files.
    
    @mysql-test/suite/rpl/t/rpl_gtid_drop_table.test
    - Fix typos in comment.
    - Simplify test assertion.
    
    @mysql-test/suite/rpl/t/rpl_gtid_mode.test
    - Fix failing test:
      because the number of events has changed, we change the LIMIT options
      for SHOW BINLOG EVENTS.
    
    @mysql-test/suite/rpl/t/rpl_gtid_row_show_relaylog_events.test
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/t/rpl_gtid_stm_mix_show_relaylog_events.test
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/t/rpl_mts_logical_clock_timestamping.test
    - Update test because grep_pattern.inc was moved and altered.
    
    @mysql-test/suite/rpl/t/rpl_mts_logical_clock_wrong_start_pos.test
    - Mask out positions from result file.
    
    @mysql-test/suite/rpl/t/rpl_mysqlbinlog_gtid_on.test
    - Add comments explaining the purpose of the test.
    - Remove last part of the test. The tested behavior is not intended, and
      this part of the test failed.
    
    @mysql-test/suite/rpl/t/rpl_recovery_replicate_same_server_id.test
    - Use include/assert_grep.inc instead of grep_pattern.inc since
      grep_pattern.inc has changed.
    
    @mysql-test/suite/rpl/t/rpl_replicate_same_server_id-master.opt
    - Rename this file to better reflect what is being tested.
    
    @mysql-test/suite/rpl/t/rpl_replicate_same_server_id-slave.opt
    - Rename this file to better reflect what is being tested.
    
    @mysql-test/suite/rpl/t/rpl_replicate_same_server_id.test
    - Rename this file to better reflect what is being tested.
    - Add comments to explain what is being tested.
    - Upgrade to our current coding standards.
    - Remove a possible race.
    
    @mysql-test/suite/rpl/t/rpl_replication_observers_example_plugin.test
    - Update test since grep_pattern.inc has moved and changed.
    
    @mysql-test/suite/rpl/t/rpl_replication_observers_example_plugin_io.test
    - Update test since grep_pattern.inc has moved and changed.
    
    @mysql-test/suite/rpl/t/rpl_row_ignorable_event.test
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/suite/rpl/t/rpl_row_mts_show_relaylog_events.test
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/suite/rpl/t/rpl_row_show_relaylog_events.test
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/t/rpl_row_until.test
    - Read master position using SHOW MASTER STATUS instead of
      SHOW BINLOG EVENTS, because SHOW BINLOG EVENTS requires that you
      give the exact number of events.
    - Use replace_result to filter out exact positions, instead of echoing
      the filtered statement and disabling the query log while executing the
      statement.
    
    @mysql-test/suite/rpl/t/rpl_server_id.test
    - Improve and clarify the comment.
    - Change the name of the test.
    
    @mysql-test/suite/rpl/t/rpl_server_uuid.test
    - Improvements in readability, used when debugging the test. (Eventually
      the fix was elsewhere but we may as well keep the improvements.)
    
    @mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    - Simplify the test suite:
      This family of tests contained a lot of duplications and
      confusions:
      - The following tests existed in the suite:
          rpl.rpl_stm_mix_show_relaylog_events
          rpl.rpl_stm_mix_gtid_show_relaylog_events
          rpl.rpl_stm_mix_mts_show_relaylog_events
          rpl.rpl_row_show_relaylog_events
          rpl.rpl_row_gtid_show_relaylog_events
          rpl.rpl_row_mts_show_relaylog_events
      - The *_mts_* tests were not specific to mts, they were specific to
        innodb. The only difference was that their result files differed on
        the commit events, which were Xid_log_events for MTS and
        query_log_event(COMMIT) events for non-MTS.  There is a flag in
        show_binlog_events.inc to mask Xid events so that they look like
        query_log_events, so we can merge them to one file.
      - The *_gtid_* tests were only different because there was a
        Gtid_log_event when GTID_MODE=ON and no event when GTID_MODE=OFF.
        Now we always have an event, so we can merge the files together.
      - The *_stm_mix_* and *_row_* tests were only different because there
        was DML in the binlogs.  There is no need for DML in this test case,
        it's enough to test with DDL, so we can merge these files together
        too.
      - So now that the output has been unified, we only need one test file
        and one result file.
      - The test used four levels of include files. This was redundant
        and made it very difficult to follow the logic. The test now
        invokes include/show_relaylog_events.inc directly, which
        makes it easier to understand what is going on.
      - The test used show_binlog_events.inc. This was unnecesary since
        the purpose is to test SHOW RELAYLOG EVENTS. Other tests test
        SHOW BINLOG EVENTS. So I have removed SHOW BINLOG EVENTS.
    - Fix test failure:
      The tests were failing because the output of SHOW RELAYLOG EVENTS
      has changed because Gtid_log_event is now generated.
    
    @mysql-test/suite/rpl/t/rpl_skip_slave_err_warnings.test
    - Update test because grep_pattern.inc was moved and altered.
    
    @mysql-test/suite/rpl/t/rpl_stm_mix_mts_show_relaylog_events.test
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/suite/rpl/t/rpl_stm_mix_show_relaylog_events.test
    - Delete this file. See changeset comment for the file that is
      being renamed from
      mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc to
      mysql-test/suite/rpl/t/rpl_show_relaylog_events.test
    
    @mysql-test/t/mysqlbinlog.test
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @mysql-test/t/sp_trans_log.test
    - Change LIMIT clause of SHOW BINLOG EVENTS since binlog now
      contains two new events.
    
    @mysql-test/t/user_var-binlog.test
    - Use mysqlbinlog.inc instead of 'exec $MYSQL_BINLOG', to filter out
      GTIDs and other nondeterministic output.
    
    @sql/binlog.cc
    - Make simplified-gtid-recovery stop iteration over binary logs in the
      case that the first binary log contains a Previous_gtids_log_event.
    - Improve English in a comment.
    
    @sql/log_event.cc
    - Document logic for sql_slave_skip_counter.
    - Remove printing of logical timestamps from Query_log_event. The code
      for these timestamps will be removed in the next patch, but we remove
      the output already in this patch so that the necessary upates of
      tests get included in this patch.
    - Fix bug in Gtid_log_event for sql_slave_skip_counter, by implementing
      Gtid_log_event::do_shall_skip and make it call continue_group.
    
    @sql/log_event.h
    - Implement Gtid_log_event::do_shall_skip.
    
    @sql/rpl_rli.cc
    - Fix bug in START SLAVE UNTIL MASTER_LOG_POS.
    
    @sql/rpl_rli.h
    - Document logic and purpose of is_in_group.
    
    @mysql-test/suite/engines/funcs/t/disabled.def
    - Disable rpl_row_until due to BUG#20365935 (which is unrelated to this worklog).
Loading