MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Alfranio Correia Date:September 25 2009 1:38am
Subject:Re: bzr commit into mysql-pe branch (alfranio.correia:3514) WL#2687
WL#5072
View as plain text  
Hi Sven,

Thank you for the great review.

I've addressed all your requests.
The only thing left is what follows:


Alfranio Correia wrote:
[...]
>>> --echo #13.e) Generates in the binlog what follows if a N-Table is
>>> changed:
>>> --echo #        --> STMT  "M B T R" entries if in M only N-Table is
>>> changed, format S.
>> (S6) I think "B Nte T R" should be logged as just "Nte". We should
>> never write "B T R" in the binlog.
> This would be the ideal solution however we need to flush the
> transactional cache as the variable
> update_non_transactional_table is true and the cache's content is not
> empty and there is no way to
> check that the transactional cache does not hold any changes on
> non-transactional tables.

I will be addressing this tomorrow while changing the server code.

Cheers.


Sven Sandberg wrote:
> Hi Alfranio,
>
> Nice work, but here are some suggestions for further improvements:
>
> (S1) Some typos in comments
> (S2) Remove debug printouts
> (S3) Typo: .inc file uses Sp/Rp, .test file uses S1/R1.
> (S4) improve testing of CREATE...SELECT
> (S5) make result file slightly more readable
>
> /Sven
>
>> ################################################################################
>>
>> # This checks if transactions that mixes transactional and
>> non-transactional are
>> # correctly handled as follows. #
>> # Definitions:
>> #
>> #   D1. A table that has a transactional engine is called a T-table.
>> #
>> #   D2. A table that has a non-transactional engine is called an
>> #       N-table.
>> #
>> #   D3. Events are either appended to the Transaction Cache (TC) or to
>> #       the Statement Cache (SC).
>> #
>> # CALL statements are unrolled, so that each statement executed by the
>> # stored procedure is logged separately. (If a stored procedure A
>> # invokes a stored procedure B, then B is unrolled recursively).  In the
>> # following, we assume that unrolling has already been done, and the
>> # word "statement" refers to a non-CALL top-level statement or a
>> # non-CALL sub-statement.
>> #
>> # Let S be a statement that either writes a T-table or N-table.
>> #
>> # 1. Before executing S, determine unsafeness.
>> #
>> #   R1. If S reads or writes an N-table, and either S or a previous
>> #       statement in the same transaction reads or writes to a T-table,
>> #       then S is marked as unsafe.
>> #
>> # 2. When logging S, determine where to log it by applying the following
>> #   rules in order.
>> #
>> #   R2. If logging in statement format:
>> #
>> #       - If S produces an error and does not write any N-table, do
>> #         not log.
>> #
>> #       - Otherwise, if either S or any previous statement in the same
>> #         transaction reads or writes to any T-tables, log to TC.
>> #
>> #       - Otherwise, log to SC.
>> #
>> #   R3. If logging in row format:
>> #
>> #       - Log row events that write N-tables to SC.
>> #
>> #       - If S produces an error, do not log row events that write
>> #         T-tables.
>> #
>> #       - If S does not produce an error, log row events that write
>> #         T-tables to TC.
>> #
>> #   R4. At the end of S, write the SC to the binlog and clear the SC.
>> #
>> # 3. At end of transaction:
>> #
>> #   R5. At COMMIT, if the COMMIT does not produce an error:
>> #        - If the TC is non-empty, write BEGIN + TC + COMMIT to the
>> binlog.
>> #        - If the TC is empty, do nothing.
>> #
>> #   R6. At ROLLBACK or at COMMIT that produces an error:
>> #        - If the TC contains writes to N-tables, write
>> #          BEGIN + TC + ROLLBACK to the binlog.
>> #        - If the TC does not contain writes to N-tables, do nothing.
>> #
>> #   R7. At ROLLBACK TO SAVEPOINT:
>> #        - If the TC contains writes to N-tables after the savepoint,
>> write
>> #          ROLLBACK TO SAVEPOINT to the TC.
>> #        - Otherwise, clear the part of the TC that starts at the
>> savepoint and
>> #          extends to the end of the TC. #
>> #   R8. Clear the TC at the end of the transaction. #
>> #   R9. CREATE * SELECT should be flushed to the binary log as an atomic
>> #   operation regarless the type of the table.
>
> (S1) Here, I would suggest to use the more precise formulation from R9
> and R10 at
> http://forge.mysql.com/wiki/MySQL_Internals_Replication#Logging_transactions
>

Done.
>
>> # # We use the include file rpl_mixing_engines.inc to generate sql
>> commands from a
>> # format string. The format string consists of a sequence of 'codes'
>> separated
>> # by spaces. The following codes exist:
>> #
>> # - Define the scope of a transaction:
>> # B - Begin.
>> # C - Commit.
>> # R - Rollback.
>> # Sp - Savepoint.
>> # Rp - Rollback to Sp.
>
> (S3) You are using Sp/Rp in the .inc file but S1/R1 in some places in
> the .test file. I would suggest to use S1/R1 since that can be extended
> to S2/R2, S3/R3 etc in case we ever need a test with more than one
> savepoint.
My bad. Sorry for that.
>
>> # Ce - Commit that fails before flushing.
>
> (S1) You also have Re (though it is unused). I suggest either remove it
> or add a comment here.
I will remove both in fact.
I think you should handle failures later on in another worklog.
>
>> #
>> # - Change only T-Tables:
>> # T - Updates a T-Table.
>> # T-trig - Updates T-Tables through a trigger.
>> # T-func - Updates T-Tables through a function.
>> # T-proc - Updates T-Tables through a procedure.
>> # eTg - Fails while updating the first tuple in a T-Table.
>
> (S1) Typo: eTg -> eT
Fixed.
>
>> # Te - Fails while updating an n-tuple (n > 1) in a T-Table.
>> # Te-trig - Fails while updating an n-tuple (n > 1) in a T-Table.
>> # Te-func - Fails while updating an n-tuple (n > 1) in a T-Table.
>> #
>> # - Change only N-Tables # N - Updates a N-Table.
>> # N-trig - Updates N-Tables through a trigger.
>> # N-func - Updates N-Tables through a function.
>> # N-proc - Updates N-Tables through a procedure.
>> # eNg - Fails while updating the first tuple in a N-Table.
>
> (S1) Typo: eNg -> eN
Fixed.
>
>> # Ne - Fails while updating an n-tuple (n > 1) in a N-Table.
>> # Ne-trig - Fails while updating an n-tuple (n > 1) in a N-Table.
>> # Ne-func - Fails while updating an n-tuple (n > 1) in a N-Table.
>> #
>> # - Read T-table and write N-table:
>> # Nt - Updates a N-Table
>> # Net - Fails while updating an n-tuple (n > 1) in a N-Table.
>> #
>> # - Read N-table and write T-table:
>> # nT - Updates a T-Table.
>> # nTe - Fails while updating an n-tuple (n > 1) in a T-Table.
>> #
>> # - Update both types of tables. First a N-Table and the a T-Table:
>> # NT - Upates both types of tables through an update statement.
>> # NT-trig - Updates both types of tables through a trigger.
>> # NT-func - Updates both types of tables through a procedure.
>> # NeT-trig - Fails while updating an n-tuple (n > 1) in a T-Table.
>> # NeT-func - Fails while updating an n-tuple (n > 1) in a T-Table.
>> #
>> # - Update both types of tables. First a T-Table and the a N-Table:
>> # TN - Upates both types of tables through an update statement.
>> # TN-trig - Updates both types of tables through a trigger.
>> # TN-func - Updates both types of tables through a procedure.
>> # TeN-trig - Fails while updating an n-tuple (n > 1) in a N-Table.
>> # TeN-func - Fails while updating an n-tuple (n > 1) in a N-Table.
>> # # The format of the entries in the binlog depends on the mode and
>> on the type
>> # statements: S - statement and R - row. And when it is clear from
>> the context
>> # which statement is referred to, we sometimes use "M" to denote a
>> "Mixed"
>> # statement, i.e., one that accesses both a T-table and an N-table.
>> #
>> # For further details, please, read WL#2687 and WL#5072.
>> ################################################################################
>>
>> --source include/have_innodb.inc
>>
>> --echo
>> #########################################################################
>>
>> --echo #                            CONFIGURATION
>> --echo
>> #########################################################################
>>
>> SET @commands= 'configure';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> let $trans_id= 7;
>
> Why 7, why not 1?
This is not supposed to be here.
Removed it.
However, it must be 7 because before processing any statement we
populate the table with 6 records.

