List:Commits« Previous MessageNext Message »
From:John H. Embretsen Date:November 17 2008 10:57am
Subject:bzr commit into mysql-6.0-falcon-team branch (john.embretsen:2917)
View as plain text  
#At file:///export/home/tmp/je159969/mysql/bzr-repos/build-jsandbox/

 2917 John H. Embretsen	2008-11-17
      Falcon wrappers for 'engine-independent' replication tests (first batch).
      Adding 6 new Falcon-specific wrappers to the rpl test suite:
      
        rpl_extraCol_falcon
        rpl_extraColmaster_falcon
        rpl_locktrans_falcon
        rpl_relay_space_falcon
        rpl_row_blob_falcon
        rpl_truncate_falcon
      
      Falcon wrappers are based on existing test wrappers for InnoDB and MyISAM.
      Note that Falcon does not support statement-based replicaton. This is accounted for in these test wrappers.
      Test results verified by comparing to corresponding innodb and myisam results.
added:
  mysql-test/suite/rpl/r/rpl_extraCol_falcon.result
  mysql-test/suite/rpl/r/rpl_extraColmaster_falcon.result
  mysql-test/suite/rpl/r/rpl_locktrans_falcon.result
  mysql-test/suite/rpl/r/rpl_relay_space_falcon.result
  mysql-test/suite/rpl/r/rpl_row_blob_falcon.result
  mysql-test/suite/rpl/r/rpl_truncate_falcon.result
  mysql-test/suite/rpl/t/rpl_extraCol_falcon.test
  mysql-test/suite/rpl/t/rpl_extraColmaster_falcon.test
  mysql-test/suite/rpl/t/rpl_locktrans_falcon.test
  mysql-test/suite/rpl/t/rpl_relay_space_falcon.test
  mysql-test/suite/rpl/t/rpl_row_blob_falcon.test
  mysql-test/suite/rpl/t/rpl_truncate_falcon.test

per-file messages:
  mysql-test/suite/rpl/r/rpl_extraCol_falcon.result
    Result file for new test wrapper rpl_extraCol_falcon.test.
  mysql-test/suite/rpl/r/rpl_extraColmaster_falcon.result
    Result file for new test wrapper rpl_extraColmaster_falcon.test.
  mysql-test/suite/rpl/r/rpl_locktrans_falcon.result
    Result file for new test wrapper rpl_locktrans_falcon.test.
  mysql-test/suite/rpl/r/rpl_relay_space_falcon.result
    Result file for new test wrapper rpl_relay_space_falcon.test.
  mysql-test/suite/rpl/r/rpl_row_blob_falcon.result
    Result file for new test wrapper rpl_row_blob_falcon.test.
    Note that engine type is filtered out by sourced test, so this is not shown in result file. Verified manually (by temporarily editing the wrapped test) that Falcon is used.
  mysql-test/suite/rpl/r/rpl_truncate_falcon.result
    Result file for new test wrapper rpl_truncate_falcon.test.
  mysql-test/suite/rpl/t/rpl_extraCol_falcon.test
    Falcon wrapper for the test mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test.
    Tests replication of a table with extra columns in the slave database, i.e. fewer columns in the replicated table on the master (WL 3259).
  mysql-test/suite/rpl/t/rpl_extraColmaster_falcon.test
    Falcon wrapper for the test mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test.
    Tests replication of a table with extra columns in the master database, i.e. fewer columns in the replicated table on the slave (WL 3915), which is necessary to support on-line table definition changes in circular replication.
  mysql-test/suite/rpl/t/rpl_locktrans_falcon.test
    Falcon wrapper for the test include/locktrans.inc.
    Although Falcon does not support transactional LOCK TABLE, this test is of value because it also tests that LOCK TABLE syntax, lock method conversion (tx to non-tx) and that non-transactional lock functionality works with Falcon.
  mysql-test/suite/rpl/t/rpl_relay_space_falcon.test
    Falcon wrapper for the test mysql-test/extra/rpl_tests/rpl_sv_relay.test.
  mysql-test/suite/rpl/t/rpl_row_blob_falcon.test
    Falcon wrapper for the test mysql-test/extra/rpl_tests/rpl_row_blob.test.
    This is a relatively simple test of replicating BLOBs.
    Note that engine type is filtered out by sourced test, so this is not shown in result file.
  mysql-test/suite/rpl/t/rpl_truncate_falcon.test
    Falcon wrapper for the test mysql-test/extra/rpl_truncate_helper.test.
    Tests that Falcon table truncations (TRUNCATE and DELETE FROM) are replicated properly.
    Sourced test requires that we set binlog-format in the wrapper (rpl_truncate.test is not used because it sets all binlog formats explicitly, and Falcon does not support 'stmt').
    For now only 'row' is used in this wrapper; assuming that 'mixed' works equivalently with Falcon.
