List:Commits« Previous MessageNext Message »
From:Andrei Elkin Date:August 27 2008 7:40am
Subject:Re: bzr commit into mysql-5.1 branch (skozlov:2660) WL#3788
View as plain text  
Serge, hello!

After reading WL#3788 and your patch I have got several questions.
I think you need to describe in details 

1. why such a particular subset of variables was chosen, please name 
   criteria.
   Is it guaranteed that all the variables had been examined against
   the criteria.
   I guess such description could placed in the empty slot for HLD and
   it is important to have some summary of it here in the cset
   comments header.

2. With regard to implementation, I think you need to leave some
comments about what is being tested and what is the expected result of
each variable test section. I'd like to see the result to be
somehow emphasized.

Could you please address these two major concerns?

regards,

Andrei

> #At file:///home/ksm/sun/repo/mysql-5.1-rpl-WL3788/
>
>  2660 Serge Kozlov	2008-08-25
>       WL#3788. New test case rpl_spec_variables and result file.
> added:
>   mysql-test/suite/rpl/r/rpl_spec_variables.result
>   mysql-test/suite/rpl/t/rpl_spec_variables-slave.opt
>   mysql-test/suite/rpl/t/rpl_spec_variables.test
>
> === added file 'mysql-test/suite/rpl/r/rpl_spec_variables.result'
> --- a/mysql-test/suite/rpl/r/rpl_spec_variables.result	1970-01-01 00:00:00 +0000
> +++ b/mysql-test/suite/rpl/r/rpl_spec_variables.result	2008-08-25 09:43:36 +0000
> @@ -0,0 +1,207 @@
> +stop slave;
> +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
> +reset master;
> +reset slave;
> +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
> +start slave;
> +
> +* auto_increment_increment, auto_increment_offset *
> +SET @@global.auto_increment_increment=2;
> +SET @@session.auto_increment_increment=2;
> +SET @@global.auto_increment_offset=10;
> +SET @@session.auto_increment_offset=10;
> +SET @@global.auto_increment_increment=3;
> +SET @@session.auto_increment_increment=3;
> +SET @@global.auto_increment_offset=20;
> +SET @@session.auto_increment_offset=20;
> +CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b VARCHAR(10))
> ENGINE=MyISAM;
> +INSERT INTO t1 (b) VALUES ('master');
> +INSERT INTO t1 (b) VALUES ('master');
> +SELECT * FROM t1 ORDER BY a;
> +a	b
> +2	master
> +4	master
> +CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b VARCHAR(10))
> ENGINE=MyISAM;
> +INSERT INTO t1 (b) VALUES ('slave');
> +INSERT INTO t1 (b) VALUES ('slave');
> +INSERT INTO t2 (b) VALUES ('slave');
> +INSERT INTO t2 (b) VALUES ('slave');
> +SELECT * FROM t1 ORDER BY a;
> +a	b
> +2	master
> +4	master
> +7	slave
> +10	slave
> +SELECT * FROM t2 ORDER BY a;
> +a	b
> +1	slave
> +4	slave
> +DROP TABLE IF EXISTS t1,t2;
> +SET @@global.auto_increment_increment=1;
> +SET @@session.auto_increment_increment=1;
> +SET @@global.auto_increment_offset=1;
> +SET @@session.auto_increment_offset=1;
> +SET @@global.auto_increment_increment=1;
> +SET @@session.auto_increment_increment=1;
> +SET @@global.auto_increment_offset=1;
> +SET @@session.auto_increment_offset=1;
> +SET auto_increment_increment=1;
> +SET auto_increment_offset=1;
> +
> +* character_set_database, collation_server *
> +SET @@global.character_set_database=latin1;
> +SET @@session.character_set_database=latin1;
> +SET @@global.collation_server=latin1_german1_ci;
> +SET @@session.collation_server=latin1_german1_ci;
> +SET @@global.character_set_database=latin1;
> +SET @@session.character_set_database=latin1;
> +SET @@global.collation_server=latin1_german2_ci;
> +SET @@session.collation_server=latin1_german2_ci;
> +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10)) ENGINE=MyISAM;
> +SHOW CREATE TABLE t1;
> +Table	Create Table
> +t1	CREATE TABLE `t1` (
> +  `a` int(11) NOT NULL,
> +  `b` varchar(10) COLLATE latin1_german1_ci DEFAULT NULL,
> +  PRIMARY KEY (`a`)
> +) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci
> +CREATE TABLE t2 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10)) ENGINE=MyISAM;
> +SHOW CREATE TABLE t1;
> +Table	Create Table
> +t1	CREATE TABLE `t1` (
> +  `a` int(11) NOT NULL,
> +  `b` varchar(10) COLLATE latin1_german1_ci DEFAULT NULL,
> +  PRIMARY KEY (`a`)
> +) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci
> +SHOW CREATE TABLE t2;
> +Table	Create Table
> +t2	CREATE TABLE `t2` (
> +  `a` int(11) NOT NULL,
> +  `b` varchar(10) COLLATE latin1_german2_ci DEFAULT NULL,
> +  PRIMARY KEY (`a`)
> +) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci
> +SET @@global.collation_server=latin1_swedish_ci;
> +SET @@session.collation_server=latin1_swedish_ci;
> +SET @@global.collation_server=latin1_swedish_ci;
> +SET @@session.collation_server=latin1_swedish_ci;
> +DROP TABLE IF EXISTS t1,t2;
> +
> +* default_week_format *
> +SET @@global.default_week_format=0;
> +SET @@session.default_week_format=0;
> +SET @@global.default_week_format=1;
> +SET @@session.default_week_format=1;
> +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10), c INT) ENGINE=MyISAM;
> +INSERT INTO t1 VALUES (1, 'master ', WEEK('2008-01-07'));
> +SELECT * FROM t1 ORDER BY a;
> +a	b	c
> +1	master 	1
> +INSERT INTO t1 VALUES (2, 'slave ', WEEK('2008-01-07'));
> +SELECT * FROM t1 ORDER BY a;
> +a	b	c
> +1	master 	1
> +2	slave 	2
> +DROP TABLE t1;
> +SET @@global.default_week_format=0;
> +SET @@session.default_week_format=0;
> +
> +* local_infile *
> +SET @@global.local_infile=0;
> +CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b VARCHAR(20), c
> CHAR(254)) ENGINE=MyISAM;
> +LOAD DATA LOCAL INFILE 'FILE' INTO TABLE t1 (b);
> +SELECT COUNT(*) FROM t1;
> +COUNT(*)
> +70
> +LOAD DATA LOCAL INFILE 'FILE2' INTO TABLE t1 (b);
> +ERROR 42000: The used command is not allowed with this MySQL version
> +SELECT COUNT(*) FROM t1;
> +COUNT(*)
> +70
> +SET @@global.local_infile=1;
> +DROP TABLE t1;
> +
> +* max_heap_table_size *
> +SET @@global.max_heap_table_size=16384;
> +SET @@session.max_heap_table_size=16384;
> +CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b VARCHAR(10), c
> CHAR(254)) ENGINE=MEMORY;
> +SELECT COUNT(*) FROM t1;
> +COUNT(*)
> +2000
> +SELECT b,COUNT(*) FROM t1 GROUP BY b ORDER BY b;
> +b	COUNT(*)
> +master	2000
> +slave	1740
> +SELECT b,COUNT(*) FROM t2 GROUP BY b ORDER BY b;
> +b	COUNT(*)
> +slave	50
> +DROP TABLE IF EXISTS t1,t2;
> +
> +* storage_engine *
> +SET @@global.storage_engine=InnoDB;
> +SET @@session.storage_engine=InnoDB;
> +SET @@global.storage_engine=Memory;
> +SET @@session.storage_engine=Memory;
> +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10));
> +CREATE TABLE t2 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10)) ENGINE=InnoDB;
> +CREATE TABLE t3 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10));
> +SHOW CREATE TABLE t1;
> +Table	Create Table
> +t1	CREATE TABLE `t1` (
> +  `a` int(11) NOT NULL,
> +  `b` varchar(10) DEFAULT NULL,
> +  PRIMARY KEY (`a`)
> +) ENGINE=InnoDB DEFAULT CHARSET=latin1
> +SHOW CREATE TABLE t2;
> +Table	Create Table
> +t2	CREATE TABLE `t2` (
> +  `a` int(11) NOT NULL,
> +  `b` varchar(10) DEFAULT NULL,
> +  PRIMARY KEY (`a`)
> +) ENGINE=InnoDB DEFAULT CHARSET=latin1
> +SHOW CREATE TABLE t1;
> +Table	Create Table
> +t1	CREATE TABLE `t1` (
> +  `a` int(11) NOT NULL,
> +  `b` varchar(10) DEFAULT NULL,
> +  PRIMARY KEY (`a`)
> +) ENGINE=MyISAM DEFAULT CHARSET=latin1
> +SHOW CREATE TABLE t2;
> +Table	Create Table
> +t2	CREATE TABLE `t2` (
> +  `a` int(11) NOT NULL,
> +  `b` varchar(10) DEFAULT NULL,
> +  PRIMARY KEY (`a`)
> +) ENGINE=InnoDB DEFAULT CHARSET=latin1
> +SHOW CREATE TABLE t3;
> +Table	Create Table
> +t3	CREATE TABLE `t3` (
> +  `a` int(11) NOT NULL,
> +  `b` varchar(10) DEFAULT NULL,
> +  PRIMARY KEY (`a`)
> +) ENGINE=MEMORY DEFAULT CHARSET=latin1
> +SET @@global.storage_engine=InnoDB;
> +SET @@session.storage_engine=InnoDB;
> +DROP TABLE IF EXISTS t1,t2,t3;
> +
> +* sql_mode *
> +SET @@global.sql_mode=ANSI;
> +SET @@session.sql_mode=ANSI;
> +SET @@global.sql_mode=TRADITIONAL;
> +SET @@session.sql_mode=TRADITIONAL;
> +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10), c DATE);
> +INSERT INTO t1 VALUES (1, 'master', '0000-00-00');
> +SELECT * FROM t1 ORDER BY a;
> +a	b	c
> +1	master	0000-00-00
> +INSERT INTO t1 VALUES (1, 'slave', '0000-00-00');
> +ERROR 22007: Incorrect date value: '0000-00-00' for column 'c' at row 1
> +SELECT * FROM t1 ORDER BY a;
> +a	b	c
> +1	master	0000-00-00
> +SET @@global.sql_mode='';
> +SET @@session.sql_mode='';
> +SET @@global.sql_mode='';
> +SET @@session.sql_mode='';
> +DROP TABLE t1;
> +
> +*** clean up ***
>
> === added file 'mysql-test/suite/rpl/t/rpl_spec_variables-slave.opt'
> --- a/mysql-test/suite/rpl/t/rpl_spec_variables-slave.opt	1970-01-01 00:00:00 +0000
> +++ b/mysql-test/suite/rpl/t/rpl_spec_variables-slave.opt	2008-08-25 09:43:36 +0000
> @@ -0,0 +1 @@
> +--innodb
>
> === added file 'mysql-test/suite/rpl/t/rpl_spec_variables.test'
> --- a/mysql-test/suite/rpl/t/rpl_spec_variables.test	1970-01-01 00:00:00 +0000
> +++ b/mysql-test/suite/rpl/t/rpl_spec_variables.test	2008-08-25 09:43:36 +0000
> @@ -0,0 +1,279 @@
> +#############################################################
> +# Author: Serge Kozlov <skozlov@stripped>
> +# Date:   07/01/2008
> +# Purpose: Testing affects of some variables to
> +# replication
> +#############################################################
> +--source include/have_innodb.inc
> +--source include/master-slave.inc
> +--echo
> +
> +#
> +# AUTO_INCREMENT
> +#
> +--echo * auto_increment_increment, auto_increment_offset *
> +
> +--connection master
> +SET @@global.auto_increment_increment=2;
> +SET @@session.auto_increment_increment=2;
> +SET @@global.auto_increment_offset=10;
> +SET @@session.auto_increment_offset=10;
> +
> +--connection slave
> +SET @@global.auto_increment_increment=3;
> +SET @@session.auto_increment_increment=3;
> +SET @@global.auto_increment_offset=20;
> +SET @@session.auto_increment_offset=20;
> +
> +--connection master
> +CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b VARCHAR(10))
> ENGINE=MyISAM;
> +INSERT INTO t1 (b) VALUES ('master');
> +INSERT INTO t1 (b) VALUES ('master');
> +SELECT * FROM t1 ORDER BY a;
> +
> +--sync_slave_with_master
> +CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b VARCHAR(10))
> ENGINE=MyISAM;
> +INSERT INTO t1 (b) VALUES ('slave');
> +INSERT INTO t1 (b) VALUES ('slave');
> +INSERT INTO t2 (b) VALUES ('slave');
> +INSERT INTO t2 (b) VALUES ('slave');
> +SELECT * FROM t1 ORDER BY a;
> +SELECT * FROM t2 ORDER BY a;
> +
> +--connection master
> +--disable_warnings
> +DROP TABLE IF EXISTS t1,t2;
> +--enable_warnings
> +SET @@global.auto_increment_increment=1;
> +SET @@session.auto_increment_increment=1;
> +SET @@global.auto_increment_offset=1;
> +SET @@session.auto_increment_offset=1;
> +
> +--connection slave
> +SET @@global.auto_increment_increment=1;
> +SET @@session.auto_increment_increment=1;
> +SET @@global.auto_increment_offset=1;
> +SET @@session.auto_increment_offset=1;
> +
> +--connection slave
> +SET auto_increment_increment=1;
> +SET auto_increment_offset=1;
> +--echo
> +
> +#
> +# CHARACTER_SET_DATABASE, COLLATION_SERVER
> +#
> +--echo * character_set_database, collation_server *
> +
> +--connection master
> +SET @@global.character_set_database=latin1;
> +SET @@session.character_set_database=latin1;
> +SET @@global.collation_server=latin1_german1_ci;
> +SET @@session.collation_server=latin1_german1_ci;
> +
> +--connection slave
> +SET @@global.character_set_database=latin1;
> +SET @@session.character_set_database=latin1;
> +SET @@global.collation_server=latin1_german2_ci;
> +SET @@session.collation_server=latin1_german2_ci;
> +
> +--connection master
> +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10)) ENGINE=MyISAM;
> +SHOW CREATE TABLE t1;
> +
> +--sync_slave_with_master
> +CREATE TABLE t2 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10)) ENGINE=MyISAM;
> +SHOW CREATE TABLE t1;
> +SHOW CREATE TABLE t2;
> +
> +SET @@global.collation_server=latin1_swedish_ci;
> +SET @@session.collation_server=latin1_swedish_ci;
> +
> +--connection master
> +SET @@global.collation_server=latin1_swedish_ci;
> +SET @@session.collation_server=latin1_swedish_ci;
> +
> +--disable_warnings
> +DROP TABLE IF EXISTS t1,t2;
> +--enable_warnings
> +--echo
> +
> +#
> +# DEFAULT_WEEK_FORMAT
> +#
> +--echo * default_week_format *
> +
> +--connection master
> +SET @@global.default_week_format=0;
> +SET @@session.default_week_format=0;
> +
> +--connection slave
> +SET @@global.default_week_format=1;
> +SET @@session.default_week_format=1;
> +
> +--connection master
> +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10), c INT) ENGINE=MyISAM;
> +INSERT INTO t1 VALUES (1, 'master ', WEEK('2008-01-07'));
> +SELECT * FROM t1 ORDER BY a;
> +
> +--sync_slave_with_master
> +INSERT INTO t1 VALUES (2, 'slave ', WEEK('2008-01-07'));
> +SELECT * FROM t1 ORDER BY a;
> +
> +--connection master
> +DROP TABLE t1;
> +
> +--connection slave
> +SET @@global.default_week_format=0;
> +SET @@session.default_week_format=0;
> +--echo
> +
> +#
> +# LOCAL_INFILE
> +#
> +--echo * local_infile *
> +
> +--connection slave
> +SET @@global.local_infile=0;
> +
> +--connection master
> +CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b VARCHAR(20), c
> CHAR(254)) ENGINE=MyISAM;
> +--copy_file ./std_data/words.dat $MYSQLTEST_VARDIR/tmp/words.dat
> +--copy_file ./std_data/words2.dat $MYSQLTEST_VARDIR/tmp/words2.dat
> +--replace_regex /\'.+\'/'FILE'/
> +--eval LOAD DATA LOCAL INFILE '$MYSQLTEST_VARDIR/tmp/words.dat' INTO TABLE t1 (b)
> +SELECT COUNT(*) FROM t1;
> +--sync_slave_with_master
> +--replace_regex /\'.+\'/'FILE2'/
> +--error 1148
> +--eval LOAD DATA LOCAL INFILE '$MYSQLTEST_VARDIR/tmp/words2.dat' INTO TABLE t1 (b)
> +SELECT COUNT(*) FROM t1;
> +
> +SET @@global.local_infile=1;
> +
> +--connection master
> +DROP TABLE t1;
> +--echo
> +
> +#
> +# MAX_HEAP_TABLE_SIZE
> +#
> +--echo * max_heap_table_size *
> +
> +--connection slave
> +SET @@global.max_heap_table_size=16384;
> +SET @@session.max_heap_table_size=16384;
> +
> +--connection master
> +CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b VARCHAR(10), c
> CHAR(254)) ENGINE=MEMORY;
> +let $counter=2000;
> +--disable_query_log
> +while ($counter) {
> + INSERT INTO t1 (b,c) VALUES ('master', REPEAT('A', 254));
> + dec $counter;
> +}
> +--enable_query_log
> +SELECT COUNT(*) FROM t1;
> +
> +--sync_slave_with_master
> +let $counter=2000;
> +--disable_query_log
> +while ($counter) {
> + --error 0,1114
> + INSERT INTO t1 (b,c) VALUES ('slave', REPEAT('A', 254));
> + dec $counter;
> +}
> +CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b VARCHAR(10), c
> CHAR(254)) ENGINE=MEMORY;
> +let $counter=2000;
> +--disable_query_log
> +while ($counter) {
> + --error 0,1114
> + INSERT INTO t2 (b,c) VALUES ('slave', REPEAT('A', 254));
> + dec $counter;
> +}
> +--enable_query_log
> +SELECT b,COUNT(*) FROM t1 GROUP BY b ORDER BY b;
> +SELECT b,COUNT(*) FROM t2 GROUP BY b ORDER BY b;
> +
> +--connection master
> +--disable_warnings
> +DROP TABLE IF EXISTS t1,t2;
> +--enable_warnings
> +--echo
> +
> +#
> +# STORAGE_ENGINE
> +#
> +--echo * storage_engine *
> +
> +--connection master
> +SET @@global.storage_engine=InnoDB;
> +SET @@session.storage_engine=InnoDB;
> +
> +--connection slave
> +SET @@global.storage_engine=Memory;
> +SET @@session.storage_engine=Memory;
> +
> +--connection master
> +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10));
> +CREATE TABLE t2 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10)) ENGINE=InnoDB;
> +
> +--sync_slave_with_master
> +CREATE TABLE t3 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10));
> +
> +--connection master
> +SHOW CREATE TABLE t1;
> +SHOW CREATE TABLE t2;
> +
> +--connection slave
> +SHOW CREATE TABLE t1;
> +SHOW CREATE TABLE t2;
> +SHOW CREATE TABLE t3;
> +
> +SET @@global.storage_engine=InnoDB;
> +SET @@session.storage_engine=InnoDB;
> +
> +--connection master
> +--disable_warnings
> +DROP TABLE IF EXISTS t1,t2,t3;
> +--enable_warnings
> +--echo
> +
> +#
> +# SQL_MODE
> +#
> +--echo * sql_mode *
> +
> +--connection master
> +SET @@global.sql_mode=ANSI;
> +SET @@session.sql_mode=ANSI;
> +
> +--connection slave
> +SET @@global.sql_mode=TRADITIONAL;
> +SET @@session.sql_mode=TRADITIONAL;
> +
> +--connection master
> +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10), c DATE);
> +INSERT INTO t1 VALUES (1, 'master', '0000-00-00');
> +SELECT * FROM t1 ORDER BY a;
> +
> +--sync_slave_with_master
> +--error 1292
> +INSERT INTO t1 VALUES (1, 'slave', '0000-00-00');
> +SELECT * FROM t1 ORDER BY a;
> +SET @@global.sql_mode='';
> +SET @@session.sql_mode='';
> +
> +--connection master
> +SET @@global.sql_mode='';
> +SET @@session.sql_mode='';
> +DROP TABLE t1;
> +--echo
> +
> +
> +# Clean up
> +--echo *** clean up ***
> +--connection master
> +--sync_slave_with_master
> +
> +# End of 5.1 test 
>
>
> -- 
> MySQL Code Commits Mailing List
> For list archives: http://lists.mysql.com/commits
> To unsubscribe:    http://lists.mysql.com/commits?unsub=1
>
Thread
bzr commit into mysql-5.1 branch (skozlov:2660) WL#3788Serge Kozlov25 Aug
  • Re: bzr commit into mysql-5.1 branch (skozlov:2660) WL#3788Andrei Elkin27 Aug
    • Re: bzr commit into mysql-5.1 branch (skozlov:2660) WL#3788Serge Kozlov27 Aug
  • Re: bzr commit into mysql-5.1 branch (skozlov:2660) WL#3788He Zhenxing28 Aug