>
>> let $stmt_id= 1;
Removed.
>>
>> --echo
>> #########################################################################
>>
>> --echo #         1 - MIXING TRANSACTIONAL and NON-TRANSACTIONAL TABLES
>> --echo
>> #########################################################################
>>
>> connection master;
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #1) Generates in the binlog what follows:
>> --echo #      --> STMT  "B T C" entries, format S.
>> --echo #      --> ROW   "B T C" entries, format R.
>> --echo #      --> MIXED "B T C" entries, format S.
>> --echo #
>> SET @commands= 'T';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'T-trig';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'T-func';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'T-proc';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #1.e) Generates in the binlog what follows:
>> --echo #        --> STMT  empty.
>> --echo #        --> ROW   empty.
>> --echo #        --> MIXED empty.
>> --echo #
>> SET @commands= 'eT';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'Te';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'Te-trig';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'Te-func';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #2) Generates in the binlog what follows:
>> --echo #      --> STMT  "N" entry, format S.
>> --echo #      --> ROW   "N" entry, format R.
>> --echo #      --> MIXED "N" entry, format S.
>> --echo #
>> SET @commands= 'N';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'N-trig';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'N-func';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'N-proc';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #2.e) Generates in the binglog what follows if a N-table is
>> changed:
>
> (S1) Typo: binglog -> binlog (several places below, grep for it)
Done.
>
>> --echo #        --> STMT  "N" entry, format S.
>> --echo #        --> ROW   "N" entry, format R.
>> --echo #        --> MIXED "N" entry, format S.
>> --echo #
>> SET @commands= 'eN';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'Ne';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'Ne-trig';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'Ne-func';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #3) Generates in the binglog what follows:
>> --echo #      --> STMT  "M" entry if only N-Table is changed, format S.
>> --echo #      --> STMT  "B M C" entries, format S.
>> --echo #      --> ROW   "N B T C" entries, format R.
>> --echo #      --> MIXED "N B T C" entries, format R.
>> --echo #
>> SET @commands= 'Nt';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'nT';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'NT';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'NT-trig';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'NT-func';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'TN';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'TN-trig';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'TN-func';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #3.e) Generates in the binglog what follows:
>> --echo #      --> STMT  "M" entry if only N-Table is changed, format S.
>> --echo #      --> STMT  "B M R" entries, format S.
>> --echo #      --> ROW   "N" entry, format R.
>> --echo #      --> MIXED "N" entry, format R.
>> SET @commands= 'Net';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'nTe';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'NeT-trig';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'NeT-func';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'TeN-trig';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'TeN-func';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #4) Generates in the binlog what follows:
>> --echo #     --> STMT  "B T T C" entries, format S.
>> --echo #     --> ROW   "B T T C" entries, format R.
>> --echo #     --> MIXED "B T T C" entries, format S
>> --echo #
>> SET @commands= 'B T T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T T-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T T-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T T-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig T-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig T-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig T-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func T-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func T-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func T-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc T-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc T-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc T-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #4.e) Generates in the binlog what follows:
>> --echo #       --> STMT  "B T C" entries, format S.
>> --echo #       --> ROW   "B T C" entries, format R.
>> --echo #       --> MIXED "B T C" entries, format S.
>> --echo #
>> SET @commands= 'B T eT C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T Te C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T Te-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T Te-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B eT T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B Te T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B Te-trig T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B Te-func T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #5) Generates in the binlog what follows:
>> --echo #     --> STMT  empty.
>> --echo #     --> ROW   empty.
>> --echo #     --> MIXED empty.
>> --echo #
>> SET @commands= 'B T T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T T-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T T-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T T-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig T-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig T-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig T-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func T-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func T-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func T-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc T-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc T-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc T-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #5.e) Generates in the binlog what follows:
>> --echo #       --> STMT  empty.
>> --echo #       --> ROW   empty.
>> --echo #       --> MIXED empty.
>> --echo #
>> SET @commands= 'B T eT R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T Te R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T Te-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T Te-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B eT T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B Te T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B Te-trig T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B Te-func T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #6) Generates in the binglog what follows:
>> --echo #     --> STMT  "N N" entries, format S.
>> --echo #     --> ROW   "N N" entries, format R.
>> --echo #     --> MIXED "N N" entries, format S.
>> --echo #
>> SET @commands= 'B N N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N N-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N N-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N N-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig N-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig N-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig N-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func N-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func N-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func N-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc N-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc N-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc N-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #6.e) Generates in the binglog what follows if a N-Table is
>> changed:
>> --echo #     --> STMT  "N N" entries, format S.
>> --echo #     --> ROW   "N N" entries, format R.
>> --echo #     --> MIXED "N N" entries, format S.
>> --echo #
>> SET @commands= 'B N eN C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N Ne C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N Ne-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N Ne-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B eN N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B Ne N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B Ne-trig N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B Ne-func N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #7) Generates in the binlog what follows:
>> --echo #      --> STMT  "N N" entries, format S.
>> --echo #      --> ROW   "N N" entries, format R.
>> --echo #      --> MIXED "N N" entries, format S.
>> --echo #
>> SET @commands= 'B N N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N N-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N N-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N N-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig N-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig N-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig N-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func N-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func N-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func N-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc N-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc N-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc N-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #7.e) Generates in the binglog what follows if a N-Table is
>> changed:
>> --echo #     --> STMT  "N N" entries, format S.
>> --echo #     --> ROW   "N N" entries, format R.
>> --echo #     --> MIXED "N N" entries, format S.
>> --echo #
>> SET @commands= 'B N eN R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N Ne R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N Ne-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N Ne-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B eN N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B Ne N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B Ne-trig N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B Ne-func N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #8) Generates in the binlog what follows:
>> --echo #       --> STMT  "B T N C" entries, format S.
>> --echo #       --> ROW   "N B T C" entries, format R.
>> --echo #       --> MIXED "N B T C" entries, format R in N and S in T.
>> --echo #
>> SET @commands= 'B T N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T N-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T N-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T N-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig N-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig N-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig N-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func N-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func N-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func N-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc N-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc N-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc N-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #8.e) Generates in the binlog what follows if T-* fails:
>> --echo #       --> STMT  "N" entry, format S.
>> --echo #       --> ROW   "N" entry, format R.
>> --echo #       --> MIXED "N" entry, format R.
>> --echo #     Otherwise, what follows if N-* fails and a N-Table is
>> changed:
>> --echo #       --> STMT  "B T N C" entries, format S.
>> --echo #       --> ROW   "N B T C" entries, format R.
>> --echo #       --> MIXED "N B T C" entries, format R in N and S in T.
>> --echo #
>> SET @commands= 'B eT N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B Te N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T eN C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T Ne C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #9) Generates in the binlog what follows:
>> --echo #     --> STMT  "B T N R" entries, format S.
>> --echo #     --> ROW   "N" entry, format R.
>> --echo #     --> MIXED "N" entry, format R.
>> --echo #
>> SET @commands= 'B T N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T N-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T N-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T N-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig N-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig N-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-trig N-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func N-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func N-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-func N-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc N-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc N-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T-proc N-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #9.e) Generates in the binlog what follows if T* fails:
>> --echo #       --> STMT  "N" entry, format S.
>> --echo #       --> ROW   "N" entry, format R.
>> --echo #       --> MIXED "N" entry, format R.
>> --echo #     Otherwise, what follows if N* fails and a N-Table is
>> changed:
>> --echo #       --> STMT  "B T N R" entries, format S.
>> --echo #       --> ROW   "N" entry, format R.
>> --echo #       --> MIXED "N" entry, format R.
>> --echo #
>> SET @commands= 'B eT N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B Te N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T eN R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T Ne R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #10) Generates in the binlog:
>> --echo #     --> STMT  "N B T C" entries, format S.
>> --echo #     --> ROW   "N B T C" entries, format R.
>> --echo #     --> MIXED "N B T C" entries, format S.
>> --echo #
>> SET @commands= 'B N T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N T-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N T-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N T-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig T-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig T-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig T-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func T-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func T-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func T-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc T-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc T-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc T-proc C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #11) Generates in the binlog what follows:
>> --echo #     --> STMT  "N" entries, format S.
>> --echo #     --> ROW   "N" entries, format R.
>> --echo #     --> MIXED "N" entries, format S.
>> --echo #
>>
>> SET @commands= 'B N T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N T-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N T-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N T-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig T-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig T-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-trig T-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func T-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func T-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-func T-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc T-proc R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc T-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N-proc T-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #12) "B M T C" generates in the binlog what follows:
>> --echo #      --> STMT  "M B T C" entries if in M only N-Table is
>> changed, format S.
>> --echo #      --> STMT  "B M T C" entries, format S.
>> --echo #      --> ROW   "N B T T C" entries, format R.
>> --echo #      --> MIXED "N B T T C" entries, format R in N/T and
>> format S in T.
>> --echo #
>> SET @commands= 'B Nt T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B nT T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NT T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NT-trig T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NT-func T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TN T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TN-trig T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TN-func T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #12.e) Generates in the binlog what follows if a N-Table is
>> changed:
>> --echo #        --> STMT  "M B T C" entries if in M only N-Table is
>> changed, format S.
>> --echo #        --> STMT  "B M T C" entries, format S.
>> --echo #        --> ROW   "N B T T C" entries, format R.
>> --echo #        --> MIXED "N B T T C" entries, format R in N/T and
>> format S in T.
>> --echo #  SET @commands= 'B Net T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B nTe T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NeT-trig T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NeT-func T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TeN-trig T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TeN-func T C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #13) "B M T R" generates in the binlog:
>> --echo #      --> STMT  "M B T R" entries if in M only N-Table is
>> changed, format S.
>> --echo #      --> STMT  "B M T R" entries, format S.
>> --echo #      --> ROW   "N" entry, format R.
>> --echo #      --> MIXED "N" entry, format R.
>> --echo #
>> SET @commands= 'B Nt T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B nT T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NT T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NT-trig T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NT-func T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TN T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TN-trig T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TN-func T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #13.e) Generates in the binlog what follows if a N-Table is
>> changed:
>> --echo #        --> STMT  "M B T R" entries if in M only N-Table is
>> changed, format S.
>> --echo #        --> STMT  "B M T R" entries, format S.
>> --echo #        --> ROW   "N" entry, format R.
>> --echo #        --> MIXED "N" entry, format R.
>> --echo #
>> SET @commands= 'B Net T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B nTe T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NeT-trig T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NeT-func T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TeN-trig T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TeN-func T R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #14) Generates in the binlog what follows if a N-Table is
>> changed:
>> --echo #      --> STMT  "B T M C" entries, format S.
>> --echo #      --> ROW   "N B T T C" entries, format R.
>> --echo #      --> MIXED "N B T T C" entries, format R in N/T and
>> format S in T.
>> --echo #
>> SET @commands= 'B T Nt C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T nT C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T NT C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T NT-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T NT-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T TN C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T TN-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T TN-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #14.e) Generates in the binlog what follows if a N-Table is
>> changed:
>> --echo #        --> STMT  "B T M C" entries, format S.
>> --echo #        --> ROW   "N B T C" entry, format R.
>> --echo #        --> MIXED "N B T C" entry, format R.
>> --echo #
>> SET @commands= 'B T Net C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T nTe C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T NeT-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T NeT-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T TeN-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T TeN-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #15) Generates in the binlog what follows if a N-Table is
>> changed:
>> --echo #        --> STMT  "B T M R" entries, format S.
>> --echo #        --> ROW   "N" entry, format R.
>> --echo #        --> MIXED "N" entry, format R.
>> --echo #
>> SET @commands= 'B T Nt R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T nT R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T NT R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T NT-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T NT-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T TN R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T TN-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T TN-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #15.e) Generates in the binlog what follows if a N-Table is
>> changed:
>> --echo #        --> STMT  "B T M R" entries, format S.
>> --echo #        --> ROW   "N" entry, format R.
>> --echo #        --> MIXED "N" entry, format R.
>> --echo #
>> SET @commands= 'B T Net R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T nTe R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T NeT-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T NeT-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T TeN-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T TeN-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #16) Generates in the binlog what follows if a N-Table is
>> changed:
>> --echo #      --> STMT  "M N" entries if in M only N-Table is
>> changed, format S.
>> --echo #      --> STMT  "B M N C" entries, format S.
>> --echo #      --> ROW   "N N B T C" entries, format R.
>> --echo #      --> MIXED "M N" entries if in M only N-Table is
>> changed, format S.
>> --echo #      --> MIXED "N N B T C" entries, format R.
>> --echo #
>> SET @commands= 'B Nt N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B nT N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NT N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NT-trig N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NT-func N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TN N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TN-trig N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TN-func N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #16.e) Generates in the binlog what follows if a N-Table is
>> changed:
>> --echo #      --> STMT  "M N" entries if in M only N-Table is
>> changed, format S.
>> --echo #      --> STMT  "B M N C" entries, format S.
>> --echo #      --> ROW   "N N B T C" entries, format R.
>> --echo #      --> MIXED "M N" entries if in M only N-Table is
>> changed, format S.
>> --echo #      --> MIXED "N N B T C" entries, format R.
>> --echo #
>> SET @commands= 'B Net N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B nTe N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NeT-trig N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NeT-func N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TeN-trig N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TeN-func N C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #17) Generates in the binlog what follows if a N-Table is
>> changed:
>> --echo #    --> STMT  "M N" entries if in M only N-Table is changed,
>> format S.
>> --echo #    --> STMT  "B M N R" entries, format S.
>> --echo #    --> ROW   "N N" entries, format R.
>> --echo #    --> MIXED "M N" entries if in M only N-Table is changed,
>> format S.
>> --echo #    --> MIXED "N N" entries, format R.
>> --echo #
>> SET @commands= 'B Nt N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B nT N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NT N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NT-trig N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NT-func N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TN N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TN-trig N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TN-func N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #17.e) Generates in the binlog what follows if a N-Table is
>> changed:
>> --echo #      --> STMT  "M N" entries if in M only N-Table is
>> changed, format S.
>> --echo #      --> STMT  "B M N R" entries, format S.
>> --echo #      --> ROW   "N N" entries, format R.
>> --echo #      --> MIXED "M N" entries if in M only N-Table is
>> changed, format S.
>> --echo #      --> MIXED "N N" entries, format R.
>> --echo #
>> SET @commands= 'B Net N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B nTe N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NeT-trig N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B NeT-func N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TeN-trig N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B TeN-func N R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #18) Generates in the binlog what follows if a N-Table is
>> changed:
>> --echo #    --> STMT  "N M" entries if in M only N-Table is changed,
>> format S.
>> --echo #    --> STMT  "N B M C" entries, format S.
>> --echo #    --> ROW   "N N B T C" entries, format R.
>> --echo #    --> MIXED "N N B T C" entries, format S in first N and
>> format R in the other.
>> --echo #
>>
>> SET @commands= 'B N Nt C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N nT C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N NT C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N NT-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N NT-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N TN C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N TN-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N TN-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #18.e) Generates in the binlog what follows if a N-Table is
>> changed:
>> --echo #      --> STMT  "N M" entries if in M only N-Table is
>> changed, format S.
>> --echo #      --> STMT  "N B M C" entries, format S.
>> --echo #      --> ROW   "N N" entries, format R.
>> --echo #      --> MIXED "N N" entries, format S in first N and format
>> R in the other.
>> --echo #
>> SET @commands= 'B N Net C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N nTe C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N NeT-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N NeT-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N TeN-trig C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N TeN-func C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #19) Generates in the binlog what follows if a N-Table is
>> changed:
>> --echo #    --> STMT  "N M" entries if in M only N-Table is changed,
>> format S.
>> --echo #    --> STMT  "N B M R" entries, format S.
>> --echo #    --> ROW   "N N" entries, format R.
>> --echo #    --> MIXED "N N" entries, format S in first N and format R
>> in the other.
>> --echo #
>>
>> SET @commands= 'B N Nt R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N nT R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N NT R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N NT-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N NT-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N TN R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N TN-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N TN-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #
>> --echo #19.e) Generates in the binlog what follows if a N-Table is
>> changed:
>> --echo #      --> STMT  "N M" entries if in M only N-Table is
>> changed, format S.
>> --echo #      --> STMT  "N B M R" entries, format S.
>> --echo #      --> ROW   "N N" entries, format R.
>> --echo #      --> MIXED "N N" entries, format S in first N and format
>> R in the other.
>> --echo #
>> SET @commands= 'B N Net R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N nTe R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N NeT-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N NeT-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N TeN-trig R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N TeN-func R';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>> --echo
>> --echo
>> --echo
>> --echo #20) Generates in the binlog a set of entries equivalent to
>> rollback.
>> --echo # Due to a bug this is disable for now.
>> --echo # #SET @commands= 'B N T Ce';
>> #--source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> #SET @commands= 'B T N Ce';
>> #--source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> #SET @commands= 'B TN Ce';
>> #--source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> #SET @commands= 'B NT Ce';
>> #--source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> #SET @commands= 'B nT Ce';
>> #--source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> #SET @commands= 'B Nt Ce';
>> #--source extra/rpl_tests/rpl_mixing_engines.inc
>>
>>
>> --echo
>>
> ###################################################################################
>>
>> --echo #                               2 - SAVEPOINT
>> --echo
>>
> ###################################################################################
>>
>> SET @commands= 'B T Sp T Rp C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B N T S1 T R1 C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>
> (S3) Here it uses S1/R1. I'd suggest to use S1/R1 in the .inc file too
> and above.
Fixed.
>
>>
>> SET @commands= 'B T N S1 T R1 C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> SET @commands= 'B T S1 N T R1 C';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>>
>> --echo
>>
> ###################################################################################
>>
>> --echo #                 3 - CREATE TABLE...SELECT and CREATE
>> TABLE...LIKE
>> --echo
>>
> ###################################################################################
>>
>> connection master;
>> let $first_binlog_start= query_get_value("SHOW MASTER STATUS",
>> Position, 1);
>>
>> CREATE TABLE tt_xx1 engine=Innodb SELECT * FROM tt_1;
>> DROP TABLE tt_xx1;
>> CREATE TABLE tt_xx2 engine=Innodb SELECT * FROM nt_1;
>> DROP TABLE tt_xx2;
>> CREATE TABLE nt_xx3 engine=MyIsam SELECT * FROM tt_1;
>> DROP TABLE nt_xx3;
>> CREATE TABLE nt_xx4 engine=MyIsam SELECT * FROM nt_1;
>> DROP TABLE nt_xx4;
>> CREATE TABLE tt_xx5 LIKE tt_1;
>> DROP TABLE tt_xx5;
>> CREATE TABLE nt_xx6 LIKE nt_1;
>> DROP TABLE nt_xx6;
>>
>> let $binlog_start= $first_binlog_start;
>> --source include/show_binlog_events.inc
>
> (S4) Here, I think you need to:
>
>  (1) execute show_binlog_events.inc after each CREATE TABLE. Otherwise
> we would not notice if there was a bug causing the TC not to be
> flushed, because it will be flushed at the implicit commit of DROP TABLE.
>
>  (2) test that CREATE...SELECT that fails does not produce any rows in
> the binlog.
Done.
>
>>
>> --echo
>>
> ###################################################################################
>>
>> --echo #                               CHECK CONSISTENCY --echo
>>
> ###################################################################################
>>
>> connection master;
>> sync_slave_with_master;
>>
>> --exec $MYSQL_DUMP --compact --order-by-primary
>> --skip-extended-insert --no-create-info test >
>> $MYSQLTEST_VARDIR/tmp/test-nmt-master.sql
>> --exec $MYSQL_DUMP_SLAVE --compact --order-by-primary
>> --skip-extended-insert --no-create-info test >
>> $MYSQLTEST_VARDIR/tmp/test-nmt-slave.sql
>> --diff_files $MYSQLTEST_VARDIR/tmp/test-nmt-master.sql
>> $MYSQLTEST_VARDIR/tmp/test-nmt-slave.sql
>>
>> --echo
>>
> ###################################################################################
>>
>> --echo #                                        CLEAN
>> --echo
>>
> ###################################################################################
>>
>> SET @commands= 'clean';
>> --source extra/rpl_tests/rpl_mixing_engines.inc
>
>
>
>
> rpl_mixing_engines.inc:
>> ################################################################################
>>
>> # This is an auxiliary file used by rpl_mixing_engines.test, and that it
>> # executes SQL statements according to a format string, as specified in
>> # rpl_mixing_engines.test. In addition, it accepts the special format
>> # strings 'configure' and 'clean', used before and after everything
>> else.
>> ################################################################################
>>
>>
>> if (`SELECT HEX(@commands) = HEX('configure')`)
>> {
>>   connection master;
>>
>>   SET SQL_LOG_BIN=0;
>>   CREATE TABLE nt_1 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
>>   CREATE TABLE nt_2 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
>>   CREATE TABLE nt_3 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
>>   CREATE TABLE nt_4 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
>>   CREATE TABLE nt_5 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
>>   CREATE TABLE nt_6 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
>>   CREATE TABLE tt_1 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = Innodb;
>>   CREATE TABLE tt_2 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = Innodb;
>>   CREATE TABLE tt_3 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = Innodb;
>>   CREATE TABLE tt_4 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = Innodb;
>>   CREATE TABLE tt_5 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = Innodb;
>>   CREATE TABLE tt_6 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = Innodb;
>>   SET SQL_LOG_BIN=1;
>>
>>   connection slave;
>>
>>   SET SQL_LOG_BIN=0;
>>   CREATE TABLE nt_1 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
>>   CREATE TABLE nt_2 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
>>   CREATE TABLE nt_3 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
>>   CREATE TABLE nt_4 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
>>   CREATE TABLE nt_5 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
>>   CREATE TABLE nt_6 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
>>   CREATE TABLE tt_1 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = Innodb;
>>   CREATE TABLE tt_2 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = Innodb;
>>   CREATE TABLE tt_3 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = Innodb;
>>   CREATE TABLE tt_4 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = Innodb;
>>   CREATE TABLE tt_5 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = Innodb;
>>   CREATE TABLE tt_6 (trans_id INT, stmt_id INT, info VARCHAR(64),
>> PRIMARY KEY(trans_id, stmt_id)) ENGINE = Innodb;
>>   SET SQL_LOG_BIN=1;
>>
>>   connection master;
>>
>>   INSERT INTO nt_1(trans_id, stmt_id) VALUES(1,1);
>>   INSERT INTO nt_2(trans_id, stmt_id) VALUES(2,1);
>>   INSERT INTO nt_3(trans_id, stmt_id) VALUES(3,1);
>>   INSERT INTO nt_4(trans_id, stmt_id) VALUES(4,1);
>>   INSERT INTO nt_5(trans_id, stmt_id) VALUES(5,1);
>>   INSERT INTO nt_6(trans_id, stmt_id) VALUES(6,1);
>>
>>   INSERT INTO tt_1(trans_id, stmt_id) VALUES(1,1);
>>   INSERT INTO tt_2(trans_id, stmt_id) VALUES(2,1);
>>   INSERT INTO tt_3(trans_id, stmt_id) VALUES(3,1);
>>   INSERT INTO tt_4(trans_id, stmt_id) VALUES(4,1);
>>   INSERT INTO tt_5(trans_id, stmt_id) VALUES(5,1);
>>   INSERT INTO tt_6(trans_id, stmt_id) VALUES(6,1);
>>
>>   DELIMITER |;
>>
>>   CREATE PROCEDURE pc_i_tt_5_suc (IN p_trans_id INTEGER, IN p_stmt_id
>> INTEGER)
>>   BEGIN
>>     DECLARE in_stmt_id INTEGER;
>>     SELECT max(stmt_id) INTO in_stmt_id FROM tt_5 WHERE trans_id=
>> p_trans_id;
>>     SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO
>> in_stmt_id;
>>     INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id);
>>     INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id,
>> in_stmt_id + 2);
>>   END|
>>
>>   CREATE PROCEDURE pc_i_nt_5_suc (IN p_trans_id INTEGER, IN p_stmt_id
>> INTEGER)
>>   BEGIN
>>     DECLARE in_stmt_id INTEGER;
>>     SELECT max(stmt_id) INTO in_stmt_id FROM nt_5 WHERE trans_id=
>> p_trans_id;
>>     SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO
>> in_stmt_id;
>>     INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id);
>>     INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id,
>> in_stmt_id + 2);
>>   END|
>>
>>   CREATE FUNCTION fc_i_tt_5_suc (p_trans_id INTEGER, p_stmt_id
>> INTEGER) RETURNS VARCHAR(64)
>>   BEGIN
>>     DECLARE in_stmt_id INTEGER;
>>     SELECT max(stmt_id) INTO in_stmt_id FROM tt_5 WHERE trans_id=
>> p_trans_id;
>>     SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO
>> in_stmt_id;
>>     INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id);
>>     INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id,
>> in_stmt_id + 2);
>>     RETURN "fc_i_tt_5_suc";
>>   END|
>>
>>   CREATE FUNCTION fc_i_nt_5_suc (p_trans_id INTEGER, p_stmt_id
>> INTEGER) RETURNS VARCHAR(64)
>>   BEGIN
>>     DECLARE in_stmt_id INTEGER;
>>     SELECT max(stmt_id) INTO in_stmt_id FROM nt_5 WHERE trans_id=
>> p_trans_id;
>>     SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO
>> in_stmt_id;
>>     INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id);
>>     INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id,
>> in_stmt_id + 2);
>>     RETURN "fc_i_nt_5_suc";
>>   END|
>>
>>   CREATE TRIGGER tr_i_tt_3_to_nt_3 AFTER INSERT ON tt_3 FOR EACH ROW
>>   BEGIN
>>     DECLARE in_stmt_id INTEGER;
>>     SELECT max(stmt_id) INTO in_stmt_id FROM nt_3 WHERE trans_id=
>> NEW.trans_id;
>>     SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id), 1) INTO
>> in_stmt_id;
>>     INSERT INTO nt_3(trans_id, stmt_id) VALUES (NEW.trans_id,
>> in_stmt_id);
>>     INSERT INTO nt_3(trans_id, stmt_id) VALUES (NEW.trans_id,
>> in_stmt_id + 1);
>>   END|
>>
>>   CREATE TRIGGER tr_i_nt_4_to_tt_4 AFTER INSERT ON nt_4 FOR EACH ROW
>>   BEGIN
>>     DECLARE in_stmt_id INTEGER;
>>     SELECT max(stmt_id) INTO in_stmt_id FROM tt_4 WHERE trans_id=
>> NEW.trans_id;
>>     SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id), 1) INTO
>> in_stmt_id;
>>     INSERT INTO tt_4(trans_id, stmt_id) VALUES (NEW.trans_id,
>> in_stmt_id);
>>     INSERT INTO tt_4(trans_id, stmt_id) VALUES (NEW.trans_id,
>> in_stmt_id + 1);
>>   END|
>>
>>   CREATE TRIGGER tr_i_tt_5_to_tt_6 AFTER INSERT ON tt_5 FOR EACH ROW
>>   BEGIN
>>     DECLARE in_stmt_id INTEGER;
>>     SELECT max(stmt_id) INTO in_stmt_id FROM tt_6 WHERE trans_id=
>> NEW.trans_id;
>>     SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id, 1), 1) INTO
>> in_stmt_id;
>>     INSERT INTO tt_6(trans_id, stmt_id) VALUES (NEW.trans_id,
>> in_stmt_id);
>>     INSERT INTO tt_6(trans_id, stmt_id) VALUES (NEW.trans_id,
>> in_stmt_id + 1);
>>   END|
>>
>>   CREATE TRIGGER tr_i_nt_5_to_nt_6 AFTER INSERT ON nt_5 FOR EACH ROW
>>   BEGIN
>>     DECLARE in_stmt_id INTEGER;
>>     SELECT max(stmt_id) INTO in_stmt_id FROM nt_6 WHERE trans_id=
>> NEW.trans_id;
>>     SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id), 1) INTO
>> in_stmt_id;
>>     INSERT INTO nt_6(trans_id, stmt_id) VALUES (NEW.trans_id,
>> in_stmt_id);
>>     INSERT INTO nt_6(trans_id, stmt_id) VALUES (NEW.trans_id,
>> in_stmt_id + 1);
>>   END|
>>
>>   DELIMITER ;|
>>
>>   let $pos_trans_command= query_get_value("SHOW MASTER STATUS",
>> Position, 1);
>>
>>   SET @commands='';
>> }
>>
>> if (`SELECT HEX(@commands) = HEX('clean')`)
>> {
>>   connection master;
>>
>>   DROP TABLE tt_1;
>>   DROP TABLE tt_2;
>>   DROP TABLE tt_3;
>>   DROP TABLE tt_4;
>>   DROP TABLE tt_5;
>>   DROP TABLE tt_6;
>>
>>   DROP TABLE nt_1;
>>   DROP TABLE nt_2;
>>   DROP TABLE nt_3;
>>   DROP TABLE nt_4;
>>   DROP TABLE nt_5;
>>   DROP TABLE nt_6;
>>
>>   DROP PROCEDURE pc_i_tt_5_suc;
>>   DROP PROCEDURE pc_i_nt_5_suc;
>>   DROP FUNCTION fc_i_tt_5_suc;
>>   DROP FUNCTION fc_i_nt_5_suc;
>>
>>   sync_slave_with_master;
>>
>>   SET @commands='';
>> }
>>
>> if (`SELECT HEX(@commands) != HEX('')`)
>> {
>>   --disable_query_log
>>   SET @command= SUBSTRING_INDEX(@commands, ' ', 1);
>>   let $command= `SELECT @command`;
>>   --echo ------------- $command ------------
>>   let $pos_command= query_get_value("SHOW MASTER STATUS", Position, 1);
>>   if (`SELECT HEX(@command) = HEX('B')`)
>>   {
>>     --enable_query_log
>>     eval BEGIN;
>>     --disable_query_log
>>   }
>>   if (`SELECT HEX(@command) = HEX('T')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>
> (S2) Please remove debug printouts (here and in several places below).
Done. I have disabled them.
>
>>     --enable_query_log
>>     eval INSERT INTO tt_1(trans_id, stmt_id) VALUES ($trans_id,
>> $stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('T-trig')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     --enable_query_log
>>     eval INSERT INTO tt_5(trans_id, stmt_id) VALUES ($trans_id,
>> $stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('T-func')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     --enable_query_log
>>     eval SELECT fc_i_tt_5_suc ($trans_id, $stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('T-proc')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     --enable_query_log
>>     eval CALL pc_i_tt_5_suc ($trans_id, $stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('eT')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     let $old_trans_id= `SELECT max(trans_id) from tt_1`;
>>     let $old_stmt_id= `SELECT max(stmt_id) from tt_1 where trans_id=
>> $old_trans_id`;
>>     --enable_query_log
>>     --error ER_DUP_ENTRY
>>     eval INSERT INTO tt_1(trans_id, stmt_id) VALUES ($old_trans_id,
>> $old_stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('Te')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     let $old_trans_id= `SELECT max(trans_id) from tt_1`;
>>     let $old_stmt_id= `SELECT max(stmt_id) from tt_1 where trans_id=
>> $old_trans_id`;
>>     --enable_query_log
>>     --error ER_DUP_ENTRY
>>     eval INSERT INTO tt_1(trans_id, stmt_id) VALUES ($trans_id,
>> $stmt_id), ($old_trans_id, $old_stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('Te-trig')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     let $old_trans_id= `SELECT max(trans_id) from tt_5`;
>>     let $old_stmt_id= `SELECT max(stmt_id) from tt_5 where trans_id=
>> $old_trans_id`;
>>     --enable_query_log
>>     --error ER_DUP_ENTRY
>>     eval INSERT INTO tt_5(trans_id, stmt_id) VALUES ($trans_id,
>> $stmt_id), ($old_trans_id, $old_stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('Te-func')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     let $old_trans_id= `SELECT max(trans_id) from tt_5`;
>>     let $old_stmt_id= `SELECT max(stmt_id) from tt_5 where trans_id=
>> $old_trans_id`;
>>     --enable_query_log
>>     --error ER_DUP_ENTRY, ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
>>     eval INSERT INTO tt_5(trans_id, stmt_id, info) VALUES ($trans_id,
>> $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_tt_5_suc
>> ($trans_id, $stmt_id));
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('N')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     --enable_query_log
>>     eval INSERT INTO nt_1(trans_id, stmt_id) VALUES ($trans_id,
>> $stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('N-trig')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     --enable_query_log
>>     eval INSERT INTO nt_5(trans_id, stmt_id) VALUES ($trans_id,
>> $stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('N-func')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     --enable_query_log
>>     eval SELECT fc_i_nt_5_suc ($trans_id, $stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('N-proc')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     --enable_query_log
>>     eval CALL pc_i_nt_5_suc ($trans_id, $stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('eN')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     let $old_trans_id= `SELECT max(trans_id) from nt_1`;
>>     let $old_stmt_id= `SELECT max(stmt_id) from nt_1 where trans_id=
>> $old_trans_id`;
>>     --enable_query_log
>>     --error ER_DUP_ENTRY
>>     eval INSERT INTO nt_1(trans_id, stmt_id) VALUES ($old_trans_id,
>> $old_stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('Ne')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     let $old_trans_id= `SELECT max(trans_id) from nt_1`;
>>     let $old_stmt_id= `SELECT max(stmt_id) from nt_1 where trans_id=
>> $old_trans_id`;
>>     --enable_query_log
>>     --error ER_DUP_ENTRY
>>     eval INSERT INTO nt_1(trans_id, stmt_id) VALUES ($trans_id,
>> $stmt_id), ($old_trans_id, $old_stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('Ne-trig')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     let $old_trans_id= `SELECT max(trans_id) from nt_5`;
>>     let $old_stmt_id= `SELECT max(stmt_id) from nt_5 where trans_id=
>> $old_trans_id`;
>>     --enable_query_log
>>     --error ER_DUP_ENTRY, ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
>>     eval INSERT INTO nt_5(trans_id, stmt_id) VALUES ($trans_id,
>> $stmt_id), ($old_trans_id, $old_stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('Ne-func')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     let $old_trans_id= `SELECT max(trans_id) from nt_5`;
>>     let $old_stmt_id= `SELECT max(stmt_id) from nt_5 where trans_id=
>> $old_trans_id`;
>>     --enable_query_log
>>     --error ER_DUP_ENTRY, ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
>>     eval INSERT INTO nt_5(trans_id, stmt_id, info) VALUES ($trans_id,
>> $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_nt_5_suc
>> ($trans_id, $stmt_id));
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('Nt')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     --enable_query_log
>>     eval INSERT INTO nt_1(trans_id, stmt_id, info) SELECT $trans_id,
>> $stmt_id, COUNT(*) FROM tt_1;
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('Net')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     let $old_trans_id= `SELECT max(trans_id) from nt_1`;
>>     let $old_stmt_id= `SELECT max(stmt_id) from nt_1 where trans_id=
>> $old_trans_id`;
>>     --enable_query_log
>>     --error ER_DUP_ENTRY
>>     eval INSERT INTO nt_1(trans_id, stmt_id, info) SELECT $trans_id,
>> $stmt_id, COUNT(*) FROM tt_1 UNION SELECT $old_trans_id,
>> $old_stmt_id, COUNT(*) FROM tt_1;
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('nT')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     --enable_query_log
>>     eval INSERT INTO tt_1(trans_id, stmt_id, info) SELECT $trans_id,
>> $stmt_id, COUNT(*) FROM nt_1;
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('nTe')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     let $old_trans_id= `SELECT max(trans_id) from tt_1`;
>>     let $old_stmt_id= `SELECT max(stmt_id) from tt_1 where trans_id=
>> $old_trans_id`;
>>     --enable_query_log
>>     --error ER_DUP_ENTRY
>>     eval INSERT INTO tt_1(trans_id, stmt_id, info) SELECT $trans_id,
>> $stmt_id, COUNT(*) FROM nt_1 UNION SELECT $old_trans_id,
>> $old_stmt_id, COUNT(*) FROM nt_1;
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('NT')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     --enable_query_log
>>     eval UPDATE nt_3, nt_4, tt_3, tt_4 SET nt_3.info= "new text
>> $trans_id --> $stmt_id", nt_4.info= "new text $trans_id -->
>> $stmt_id", tt_3.info= "new text $trans_id --> $stmt_id", tt_4.info=
>> "new text $trans_id --> $stmt_id" where nt_3.trans_id = nt_4.trans_id
>> and nt_4.trans_id = tt_3.trans_id and tt_3.trans_id = tt_4.trans_id
>> and tt_4.trans_id = 1;
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('NT-trig')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     --enable_query_log
>>     eval INSERT INTO nt_4(trans_id, stmt_id) VALUES ($trans_id,
>> $stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('NT-func')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     --enable_query_log
>>     eval INSERT INTO nt_5(trans_id, stmt_id, info) VALUES ($trans_id,
>> $stmt_id, fc_i_tt_5_suc($trans_id, $stmt_id));
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('NeT-trig')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     let $old_trans_id= `SELECT max(trans_id) from nt_4`;
>>     let $old_stmt_id= `SELECT max(stmt_id) from nt_4 where trans_id=
>> $old_trans_id`;
>>     --enable_query_log
>>     --error ER_DUP_ENTRY, ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
>>     eval INSERT INTO nt_4(trans_id, stmt_id) VALUES ($trans_id,
>> $stmt_id), ($old_trans_id, $old_stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('NeT-func')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     let $old_trans_id= `SELECT max(trans_id) from nt_5`;
>>     let $old_stmt_id= `SELECT max(stmt_id) from nt_5 where trans_id=
>> $old_trans_id`;
>>     --enable_query_log
>>     --error ER_DUP_ENTRY, ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
>>     eval INSERT INTO nt_5(trans_id, stmt_id, info) VALUES ($trans_id,
>> $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_tt_5_suc
>> ($trans_id, $stmt_id));
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('TN')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     --enable_query_log
>>     eval UPDATE tt_3, tt_4, nt_3, nt_4 SET tt_3.info= "new text
>> $trans_id --> $stmt_id", tt_4.info= "new text $trans_id -->
>> $stmt_id", nt_3.info= "new text $trans_id --> $stmt_id", nt_4.info=
>> "new text $trans_id --> $stmt_id" where nt_3.trans_id = nt_4.trans_id
>> and nt_4.trans_id = tt_3.trans_id and tt_3.trans_id = tt_4.trans_id
>> and tt_4.trans_id = 1;
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('TN-trig')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     --enable_query_log
>>     eval INSERT INTO tt_3(trans_id, stmt_id) VALUES ($trans_id,
>> $stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('TN-func')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     --enable_query_log
>>     eval INSERT INTO tt_5(trans_id, stmt_id, info) VALUES ($trans_id,
>> $stmt_id, fc_i_nt_5_suc($trans_id, $stmt_id));
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('TeN-trig')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     let $old_trans_id= `SELECT max(trans_id) from tt_3`;
>>     let $old_stmt_id= `SELECT max(stmt_id) from tt_3 where trans_id=
>> $old_trans_id`;
>>     --enable_query_log
>>     --error ER_DUP_ENTRY, ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
>>     eval INSERT INTO tt_3(trans_id, stmt_id) VALUES ($trans_id,
>> $stmt_id), ($old_trans_id, $old_stmt_id);
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('TeN-func')`)
>>   {
>>     --echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
>>     let $old_trans_id= `SELECT max(trans_id) from tt_5`;
>>     let $old_stmt_id= `SELECT max(stmt_id) from tt_5 where trans_id=
>> $old_trans_id`;
>>     --enable_query_log
>>     --error ER_DUP_ENTRY, ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG
>>     eval INSERT INTO tt_5(trans_id, stmt_id, info) VALUES ($trans_id,
>> $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_nt_5_suc
>> ($trans_id, $stmt_id));
>>     --disable_query_log
>>     inc $stmt_id;
>>   }
>>   if (`SELECT HEX(@command) = HEX('C')`)
>>   {
>>     --enable_query_log
>>     eval COMMIT;
>>     --disable_query_log
>>   }
>>   if (`SELECT HEX(@command) = HEX('R')`)
>>   {
>>     --enable_query_log
>>     eval ROLLBACK;
>>     --disable_query_log
>>   }
>>   if (`SELECT HEX(@command) = HEX('Sp')`)
>>   {
>>     --enable_query_log
>>     eval SAVEPOINT s1;     --disable_query_log
>>   }
>>   if (`SELECT HEX(@command) = HEX('Rp')`)
>>   {
>>     --enable_query_log
>>     eval ROLLBACK TO s1;     --disable_query_log
>>   }
>>   if (`SELECT HEX(@command) = HEX('Ce')`)
>>   {
>>     --enable_query_log
>>     eval SET SESSION debug="+d,injecting_fault_flushing";
>>     --error ER_ERROR_ON_WRITE
>>     eval COMMIT;
>>     eval SET SESSION debug="-d,injecting_fault_flushing";
>>     --disable_query_log
>>   }
>>   if (`SELECT HEX(@command) = HEX('Re')`)
>>   {
>>     --enable_query_log
>>     eval SET SESSION debug="+d,injecting_fault_flushing";
>>     --error ER_ERROR_ON_WRITE
>>     eval ROLLBACK;
>>     eval SET SESSION debug="-d,injecting_fault_flushing";
>>     --disable_query_log
>>   }
>>   SET @commands= LTRIM(SUBSTRING(@commands, LENGTH(@command) + 1));
>>   inc $stmt_id;
>>
>>   let $binlog_start= $pos_command;
>>   --source include/show_binlog_events.inc
>>   --echo ------------- $command ------------
>
I am not sure if I understood exactly what you want. Anyway, please,
check the code.

> (S5) I think the output would be slightly more clear if the -----
> $command ----- that you write after the statement didn't look  like
> the one you write after the statement.
>
>>   if (`SELECT HEX(@commands) = HEX('')`)
>>   {
>
> (S5) I think this would become more clear if you wrote
>
> ---------------- $commands ---------------
>
> before the show_binlog_events.inc. Here, $commands is the string given
> when rpl_mixing_tables.inc was first included (so you need to do
> something like:
>
> if (`SELECT '$commands' = ''`) {
>   --let $commands= `SELECT @commands`
> }
>
> near the beginning of the test, and
>
> if (`SELECT '@commands' = '') {
>   --let $commands=
> }
>
> near the end.
>
>>     let $binlog_start= $pos_trans_command;
>>     --source include/show_binlog_events.inc
>>     --echo
>>     let $pos_trans_command= query_get_value("SHOW MASTER STATUS",
>> Position, 1);
>>     let $stmt_id= 1;
>>     inc $trans_id;
>>   }
>>   --enable_query_log
>>
>>   --source extra/rpl_tests/rpl_mixing_engines.inc
>> }
>
>
>

Thread
bzr commit into mysql-pe branch (alfranio.correia:3514) WL#2687 WL#5072Alfranio Correia13 Sep
Re: bzr commit into mysql-pe branch (alfranio.correia:3514) WL#2687WL#5072Sven Sandberg16 Sep
  • Re: bzr commit into mysql-pe branch (alfranio.correia:3514) WL#2687WL#5072Alfranio Correia17 Sep
  • Re: bzr commit into mysql-pe branch (alfranio.correia:3514) WL#2687WL#5072Alfranio Correia20 Sep
    • Re: bzr commit into mysql-pe branch (alfranio.correia:3514) WL#2687WL#5072Sven Sandberg21 Sep
      • Re: bzr commit into mysql-pe branch (alfranio.correia:3514) WL#2687WL#5072Alfranio Correia21 Sep
        • Re: bzr commit into mysql-pe branch (alfranio.correia:3514) WL#2687WL#5072Sven Sandberg23 Sep
          • Re: bzr commit into mysql-pe branch (alfranio.correia:3514) WL#2687WL#5072Alfranio Correia25 Sep
            • Re: bzr commit into mysql-pe branch (alfranio.correia:3514) WL#2687WL#5072Alfranio Correia28 Sep
              • Re: bzr commit into mysql-pe branch (alfranio.correia:3514) WL#2687WL#5072Sven Sandberg28 Sep