=== added file 'mysql-test/suite/rpl/r/rpl_extraCol_falcon.result'
--- a/mysql-test/suite/rpl/r/rpl_extraCol_falcon.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/r/rpl_extraCol_falcon.result	2008-11-17 10:57:50 +0000
@@ -0,0 +1,969 @@
+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;
+**** Diff Table Def Start ****
+*** On Slave ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t1 (a INT, b INT PRIMARY KEY, c CHAR(20),
+d FLOAT DEFAULT '2.00', 
+e CHAR(4) DEFAULT 'TEST') 
+ENGINE='Falcon';
+*** Create t1 on Master ***
+CREATE TABLE t1 (a INT PRIMARY KEY, b INT, c CHAR(10)
+) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+INSERT INTO t1 () VALUES(1,2,'TEXAS'),(2,1,'AUSTIN'),(3,4,'QA');
+SELECT * FROM t1 ORDER BY a;
+a	b	c
+1	2	TEXAS
+2	1	AUSTIN
+3	4	QA
+*** Select from slave ***
+SELECT * FROM t1 ORDER BY a;
+a	b	c	d	e
+1	2	TEXAS	2	TEST
+2	1	AUSTIN	2	TEST
+3	4	QA	2	TEST
+*** Drop t1  ***
+DROP TABLE t1;
+*** Create t2 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t2 (a INT, b INT PRIMARY KEY, c CHAR(5),
+d FLOAT DEFAULT '2.00',
+e CHAR(5) DEFAULT 'TEST2')
+ENGINE='Falcon';
+*** Create t2 on Master ***
+CREATE TABLE t2 (a INT PRIMARY KEY, b INT, c CHAR(10)
+) ENGINE='Falcon';
+RESET MASTER;
+*** Master Data Insert ***
+INSERT INTO t2 () VALUES(1,2,'Kyle, TEX'),(2,1,'JOE AUSTIN'),(3,4,'QA TESTING');
+SELECT * FROM t2 ORDER BY a;
+a	b	c
+1	2	Kyle, TEX
+2	1	JOE AUSTIN
+3	4	QA TESTING
+*** Start Slave ***
+START SLAVE;
+SHOW SLAVE STATUS;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	No
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	#
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	1535
+Last_Error	Table definition on master and slave does not match: Column 2 size mismatch - master has size 10, test.t2 on slave has size 6. Master's column size should be <= the slave's column size.
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	1535
+Last_SQL_Error	Table definition on master and slave does not match: Column 2 size mismatch - master has size 10, test.t2 on slave has size 6. Master's column size should be <= the slave's column size.
+STOP SLAVE;
+RESET SLAVE;
+SELECT * FROM t2 ORDER BY a;
+a	b	c	d	e
+RESET MASTER;
+START SLAVE;
+*** Drop t2  ***
+DROP TABLE t2;
+*** Create t3 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t3 (a INT, b INT PRIMARY KEY, c CHAR(20),
+d FLOAT DEFAULT '2.00',
+e CHAR(5) DEFAULT 'TEST2')
+ENGINE='Falcon';
+*** Create t3 on Master ***
+CREATE TABLE t3 (a BLOB, b INT PRIMARY KEY, c CHAR(20)
+) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+set @b1 = 'b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t3 () VALUES(@b1,2,'Kyle, TEX'),(@b1,1,'JOE AUSTIN'),(@b1,4,'QA TESTING');
+********************************************
+*** Expect slave to fail with Error 1522 ***
+********************************************
+SHOW SLAVE STATUS;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	No
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	#
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	1535
+Last_Error	Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	1535
+Last_SQL_Error	Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
+SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
+START SLAVE;
+*** Drop t3  ***
+DROP TABLE t3;
+*** Create t4 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t4 (a INT, b INT PRIMARY KEY, c CHAR(20),
+d FLOAT DEFAULT '2.00',
+e CHAR(5) DEFAULT 'TEST2')
+ENGINE='Falcon';
+*** Create t4 on Master ***
+CREATE TABLE t4 (a DECIMAL(8,2), b INT PRIMARY KEY, c CHAR(20)
+) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+INSERT INTO t4 () VALUES(100.22,2,'Kyle, TEX'),(200.26,1,'JOE AUSTIN'),
+(30000.22,4,'QA TESTING');
+********************************************
+*** Expect slave to fail with Error 1522 ***
+********************************************
+SHOW SLAVE STATUS;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	No
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	#
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	1535
+Last_Error	Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	1535
+Last_SQL_Error	Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
+SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
+START SLAVE;
+*** Drop t4  ***
+DROP TABLE t4;
+*** Create t5 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t5 (a INT PRIMARY KEY, b CHAR(5),
+c FLOAT, d INT, e DOUBLE,
+f DECIMAL(8,2))ENGINE='Falcon';
+*** Create t5 on Master ***
+CREATE TABLE t5 (a INT PRIMARY KEY, b VARCHAR(6),
+c DECIMAL(8,2), d BIT, e BLOB,
+f FLOAT) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+INSERT INTO t5 () VALUES(1,'Kyle',200.23,1,'b1b1',23.00098),
+(2,'JOE',300.01,0,'b2b2',1.0000009);
+********************************************
+*** Expect slave to fail with Error 1522 ***
+********************************************
+SHOW SLAVE STATUS;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	No
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	#
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	1535
+Last_Error	Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	1535
+Last_SQL_Error	Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
+SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
+START SLAVE;
+*** Drop t5  ***
+DROP TABLE t5;
+*** Create t6 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t6 (a INT PRIMARY KEY, b CHAR(5),
+c FLOAT, d INT)ENGINE='Falcon';
+*** Create t6 on Master ***
+CREATE TABLE t6 (a INT PRIMARY KEY, b VARCHAR(6),
+c DECIMAL(8,2), d BIT 
+) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+INSERT INTO t6 () VALUES(1,'Kyle',200.23,1),
+(2,'JOE',300.01,0);
+********************************************
+*** Expect slave to fail with Error 1522 ***
+********************************************
+SHOW SLAVE STATUS;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	No
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	#
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	1535
+Last_Error	Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	1535
+Last_SQL_Error	Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
+SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3;
+*** Drop t6  ***
+DROP TABLE t6;
+DROP TABLE t6;
+START SLAVE;
+**** Diff Table Def End ****
+**** Extra Colums Start ****
+*** Create t7 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t7 (a INT KEY, b BLOB, c CHAR(5),
+d TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00',
+e CHAR(20) DEFAULT 'Extra Column Testing')
+ENGINE='Falcon';
+*** Create t7 on Master ***
+CREATE TABLE t7 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
+) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+set @b1 = 'b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t7 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
+SELECT * FROM t7 ORDER BY a;
+a	b	c
+1	b1b1	Kyle
+2	b1b1	JOE
+3	b1b1	QA
+*** Select from slave ***
+SELECT * FROM t7 ORDER BY a;
+a	b	c	d	e
+1	b1b1	Kyle	0000-00-00 00:00:00	Extra Column Testing
+2	b1b1	JOE	0000-00-00 00:00:00	Extra Column Testing
+3	b1b1	QA	0000-00-00 00:00:00	Extra Column Testing
+*** Drop t7  ***
+DROP TABLE t7;
+*** Create t8 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t8 (a INT KEY, b BLOB, c CHAR(5),
+d TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00',
+e INT)ENGINE='Falcon';
+*** Create t8 on Master ***
+CREATE TABLE t8 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
+) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t8 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
+*** Drop t8  ***
+DROP TABLE t8;
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t9 (a INT KEY, b BLOB, c CHAR(5),
+d TIMESTAMP,
+e INT NOT NULL) ENGINE='Falcon';
+*** Create t9 on Master ***
+CREATE TABLE t9 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
+) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t9 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
+SHOW SLAVE STATUS;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	No
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	#
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	1364
+Last_Error	Could not execute Write_rows event on table test.t9; Field 'e' doesn't have a default value, Error_code: 1364; handler error HA_ERR_ROWS_EVENT_APPLY; the event's master log master-bin.000001, end_log_pos 331
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	1364
+Last_SQL_Error	Could not execute Write_rows event on table test.t9; Field 'e' doesn't have a default value, Error_code: 1364; handler error HA_ERR_ROWS_EVENT_APPLY; the event's master log master-bin.000001, end_log_pos 331
+SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
+START SLAVE;
+*** Create t10 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t10 (a INT KEY, b BLOB, f DOUBLE DEFAULT '233', 
+c CHAR(5), e INT DEFAULT '1')ENGINE='Falcon';
+*** Create t10 on Master ***
+CREATE TABLE t10 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
+) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t10 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
+********************************************
+*** Expect slave to fail with Error 1522 ***
+********************************************
+SHOW SLAVE STATUS;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	No
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	#
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	1535
+Last_Error	Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	1535
+Last_SQL_Error	Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
+SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
+START SLAVE;
+*** Drop t10  ***
+DROP TABLE t10;
+*** Create t11 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t11 (a INT KEY, b BLOB, f TEXT,
+c CHAR(5) DEFAULT 'test', e INT DEFAULT '1')ENGINE='Falcon';
+*** Create t11 on Master ***
+CREATE TABLE t11 (a INT PRIMARY KEY, b BLOB, c VARCHAR(254)
+) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t11 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
+********************************************
+*** Expect slave to fail with Error 1522 ***
+********************************************
+SHOW SLAVE STATUS;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	No
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	#
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	1535
+Last_Error	Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	1535
+Last_SQL_Error	Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
+SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
+START SLAVE;
+*** Drop t11  ***
+DROP TABLE t11;
+*** Create t12 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t12 (a INT KEY, b BLOB, f TEXT,
+c CHAR(5) DEFAULT 'test', e INT DEFAULT '1')ENGINE='Falcon';
+*** Create t12 on Master ***
+CREATE TABLE t12 (a INT PRIMARY KEY, b BLOB, c BLOB
+) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t12 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
+SELECT * FROM t12 ORDER BY a;
+a	b	c
+1	b1b1b1b1b1b1b1b1	Kyle
+2	b1b1b1b1b1b1b1b1	JOE
+3	b1b1b1b1b1b1b1b1	QA
+*** Select on Slave ***
+SELECT * FROM t12 ORDER BY a;
+a	b	f	c	e
+1	b1b1b1b1b1b1b1b1	Kyle	test	1
+2	b1b1b1b1b1b1b1b1	JOE	test	1
+3	b1b1b1b1b1b1b1b1	QA	test	1
+*** Drop t12  ***
+DROP TABLE t12;
+**** Extra Colums End ****
+*** BUG 22177 Start ***
+*** Create t13 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t13 (a INT KEY, b BLOB, c CHAR(5),
+d INT DEFAULT '1',
+e TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
+)ENGINE='Falcon';
+*** Create t13 on Master ***
+CREATE TABLE t13 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
+) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t13 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
+SELECT * FROM t13 ORDER BY a;
+a	b	c
+1	b1b1b1b1b1b1b1b1	Kyle
+2	b1b1b1b1b1b1b1b1	JOE
+3	b1b1b1b1b1b1b1b1	QA
+*** Select on Slave ****
+SELECT * FROM t13 ORDER BY a;
+a	b	c	d	e
+1	b1b1b1b1b1b1b1b1	Kyle	1	CURRENT_TIMESTAMP
+2	b1b1b1b1b1b1b1b1	JOE	1	CURRENT_TIMESTAMP
+3	b1b1b1b1b1b1b1b1	QA	1	CURRENT_TIMESTAMP
+*** Drop t13  ***
+DROP TABLE t13;
+*** 22117 END *** 
+*** Alter Master Table Testing Start ***
+*** Create t14 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t14 (c1 INT KEY, c4 BLOB, c5 CHAR(5),
+c6 INT DEFAULT '1',
+c7 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
+)ENGINE='Falcon';
+*** Create t14 on Master ***
+CREATE TABLE t14 (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
+) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+ALTER TABLE t14 ADD COLUMN c2 DECIMAL(8,2) AFTER c1;
+ALTER TABLE t14 ADD COLUMN c3 TEXT AFTER c2;
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t14 () VALUES(1,1.00,'Replication Testing Extra Col',@b1,'Kyle'),
+(2,2.00,'This Test Should work',@b1,'JOE'),
+(3,3.00,'If is does not, I will open a bug',@b1,'QA');
+SELECT * FROM t14 ORDER BY c1;
+c1	c2	c3	c4	c5
+1	1.00	Replication Testing Extra Col	b1b1b1b1b1b1b1b1	Kyle
+2	2.00	This Test Should work	b1b1b1b1b1b1b1b1	JOE
+3	3.00	If is does not, I will open a bug	b1b1b1b1b1b1b1b1	QA
+*** Select on Slave ****
+SELECT * FROM t14 ORDER BY c1;
+c1	c2	c3	c4	c5	c6	c7
+1	1.00	Replication Testing Extra Col	b1b1b1b1b1b1b1b1	Kyle	1	CURRENT_TIMESTAMP
+2	2.00	This Test Should work	b1b1b1b1b1b1b1b1	JOE	1	CURRENT_TIMESTAMP
+3	3.00	If is does not, I will open a bug	b1b1b1b1b1b1b1b1	QA	1	CURRENT_TIMESTAMP
+*** Create t14a on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t14a (c1 INT KEY, c4 BLOB, c5 CHAR(5),
+c6 INT DEFAULT '1',
+c7 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
+)ENGINE='Falcon';
+*** Create t14a on Master ***
+CREATE TABLE t14a (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
+) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t14a () VALUES(1,@b1,'Kyle'),
+(2,@b1,'JOE'),
+(3,@b1,'QA');
+SELECT * FROM t14a ORDER BY c1;
+c1	c4	c5
+1	b1b1b1b1b1b1b1b1	Kyle
+2	b1b1b1b1b1b1b1b1	JOE
+3	b1b1b1b1b1b1b1b1	QA
+*** Select on Slave ****
+SELECT * FROM t14a ORDER BY c1;
+c1	c4	c5	c6	c7
+1	b1b1b1b1b1b1b1b1	Kyle	1	CURRENT_TIMESTAMP
+2	b1b1b1b1b1b1b1b1	JOE	1	CURRENT_TIMESTAMP
+3	b1b1b1b1b1b1b1b1	QA	1	CURRENT_TIMESTAMP
+STOP SLAVE;
+RESET SLAVE;
+*** Master Drop c5 ***
+ALTER TABLE t14a DROP COLUMN c5;
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t14a () VALUES(4,@b1),
+(5,@b1),
+(6,@b1);
+SELECT * FROM t14a ORDER BY c1;
+c1	c4
+1	b1b1b1b1b1b1b1b1
+2	b1b1b1b1b1b1b1b1
+3	b1b1b1b1b1b1b1b1
+4	b1b1b1b1b1b1b1b1
+5	b1b1b1b1b1b1b1b1
+6	b1b1b1b1b1b1b1b1
+*** Select on Slave ****
+SELECT * FROM t14a ORDER BY c1;
+c1	c4	c5	c6	c7
+1	b1b1b1b1b1b1b1b1	Kyle	1	CURRENT_TIMESTAMP
+2	b1b1b1b1b1b1b1b1	JOE	1	CURRENT_TIMESTAMP
+3	b1b1b1b1b1b1b1b1	QA	1	CURRENT_TIMESTAMP
+4	b1b1b1b1b1b1b1b1	NULL	1	CURRENT_TIMESTAMP
+5	b1b1b1b1b1b1b1b1	NULL	1	CURRENT_TIMESTAMP
+6	b1b1b1b1b1b1b1b1	NULL	1	CURRENT_TIMESTAMP
+*** connect to master and drop columns ***
+ALTER TABLE t14 DROP COLUMN c2;
+ALTER TABLE t14 DROP COLUMN c4;
+*** Select from Master ***
+SELECT * FROM t14 ORDER BY c1;
+c1	c3	c5
+1	Replication Testing Extra Col	Kyle
+2	This Test Should work	JOE
+3	If is does not, I will open a bug	QA
+*** Select from Slave ***
+SELECT * FROM t14 ORDER BY c1;
+c1	c3	c5	c6	c7
+1	Replication Testing Extra Col	Kyle	1	CURRENT_TIMESTAMP
+2	This Test Should work	JOE	1	CURRENT_TIMESTAMP
+3	If is does not, I will open a bug	QA	1	CURRENT_TIMESTAMP
+*** Drop t14  ***
+DROP TABLE t14;
+*** Create t15 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t15 (c1 INT KEY, c2 DECIMAL(8,2), c3 TEXT,
+c4 BLOB, c5 CHAR(5),
+c6 INT DEFAULT '1',
+c7 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
+)ENGINE='Falcon';
+*** Create t15 on Master ***
+CREATE TABLE t15 (c1 INT PRIMARY KEY, c2 DECIMAL(8,2), c3 TEXT,
+c4 BLOB, c5 CHAR(5)) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t15 () VALUES(1,1.00,'Replication Testing Extra Col',@b1,'Kyle'),
+(2,2.00,'This Test Should work',@b1,'JOE'),
+(3,3.00,'If is does not, I will open a bug',@b1,'QA');
+SELECT * FROM t15 ORDER BY c1;
+c1	c2	c3	c4	c5
+1	1.00	Replication Testing Extra Col	b1b1b1b1b1b1b1b1	Kyle
+2	2.00	This Test Should work	b1b1b1b1b1b1b1b1	JOE
+3	3.00	If is does not, I will open a bug	b1b1b1b1b1b1b1b1	QA
+*** Select on Slave ****
+SELECT * FROM t15 ORDER BY c1;
+c1	c2	c3	c4	c5	c6	c7
+1	1.00	Replication Testing Extra Col	b1b1b1b1b1b1b1b1	Kyle	1	CURRENT_TIMESTAMP
+2	2.00	This Test Should work	b1b1b1b1b1b1b1b1	JOE	1	CURRENT_TIMESTAMP
+3	3.00	If is does not, I will open a bug	b1b1b1b1b1b1b1b1	QA	1	CURRENT_TIMESTAMP
+*** Add column on master that is a Extra on Slave ***
+ALTER TABLE t15 ADD COLUMN c6 INT AFTER c5;
+********************************************
+*** Expect slave to fail with Error 1060 ***
+********************************************
+SHOW SLAVE STATUS;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	No
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	#
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	1060
+Last_Error	Error 'Duplicate column name 'c6'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c6 INT AFTER c5'
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	1060
+Last_SQL_Error	Error 'Duplicate column name 'c6'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c6 INT AFTER c5'
+SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
+START SLAVE;
+*** Try to insert in master ****
+INSERT INTO t15 () VALUES(5,2.00,'Replication Testing',@b1,'Buda',2);
+SELECT * FROM t15 ORDER BY c1;
+c1	c2	c3	c4	c5	c6
+1	1.00	Replication Testing Extra Col	b1b1b1b1b1b1b1b1	Kyle	NULL
+2	2.00	This Test Should work	b1b1b1b1b1b1b1b1	JOE	NULL
+3	3.00	If is does not, I will open a bug	b1b1b1b1b1b1b1b1	QA	NULL
+5	2.00	Replication Testing	b1b1b1b1b1b1b1b1	Buda	2
+*** Try to select from slave ****
+SELECT * FROM t15 ORDER BY c1;
+c1	c2	c3	c4	c5	c6	c7
+1	1.00	Replication Testing Extra Col	b1b1b1b1b1b1b1b1	Kyle	1	CURRENT_TIMESTAMP
+2	2.00	This Test Should work	b1b1b1b1b1b1b1b1	JOE	1	CURRENT_TIMESTAMP
+3	3.00	If is does not, I will open a bug	b1b1b1b1b1b1b1b1	QA	1	CURRENT_TIMESTAMP
+5	2.00	Replication Testing	b1b1b1b1b1b1b1b1	Buda	2	CURRENT_TIMESTAMP
+*** DROP TABLE t15 ***
+DROP TABLE t15;
+*** Create t16 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t16 (c1 INT KEY, c2 DECIMAL(8,2), c3 TEXT,
+c4 BLOB, c5 CHAR(5),
+c6 INT DEFAULT '1',
+c7 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
+)ENGINE='Falcon';
+*** Create t16 on Master ***
+CREATE TABLE t16 (c1 INT PRIMARY KEY, c2 DECIMAL(8,2), c3 TEXT,
+c4 BLOB, c5 CHAR(5))ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t16 () VALUES(1,1.00,'Replication Testing Extra Col',@b1,'Kyle'),
+(2,2.00,'This Test Should work',@b1,'JOE'),
+(3,3.00,'If is does not, I will open a bug',@b1,'QA');
+SELECT * FROM t16 ORDER BY c1;
+c1	c2	c3	c4	c5
+1	1.00	Replication Testing Extra Col	b1b1b1b1b1b1b1b1	Kyle
+2	2.00	This Test Should work	b1b1b1b1b1b1b1b1	JOE
+3	3.00	If is does not, I will open a bug	b1b1b1b1b1b1b1b1	QA
+*** Select on Slave ****
+SELECT * FROM t16 ORDER BY c1;
+c1	c2	c3	c4	c5	c6	c7
+1	1.00	Replication Testing Extra Col	b1b1b1b1b1b1b1b1	Kyle	1	CURRENT_TIMESTAMP
+2	2.00	This Test Should work	b1b1b1b1b1b1b1b1	JOE	1	CURRENT_TIMESTAMP
+3	3.00	If is does not, I will open a bug	b1b1b1b1b1b1b1b1	QA	1	CURRENT_TIMESTAMP
+*** Add Partition on master ***
+ALTER TABLE t16 PARTITION BY KEY(c1) PARTITIONS 4;
+INSERT INTO t16 () VALUES(4,1.00,'Replication Rocks',@b1,'Omer');
+SHOW CREATE TABLE t16;
+Table	Create Table
+t16	CREATE TABLE `t16` (
+  `c1` int(11) NOT NULL,
+  `c2` decimal(8,2) DEFAULT NULL,
+  `c3` text,
+  `c4` blob,
+  `c5` char(5) DEFAULT NULL,
+  PRIMARY KEY (`c1`)
+) ENGINE=Falcon DEFAULT CHARSET=latin1
+/*!50100 PARTITION BY KEY (c1)
+PARTITIONS 4 */
+*** Show table on Slave ****
+SHOW CREATE TABLE t16;
+Table	Create Table
+t16	CREATE TABLE `t16` (
+  `c1` int(11) NOT NULL,
+  `c2` decimal(8,2) DEFAULT NULL,
+  `c3` text,
+  `c4` blob,
+  `c5` char(5) DEFAULT NULL,
+  `c6` int(11) DEFAULT '1',
+  `c7` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+  PRIMARY KEY (`c1`)
+) ENGINE=Falcon DEFAULT CHARSET=latin1
+/*!50100 PARTITION BY KEY (c1)
+PARTITIONS 4 */
+*** DROP TABLE t16 ***
+DROP TABLE t16;
+*** Alter Master End ***
+*** Create t17 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t17 (a SMALLINT, b INT PRIMARY KEY, c CHAR(5),
+d FLOAT DEFAULT '2.00',
+e CHAR(5) DEFAULT 'TEST2')
+ENGINE='Falcon';
+*** Create t17 on Master ***
+CREATE TABLE t17 (a BIGINT PRIMARY KEY, b INT, c CHAR(10)
+) ENGINE='Falcon';
+RESET MASTER;
+*** Start Slave ***
+START SLAVE;
+*** Master Data Insert ***
+INSERT INTO t17 () VALUES(9223372036854775807,2,'Kyle, TEX');
+********************************************
+*** Expect slave to fail with Error 1522 ***
+********************************************
+SHOW SLAVE STATUS;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	No
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	#
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	1535
+Last_Error	Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	1535
+Last_SQL_Error	Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
+SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
+START SLAVE;
+** DROP table t17 ***
+DROP TABLE t17;

