~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
#############################################################################
2
# Original Author: JBM                                                      #
3
# Original Date: Aug/18/2005                                                #
4
# Updated 08/30/2005 Added dumps and diff                                   #
5
#############################################################################
6
#TEST: Taken and modfied from http://bugs.mysql.com/bug.php?id=12480        #
7
#############################################################################
8
9
# Includes
10
-- source include/have_binlog_format_row.inc
11
-- source include/master-slave.inc
12
13
14
# Begin clean up test section
15
connection master;
16
--disable_warnings
17
create database if not exists mysqltest1;
18
DROP TABLE IF EXISTS mysqltest1.t1;
19
--enable_warnings
20
21
22
# Begin test section 1 
23
CREATE TABLE mysqltest1.t1 (n MEDIUMINT NOT NULL AUTO_INCREMENT,
24
                      a TIMESTAMP DEFAULT '2005-05-05 01:01:01',
25
                      b TIMESTAMP DEFAULT '2005-05-05 01:01:01',
26
                      PRIMARY KEY(n));
27
delimiter |;
28
CREATE FUNCTION mysqltest1.f1() RETURNS TIMESTAMP
29
BEGIN
30
  DECLARE v1 INT DEFAULT 300;
31
  WHILE v1 > 0 DO
32
     SET v1 = v1 - 1;
33
  END WHILE;  
34
  RETURN NOW();
35
END|
36
delimiter ;|
37
38
INSERT INTO mysqltest1.t1 VALUES(NULL,NOW(),mysqltest1.f1());
39
40
delimiter |;
41
CREATE TRIGGER mysqltest1.trig1 BEFORE INSERT ON mysqltest1.t1
42
FOR EACH ROW BEGIN
43
  SET new.b = mysqltest1.f1();
44
END|
45
delimiter ;|
46
47
INSERT INTO mysqltest1.t1 SET n = NULL, a = now();
48
49
sync_slave_with_master;
50
51
connection master;
52
53
--exec $MYSQL_DUMP --compact --order-by-primary --skip-extended-insert --no-create-info mysqltest1 > $MYSQLTEST_VARDIR/tmp/NOW_master.sql
54
--exec $MYSQL_DUMP_SLAVE --compact --order-by-primary --skip-extended-insert --no-create-info mysqltest1 > $MYSQLTEST_VARDIR/tmp/NOW_slave.sql
55
56
# lets cleanup
57
DROP TABLE IF EXISTS mysqltest1.t1;
58
DROP FUNCTION mysqltest1.f1;
59
DROP DATABASE mysqltest1;
60
61
# Lets compare. Note: If they match test will pass, if they do not match
62
# the test will show that the diff statement failed and not reject file
63
# will be created. You will need to go to the mysql-test dir and diff
64
# the files your self to see what is not matching :-) The failed dump 
65
# files will be located in $MYSQLTEST_VARDIR/tmp
66
67
diff_files $MYSQLTEST_VARDIR/tmp/NOW_master.sql $MYSQLTEST_VARDIR/tmp/NOW_slave.sql;
68
69
# If all is good, when can cleanup our dump files.
70
--remove_file $MYSQLTEST_VARDIR/tmp/NOW_master.sql
71
--remove_file $MYSQLTEST_VARDIR/tmp/NOW_slave.sql
72
73
sync_slave_with_master;
74
# End of 5.1 test case