Code review comment for lp:~gl-az/percona-server/ST-41544-5.5

Revision history for this message
George Ormond Lorch III (gl-az) wrote :

> - In rpl_mixed_drop_create_temp_table, diff lines 1792+ ("B N
> N-Temp T-SELECT-N-Temp N-Temp C"), it seems that binlog is
> missing the row events for INSERT INTO nt_xx_1 SELECT * FROM
> tt_tmp_xx_1;

Are you sure about this, that you are looking at the same test correctly? Diff line 1792+ isn't:
'B N N-Temp T-SELECT-N-Temp N-Temp C'
it is:
'B N N-Temp N-SELECT-T-Temp N-Temp C'

This test and the results seem fine...Here is the portion of the result file for 'B N N-Temp T-SELECT-N-Temp N-Temp C':

SET @commands= 'B N N-Temp T-SELECT-N-Temp N-Temp C';
BEGIN;
INSERT INTO nt_xx_1() VALUES (1);
INSERT INTO nt_tmp_xx_1() VALUES (1);
INSERT INTO tt_xx_1 SELECT * FROM nt_tmp_xx_1;
INSERT INTO nt_tmp_xx_1() VALUES (1);
COMMIT;
-b-b-b-b-b-b-b-b-b-b-b- >> B N N-Temp T-SELECT-N-Temp N-Temp C << -b-b-b-b-b-b-b-b-b-b-b-
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `test`; INSERT INTO nt_xx_1() VALUES (1)
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (test.tt_xx_1)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
-e-e-e-e-e-e-e-e-e-e-e- >> B N N-Temp T-SELECT-N-Temp N-Temp C << -e-e-e-e-e-e-e-e-e-e-e-

The only things that should be binlogged here is the 'INSERT INTO nt_xx_1' as STMT, then the 'INSERT INTO tt_xx_1 SELECT' as ROW and that seems to be happening correctly right?

Maybe you are looking at the following case 'B N N-Temp N-SELECT-T-Temp N-Temp C', this is file as well, here is the snippet from the result file:

SET @commands= 'B N N-Temp N-SELECT-T-Temp N-Temp C';
BEGIN;
INSERT INTO nt_xx_1() VALUES (1);
INSERT INTO nt_tmp_xx_1() VALUES (1);
INSERT INTO nt_xx_1 SELECT * FROM tt_tmp_xx_1;
INSERT INTO nt_tmp_xx_1() VALUES (1);
COMMIT;
-b-b-b-b-b-b-b-b-b-b-b- >> B N N-Temp N-SELECT-T-Temp N-Temp C << -b-b-b-b-b-b-b-b-b-b-b-
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `test`; INSERT INTO nt_xx_1() VALUES (1)
master-bin.000001 # Query # # COMMIT
-e-e-e-e-e-e-e-e-e-e-e- >> B N N-Temp N-SELECT-T-Temp N-Temp C << -e-e-e-e-e-e-e-e-e-e-e-

At first this looked wrong, like it was missing row events for the third insert 'INSERT INTO nt_xx_1 SELECT * FROM tt_tmp_xx_1;', which it is, because there are no rows in tt_tmp_xx_1 at this point in the test, it seems that it is an empty temp table that never gets anything inserted the entire test. So this case seems right to me as well.

« Back to merge proposal