=== added file 'mysql-test/suite/rpl/r/rpl_extraColmaster_falcon.result'
--- a/mysql-test/suite/rpl/r/rpl_extraColmaster_falcon.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/r/rpl_extraColmaster_falcon.result	2008-11-17 10:57:50 +0000
@@ -0,0 +1,1144 @@
+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;
+
+***********************************************************
+***********************************************************
+***************** Start of Testing ************************
+***********************************************************
+***********************************************************
+* This test format == binlog_format	ROW and engine == 'Falcon'
+***********************************************************
+***********************************************************
+
+***** Testing more columns on the Master *****
+
+CREATE TABLE t1 (f1 INT, f2 INT, f3 INT PRIMARY KEY, f4 CHAR(20),
+/* extra */
+f5 FLOAT DEFAULT '2.00', 
+f6 CHAR(4) DEFAULT 'TEST',
+f7 INT DEFAULT '0',
+f8 TEXT,
+f9 LONGBLOB,
+f10 BIT(63),
+f11 VARBINARY(64))ENGINE='Falcon';
+
+* Alter Table on Slave and drop columns f5 through f11 *
+
+alter table t1 drop f5, drop f6, drop f7, drop f8, drop f9, drop f10, drop f11;
+
+* Insert data in Master then update and delete some rows*
+
+* Select count and 20 rows from Master *
+
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+40
+
+SELECT f1,f2,f3,f4,f5,f6,f7,f8,f9,
+hex(f10),hex(f11) FROM t1 ORDER BY f3 LIMIT 20;
+f1	f2	f3	f4	f5	f6	f7	f8	f9	hex(f10)	hex(f11)
+2	2	2	second	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+3	3	3	next	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+5	5	5	second	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+6	6	6	next	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+8	8	8	second	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+9	9	9	next	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+11	11	11	second	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+12	12	12	next	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+14	14	14	second	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+15	15	15	next	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+17	17	17	second	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+18	18	18	next	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+20	20	20	second	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+21	21	21	next	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+23	23	23	second	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+24	24	24	next	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+26	26	26	second	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+27	27	27	next	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+29	29	29	second	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+30	30	30	next	2	kaks	2	got stolen from the paradise	very fat blob	1555	123456
+
+* Select count and 20 rows from Slave *
+
+SELECT COUNT(*) FROM t1;
+COUNT(*)
+40
+
+SELECT * FROM t1 ORDER BY f3 LIMIT 20;
+f1	f2	f3	f4
+2	2	2	second
+3	3	3	next
+5	5	5	second
+6	6	6	next
+8	8	8	second
+9	9	9	next
+11	11	11	second
+12	12	12	next
+14	14	14	second
+15	15	15	next
+17	17	17	second
+18	18	18	next
+20	20	20	second
+21	21	21	next
+23	23	23	second
+24	24	24	next
+26	26	26	second
+27	27	27	next
+29	29	29	second
+30	30	30	next
+
+* Show Slave Status *
+
+show slave status;;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	Yes
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	0
+Last_Error	
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	0
+Last_SQL_Error	
+
+
+***** Testing Altering table def scenario *****
+
+CREATE TABLE t2 (f1 INT, f2 INT, f3 INT PRIMARY KEY, f4 CHAR(20),
+/* extra */
+f5 DOUBLE DEFAULT '2.00', 
+f6 ENUM('a', 'b', 'c') default 'a',
+f7 DECIMAL(17,9) default '1000.00',
+f8 MEDIUMBLOB,
+f9 NUMERIC(6,4) default '2000.00',
+f10 VARCHAR(1024),
+f11 BINARY(20) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
+f12 SET('a', 'b', 'c') default 'b')
+ENGINE='Falcon';
+Warnings:
+Warning	1264	Out of range value for column 'f9' at row 1
+
+CREATE TABLE t3 (f1 INT, f2 INT, f3 INT PRIMARY KEY, f4 CHAR(20),
+/* extra */
+f5 DOUBLE DEFAULT '2.00', 
+f6 ENUM('a', 'b', 'c') default 'a',
+f8 MEDIUMBLOB,
+f10 VARCHAR(1024),
+f11 BINARY(20) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
+f12 SET('a', 'b', 'c') default 'b')
+ENGINE='Falcon';
+
+CREATE TABLE t4 (f1 INT, f2 INT, f3 INT PRIMARY KEY, f4 CHAR(20),
+/* extra */
+f5 DOUBLE DEFAULT '2.00', 
+f6 DECIMAL(17,9) default '1000.00',
+f7 MEDIUMBLOB,
+f8 NUMERIC(6,4) default '2000.00',
+f9 VARCHAR(1024),
+f10 BINARY(20) not null default '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',
+f11 CHAR(255))
+ENGINE='Falcon';
+Warnings:
+Warning	1264	Out of range value for column 'f8' at row 1
+
+CREATE TABLE t31 (f1 INT, f2 INT, f3 INT PRIMARY KEY, f4 CHAR(20),
+/* extra */
+f5  BIGINT,
+f6  BLOB,
+f7  DATE,
+f8  DATETIME,
+f9  FLOAT,
+f10 INT,
+f11 LONGBLOB,
+f12 LONGTEXT,
+f13 MEDIUMBLOB,
+f14 MEDIUMINT,
+f15 MEDIUMTEXT,
+f16 REAL,
+f17 SMALLINT,
+f18 TEXT,
+f19 TIME,
+f20 TIMESTAMP,
+f21 TINYBLOB,
+f22 TINYINT,
+f23 TINYTEXT,
+f24 YEAR,
+f25 BINARY(255),
+f26 BIT(64),
+f27 CHAR(255),
+f28 DECIMAL(30,7),
+f29 DOUBLE,
+f30 ENUM ('a','b', 'c') default 'a',
+f31 FLOAT,
+f32 NUMERIC(17,9),
+f33 SET ('a', 'b', 'c') default 'b',
+f34 VARBINARY(1025),
+f35 VARCHAR(257)       
+) ENGINE='Falcon';
+
+** Alter tables on slave and drop columns **
+
+alter table t2 drop f5, drop f6, drop f7, drop f8, drop f9, drop f10, drop f11, drop
+f12;
+alter table t3 drop f5, drop f6, drop f8, drop f10, drop f11, drop f12;
+alter table t4 drop f5, drop f6, drop f7, drop f8, drop f9, drop f10, drop f11;
+alter table t31 
+drop f5, drop f6, drop f7, drop f8, drop f9, drop f10, drop f11,
+drop f12, drop f13, drop f14, drop f15, drop f16, drop f17, drop f18,
+drop f19, drop f20, drop f21, drop f22, drop f23, drop f24, drop f25,
+drop f26, drop f27, drop f28, drop f29, drop f30, drop f31, drop f32,
+drop f33, drop f34, drop f35;
+
+** Insert Data into Master **
+INSERT into t2 set f1=1, f2=1, f3=1, f4='first', f8='f8: medium size blob', f10='f10:
+some var char';
+INSERT into t2 values (2, 2, 2, 'second',
+2.0, 'b', 2000.0002, 'f8: medium size blob', 2000, 'f10: some var char',
+'01234567', 'c'),
+(3, 3, 3, 'third',
+3.0, 'b', 3000.0003, 'f8: medium size blob', 3000, 'f10: some var char',
+'01234567', 'c');
+Warnings:
+Warning	1264	Out of range value for column 'f9' at row 1
+Warning	1264	Out of range value for column 'f9' at row 2
+INSERT into t3 set f1=1, f2=1, f3=1, f4='first', f10='f10: some var char';
+INSERT into t4 set f1=1, f2=1, f3=1, f4='first', f7='f7: medium size blob', f10='f10:
+binary data';
+INSERT into t31 set f1=1, f2=1, f3=1, f4='first';
+INSERT into t31 set f1=1, f2=1, f3=2, f4='second',
+f9=2.2,  f10='seven samurai', f28=222.222, f35='222';
+Warnings:
+Warning	1366	Incorrect integer value: 'seven samurai' for column 'f10' at row 1
+INSERT into t31 values (1, 1, 3, 'third',
+/* f5  BIGINT,  */            333333333333333333333333,
+/* f6  BLOB,  */              '3333333333333333333333',
+/* f7  DATE,  */              '2007-07-18',
+/* f8  DATETIME,  */          "2007-07-18",
+/* f9  FLOAT,  */             3.33333333,
+/* f10 INT,  */               333333333,
+/* f11 LONGBLOB,  */          '3333333333333333333',
+/* f12 LONGTEXT,  */          '3333333333333333333',
+/* f13 MEDIUMBLOB,  */        '3333333333333333333',
+/* f14 MEDIUMINT,  */         33,
+/* f15 MEDIUMTEXT,  */        3.3,
+/* f16 REAL,  */              3.3,
+/* f17 SMALLINT,  */          3,
+/* f18 TEXT,  */              '33',
+/* f19 TIME,  */              '2:59:58.999',
+/* f20 TIMESTAMP,  */         20000303000000,
+/* f21 TINYBLOB,  */          '3333',
+/* f22 TINYINT,  */           3,
+/* f23 TINYTEXT,  */          '3',
+/* f24 YEAR,  */              3000,
+/* f25 BINARY(255),  */       'three_33333',
+/* f26 BIT(64),  */           b'011', 
+/* f27 CHAR(255),  */         'three',
+/* f28 DECIMAL(30,7),  */     3.333,
+/* f29 DOUBLE,  */            3.333333333333333333333333333,
+/* f30 ENUM ('a','b','c')*/   'c',
+/* f31 FLOAT,  */             3.0,
+/* f32 NUMERIC(17,9),  */     3.3333,
+/* f33 SET ('a','b','c'),*/   'c',
+/*f34 VARBINARY(1025),*/      '3333 minus 3',
+/*f35 VARCHAR(257),*/         'three times three'
+      );
+Warnings:
+Warning	1264	Out of range value for column 'f5' at row 1
+Warning	1264	Out of range value for column 'f24' at row 1
+INSERT into t31 values (1, 1, 4, 'fourth',
+/* f5  BIGINT,  */            333333333333333333333333,
+/* f6  BLOB,  */              '3333333333333333333333',
+/* f7  DATE,  */              '2007-07-18',
+/* f8  DATETIME,  */          "2007-07-18",
+/* f9  FLOAT,  */             3.33333333,
+/* f10 INT,  */               333333333,
+/* f11 LONGBLOB,  */          '3333333333333333333',
+/* f12 LONGTEXT,  */          '3333333333333333333',
+/* f13 MEDIUMBLOB,  */        '3333333333333333333',
+/* f14 MEDIUMINT,  */         33,
+/* f15 MEDIUMTEXT,  */        3.3,
+/* f16 REAL,  */              3.3,
+/* f17 SMALLINT,  */          3,
+/* f18 TEXT,  */              '33',
+/* f19 TIME,  */              '2:59:58.999',
+/* f20 TIMESTAMP,  */         20000303000000,
+/* f21 TINYBLOB,  */          '3333',
+/* f22 TINYINT,  */           3,
+/* f23 TINYTEXT,  */          '3',
+/* f24 YEAR,  */              3000,
+/* f25 BINARY(255),  */       'three_33333',
+/* f26 BIT(64),  */           b'011',
+/* f27 CHAR(255),  */         'three',
+/* f28 DECIMAL(30,7),  */     3.333,
+/* f29 DOUBLE,  */            3.333333333333333333333333333,
+/* f30 ENUM ('a','b','c')*/   'c',
+/* f31 FLOAT,  */             3.0,
+/* f32 NUMERIC(17,9),  */     3.3333,
+/* f33 SET ('a','b','c'),*/   'c',
+/*f34 VARBINARY(1025),*/      '3333 minus 3',
+/*f35 VARCHAR(257),*/         'three times three'
+       ),
+(1, 1, 5, 'fifth',
+/* f5  BIGINT,  */            333333333333333333333333,
+/* f6  BLOB,  */              '3333333333333333333333',
+/* f7  DATE,  */              '2007-07-18',
+/* f8  DATETIME,  */          "2007-07-18",
+/* f9  FLOAT,  */             3.33333333,
+/* f10 INT,  */               333333333,
+/* f11 LONGBLOB,  */          '3333333333333333333',
+/* f12 LONGTEXT,  */          '3333333333333333333',
+/* f13 MEDIUMBLOB,  */        '3333333333333333333',
+/* f14 MEDIUMINT,  */         33,
+/* f15 MEDIUMTEXT,  */        3.3,
+/* f16 REAL,  */              3.3,
+/* f17 SMALLINT,  */          3,
+/* f18 TEXT,  */              '33',
+/* f19 TIME,  */              '2:59:58.999',
+/* f20 TIMESTAMP,  */         20000303000000,
+/* f21 TINYBLOB,  */          '3333',
+/* f22 TINYINT,  */           3,
+/* f23 TINYTEXT,  */          '3',
+/* f24 YEAR,  */              3000,
+/* f25 BINARY(255),  */       'three_33333',
+/* f26 BIT(64),  */           b'011',
+/* f27 CHAR(255),  */         'three',
+/* f28 DECIMAL(30,7),  */     3.333,
+/* f29 DOUBLE,  */            3.333333333333333333333333333,
+/* f30 ENUM ('a','b','c')*/   'c',
+/* f31 FLOAT,  */             3.0,
+/* f32 NUMERIC(17,9),  */     3.3333,
+/* f33 SET ('a','b','c'),*/   'c',
+/*f34 VARBINARY(1025),*/      '3333 minus 3',
+/*f35 VARCHAR(257),*/         'three times three'
+       ),
+(1, 1, 6, 'sixth',
+/* f5  BIGINT,  */            NULL,
+/* f6  BLOB,  */              '3333333333333333333333',
+/* f7  DATE,  */              '2007-07-18',
+/* f8  DATETIME,  */          "2007-07-18",
+/* f9  FLOAT,  */             3.33333333,
+/* f10 INT,  */               333333333,
+/* f11 LONGBLOB,  */          '3333333333333333333',
+/* f12 LONGTEXT,  */          '3333333333333333333',
+/* f13 MEDIUMBLOB,  */        '3333333333333333333',
+/* f14 MEDIUMINT,  */         33,
+/* f15 MEDIUMTEXT,  */        3.3,
+/* f16 REAL,  */              3.3,
+/* f17 SMALLINT,  */          3,
+/* f18 TEXT,  */              '33',
+/* f19 TIME,  */              '2:59:58.999',
+/* f20 TIMESTAMP,  */         20000303000000,
+/* f21 TINYBLOB,  */          '3333',
+/* f22 TINYINT,  */           3,
+/* f23 TINYTEXT,  */          '3',
+/* f24 YEAR,  */              3000,
+/* f25 BINARY(255),  */       'three_33333',
+/* f26 BIT(64),  */           b'011',
+/* f27 CHAR(255),  */         'three',
+/* f28 DECIMAL(30,7),  */     3.333,
+/* f29 DOUBLE,  */            3.333333333333333333333333333,
+/* f30 ENUM ('a','b','c')*/   'c',
+/* f31 FLOAT,  */             3.0,
+/* f32 NUMERIC(17,9),  */     3.3333,
+/* f33 SET ('a','b','c'),*/   'c',
+/*f34 VARBINARY(1025),*/      '3333 minus 3',
+/*f35 VARCHAR(257),*/         NULL
+);
+Warnings:
+Warning	1264	Out of range value for column 'f5' at row 1
+Warning	1264	Out of range value for column 'f24' at row 1
+Warning	1264	Out of range value for column 'f5' at row 2
+Warning	1264	Out of range value for column 'f24' at row 2
+Warning	1264	Out of range value for column 'f24' at row 3
+
+** Sync slave with master ** 
+** Do selects from tables **
+
+select * from t1 order by f3;
+f1	f2	f3	f4
+2	2	2	second
+3	3	3	next
+5	5	5	second
+6	6	6	next
+8	8	8	second
+9	9	9	next
+11	11	11	second
+12	12	12	next
+14	14	14	second
+15	15	15	next
+17	17	17	second
+18	18	18	next
+20	20	20	second
+21	21	21	next
+23	23	23	second
+24	24	24	next
+26	26	26	second
+27	27	27	next
+29	29	29	second
+30	30	30	next
+31	31	31	second
+32	32	32	second
+33	33	33	second
+34	34	34	second
+35	35	35	second
+36	36	36	second
+37	37	37	second
+38	38	38	second
+39	39	39	second
+40	40	40	second
+41	41	41	second
+42	42	42	second
+43	43	43	second
+44	44	44	second
+45	45	45	second
+46	46	46	second
+47	47	47	second
+48	48	48	second
+49	49	49	second
+50	50	50	second
+select * from t2 order by f1;
+f1	f2	f3	f4
+1	1	1	first
+2	2	2	second
+3	3	3	third
+select * from t3 order by f1;
+f1	f2	f3	f4
+1	1	1	first
+select * from t4 order by f1;
+f1	f2	f3	f4
+1	1	1	first
+select * from t31 order by f3;
+f1	f2	f3	f4
+1	1	1	first
+1	1	2	second
+1	1	3	third
+1	1	4	fourth
+1	1	5	fifth
+1	1	6	sixth
+
+** Do updates master **
+
+update t31 set f5=555555555555555 where f3=6;
+update t31 set f2=2 where f3=2;
+update t31 set f1=NULL where f3=1;
+update t31 set f3=0, f27=NULL, f35='f35 new value' where f3=3;
+
+** Delete from Master **
+
+delete from t1;
+delete from t2;
+delete from t3;
+delete from t4;
+delete from t31;
+
+** Check slave status **
+
+select * from t31;
+f1	f2	f3	f4
+show slave status;;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	Yes
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	0
+Last_Error	
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	0
+Last_SQL_Error	
+
+****************************************
+* columns in master at middle of table *
+* Expect: Proper error message         *
+****************************************
+
+** Stop and Reset Slave **
+
+STOP SLAVE;
+RESET SLAVE;
+
+** create table slave side **
+CREATE TABLE t10 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
+) ENGINE='Falcon';
+
+** Connect to master and create table **
+
+CREATE TABLE t10 (a INT KEY, b BLOB, f DOUBLE DEFAULT '233',
+c CHAR(5), e INT DEFAULT '1')ENGINE='Falcon';
+RESET MASTER;
+
+*** Start Slave ***
+START SLAVE;
+
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t10 () VALUES(1,@b1,DEFAULT,'Kyle',DEFAULT),
+(2,@b1,DEFAULT,'JOE',DEFAULT),
+(3,@b1,DEFAULT,'QA',DEFAULT);
+
+********************************************
+*** Expect slave to fail with Error 1523 ***
+********************************************
+
+SHOW SLAVE STATUS;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	No
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	1535
+Last_Error	Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	1535
+Last_SQL_Error	Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254
+SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
+START SLAVE;
+
+*** Drop t10  ***
+DROP TABLE t10;
+
+*********************************************
+* More columns in master at middle of table *
+* Expect: Proper error message              *
+*********************************************
+
+*** Create t11 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t11 (a INT PRIMARY KEY, b BLOB, c VARCHAR(254)
+) ENGINE='Falcon';
+
+*** Create t11 on Master ***
+CREATE TABLE t11 (a INT KEY, b BLOB, f TEXT,
+c CHAR(5) DEFAULT 'test', e INT DEFAULT '1')ENGINE='Falcon';
+RESET MASTER;
+
+*** Start Slave ***
+START SLAVE;
+
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t11 () VALUES(1,@b1,'Testing is fun','Kyle',DEFAULT),
+(2,@b1,'Testing is cool','JOE',DEFAULT),
+(3,@b1,DEFAULT,'QA',DEFAULT);
+
+********************************************
+*** Expect slave to fail with Error 1523 ***
+********************************************
+
+SHOW SLAVE STATUS;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	No
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	1535
+Last_Error	Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	1535
+Last_SQL_Error	Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15
+SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
+START SLAVE;
+
+*** Drop t11  ***
+DROP TABLE t11;
+
+*********************************************
+* More columns in master at middle of table *
+* Expect: This one should pass blob-text    *
+*********************************************
+
+*** Create t12 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t12 (a INT PRIMARY KEY, b BLOB, c BLOB
+) ENGINE='Falcon';
+
+*** Create t12 on Master ***
+CREATE TABLE t12 (a INT KEY, b BLOB, f TEXT,
+c CHAR(5) DEFAULT 'test', e INT DEFAULT '1')ENGINE='Falcon';
+RESET MASTER;
+
+*** Start Slave ***
+START SLAVE;
+
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t12 () VALUES(1,@b1,'Kyle',DEFAULT,DEFAULT),
+(2,@b1,'JOE',DEFAULT,DEFAULT),
+(3,@b1,'QA',DEFAULT,DEFAULT);
+
+SELECT a,hex(b),f,c,e FROM t12 ORDER BY a;
+a	hex(b)	f	c	e
+1	62316231623162316231623162316231	Kyle	test	1
+2	62316231623162316231623162316231	JOE	test	1
+3	62316231623162316231623162316231	QA	test	1
+
+*** Select on Slave ***
+SELECT a,hex(b),c FROM t12 ORDER BY a;
+a	hex(b)	c
+1	62316231623162316231623162316231	Kyle
+2	62316231623162316231623162316231	JOE
+3	62316231623162316231623162316231	QA
+
+*** Drop t12  ***
+DROP TABLE t12;
+
+****************************************************
+* - Alter Master adding columns at middle of table *
+*   Expect: columns added                          *
+****************************************************
+
+
+*** Create t14 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t14 (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
+) ENGINE='Falcon';
+
+*** Create t14 on Master ***
+CREATE TABLE t14 (c1 INT KEY, c4 BLOB, c5 CHAR(5),
+c6 INT DEFAULT '1',
+c7 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
+)ENGINE='Falcon';
+RESET MASTER;
+
+*** Start Slave ***
+START SLAVE;
+
+*** Master Data Insert ***
+ALTER TABLE t14 ADD COLUMN c2 DECIMAL(8,2) AFTER c1;
+ALTER TABLE t14 ADD COLUMN c3 TEXT AFTER c2;
+
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t14 () VALUES(1,1.00,'Replication Testing Extra Col',@b1,'Kyle',DEFAULT,DEFAULT),
+(2,2.00,'This Test Should work',@b1,'JOE',DEFAULT,DEFAULT),
+(3,3.00,'If is does not, I will open a bug',@b1,'QA',DEFAULT,DEFAULT);
+
+SELECT c1,c2,c3,hex(c4),c5,c6,c7 FROM t14 ORDER BY c1;
+c1	c2	c3	hex(c4)	c5	c6	c7
+1	1.00	Replication Testing Extra Col	62316231623162316231623162316231	Kyle	1	CURRENT_TIMESTAMP
+2	2.00	This Test Should work	62316231623162316231623162316231	JOE	1	CURRENT_TIMESTAMP
+3	3.00	If is does not, I will open a bug	62316231623162316231623162316231	QA	1	CURRENT_TIMESTAMP
+
+*** Select on Slave ****
+SELECT c1,c2,c3,hex(c4),c5 FROM t14 ORDER BY c1;
+c1	c2	c3	hex(c4)	c5
+1	1.00	Replication Testing Extra Col	62316231623162316231623162316231	Kyle
+2	2.00	This Test Should work	62316231623162316231623162316231	JOE
+3	3.00	If is does not, I will open a bug	62316231623162316231623162316231	QA
+
+****************************************************
+* - Alter Master Dropping columns from the middle. *
+*   Expect: columns dropped                        *
+****************************************************
+
+*** connect to master and drop columns ***
+ALTER TABLE t14 DROP COLUMN c2;
+ALTER TABLE t14 DROP COLUMN c7;
+
+*** Select from Master ***
+SELECT c1,c3,hex(c4),c5,c6 FROM t14 ORDER BY c1;
+c1	c3	hex(c4)	c5	c6
+1	Replication Testing Extra Col	62316231623162316231623162316231	Kyle	1
+2	This Test Should work	62316231623162316231623162316231	JOE	1
+3	If is does not, I will open a bug	62316231623162316231623162316231	QA	1
+
+************
+* Bug30415 *
+************
+SHOW SLAVE STATUS;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	No
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	1091
+Last_Error	Error 'Can't DROP 'c7'; check that column/key exists' on query. Default database: 'test'. Query: 'ALTER TABLE t14 DROP COLUMN c7'
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	1091
+Last_SQL_Error	Error 'Can't DROP 'c7'; check that column/key exists' on query. Default database: 'test'. Query: 'ALTER TABLE t14 DROP COLUMN c7'
+STOP SLAVE;
+RESET SLAVE;
+
+*** Drop t14  ***
+DROP TABLE t14;
+DROP TABLE t14;
+RESET MASTER;
+START SLAVE;
+
+*************************************************
+* - Alter Master adding columns at end of table *
+*   Expect: Error 1054                          *
+*************************************************
+
+*** Create t15 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t15 (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
+) ENGINE='Falcon';
+
+*** Create t15 on Master ***
+CREATE TABLE t15 (c1 INT KEY, c4 BLOB, c5 CHAR(5),
+c6 INT DEFAULT '1',
+c7 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
+)ENGINE='Falcon';
+RESET MASTER;
+
+*** Start Slave ***
+START SLAVE;
+
+*** Master Data Insert ***
+ALTER TABLE t15 ADD COLUMN c2 DECIMAL(8,2) AFTER c7;
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t15 () VALUES(1,@b1,'Kyle',DEFAULT,DEFAULT,3.00),
+(2,@b1,'JOE',DEFAULT,DEFAULT,3.00),
+(3,@b1,'QA',DEFAULT,DEFAULT,3.00);
+SELECT c1,hex(c4),c5,c6,c7,c2 FROM t15 ORDER BY c1;
+c1	hex(c4)	c5	c6	c7	c2
+1	62316231623162316231623162316231	Kyle	1	CURRENT_TIMESTAMP	3.00
+2	62316231623162316231623162316231	JOE	1	CURRENT_TIMESTAMP	3.00
+3	62316231623162316231623162316231	QA	1	CURRENT_TIMESTAMP	3.00
+
+********************************************
+*** Expect slave to fail with Error 1054 ***
+********************************************
+
+SHOW SLAVE STATUS;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	No
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	1054
+Last_Error	Error 'Unknown column 'c7' in 't15'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c2 DECIMAL(8,2) AFTER c7'
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	1054
+Last_SQL_Error	Error 'Unknown column 'c7' in 't15'' on query. Default database: 'test'. Query: 'ALTER TABLE t15 ADD COLUMN c2 DECIMAL(8,2) AFTER c7'
+STOP SLAVE;
+RESET SLAVE;
+
+*** Drop t15  ***
+DROP TABLE t15;
+DROP TABLE t15;
+RESET MASTER;
+START SLAVE;
+
+************************************************
+* - Create index on Master column not on slave *
+*   Expect:Warning                             *
+************************************************
+
+*** Create t16 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t16 (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
+) ENGINE='Falcon';
+
+*** Create t16 on Master ***
+CREATE TABLE t16 (c1 INT KEY, c4 BLOB, c5 CHAR(5),
+c6 INT DEFAULT '1',
+c7 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
+)ENGINE='Falcon';
+RESET MASTER;
+
+*** Start Slave ***
+START SLAVE;
+
+*** Master Create Index and Data Insert ***
+CREATE INDEX part_of_c6 ON t16 (c6);
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t16 () VALUES(1,@b1,'Kyle',DEFAULT,DEFAULT),
+(2,@b1,'JOE',2,DEFAULT),
+(3,@b1,'QA',3,DEFAULT);
+SELECT c1,hex(c4),c5,c6,c7 FROM t16 ORDER BY c1;
+c1	hex(c4)	c5	c6	c7
+1	62316231623162316231623162316231	Kyle	1	CURRENT_TIMESTAMP
+2	62316231623162316231623162316231	JOE	2	CURRENT_TIMESTAMP
+3	62316231623162316231623162316231	QA	3	CURRENT_TIMESTAMP
+
+*****************
+*** BUG 30434 ***
+*****************
+
+SHOW SLAVE STATUS;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	#
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	No
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	1072
+Last_Error	Error 'Key column 'c6' doesn't exist in table' on query. Default database: 'test'. Query: 'CREATE INDEX part_of_c6 ON t16 (c6)'
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	#
+Last_IO_Error	#
+Last_SQL_Errno	1072
+Last_SQL_Error	Error 'Key column 'c6' doesn't exist in table' on query. Default database: 'test'. Query: 'CREATE INDEX part_of_c6 ON t16 (c6)'
+STOP SLAVE;
+RESET SLAVE;
+
+*** Drop t16  ***
+DROP TABLE t16;
+DROP TABLE t16;
+RESET MASTER;
+START SLAVE;
+
+*****************************************************
+* - Delete rows using column on Master not on slave *
+*   Expect: Rows Deleted                            *
+*****************************************************
+
+*** Create t17 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t17 (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
+) ENGINE='Falcon';
+
+*** Create t17 on Master ***
+CREATE TABLE t17 (c1 INT KEY, c4 BLOB, c5 CHAR(5),
+c6 INT DEFAULT '1',
+c7 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
+)ENGINE='Falcon';
+RESET MASTER;
+
+*** Start Slave ***
+START SLAVE;
+
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t17 () VALUES(1,@b1,'Kyle',DEFAULT,DEFAULT),
+(2,@b1,'JOE',2,DEFAULT),
+(3,@b1,'QA',3,DEFAULT);
+SELECT c1,hex(c4),c5,c6,c7 FROM t17 ORDER BY c1;
+c1	hex(c4)	c5	c6	c7
+1	62316231623162316231623162316231	Kyle	1	CURRENT_TIMESTAMP
+2	62316231623162316231623162316231	JOE	2	CURRENT_TIMESTAMP
+3	62316231623162316231623162316231	QA	3	CURRENT_TIMESTAMP
+
+** Select * from Slave **
+SELECT c1,hex(c4),c5 FROM t17 ORDER BY c1;
+c1	hex(c4)	c5
+1	62316231623162316231623162316231	Kyle
+2	62316231623162316231623162316231	JOE
+3	62316231623162316231623162316231	QA
+
+** Delete from master **
+DELETE FROM t17 WHERE c6 = 3;
+SELECT c1,hex(c4),c5,c6,c7 FROM t17 ORDER BY c1;
+c1	hex(c4)	c5	c6	c7
+1	62316231623162316231623162316231	Kyle	1	CURRENT_TIMESTAMP
+2	62316231623162316231623162316231	JOE	2	CURRENT_TIMESTAMP
+
+** Check slave **
+SELECT c1,hex(c4),c5 FROM t17 ORDER BY c1;
+c1	hex(c4)	c5
+1	62316231623162316231623162316231	Kyle
+2	62316231623162316231623162316231	JOE
+DROP TABLE t17;
+
+
+*****************************************************
+* - Update row using column on Master not on slave *
+*   Expect: Rows updated                           *
+*****************************************************
+
+** Bug30674 **
+
+*** Create t18 on slave  ***
+
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t18 (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
+) ENGINE='Falcon';
+
+*** Create t18 on Master ***
+CREATE TABLE t18 (c1 INT KEY, c4 BLOB, c5 CHAR(5),
+c6 INT DEFAULT '1',
+c7 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
+)ENGINE='Falcon';
+RESET MASTER;
+
+*** Start Slave ***
+START SLAVE;
+
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+set @b1 = concat(@b1,@b1);
+INSERT INTO t18 () VALUES(1,@b1,'Kyle',DEFAULT,DEFAULT),
+(2,@b1,'JOE',2,DEFAULT),
+(3,@b1,'QA',3,DEFAULT);
+SELECT c1,hex(c4),c5,c6,c7 FROM t18 ORDER BY c1;
+c1	hex(c4)	c5	c6	c7
+1	62316231623162316231623162316231	Kyle	1	CURRENT_TIMESTAMP
+2	62316231623162316231623162316231	JOE	2	CURRENT_TIMESTAMP
+3	62316231623162316231623162316231	QA	3	CURRENT_TIMESTAMP
+
+** Select * from Slave **
+SELECT c1,hex(c4),c5 FROM t18 ORDER BY c1;
+c1	hex(c4)	c5
+1	62316231623162316231623162316231	Kyle
+2	62316231623162316231623162316231	JOE
+3	62316231623162316231623162316231	QA
+
+** update from master **
+UPDATE t18 SET c5 = 'TEST' WHERE c6 = 3;
+SELECT c1,hex(c4),c5,c6,c7 FROM t18 ORDER BY c1;
+c1	hex(c4)	c5	c6	c7
+1	62316231623162316231623162316231	Kyle	1	CURRENT_TIMESTAMP
+2	62316231623162316231623162316231	JOE	2	CURRENT_TIMESTAMP
+3	62316231623162316231623162316231	TEST	3	CURRENT_TIMESTAMP
+
+** Check slave **
+SELECT c1,hex(c4),c5 FROM t18 ORDER BY c1;
+c1	hex(c4)	c5
+1	62316231623162316231623162316231	Kyle
+2	62316231623162316231623162316231	JOE
+3	62316231623162316231623162316231	TEST
+DROP TABLE t18;
+
+
+*****************************************************
+* - Insert UUID  column on Master not on slave *
+*   Expect: Rows inserted                      *
+*****************************************************
+
+*** Create t5 on slave  ***
+STOP SLAVE;
+RESET SLAVE;
+CREATE TABLE t5 (c1 INT PRIMARY KEY, c4 BLOB, c5 CHAR(5)
+) ENGINE='Falcon';
+
+*** Create t5 on Master ***
+CREATE TABLE t5 (c1 INT KEY, c4 BLOB, c5 CHAR(5),
+c6 LONG, 
+c7 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
+)ENGINE='Falcon';
+RESET MASTER;
+
+*** Start Slave ***
+START SLAVE;
+
+*** Master Data Insert ***
+set @b1 = 'b1b1b1b1';
+INSERT INTO t5 () VALUES(1,@b1,'Kyle',UUID(),DEFAULT),
+(2,@b1,'JOE',UUID(),DEFAULT),
+(3,@b1,'QA',UUID(),DEFAULT);
+SELECT c1,hex(c4),c5,c6,c7 FROM t5 ORDER BY c1;
+c1	hex(c4)	c5	c6	c7
+1	6231623162316231	Kyle	UUID	TIME
+2	6231623162316231	JOE	UUID	TIME
+3	6231623162316231	QA	UUID	TIME
+
+** Select * from Slave **
+SELECT c1,hex(c4),c5 FROM t5 ORDER BY c1;
+c1	hex(c4)	c5
+1	6231623162316231	Kyle
+2	6231623162316231	JOE
+3	6231623162316231	QA
+DROP TABLE t5;
+

