################################################################################ # - Introduction # This checks if transactions that mixes transactional and non-transactional # are correctly handled. There are several types of statements that require # attention because of their special behavior in transactions: # # * Non-transactional updates that take place inside a transaction present # problems for logging because (1) they are visible to other clients before # the transaction is committed, and (2) they are not rolled back even if the # transaction is rolled back. It is not always possible to log correctly in # statement format when both transactional and non-transactional tables are # used in the same transaction. # # * Statements that do an implicit commit (i.e., most but not all DDL, and # some utility commands) are logged specially # # * Statements that update temporary tables need special treatment since they # are not logged in row format. # # - Definitions # # To reason about logging different table types, we make some preliminary # definitions. # # * A table that has a transactional engine is called a T-table. # # * A table that has a non-transactional engine is called an N-table. # # * A statement makes an N-write if it makes any type of change to the server # state that will not be changed by a ROLLBACK. # # * Events are either appended to the Transaction Cache (TC) or to the # Statement Cache (SC) or written directly to the binlog. # # - Preliminary Rules # # The following preliminary rules are actually consequences of the principle # that statements shall be correctly logged when binlog_format=MIXED or ROW. # They also apply when binlog_format=STATEMENT: this makes statement format # work in many practical cases. # # * (Causality) If statement A is executed before statement B, and B is logged # in statement format, and B reads tables that A may modifies, then B shall be # logged after A. # # * (Durability) Events shall be written to the binary log at the moment they # take effect. In particular, changes to N-tables shall be written to the # binary log when they have been executed, and changes to T-tables shall be # written to the binary log on commit. If --sync-binlog has been specified, # then it suffices that events are be written to the binary log at the next # synchronization point. # # * (causality-precedence) If causality and durability cannot both be # fulfilled, then casuality is considered more important. # # - Rules for non-committing statements, except CREATE TEMPORARY TABLE...SELECT # # The preliminary rules above, together with the principles for logging format # , have been used to construct the following rules. # # 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 logged statement that does not have an implicit commit, except # CREATE TEMPORARY TABLE...SELECT (This includes all "pure DML": INSERT, # UPDATE, DELETE, REPLACE, TRUNCATE, SELECT, DO, CALL, EXECUTE, LOAD DATA # INFILE, and BINLOG. It also includes CREATE TEMPORARY TABLE without SELECT, # and DROP TEMPORARY TABLE. CREATE TEMPORARY TABLE...SELECT is handled in the # next subsection). # # Before executing S, determine unsafeness: # # * If S either makes N-writes or reads from 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. # # When logging S, determine where to log it by applying the following rules in # order: # # * If S is to be logged in statement format (i.e., if one of the following # holds: (1) STATEMENT; (2) MIXED and S is safe; (3) S is of DDL type, i.e., # CREATE TEMPORARY TABLE): # 1. If S produces an error and does not do any N-write, do not log. # 2. Otherwise, if either S or any previous statement in the same # transaction reads or writes in any T-tables, log to TC. # 3. Otherwise, log to SC. # # * If S is to be logged in row format (i.e., if S is DML and one of the # following holds: (1) ROW; (2) MIXED and S is unsafe): # 1. Do not log row events that write to temporary tables. # 2. Log row events that write to non-temporary N-tables to SC. # 3. Log row events that write to non-temporary T-tables to TC, except # rows that are rolled back due to an error. (Note: if there is an error, # rows written to a T-table are kept if there are subsequent rows written # to an N-table.) # # * At the end of S, write BEGIN + SC + COMMIT to the binlog and clear the # SC. # # At end of transaction: # # * At COMMIT or implicit commit, where all XA tables in the transaction # succeed in the "prepare" phase: # 1. If the TC is non-empty, write BEGIN + TC + COMMIT to the binlog. # 2. If the TC is empty, do nothing. # # * At ROLLBACK; or at COMMIT or implicit commit where some XA table fails # in the "prepare" phase: # 1. If the TC contains any N-write, write BEGIN + TC + ROLLBACK to the # binlog. # 2. If the TC does not contain any N-write, do nothing. # # * At ROLLBACK TO SAVEPOINT: # 1. If the TC contains any N-write after the savepoint, write ROLLBACK TO # SAVEPOINT to the TC. # 2. Otherwise, clear the part of the TC that starts at the savepoint and # extends to the end of the TC. (Bug#47327 breaks this rule) # # * Clear the TC at the end of the transaction. # # - Rules for CREATE [TEMPORARY] TABLE...SELECT # # First, unsafeness is determined as above (R-unsafe-transaction). Then the # logging format is decided. Then the following rules apply. # # * If logging in statement format (i.e., one of the following holds: (1) # STATEMENT; (2) MIXED and statement is safe): # 1. If there is an error, do not write anything. # 2. If there is no error and the TEMPORARY keyword is used, write the # entire CREATE...SELECT statement to the TC. # 3. If there is no error and the TEMPORARY keyword is not used, write the # entire CREATE...SELECT directly to the binlog. # # * If logging in row format (i.e., one of the following holds: (1) ROW; (2) # MIXED and statement is unsafe): # 1. If the TEMPORARY keyword is used, do not write anything. # 2. If the TEMPORARY keyword is not used, write CREATE TABLE (without # select) + BEGIN + row events + COMMIT to the TC. If there is an error, # clear the TC; otherwise flush the TC to the binlog at the end of the # statement and then clear the TC. (Note: currently Bug#47899 breaks this # rule) # # - Rules for committing statements, except CREATE [TEMPORARY] TABLE...SELECT # # * All other statements that have a pre-commit are written directly to the # binlog. # # 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. # Sn - Savepoint Sn. # Rn - Rollback to Sn. # # - 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. # eT - Fails while updating the first tuple in a T-Table. # 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. # eN - Fails while updating the first tuple in a N-Table. # 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: # tN - Updates a N-Table # tNe - 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. # # - This is CREATE...SELECT: # CS-T->T - Creates a T-table selecting from a T-table. # CS-N->N - Creates a N-table selecting from a N-table. # CS-T->N - Creates a T-table selecting form a N-table. # CS-N->T - Creates a N-table selecting from a T-table. # CSe-T->T - Fails while creating a T-table selecting from a T-table. # CSe-N->N - Fails while creating a N-table selecting from a N-table. # CSe-T->N - Fails while creating a T-table selecting from a a N-table. # CSe-N->T - Fails while creating a N-table selecting from a T-table. # drop-CS - Drops any of the tables previously created. # trunc-CS-T - Truncates a T-table previously created. # trunc-CS-N - Truncates a N-table previously created. # CT - Creates a temporary T-table. # drop-CT - Drops a temporary T-table. # # - This is INSERT...SELECT: # IS-T<-T - Inserts data from a T-table into a T-table. # IS-T<-N - Inserts data from a N-table into a T-table. # IS-N<-T - Inserts data from a T-table into a N-table. # IS-N<-N - Inserts data from a N-table into a N-table. # ISe-T<-T - Fails while inserting data from a T-table into a T-table. # ISe-T<-N - Fails while inserting data from a N-table into a T-table. # ISe-N<-T - Fails while inserting data from a T-table into a N-table. # ISe-N<-N - Fails while inserting data from a N-table into a N-table. # # For the CREATE...SELECT and INSERT...SELECT, the table names are defined based # on the variable $tb_id which is automatically incremented after each drop. # This indirectly means that two tables cannot co-exist unless we manually keep # the variable $tb_id. # # 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. ################################################################################ --echo ######################################################################### --echo # CONFIGURATION --echo ######################################################################### call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); --source include/big_test.inc --let $verbose= 1 --let $commands= configure --source suite/rpl/include/rpl_mixing_engines.inc --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 # --let $commands= T --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= T-trig --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= T-func --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= T-proc --source suite/rpl/include/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 # --let $commands= eT --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= Te --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= Te-trig --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= Te-func --source suite/rpl/include/rpl_mixing_engines.inc --echo --echo --echo --echo --echo # --echo #2) Generates in the binlog what follows: --echo # --> STMT "B N C" entry, format S. --echo # --> ROW "B N C" entry, format R. --echo # --> MIXED "B N C" entry, format S. --echo # --let $commands= N --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= N-trig --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= N-func --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= N-proc --source suite/rpl/include/rpl_mixing_engines.inc --echo --echo --echo --echo --echo # --echo #2.e) Generates in the binlog what follows if a N-table is changed: --echo # --> STMT "B N C" entry, format S. --echo # --> ROW "B N C" entry, format R. --echo # --> MIXED "B N C" entry, format S. --echo # --let $commands= eN --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= Ne --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= Ne-trig --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= Ne-func --source suite/rpl/include/rpl_mixing_engines.inc --echo --echo --echo --echo --echo # --echo #3) Generates in the binlog what follows: --echo # --> STMT "B M C" entry if only N-Table is changed, format S. --echo # --> STMT "B M C" entries, format S. --echo # --> ROW "B N T B T C" entries, format R. --echo # --> MIXED "B N T B T C" entries, format R. --echo # --let $commands= tN --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= nT --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= NT --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= NT-trig --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= NT-func --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= TN --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= TN-trig --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= TN-func --source suite/rpl/include/rpl_mixing_engines.inc --echo --echo --echo --echo --echo # --echo #3.e) Generates in the binlog what follows: --echo # --> STMT "B M C" entry if only N-Table is changed, format S. --echo # --> STMT "B M R" entries, format S. --echo # --> ROW "B N C" entry, format R. --echo # --> MIXED "B N C" entry, format R. --let $commands= tNe --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= nTe --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= NeT-trig --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= NeT-func --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= TeN-trig --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= TeN-func --source suite/rpl/include/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 # --let $commands= B T T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T T-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T T-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T T-proc C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig T-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig T-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig T-proc C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func T-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func T-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func T-proc C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc T-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc T-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc T-proc C --source suite/rpl/include/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 # --let $commands= B T eT C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T Te C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T Te-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T Te-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B eT T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B Te T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B Te-trig T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B Te-func T C --source suite/rpl/include/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 # --let $commands= B T T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T T-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T T-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T T-proc R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig T-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig T-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig T-proc R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func T-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func T-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func T-proc R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc T-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc T-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc T-proc R --source suite/rpl/include/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 # --let $commands= B T eT R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T Te R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T Te-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T Te-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B eT T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B Te T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B Te-trig T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B Te-func T R --source suite/rpl/include/rpl_mixing_engines.inc --echo --echo --echo --echo --echo # --echo #6) Generates in the binlog what follows: --echo # --> STMT "B N C B N C" entries, format S. --echo # --> ROW "B N C B N C" entries, format R. --echo # --> MIXED "B N C B N C" entries, format S. --echo # --let $commands= B N N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N N-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N N-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N N-proc C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig N-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig N-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig N-proc C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func N-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func N-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func N-proc C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc N-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc N-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc N-proc C --source suite/rpl/include/rpl_mixing_engines.inc --echo --echo --echo --echo --echo # --echo #6.e) Generates in the binlog what follows if a N-Table is changed: --echo # --> STMT "B N C B N C" entries, format S. --echo # --> ROW "B N C B N C" entries, format R. --echo # --> MIXED "B N C B N C" entries, format S. --echo # --let $commands= B N eN C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N Ne C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N Ne-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N Ne-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B eN N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B Ne N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B Ne-trig N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B Ne-func N C --source suite/rpl/include/rpl_mixing_engines.inc --echo --echo --echo --echo --echo # --echo #7) Generates in the binlog what follows: --echo # --> STMT "B N C B N C" entries, format S. --echo # --> ROW "B N C B N C" entries, format R. --echo # --> MIXED "B N C B N C" entries, format S. --echo # --let $commands= B N N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N N-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N N-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N N-proc R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig N-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig N-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig N-proc R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func N-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func N-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func N-proc R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc N-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc N-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc N-proc R --source suite/rpl/include/rpl_mixing_engines.inc --echo --echo --echo --echo --echo # --echo #7.e) Generates in the binlog what follows if a N-Table is changed: --echo # --> STMT "B N C B N C" entries, format S. --echo # --> ROW "B N C B N C" entries, format R. --echo # --> MIXED "B N C B N C" entries, format S. --echo # --let $commands= B N eN R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N Ne R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N Ne-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N Ne-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B eN N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B Ne N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B Ne-trig N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B Ne-func N R --source suite/rpl/include/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 "B N C B T C" entries, format R. --echo # --> MIXED "B N C B T C" entries, format R in N and S in T. --echo # --let $commands= B T N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T N-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T N-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T N-proc C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig N-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig N-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig N-proc C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func N-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func N-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func N-proc C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc N-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc N-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc N-proc C --source suite/rpl/include/rpl_mixing_engines.inc --echo --echo --echo --echo --echo # --echo #8.e) Generates in the binlog what follows if T-* fails: --echo # --> STMT "B N C" entry, format S. --echo # --> ROW "B N C" entry, format R. --echo # --> MIXED "B N C" 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 "B N C B T C" entries, format R. --echo # --> MIXED "B N C B T C" entries, format R in N and S in T. --echo # --let $commands= B eT N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B Te N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T eN C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T Ne C --source suite/rpl/include/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 "B N C" entry, format R. --echo # --> MIXED "B N C" entry, format R. --echo # --let $commands= B T N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T N-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T N-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T N-proc R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig N-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig N-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-trig N-proc R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func N-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func N-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-func N-proc R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc N-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc N-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T-proc N-proc R --source suite/rpl/include/rpl_mixing_engines.inc --echo --echo --echo --echo --echo # --echo #9.e) Generates in the binlog what follows if T* fails: --echo # --> STMT "B N C" entry, format S. --echo # --> ROW "B N C" entry, format R. --echo # --> MIXED "B N C" 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 "B N C" entry, format R. --echo # --> MIXED "B N C" entry, format R. --echo # --let $commands= B eT N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B Te N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T eN R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T Ne R --source suite/rpl/include/rpl_mixing_engines.inc --echo --echo --echo --echo --echo # --echo #10) Generates in the binlog: --echo # --> STMT "B N C B T C" entries, format S. --echo # --> ROW "B N C B T C" entries, format R. --echo # --> MIXED "B N C B T C" entries, format S. --echo # --let $commands= B N T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N T-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N T-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N T-proc C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig T-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig T-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig T-proc C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func T-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func T-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func T-proc C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc T-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc T-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc T-proc C --source suite/rpl/include/rpl_mixing_engines.inc --echo --echo --echo --echo --echo # --echo #11) Generates in the binlog what follows: --echo # --> STMT "B N C" entries, format S. --echo # --> ROW "B N C" entries, format R. --echo # --> MIXED "B N C" entries, format S. --echo # --let $commands= B N T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N T-proc R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N T-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N T-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig T-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig T-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-trig T-proc R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func T-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func T-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-func T-proc R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc T-proc R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc T-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N-proc T-func R --source suite/rpl/include/rpl_mixing_engines.inc --echo --echo --echo --echo --echo # --echo #12) Generates in the binlog what follows: --echo # --> STMT "B M C 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 "B N C B T T C" entries, format R. --echo # --> MIXED "B N C B T T C" entries, format R in N/T and format S in T. --echo # --let $commands= B tN T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B nT T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NT T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NT-trig T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NT-func T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TN T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TN-trig T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TN-func T C --source suite/rpl/include/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 "B M C 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 "B N C B T T C" entries, format R. --echo # --> MIXED "B N C B T T C" entries, format R in N/T and format S in T. --echo # --let $commands= B tNe T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B nTe T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NeT-trig T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NeT-func T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TeN-trig T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TeN-func T C --source suite/rpl/include/rpl_mixing_engines.inc --echo --echo --echo --echo --echo # --echo #13) "B M T R" generates in the binlog: --echo # --> STMT "B M C 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 "B N C" entry, format R. --echo # --> MIXED "B N C" entry, format R. --echo # --let $commands= B tN T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B nT T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NT T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NT-trig T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NT-func T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TN T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TN-trig T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TN-func T R --source suite/rpl/include/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 "B M C 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 "B N C" entry, format R. --echo # --> MIXED "B N C" entry, format R. --echo # --let $commands= B tNe T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B nTe T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NeT-trig T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NeT-func T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TeN-trig T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TeN-func T R --source suite/rpl/include/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 "B N C B T T C" entries, format R. --echo # --> MIXED "B N C B T T C" entries, format R in N/T and format S in T. --echo # --let $commands= B T tN C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T nT C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T NT C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T NT-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T NT-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T TN C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T TN-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T TN-func C --source suite/rpl/include/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 "B N C B T C" entry, format R. --echo # --> MIXED "B N C B T C" entry, format R. --echo # --let $commands= B T tNe C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T nTe C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T NeT-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T NeT-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T TeN-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T TeN-func C --source suite/rpl/include/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 "B N C" entry, format R. --echo # --> MIXED "B N C" entry, format R. --echo # --let $commands= B T tN R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T nT R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T NT R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T NT-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T NT-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T TN R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T TN-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T TN-func R --source suite/rpl/include/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 "B N C" entry, format R. --echo # --> MIXED "B N C" entry, format R. --echo # --let $commands= B T tNe R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T nTe R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T NeT-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T NeT-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T TeN-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T TeN-func R --source suite/rpl/include/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 "B M C B N C" entries if in M only N-Table is changed, format S. --echo # --> STMT "B M N C" entries, format S. --echo # --> ROW "B N C B N C B T C" entries, format R. --echo # --> MIXED "B M C B N C" entries if in M only N-Table is changed, format S. --echo # --> MIXED "B N C B N C B T C" entries, format R. --echo # --let $commands= B tN N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B nT N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NT N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NT-trig N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NT-func N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TN N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TN-trig N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TN-func N C --source suite/rpl/include/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 "B M C B N C" entries if in M only N-Table is changed, format S. --echo # --> STMT "B M N C" entries, format S. --echo # --> ROW "B N C B N C B T C" entries, format R. --echo # --> MIXED "B M C B N C" entries if in M only N-Table is changed, format S. --echo # --> MIXED "B N C B N C B T C" entries, format R. --echo # --let $commands= B tNe N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B nTe N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NeT-trig N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NeT-func N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TeN-trig N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TeN-func N C --source suite/rpl/include/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 "B M C B N C" entries if in M only N-Table is changed, format S. --echo # --> STMT "B M N R" entries, format S. --echo # --> ROW "B N C B N C" entries, format R. --echo # --> MIXED "B M C B N C" entries if in M only N-Table is changed, format S. --echo # --> MIXED "B N C B N C" entries, format R. --echo # --let $commands= B tN N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B nT N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NT N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NT-trig N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NT-func N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TN N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TN-trig N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TN-func N R --source suite/rpl/include/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 "B M C B N C" entries if in M only N-Table is changed, format S. --echo # --> STMT "B M N R" entries, format S. --echo # --> ROW "B N C B N C" entries, format R. --echo # --> MIXED "B M C B N C" entries if in M only N-Table is changed, format S. --echo # --> MIXED "B N C B N C" entries, format R. --echo # --let $commands= B tNe N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B nTe N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NeT-trig N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B NeT-func N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TeN-trig N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B TeN-func N R --source suite/rpl/include/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 "B N C B M C" entries if in M only N-Table is changed, format S. --echo # --> STMT "B N C B M C" entries, format S. --echo # --> ROW "B N C B N C B T C" entries, format R. --echo # --> MIXED "B N C B N C B T C" entries, format S in first N and format R in the other. --echo # --let $commands= B N tN C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N nT C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N NT C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N NT-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N NT-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N TN C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N TN-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N TN-func C --source suite/rpl/include/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 "B N C B M C" entries if in M only N-Table is changed, format S. --echo # --> STMT "B N C B M C" entries, format S. --echo # --> ROW "B N C B N C" entries, format R. --echo # --> MIXED "B N C B N C" entries, format S in first N and format R in the other. --echo # --let $commands= B N tNe C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N nTe C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N NeT-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N NeT-func C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N TeN-trig C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N TeN-func C --source suite/rpl/include/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 "B N C B M C" entries if in M only N-Table is changed, format S. --echo # --> STMT "B N C B M R" entries, format S. --echo # --> ROW "B N C B N C" entries, format R. --echo # --> MIXED "B N C B N C" entries, format S in first N and format R in the other. --echo # --let $commands= B N tN R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N nT R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N NT R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N NT-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N NT-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N TN R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N TN-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N TN-func R --source suite/rpl/include/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 "B N C B M C" entries if in M only N-Table is changed, format S. --echo # --> STMT "B N C B M R" entries, format S. --echo # --> ROW "B N C B N C" entries, format R. --echo # --> MIXED "B N C B N C" entries, format S in first N and format R in the other. --echo # --let $commands= B N tNe R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N nTe R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N NeT-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N NeT-func R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N TeN-trig R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N TeN-func R --source suite/rpl/include/rpl_mixing_engines.inc --echo ################################################################################### --echo # 2 - SAVEPOINT --echo ################################################################################### --let $commands= B T Sn T Rn C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N T Sn T Rn C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T N Sn T Rn C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T Sn N T Rn C --source suite/rpl/include/rpl_mixing_engines.inc --echo ################################################################################### --echo # 3 - CREATE TABLE...SELECT --echo ################################################################################### --let $commands= CSe-T->T CS-T->T drop-CS --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= CSe-N->N CS-N->N drop-CS --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= CSe-T->N CS-T->N drop-CS --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= CSe-N->T CS-N->T drop-CS --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= CSe-N->T CS-N->T drop-CS --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= CSe-N->T CS-N->T drop-CS --source suite/rpl/include/rpl_mixing_engines.inc --echo ################################################################################### --echo # 4 - INSERT TABLE...SELECT --echo ################################################################################### --let $commands= CS-T->T --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-T B T IS-T<-N T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-T B T ISe-T<-N T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-T B IS-T<-N T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-T B ISe-T<-N T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= drop-CS --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= CS-T->T --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-T B T IS-T<-T T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-T B T ISe-T<-T T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-T B IS-T<-T T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-T B ISe-T<-T T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= drop-CS --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= CS-N->N --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-N B T IS-N<-T T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-N B T ISe-N<-T T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-N B IS-N<-T T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-N B ISe-N<-T T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= drop-CS --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= CS-N->N --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-N B T IS-N<-N T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-N B T ISe-N<-N T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-N B IS-N<-N T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= trunc-CS-N B ISe-N<-N T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= drop-CS --source suite/rpl/include/rpl_mixing_engines.inc --echo ################################################################################### --echo # 5 - ROLLBACK TEMPORARY TABLE --echo ################################################################################### --let $commands= B T CT R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= drop-CT --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T Sn T CT Rn R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= drop-CT --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B T CT T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= drop-CT --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B tN CT T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= drop-CT --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B CT T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= drop-CT --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B N CT T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= drop-CT --source suite/rpl/include/rpl_mixing_engines.inc --echo ################################################################################### --echo # 5 - SET WITH ROW CHANGES --echo ################################################################################### --let $commands= set-T --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= set-N --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= set-NT --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B set-N set-T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B set-T set-N C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B set-N set-T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B set-T set-N R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B set-NT set-T C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B set-T set-NT C --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B set-NT set-T R --source suite/rpl/include/rpl_mixing_engines.inc --let $commands= B set-T set-NT R --source suite/rpl/include/rpl_mixing_engines.inc --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 if (`select @@session.binlog_direct_non_transactional_updates = 0 || @@session.binlog_format != 'STATEMENT'`) { --diff_files $MYSQLTEST_VARDIR/tmp/test-nmt-master.sql $MYSQLTEST_VARDIR/tmp/test-nmt-slave.sql } --echo ################################################################################### --echo # CLEAN --echo ################################################################################### --let $commands= clean --source suite/rpl/include/rpl_mixing_engines.inc