=== added file 'mysql-test/suite/rpl/r/rpl_locktrans_falcon.result'
--- a/mysql-test/suite/rpl/r/rpl_locktrans_falcon.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/r/rpl_locktrans_falcon.result	2008-11-17 10:57:50 +0000
@@ -0,0 +1,439 @@
+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;
+DROP DATABASE  IF EXISTS mysqltest;
+DROP TABLE     IF EXISTS t1, t2, t3, t4, v1;
+DROP VIEW      IF EXISTS t1, t2, t3, t4, v1;
+DROP PROCEDURE IF EXISTS lock_t1_excl;
+DROP PROCEDURE IF EXISTS count_t2;
+DROP PROCEDURE IF EXISTS update_t2;
+DROP TRIGGER   IF EXISTS t1_ai;
+#
+# WL3561 - transactional LOCK TABLE - Syntax tests
+# ================================================
+CREATE TABLE t1 (c1 INT ) ENGINE=Falcon;
+CREATE TABLE t2 (c2 INT ) ENGINE=Falcon;
+CREATE TABLE t3 (c3 INT ) ENGINE=Falcon;
+#
+# Valid syntax for non-transactional locks.
+LOCK TABLE t1 READ, t2 WRITE;
+UNLOCK TABLES;
+LOCK TABLE t1 READ LOCAL, t2 LOW_PRIORITY WRITE;
+UNLOCK TABLES;
+#
+# Valid syntax for transactional locks.
+LOCK TABLE t1 IN SHARE MODE, t2 IN EXCLUSIVE MODE;
+Warnings:
+Warning	1621	Converted to non-transactional lock on 't1'
+Warning	1621	Converted to non-transactional lock on 't2'
+UNLOCK TABLES;
+#
+# Valid syntax for aliases with and without 'AS'.
+LOCK TABLE t1 AS a1 READ, t2 a2 WRITE;
+UNLOCK TABLES;
+LOCK TABLE t1 AS a1 IN SHARE MODE, t2 a2 IN EXCLUSIVE MODE;
+Warnings:
+Warning	1621	Converted to non-transactional lock on 'a1'
+Warning	1621	Converted to non-transactional lock on 'a2'
+UNLOCK TABLES;
+#
+# Transactional locks taken on a view.
+CREATE VIEW v1 AS SELECT * FROM t1, t2 WHERE t1.c1 = t2.c2;
+LOCK TABLE v1 IN SHARE MODE;
+Warnings:
+Warning	1621	Converted to non-transactional lock on 't1'
+Warning	1621	Converted to non-transactional lock on 't2'
+LOCK TABLE v1 IN EXCLUSIVE MODE;
+Warnings:
+Warning	1621	Converted to non-transactional lock on 'v1'
+UNLOCK TABLES;
+DROP VIEW v1;
+#
+# Locking INFORMATION_SCHEMA fails on missing privileges.
+LOCK TABLE information_schema.tables IN SHARE MODE;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+LOCK TABLE information_schema.tables IN EXCLUSIVE MODE;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+LOCK TABLE information_schema.tables READ;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+LOCK TABLE information_schema.tables WRITE;
+ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
+#
+# The new keywords EXCLUSIVE and NOWAIT are not reserved words.
+CREATE TABLE t4 (exclusive INT, nowait INT) ENGINE=Falcon;
+LOCK TABLE t4 WRITE;
+DROP TABLE t4;
+#
+# Syntax errors for misspelled modes or left out symbols.
+##-------------------------------------------------------
+LOCK TABLE t1 IN SHARED MODE;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SHARED MODE' at line 1
+LOCK TABLE t1 SHARE MODE;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MODE' at line 1
+LOCK TABLE t1 IN SHARE;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
+LOCK TABLE t1 IN MODE;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MODE' at line 1
+LOCK TABLE t1 READ NOWAIT, t2 WRITE NOWAIT;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOWAIT, t2 WRITE NOWAIT' at line 1
+LOCK TABLE t1 READ NOWAIT, t2 IN EXCLUSIVE MODE NOWAIT;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOWAIT, t2 IN EXCLUSIVE MODE NOWAIT' at line 1
+LOCK TABLE t1 IN SHARE MODE NOWAIT, t2 WRITE NOWAIT;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOWAIT' at line 1
+LOCK TABLE t1 IN SHARED MODE NOWAIT;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SHARED MODE NOWAIT' at line 1
+LOCK TABLE t1 SHARE MODE NOWAIT;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MODE NOWAIT' at line 1
+LOCK TABLE t1 IN SHARE NOWAIT;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOWAIT' at line 1
+LOCK TABLE t1 IN MODE NOWAIT;
+ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MODE NOWAIT' at line 1
+##----------------------
+## End of syntax errors.
+#
+#
+# WL3561 - transactional LOCK TABLE - Lock method conversion
+# ==========================================================
+#
+# Implicit lock method conversion due to mix in statement.
+LOCK TABLE t1 READ, t2 IN EXCLUSIVE MODE;
+Warnings:
+Warning	1621	Converted to non-transactional lock on 't2'
+UNLOCK TABLES;
+# Lock t1 share (converted to read), t2 write.
+LOCK TABLE t1 IN SHARE MODE, t2 WRITE;
+Warnings:
+Warning	1621	Converted to non-transactional lock on 't1'
+# Show t1 is read locked, t2 write locked.
+INSERT INTO t1 SELECT * FROM t2;
+ERROR HY000: Table 't1' was locked with a READ lock and can't be updated
+INSERT INTO t2 SELECT * FROM t1;
+#
+# Implicit lock method conversion due to existing non-transact. locks.
+# Implicitly unlock existing non-transactional locks and take new ones.
+# Lock t1 exclusive (converted to write), t2 share (converted to read).
+LOCK TABLE t1 IN EXCLUSIVE MODE, t2 IN SHARE MODE;
+Warnings:
+Warning	1621	Converted to non-transactional lock on 't1'
+Warning	1621	Converted to non-transactional lock on 't2'
+# Show t1 is write locked, t2 read locked.
+INSERT INTO t1 SELECT * FROM t2;
+INSERT INTO t2 SELECT * FROM t1;
+ERROR HY000: Table 't2' was locked with a READ lock and can't be updated
+UNLOCK TABLES;
+#
+# Reject lock method conversion in strict mode.
+# Set strict mode.
+SET @wl3561_save_sql_mode= @@SQL_MODE;
+SET @@SQL_MODE= 'STRICT_ALL_TABLES';
+# Try mixed mode locks.
+LOCK TABLE t1 READ, t2 IN EXCLUSIVE MODE;
+ERROR HY000: Cannot convert to non-transactional lock in strict mode on 't2'
+LOCK TABLE t1 IN SHARE MODE, t2 WRITE;
+ERROR HY000: Cannot convert to non-transactional lock in strict mode on 't1'
+# Lock non-transactional.
+LOCK TABLE t1 READ, t2 WRITE;
+# Try transactional locks on top of the existing non-transactional locks.
+LOCK TABLE t1 IN SHARE MODE, t2 IN EXCLUSIVE MODE;
+ERROR HY000: Cannot convert to non-transactional lock in strict mode on 't1'
+## Error is reported on first table only. Show both errors:
+SHOW WARNINGS;
+Level	Code	Message
+Error	1622	Cannot convert to non-transactional lock in strict mode on 't1'
+Error	1622	Cannot convert to non-transactional lock in strict mode on 't2'
+UNLOCK TABLES;
+SET @@SQL_MODE= @wl3561_save_sql_mode;
+#
+# Reject lock method conversion in an active transaction.
+# Start transaction.
+START TRANSACTION;
+# Try mixed mode locks.
+LOCK TABLE t1 READ, t2 IN EXCLUSIVE MODE;
+ERROR HY000: Cannot convert to non-transactional lock in an active transaction on 't2'
+LOCK TABLE t1 IN SHARE MODE, t2 WRITE;
+ERROR HY000: Cannot convert to non-transactional lock in an active transaction on 't1'
+COMMIT;
+#
+# Implicit lock method conversion for non-transactional storage engine.
+# Create a non-transactional table.
+CREATE TABLE t4 (c4 INT) ENGINE= MyISAM;
+# Request a transactional lock, which is converted to non-transactional.
+LOCK TABLE t4 IN SHARE MODE;
+Warnings:
+Warning	1621	Converted to non-transactional lock on 't4'
+# Try a conflict with the existing non-transactional lock.
+INSERT INTO t4 VALUES(444);
+ERROR HY000: Table 't4' was locked with a READ lock and can't be updated
+UNLOCK TABLES;
+# Set strict mode.
+SET @@SQL_MODE= 'STRICT_ALL_TABLES';
+# Try a transactional lock, which would need a conversion.
+LOCK TABLE t4 IN SHARE MODE;
+ERROR HY000: Cannot convert to non-transactional lock in strict mode on 't4'
+SET @@SQL_MODE= @wl3561_save_sql_mode;
+#
+# View with transactional and non-transactional storage engine.
+CREATE VIEW v1 AS SELECT * FROM t3, t4 WHERE t3.c3 = t4.c4;
+# Request a share lock on the view, which is converted to read locks.
+LOCK TABLE v1 IN SHARE MODE;
+Warnings:
+Warning	1621	Converted to non-transactional lock on 't3'
+Warning	1621	Converted to non-transactional lock on 't4'
+# Show that read locks on the base tables prohibit writing ...
+INSERT INTO t3 SELECT * FROM t4;
+ERROR HY000: Table 't3' was locked with a READ lock and can't be updated
+INSERT INTO t4 SELECT * FROM t3;
+ERROR HY000: Table 't4' was locked with a READ lock and can't be updated
+# ... but allow reading.
+SELECT COUNT(*) FROM t3, t4 WHERE t3.c3 = t4.c4;
+COUNT(*)
+0
+SELECT COUNT(*) FROM v1;
+COUNT(*)
+0
+## Report conversion on view due to existing non-transactional locks.
+LOCK TABLE v1 IN EXCLUSIVE MODE;
+Warnings:
+Warning	1621	Converted to non-transactional lock on 'v1'
+INSERT INTO t3 VALUES(333);
+INSERT INTO t4 VALUES(444);
+INSERT INTO t1 VALUES(111);
+ERROR HY000: Table 't1' was not locked with LOCK TABLES
+UNLOCK TABLES;
+## Now report conversion on base table again.
+LOCK TABLE v1 IN EXCLUSIVE MODE;
+Warnings:
+Warning	1621	Converted to non-transactional lock on 't3'
+Warning	1621	Converted to non-transactional lock on 't4'
+INSERT INTO t3 VALUES(333);
+INSERT INTO t4 VALUES(444);
+INSERT INTO t1 VALUES(111);
+ERROR HY000: Table 't1' was not locked with LOCK TABLES
+UNLOCK TABLES;
+DROP VIEW v1;
+TRUNCATE t4;
+#
+# Insufficient privileges do not unlock tables nor end transactions.
+# Prepare database, tables and an user with insufficient privileges.
+# Make a new connection with this user.
+CREATE DATABASE mysqltest;
+CREATE TABLE mysqltest.t5 (c5 INT) ENGINE=Falcon;
+CREATE TABLE mysqltest.t6 (c6 INT) ENGINE=Falcon;
+CREATE USER mysqltest_1@localhost;
+GRANT SELECT, INSERT ON mysqltest.* TO mysqltest_1@localhost;
+# connection conn1.
+# Show sufficient privileges to lock tables in the test database.
+LOCK TABLE t1 READ, t2 WRITE;
+# Show insufficient privileges in the mysqltest database.
+LOCK TABLE mysqltest.t5 READ, mysqltest.t6 WRITE;
+ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest'
+# Show that the locks in 'test' still exist.
+INSERT INTO t1 SELECT * FROM t2;
+ERROR HY000: Table 't1' was locked with a READ lock and can't be updated
+INSERT INTO t2 SELECT * FROM t1;
+# Unlock tables.
+UNLOCK TABLES;
+# Start transaction.
+START TRANSACTION;
+# Insert a value.
+INSERT INTO t1 VALUES(111);
+# Try a lock that fails on privileges.
+LOCK TABLE mysqltest.t5 READ;
+ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest'
+# Rollback transaction.
+ROLLBACK;
+# Show that the inserted value has gone.
+SELECT * FROM t1;
+c1
+# Drop the connection with the unprivileged user.
+# connection default.
+#
+# Sufficient privileges do unlock tables and end transactions.
+# Grant sufficient privileges to the user.
+# Make a new connection with this user.
+GRANT SELECT, INSERT, LOCK TABLES ON mysqltest.* TO mysqltest_1@localhost;
+# connection conn1.
+# Lock tables in the test database.
+LOCK TABLE t1 READ, t2 WRITE;
+# Lock tables in the mysqltest database.
+LOCK TABLE mysqltest.t5 READ, mysqltest.t6 WRITE;
+# Show that the locks in 'test' have been replaced ...
+INSERT INTO t1 SELECT * FROM t2;
+ERROR HY000: Table 't1' was not locked with LOCK TABLES
+INSERT INTO t2 SELECT * FROM t1;
+ERROR HY000: Table 't2' was not locked with LOCK TABLES
+# ... by the locks in 'mysqltest'.
+INSERT INTO mysqltest.t5 SELECT * FROM mysqltest.t6;
+ERROR HY000: Table 't5' was locked with a READ lock and can't be updated
+INSERT INTO mysqltest.t6 SELECT * FROM mysqltest.t5;
+# Unlock tables.
+UNLOCK TABLES;
+# Start transaction.
+START TRANSACTION;
+# Insert a value.
+INSERT INTO t1 VALUES(111);
+# Take a new lock.
+LOCK TABLE mysqltest.t5 READ;
+# Rollback transaction.
+ROLLBACK;
+UNLOCK TABLES;
+# Show that the inserted value had been committed.
+SELECT * FROM t1;
+c1
+111
+TRUNCATE t1;
+# connection default.
+UNLOCK TABLES;
+DROP USER mysqltest_1@localhost;
+DROP DATABASE mysqltest;
+DROP TABLE t1, t2, t3, t4;
+#
+# WL3594 - transactional LOCK TABLE Testing - Functional tests
+# ============================================================
+# Prepare tables and connections.
+# Set AUTOCOMMIT= 0 in each connection.
+SET AUTOCOMMIT= 0;
+CREATE TABLE t1 (c1 INT) ENGINE=Falcon;
+CREATE TABLE t2 (c2 INT) ENGINE=Falcon;
+# connection conn1.
+SET AUTOCOMMIT= 0;
+# connection conn2.
+SET AUTOCOMMIT= 0;
+# connection default.
+#
+# Normal WRITE locks go before readers (autocommit).
+# Set AUTOCOMMIT= 1.
+SET AUTOCOMMIT= 1;
+# Insert a value.
+INSERT INTO t1 VALUES(111);
+# Take a non-transactional lock.
+LOCK TABLE t1 READ;
+# connection conn1.
+# Set AUTOCOMMIT= 1.
+SET AUTOCOMMIT= 1;
+# Take a non-transactional WRITE lock,
+# which waits in background until first read lock is released.
+LOCK TABLE t1 WRITE;
+# connection default.
+# Wait for the helper thread to sit on its lock.
+# connection conn2.
+# Set AUTOCOMMIT= 1.
+SET AUTOCOMMIT= 1;
+# Take a non-transactional READ lock,
+# which waits in background until the WRITE lock is released.
+LOCK TABLE t1 READ;
+# connection default.
+# Wait for the helper threads to sit on their locks.
+# Unlock this connections non-transactional lock.
+UNLOCK TABLES;
+# connection conn1.
+# Now the WRITE lock is taken.
+# Insert a value.
+INSERT INTO t1 VALUES(1111);
+# Unlock table.
+UNLOCK TABLES;
+# connection conn2.
+# Now the READ lock is taken.
+# Select from the table.
+SELECT * FROM t1;
+c1
+111
+1111
+# Unlock table.
+UNLOCK TABLES;
+# connection default.
+TRUNCATE t1;
+#
+# LOW_PRIORITY WRITE locks wait for readers (autocommit).
+# Insert a value.
+INSERT INTO t1 VALUES(111);
+# Take a non-transactional lock.
+LOCK TABLE t1 READ;
+# connection conn1.
+# Take a non-transactional LOW_PRIORITY WRITE lock,
+# which waits in background until all read locks are released.
+LOCK TABLE t1 LOW_PRIORITY WRITE;
+# connection default.
+# Wait for the helper thread to sit on its lock.
+# connection conn2.
+# Take a non-transactional READ lock,
+# which goes before the LOW_PRIORITY WRITE lock.
+LOCK TABLE t1 READ;
+# The READ lock could be taken immediately.
+# Select from the table.
+SELECT * FROM t1;
+c1
+111
+# Unlock table.
+UNLOCK TABLES;
+SET AUTOCOMMIT= 0;
+# connection default.
+# Unlock this connections non-transactional lock.
+UNLOCK TABLES;
+# connection conn1.
+# Now the LOW_PRIORITY WRITE lock is taken.
+# Insert a value.
+INSERT INTO t1 VALUES(1111);
+# Unlock table.
+UNLOCK TABLES;
+SET AUTOCOMMIT= 0;
+# connection default.
+TRUNCATE t1;
+SET AUTOCOMMIT= 0;
+COMMIT;
+#
+# LOCK TABLE is prohibited in stored procedure.
+CREATE PROCEDURE lock_t1_excl()
+LOCK TABLE t1 IN EXCLUSIVE MODE;
+ERROR 0A000: LOCK is not allowed in stored procedures
+#
+# LOCK TABLE is prohibited in trigger.
+CREATE TRIGGER t1_ai AFTER INSERT ON t1 FOR EACH ROW
+LOCK TABLE t2 IN EXCLUSIVE MODE;
+ERROR 0A000: LOCK is not allowed in stored procedures
+## Cleanup.
+SET AUTOCOMMIT= 1;
+UNLOCK TABLES;
+DROP TABLE t1, t2;
+show slave status;;
+Slave_IO_State	#
+Master_Host	127.0.0.1
+Master_User	root
+Master_Port	MASTER_PORT
+Connect_Retry	1
+Master_Log_File	master-bin.000001
+Read_Master_Log_Pos	#
+Relay_Log_File	#
+Relay_Log_Pos	#
+Relay_Master_Log_File	master-bin.000001
+Slave_IO_Running	Yes
+Slave_SQL_Running	Yes
+Replicate_Do_DB	
+Replicate_Ignore_DB	
+Replicate_Do_Table	
+Replicate_Ignore_Table	
+Replicate_Wild_Do_Table	
+Replicate_Wild_Ignore_Table	
+Last_Errno	0
+Last_Error	
+Skip_Counter	0
+Exec_Master_Log_Pos	#
+Relay_Log_Space	#
+Until_Condition	None
+Until_Log_File	
+Until_Log_Pos	0
+Master_SSL_Allowed	No
+Master_SSL_CA_File	
+Master_SSL_CA_Path	
+Master_SSL_Cert	
+Master_SSL_Cipher	
+Master_SSL_Key	
+Seconds_Behind_Master	#
+Master_SSL_Verify_Server_Cert	No
+Last_IO_Errno	0
+Last_IO_Error	
+Last_SQL_Errno	0
+Last_SQL_Error	

=== added file 'mysql-test/suite/rpl/r/rpl_relay_space_falcon.result'
--- a/mysql-test/suite/rpl/r/rpl_relay_space_falcon.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/r/rpl_relay_space_falcon.result	2008-11-17 10:57:50 +0000
@@ -0,0 +1,25 @@
+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;
+SHOW VARIABLES LIKE 'relay_log_space_limit';
+Variable_name	Value
+relay_log_space_limit	0
+CREATE TABLE t1 (name varchar(64), age smallint(3))ENGINE=Falcon;
+INSERT INTO t1 SET name='Andy', age=31;
+INSERT INTO t1 SET name='Jacob', age=2;
+INSERT INTO t1 SET name='Caleb', age=1;
+ALTER TABLE t1 ADD id int(8) ZEROFILL AUTO_INCREMENT PRIMARY KEY;
+SELECT * FROM t1 ORDER BY id;
+name	age	id
+Andy	31	00000001
+Jacob	2	00000002
+Caleb	1	00000003
+SELECT * FROM t1 ORDER BY id;
+name	age	id
+Andy	31	00000001
+Jacob	2	00000002
+Caleb	1	00000003
+DROP TABLE t1;

=== added file 'mysql-test/suite/rpl/r/rpl_row_blob_falcon.result'
--- a/mysql-test/suite/rpl/r/rpl_row_blob_falcon.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/r/rpl_row_blob_falcon.result	2008-11-17 10:57:50 +0000
@@ -0,0 +1,156 @@
+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;
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t2;
+*****  Table Create Section ****
+
+CREATE TABLE test.t1 (c1 int not null auto_increment, 
+data LONGBLOB, PRIMARY KEY(c1))ENGINE=#;
+
+**** Data Insert Section test.t1 *****
+
+INSERT INTO test.t1 VALUES (NULL, NULL);
+INSERT INTO test.t1 VALUES (NULL, repeat('a',1*1024));
+INSERT INTO test.t1 VALUES (NULL, repeat('b',16*1024));
+
+**** Data Insert Validation Master Section test.t1 ****
+
+SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1;
+LENGTH(data)
+NULL
+SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2;
+LENGTH(data)
+1024
+SELECT LENGTH(data) FROM test.t1 WHERE c1 = 3;
+LENGTH(data)
+16384
+
+**** Data Insert Validation Slave Section test.t1 ****
+
+SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1;
+LENGTH(data)
+NULL
+SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2;
+LENGTH(data)
+1024
+SELECT LENGTH(data) FROM test.t1 WHERE c1 = 3;
+LENGTH(data)
+16384
+
+**** Data Update Section test.t1 ****
+
+UPDATE test.t1 set data=repeat('a',18*1024) where c1 = 1;
+UPDATE t1 set data=repeat('c',17*1024) where c1 = 2;
+
+**** Data Update Validation Master Section test.t1 ****
+
+SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1;
+LENGTH(data)
+18432
+SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2;
+LENGTH(data)
+17408
+
+**** Data Update Validation Slave Section test.t1 ****
+
+SELECT LENGTH(data) FROM test.t1 WHERE c1 = 1;
+LENGTH(data)
+18432
+SELECT LENGTH(data) FROM test.t1 WHERE c1 = 2;
+LENGTH(data)
+17408
+
+**** End Test Section test.t1 ****
+
+**** Create Table test.t2 ****
+
+CREATE TABLE test.t2 (
+c1 INT NOT NULL PRIMARY KEY,
+c2 TEXT,
+c3 INT,
+c4 LONGBLOB,
+KEY(c3))ENGINE=#;
+
+*** Setup Values For test.t2 ***
+set @x0 = '01234567012345670123456701234567';
+set @x0 = concat(@x0,@x0,@x0,@x0,@x0,@x0,@x0,@x0);
+set @b1 = 'b1';
+set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
+set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
+set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
+set @b1 = concat(@b1,@x0);
+set @d1 = 'dd1';
+set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
+set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
+set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
+set @b2 = 'b2';
+set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
+set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
+set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
+set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
+set @d2 = 'dd2';
+set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
+set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
+set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
+set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
+
+**** Data Insert Section test.t2 *****
+
+INSERT INTO test.t2 VALUES(1,@b1,111,@d1);
+INSERT INTO test.t2 VALUES(2,@b2,222,@d2);
+
+**** Data Insert Validation Master Section test.t2 ****
+
+SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
+FROM test.t2 WHERE c1=1;
+c1	LENGTH(c2)	SUBSTR(c2,1+2*900,2)	LENGTH(c4)	SUBSTR(c4,1+3*900,3)
+1	2256	b1	3000	dd1
+SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
+FROM test.t2 WHERE c1=2;
+c1	LENGTH(c2)	SUBSTR(c2,1+2*900,2)	LENGTH(c4)	SUBSTR(c4,1+3*900,3)
+2	20000	b2	30000	dd2
+
+**** Data Insert Validation Slave Section test.t2 ****
+
+SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
+FROM test.t2 WHERE c1=1;
+c1	LENGTH(c2)	SUBSTR(c2,1+2*900,2)	LENGTH(c4)	SUBSTR(c4,1+3*900,3)
+1	2256	b1	3000	dd1
+SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
+FROM test.t2 WHERE c1=2;
+c1	LENGTH(c2)	SUBSTR(c2,1+2*900,2)	LENGTH(c4)	SUBSTR(c4,1+3*900,3)
+2	20000	b2	30000	dd2
+
+**** Data Update Section test.t2 ****
+
+UPDATE test.t2 SET c2=@b2, c4=@d2 WHERE c1=1;
+UPDATE test.t2 SET c2=@b1, c4=@d1 WHERE c1=2;
+
+**** Data Update Validation Master Section test.t2 ****
+
+SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
+FROM test.t2 WHERE c1=1;
+c1	LENGTH(c2)	SUBSTR(c2,1+2*900,2)	LENGTH(c4)	SUBSTR(c4,1+3*900,3)
+1	20000	b2	30000	dd2
+SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
+FROM test.t2 WHERE c1=2;
+c1	LENGTH(c2)	SUBSTR(c2,1+2*900,2)	LENGTH(c4)	SUBSTR(c4,1+3*900,3)
+2	2256	b1	3000	dd1
+
+**** Data Update Validation Slave Section test.t2 ****
+
+SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
+FROM test.t2 WHERE c1=1;
+c1	LENGTH(c2)	SUBSTR(c2,1+2*900,2)	LENGTH(c4)	SUBSTR(c4,1+3*900,3)
+1	20000	b2	30000	dd2
+SELECT c1, LENGTH(c2), SUBSTR(c2,1+2*900,2), LENGTH(c4), SUBSTR(c4,1+3*900,3)
+FROM test.t2 WHERE c1=2;
+c1	LENGTH(c2)	SUBSTR(c2,1+2*900,2)	LENGTH(c4)	SUBSTR(c4,1+3*900,3)
+2	2256	b1	3000	dd1
+
+DROP TABLE IF EXISTS test.t1;
+DROP TABLE IF EXISTS test.t2;

=== added file 'mysql-test/suite/rpl/r/rpl_truncate_falcon.result'
--- a/mysql-test/suite/rpl/r/rpl_truncate_falcon.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/r/rpl_truncate_falcon.result	2008-11-17 10:57:50 +0000
@@ -0,0 +1,94 @@
+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;
+STOP SLAVE;
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t1;
+RESET SLAVE;
+START SLAVE;
+**** On Master ****
+SET SESSION BINLOG_FORMAT=ROW;
+SET GLOBAL  BINLOG_FORMAT=ROW;
+CREATE TABLE t1 (a INT, b LONG) ENGINE=Falcon;
+INSERT INTO t1 VALUES (1,1), (2,2);
+SELECT * FROM t1;
+a	b
+1	1
+2	2
+**** On Slave ****
+INSERT INTO t1 VALUE (3,3);
+SELECT * FROM t1;
+a	b
+1	1
+2	2
+3	3
+**** On Master ****
+TRUNCATE TABLE t1;
+SELECT * FROM t1;
+a	b
+**** On Slave ****
+SELECT * FROM t1;
+a	b
+**** On Master ****
+DROP TABLE t1;
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+master-bin.000001	#	Query	#	#	use `test`; DROP TABLE IF EXISTS t1
+master-bin.000001	#	Query	#	#	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=Falcon
+master-bin.000001	#	Query	#	#	use `test`; BEGIN
+master-bin.000001	#	Table_map	#	#	table_id: # (test.t1)
+master-bin.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	#	#	use `test`; COMMIT
+master-bin.000001	#	Query	#	#	use `test`; BEGIN
+master-bin.000001	#	Query	#	#	use `test`; TRUNCATE TABLE t1
+master-bin.000001	#	Query	#	#	use `test`; COMMIT
+master-bin.000001	#	Query	#	#	use `test`; DROP TABLE t1
+RESET MASTER;
+STOP SLAVE;
+DROP TABLE IF EXISTS t1;
+DROP TABLE IF EXISTS t1;
+RESET SLAVE;
+START SLAVE;
+**** On Master ****
+SET SESSION BINLOG_FORMAT=ROW;
+SET GLOBAL  BINLOG_FORMAT=ROW;
+CREATE TABLE t1 (a INT, b LONG) ENGINE=Falcon;
+INSERT INTO t1 VALUES (1,1), (2,2);
+SELECT * FROM t1;
+a	b
+1	1
+2	2
+**** On Slave ****
+INSERT INTO t1 VALUE (3,3);
+SELECT * FROM t1;
+a	b
+1	1
+2	2
+3	3
+**** On Master ****
+DELETE FROM t1;
+SELECT * FROM t1;
+a	b
+**** On Slave ****
+SELECT * FROM t1;
+a	b
+3	3
+**** On Master ****
+DROP TABLE t1;
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+master-bin.000001	#	Query	#	#	use `test`; DROP TABLE IF EXISTS t1
+master-bin.000001	#	Query	#	#	use `test`; CREATE TABLE t1 (a INT, b LONG) ENGINE=Falcon
+master-bin.000001	#	Query	#	#	use `test`; BEGIN
+master-bin.000001	#	Table_map	#	#	table_id: # (test.t1)
+master-bin.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	#	#	use `test`; COMMIT
+master-bin.000001	#	Query	#	#	use `test`; BEGIN
+master-bin.000001	#	Table_map	#	#	table_id: # (test.t1)
+master-bin.000001	#	Delete_rows	#	#	table_id: # flags: STMT_END_F
+master-bin.000001	#	Query	#	#	use `test`; COMMIT
+master-bin.000001	#	Query	#	#	use `test`; DROP TABLE t1
+RESET MASTER;

=== added file 'mysql-test/suite/rpl/t/rpl_extraCol_falcon.test'
--- a/mysql-test/suite/rpl/t/rpl_extraCol_falcon.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_extraCol_falcon.test	2008-11-17 10:57:50 +0000
@@ -0,0 +1,20 @@
+###################################################################
+# Purpose: To test having extra columns on the slave, using Falcon.
+# WL#3259.
+#
+# This is a test wrapper for the Falcon storage engine, using
+# the "engine independent" test rpl_extraSlave_Col in
+# mysql-test/extra/rpl_tests/.
+###################################################################
+--source include/master-slave.inc
+--source include/have_falcon.inc
+
+# Falcon does not support statement-based replication.
+# In 'mixed' mode only 'row' is used with Falcon.
+--source include/have_binlog_format_mixed_or_row.inc
+
+let $engine_type = 'Falcon';
+
+--source extra/rpl_tests/rpl_extraSlave_Col.test
+
+

=== added file 'mysql-test/suite/rpl/t/rpl_extraColmaster_falcon.test'
--- a/mysql-test/suite/rpl/t/rpl_extraColmaster_falcon.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_extraColmaster_falcon.test	2008-11-17 10:57:50 +0000
@@ -0,0 +1,22 @@
+################################################################
+# Purpose: To test having extra columns on the master. WL#3915.
+#
+# This is a test wrapper for the Falcon storage engine, using
+# the "engine independent" test rpl_extraMaster_Col in 
+# mysql-test/extra/rpl_tests/.
+################################################################
+--source include/master-slave.inc
+--source include/have_falcon.inc
+
+# Falcon does not support statement-based replication.
+# In 'mixed' mode only 'row' is used with Falcon.
+#
+# Test outputs binlog format, so let's not jump through result 
+# file hoops in order to run with different binlog formats, which
+# would be the same for Falcon anyway. Hence, we require 'row' 
+# for this test.
+--source include/have_binlog_format_row.inc
+
+let $engine_type = 'Falcon';
+
+--source extra/rpl_tests/rpl_extraMaster_Col.test

=== added file 'mysql-test/suite/rpl/t/rpl_locktrans_falcon.test'
--- a/mysql-test/suite/rpl/t/rpl_locktrans_falcon.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_locktrans_falcon.test	2008-11-17 10:57:50 +0000
@@ -0,0 +1,41 @@
+#####################################################################
+# Transactional LOCK TABLE tests.
+# Calls include/locktrans.inc.
+# Based on rpl_locktrans_{innodb,myisam}.
+#####################################################################
+
+# Transactional lock tests require multiple sessions.
+--source include/not_embedded.inc
+
+# This is a replication test.
+--source include/master-slave.inc
+
+# This is a falcon test.
+--source include/have_falcon.inc
+let $engine_type= Falcon;
+
+# Falcon does not support statement-based replication.
+# In 'mixed' mode only 'row' is used with Falcon.
+--source include/have_binlog_format_mixed_or_row.inc
+
+# Storage engine supports transactional locking?
+# According to 6.0 docs, only InnoDB supports transactional locking.
+# Falcon does not support it, see http://lists.mysql.com/falcon/179
+let $transactional= 0;
+
+# Storage engine supports the NOWAIT option?
+# According to 6.0 docs, no storage engine supports this...
+let $nowait_support= 0;
+
+# Define a storage engine that does not support transactional locking.
+let $other_non_trans_engine_type= MyISAM;
+
+# The real test
+--source include/locktrans.inc
+
+# Some post-processing (verifying slave status)
+sync_slave_with_master;
+connection slave;
+--replace_result $MASTER_MYPORT MASTER_PORT
+--replace_column 1 # 7 # 8 # 9 # 22 # 23 # 33 #
+--query_vertical show slave status;

=== added file 'mysql-test/suite/rpl/t/rpl_relay_space_falcon.test'
--- a/mysql-test/suite/rpl/t/rpl_relay_space_falcon.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_relay_space_falcon.test	2008-11-17 10:57:50 +0000
@@ -0,0 +1,19 @@
+########################################################################
+# Wrapper for rpl_sv_relay_space.test.
+# This test is a wrapper for the rpl_sv_relayspace test, which is able 
+# to test multiple storage engines, in this case Falcon.
+#
+# By wrapping we are saving some space and making the test more
+# maintainable by only having one test file and reusing the code.
+# One result file per wrapper is still needed, though.
+########################################################################
+
+-- source include/not_ndb_default.inc
+-- source include/have_falcon.inc
+
+# Falcon does not support statement-based replication.
+# In 'mixed' mode only 'row' is used with Falcon.
+--source include/have_binlog_format_mixed_or_row.inc
+
+let $engine_type=Falcon;
+-- source extra/rpl_tests/rpl_sv_relay_space.test

=== added file 'mysql-test/suite/rpl/t/rpl_row_blob_falcon.test'
--- a/mysql-test/suite/rpl/t/rpl_row_blob_falcon.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_row_blob_falcon.test	2008-11-17 10:57:50 +0000
@@ -0,0 +1,20 @@
+############################################################
+# Wrapper for rpl_row_blob.test
+#
+# - By johnemb 2008-11-12:
+#    Wrapped to allow reuse of test code for different 
+#    storage engines. Following pattern already used for
+#    myisam and innodb.
+############################################################
+--source include/not_ndb_default.inc
+--source include/have_falcon.inc
+--source include/have_binlog_format_row.inc
+--source include/master-slave.inc
+
+# Set engine type. All CREATE TABLE statements must specify
+# engine, or default storage engine on slave must be 
+# specified in <test>-slave.opt file.
+
+let $engine_type=Falcon;
+--source extra/rpl_tests/rpl_row_blob.test
+

=== added file 'mysql-test/suite/rpl/t/rpl_truncate_falcon.test'
--- a/mysql-test/suite/rpl/t/rpl_truncate_falcon.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/rpl/t/rpl_truncate_falcon.test	2008-11-17 10:57:50 +0000
@@ -0,0 +1,33 @@
+#####################################################################
+# Wrapper for "engine independent" test rpl_truncate_helper.test, 
+# using the Falcon storage engine.
+#
+# This wrapper omits the "middle man" rpl_truncate.test, as that test
+# file explicitly runs rpl_truncate_helper with all 3 binlog
+# formats, and Falcon does not support 'stmt'.
+#####################################################################
+
+--source include/master-slave.inc
+--source include/have_falcon.inc
+--source include/not_ndb_default.inc
+
+# Falcon does not support statement-based replication.
+# In 'mixed' mode only 'row' is used with Falcon, so
+# we don't bother testing that here.
+--source include/have_binlog_format_row.inc
+
+let $engine=Falcon;
+
+# Truncating a table can be done in two ways. Make sure to test both:
+
+# Sourced test includes setting binlog format, so specify it here.
+# Since 'mixed' => 'row' with Falcon, we only test 'row'.
+# Also set truncate method (statement) before running test.
+
+let $format=ROW;
+let $stmt = TRUNCATE TABLE;
+--source extra/rpl_tests/rpl_truncate_helper.test
+
+let $format=ROW;
+let $stmt = DELETE FROM;
+--source extra/rpl_tests/rpl_truncate_helper.test

Thread
bzr commit into mysql-6.0-falcon-team branch (john.embretsen:2917) John H. Embretsen17 Nov