List:Commits« Previous MessageNext Message »
From:gni Date:November 2 2007 11:10am
Subject:bk commit into 5.1 tree (gni:1.2663)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of gni. When gni does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2007-11-02 19:10:20+08:00, gni@stripped +19 -0
  WL#3829 Expanding testing of online alter table

  mysql-test/Makefile.am@stripped, 2007-11-02 19:10:15+08:00, gni@stripped +8 -0
    WL#3829 add install data of the new test case in Makefile.am

  mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1-0.1.Data@stripped, 2007-11-02 19:02:04+08:00, gni@stripped +402 -0
    BitKeeper file /home/ngb/mysql/mysql-5.1/online_alter_table/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1-0.1.Data

  mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1-0.1.Data@stripped, 2007-11-02 19:02:04+08:00, gni@stripped +0 -0

  mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1-0.2.Data@stripped, 2007-11-02 19:02:04+08:00, gni@stripped +413 -0
    BitKeeper file /home/ngb/mysql/mysql-5.1/online_alter_table/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1-0.2.Data

  mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1-0.2.Data@stripped, 2007-11-02 19:02:04+08:00, gni@stripped +0 -0

  mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.1.ctl@stripped, 2007-11-02 19:02:04+08:00, gni@stripped +217 -0
    BitKeeper file /home/ngb/mysql/mysql-5.1/online_alter_table/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.1.ctl

  mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.1.ctl@stripped, 2007-11-02 19:02:04+08:00, gni@stripped +0 -0

  mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.1.log@stripped, 2007-11-02 19:02:04+08:00, gni@stripped +2 -0
    BitKeeper file /home/ngb/mysql/mysql-5.1/online_alter_table/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.1.log

  mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.1.log@stripped, 2007-11-02 19:02:04+08:00, gni@stripped +0 -0

  mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.2.ctl@stripped, 2007-11-02 19:02:04+08:00, gni@stripped +217 -0
    BitKeeper file /home/ngb/mysql/mysql-5.1/online_alter_table/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.2.ctl

  mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.2.ctl@stripped, 2007-11-02 19:02:04+08:00, gni@stripped +0 -0

  mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.2.log@stripped, 2007-11-02 19:02:04+08:00, gni@stripped +2 -0
    BitKeeper file /home/ngb/mysql/mysql-5.1/online_alter_table/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.2.log

  mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.2.log@stripped, 2007-11-02 19:02:04+08:00, gni@stripped +0 -0

  mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1-0.1.Data@stripped, 2007-11-02 19:01:31+08:00, gni@stripped +413 -0
    BitKeeper file /home/ngb/mysql/mysql-5.1/online_alter_table/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1-0.1.Data

  mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1-0.1.Data@stripped, 2007-11-02 19:01:31+08:00, gni@stripped +0 -0

  mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1-0.2.Data@stripped, 2007-11-02 19:01:31+08:00, gni@stripped +401 -0
    BitKeeper file /home/ngb/mysql/mysql-5.1/online_alter_table/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1-0.2.Data

  mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1-0.2.Data@stripped, 2007-11-02 19:01:31+08:00, gni@stripped +0 -0

  mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.1.ctl@stripped, 2007-11-02 19:01:31+08:00, gni@stripped +217 -0
    BitKeeper file /home/ngb/mysql/mysql-5.1/online_alter_table/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.1.ctl

  mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.1.ctl@stripped, 2007-11-02 19:01:31+08:00, gni@stripped +0 -0

  mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.1.log@stripped, 2007-11-02 19:01:31+08:00, gni@stripped +2 -0
    BitKeeper file /home/ngb/mysql/mysql-5.1/online_alter_table/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.1.log

  mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.1.log@stripped, 2007-11-02 19:01:31+08:00, gni@stripped +0 -0

  mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.2.ctl@stripped, 2007-11-02 19:01:31+08:00, gni@stripped +217 -0
    BitKeeper file /home/ngb/mysql/mysql-5.1/online_alter_table/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.2.ctl

  mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.2.ctl@stripped, 2007-11-02 19:01:31+08:00, gni@stripped +0 -0

  mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.2.log@stripped, 2007-11-02 19:01:31+08:00, gni@stripped +2 -0
    BitKeeper file /home/ngb/mysql/mysql-5.1/online_alter_table/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.2.log

  mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.2.log@stripped, 2007-11-02 19:01:31+08:00, gni@stripped +0 -0

  mysql-test/suite/ndb/r/ndb_alter_table_mix_backup_restore.result@stripped, 2007-11-02 19:10:15+08:00, gni@stripped +52 -0
    Add test cases for mix endian testing with newly added columns

  mysql-test/suite/ndb/r/ndb_alter_table_mix_backup_restore.result@stripped, 2007-11-02 19:10:15+08:00, gni@stripped +0 -0

  mysql-test/suite/ndb/r/ndb_alter_table_online.result@stripped, 2007-11-02 19:10:15+08:00, gni@stripped +86 -4
    Add test cases for updating the newly added columns

  mysql-test/suite/ndb/t/ndb_alter_table_mix_backup_restore.test@stripped, 2007-11-02 19:10:15+08:00, gni@stripped +42 -0
    Add test cases for mix endian testing with newly added columns

  mysql-test/suite/ndb/t/ndb_alter_table_mix_backup_restore.test@stripped, 2007-11-02 19:10:15+08:00, gni@stripped +0 -0

  mysql-test/suite/ndb/t/ndb_alter_table_online.test@stripped, 2007-11-02 19:10:15+08:00, gni@stripped +48 -6
    Add test cases for updating the newly added columns

  mysql-test/suite/rpl_ndb/r/rpl_ndb_add_column.result@stripped, 2007-11-02 19:10:15+08:00, gni@stripped +159 -31
    Add test cases for replication with newly added columns

  mysql-test/suite/rpl_ndb/t/rpl_ndb_add_column.test@stripped, 2007-11-02 19:10:15+08:00, gni@stripped +89 -2
    Add test cases for replication with newly added columns

diff -Nrup a/mysql-test/Makefile.am b/mysql-test/Makefile.am
--- a/mysql-test/Makefile.am	2007-09-12 20:07:05 +08:00
+++ b/mysql-test/Makefile.am	2007-11-02 19:10:15 +08:00
@@ -46,6 +46,8 @@ dist-hook:
 		$(distdir)/std_data/ndb_backup51_dd \
 		$(distdir)/std_data/ndb_backup51_data_be \
 		$(distdir)/std_data/ndb_backup51_data_le \
+		$(distdir)/std_data/ndb_backup51_online_alter_table_data_be \
+		$(distdir)/std_data/ndb_backup51_online_alter_table_data_le \
 		$(distdir)/lib
 	-$(INSTALL_DATA) $(srcdir)/t/*.def $(distdir)/t
 	$(INSTALL_DATA) $(srcdir)/t/*.test $(distdir)/t
@@ -74,6 +76,8 @@ dist-hook:
 	$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51_dd/BACKUP* $(distdir)/std_data/ndb_backup51_dd
 	$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51_data_be/BACKUP* $(distdir)/std_data/ndb_backup51_data_be
 	$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51_data_le/BACKUP* $(distdir)/std_data/ndb_backup51_data_le
+	$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51_online_alter_table_data_be/BACKUP* $(distdir)/std_data/ndb_backup51_online_alter_table_data_be
+	$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51_online_alter_table_data_le/BACKUP* $(distdir)/std_data/ndb_backup51_online_alter_table_data_le
 	$(INSTALL_DATA) $(srcdir)/lib/*.pl $(distdir)/lib
 	-rm -rf `find $(distdir)/suite -type d -name SCCS` $(distdir)/suite/row_lock
 
@@ -90,6 +94,8 @@ install-data-local:
 		$(DESTDIR)$(testdir)/std_data/ndb_backup51_dd \
 		$(DESTDIR)$(testdir)/std_data/ndb_backup51_data_be \
 		$(DESTDIR)$(testdir)/std_data/ndb_backup51_data_le \
+		$(DESTDIR)$(testdir)/std_data/ndb_backup51_online_alter_table_data_be \
+		$(DESTDIR)$(testdir)/std_data/ndb_backup51_online_alter_table_data_le \
 		$(DESTDIR)$(testdir)/lib
 	$(INSTALL_DATA) $(srcdir)/README $(DESTDIR)$(testdir)
 	-$(INSTALL_DATA) $(srcdir)/t/*.def $(DESTDIR)$(testdir)/t
@@ -123,6 +129,8 @@ install-data-local:
 	$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51_dd/BACKUP* $(DESTDIR)$(testdir)/std_data/ndb_backup51_dd
 	$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51_data_be/BACKUP* $(DESTDIR)$(testdir)/std_data/ndb_backup51_data_be
 	$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51_data_le/BACKUP* $(DESTDIR)$(testdir)/std_data/ndb_backup51_data_le
+	$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51_online_alter_table_data_be/BACKUP* $(DESTDIR)$(testdir)/std_data/ndb_backup51_online_alter_table_data_be
+	$(INSTALL_DATA) $(srcdir)/std_data/ndb_backup51_online_alter_table_data_le/BACKUP* $(DESTDIR)$(testdir)/std_data/ndb_backup51_online_alter_table_data_le
 	$(INSTALL_DATA) $(srcdir)/lib/*.pl $(DESTDIR)$(testdir)/lib
 	for f in `(cd $(srcdir); find suite -type f | egrep -v 'SCCS|row_lock')`; \
 	do \
Binary files a/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1-0.1.Data and b/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1-0.1.Data differ
Binary files a/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1-0.2.Data and b/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1-0.2.Data differ
Binary files a/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.1.ctl and b/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.1.ctl differ
Binary files a/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.1.log and b/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.1.log differ
Binary files a/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.2.ctl and b/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.2.ctl differ
Binary files a/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.2.log and b/mysql-test/std_data/ndb_backup51_online_alter_table_data_be/BACKUP-1.2.log differ
Binary files a/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1-0.1.Data and b/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1-0.1.Data differ
Binary files a/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1-0.2.Data and b/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1-0.2.Data differ
Binary files a/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.1.ctl and b/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.1.ctl differ
Binary files a/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.1.log and b/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.1.log differ
Binary files a/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.2.ctl and b/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.2.ctl differ
Binary files a/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.2.log and b/mysql-test/std_data/ndb_backup51_online_alter_table_data_le/BACKUP-1.2.log differ
diff -Nrup a/mysql-test/suite/ndb/r/ndb_alter_table_mix_backup_restore.result b/mysql-test/suite/ndb/r/ndb_alter_table_mix_backup_restore.result
--- /dev/null	Wed Dec 31 16:00:00 196900
+++ b/mysql-test/suite/ndb/r/ndb_alter_table_mix_backup_restore.result	2007-11-02 19:10:15 +08:00
@@ -0,0 +1,52 @@
+USE test;
+DROP TABLE IF EXISTS t1;
+*********************************
+* restore tables w/ new column from little endian
+*********************************
+SHOW TABLES;
+Tables_in_test
+t1
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `b` int(11) /*!50120 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+  `c` float DEFAULT NULL,
+  `d` double unsigned DEFAULT NULL,
+  `e` decimal(5,2) DEFAULT NULL,
+  `f` datetime DEFAULT NULL,
+  `g` binary(4) DEFAULT NULL,
+  PRIMARY KEY (`a`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+SELECT * FROM t1 WHERE a = 1 or a = 10 or a = 20 or a = 30 ORDER BY a;
+a	b	c	d	e	f	g
+1	5	3.40282e+38	1.2686868689899e+308	666.66	2007-10-23 23:23:23	1111
+10	1	-3.40282e+38	NULL	NULL	NULL	NULL
+20	1	-3.40282e+38	1.79769313486232e+308	345.21	NULL	NULL
+30	1	-3.40282e+38	1.79769313486232e+308	345.21	1000-01-01 00:00:00	0101
+DROP TABLE t1;
+*********************************
+* restore tables w/ new column from big endian
+*********************************
+SHOW TABLES;
+Tables_in_test
+t1
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(10) unsigned NOT NULL AUTO_INCREMENT,
+  `b` int(11) /*!50120 COLUMN_FORMAT DYNAMIC */ DEFAULT NULL,
+  `c` float DEFAULT NULL,
+  `d` double unsigned DEFAULT NULL,
+  `e` decimal(5,2) DEFAULT NULL,
+  `f` datetime DEFAULT NULL,
+  `g` binary(4) DEFAULT NULL,
+  PRIMARY KEY (`a`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1
+SELECT * FROM t1 WHERE a = 1 or a = 10 or a = 20 or a = 30 ORDER BY a;
+a	b	c	d	e	f	g
+1	5	3.40282e+38	1.2686868689899e+308	666.66	2007-10-23 23:23:23	1111
+10	1	-3.40282e+38	NULL	NULL	NULL	NULL
+20	1	-3.40282e+38	1.79769313486232e+308	345.21	NULL	NULL
+30	1	-3.40282e+38	1.79769313486232e+308	345.21	1000-01-01 00:00:00	0101
+DROP TABLE t1;
diff -Nrup a/mysql-test/suite/ndb/r/ndb_alter_table_online.result b/mysql-test/suite/ndb/r/ndb_alter_table_online.result
--- a/mysql-test/suite/ndb/r/ndb_alter_table_online.result	2007-10-06 01:39:28 +08:00
+++ b/mysql-test/suite/ndb/r/ndb_alter_table_online.result	2007-11-02 19:10:15 +08:00
@@ -27,6 +27,11 @@ SELECT * FROM t1 ORDER BY a;
 a	b	c
 1	1	NULL
 2	1	a
+UPDATE t1 SET c='b' where a = 2;
+SELECT * FROM t1 ORDER BY a;
+a	b	c
+1	1	NULL
+2	1	b
 DROP TABLE t1;
 *******************************
 * Alter Table online add column
@@ -55,6 +60,11 @@ SELECT * FROM t1 ORDER BY a;
 a	b	c
 1	a	NULL
 2	a	1
+UPDATE t1 SET c = 2 where a = 2;
+SELECT * FROM t1 ORDER BY a;
+a	b	c
+1	a	NULL
+2	a	2
 DROP TABLE t1;
 *******************************
 * Alter Table online add column
@@ -83,6 +93,11 @@ SELECT * FROM t1 ORDER BY a;
 a	b	c
 1	1	NULL
 2	1	1
+UPDATE t1 SET c = 2 where a = 2;
+SELECT * FROM t1 ORDER BY a;
+a	b	c
+1	1	NULL
+2	1	2
 *******************************
 * Create online Index ci
 *******************************
@@ -215,6 +230,11 @@ SELECT * FROM t1 ORDER BY a;
 a	b	c
 1	1	NULL
 2	1	a
+UPDATE t1 SET c = 'b' where a = 2;
+SELECT * FROM t1 ORDER BY a;
+a	b	c
+1	1	NULL
+2	1	b
 DROP TABLE t1;
 *******************************
 * Not supported Test#2
@@ -241,6 +261,11 @@ SELECT * FROM t1 ORDER BY a;
 a	b	c
 1	1	17
 2	1	a
+UPDATE t1 SET c = 'b' where a = 2;
+SELECT * FROM t1 ORDER BY a;
+a	b	c
+1	1	17
+2	1	b
 *******************************
 * Not supported Test#3
 *******************************
@@ -259,10 +284,18 @@ name
 't1'
 truncate ndb_show_tables_results;
 ALTER TABLE t1 ADD d INT AFTER b;
+INSERT INTO t1 VALUES(3,1,1,'b');
+SELECT * FROM t1 ORDER BY a;
+a	b	d	c
+1	1	NULL	17
+2	1	NULL	b
+3	1	1	b
+UPDATE t1 SET d = 2 where a = 3;
 SELECT * FROM t1 ORDER BY a;
 a	b	d	c
 1	1	NULL	17
-2	1	NULL	a
+2	1	NULL	b
+3	1	2	b
 *******************************
 * Not supported Test#4
 *******************************
@@ -300,6 +333,11 @@ SELECT * FROM t1 ORDER BY a;
 a	b	c
 1	1	0000-00-00 00:00:00
 2	2	2007-09-19 18:46:02
+UPDATE t1 SET c = '2007-10-22 16:35:06' where a = 2;
+SELECT * FROM t1 ORDER BY a;
+a	b	c
+1	1	0000-00-00 00:00:00
+2	2	2007-10-22 16:35:06
 DROP TABLE t1;
 *******************************
 * Not supported Test#6
@@ -326,6 +364,11 @@ SELECT * FROM t1 ORDER BY a;
 a	b	c
 1	1	
 2	1	a
+UPDATE t1 SET c = 'b' where a = 2;
+SELECT * FROM t1 ORDER BY a;
+a	b	c
+1	1	
+2	1	b
 DROP TABLE t1;
 *******************************
 * Not supported Test#7
@@ -352,6 +395,11 @@ SELECT * FROM t1 ORDER BY a;
 a	b	c
 1	1	NULL
 2	1	a
+UPDATE t1 SET c = 'b' WHERE a = 2;
+SELECT * FROM t1 ORDER BY a;
+a	b	c
+1	1	NULL
+2	1	b
 DROP TABLE t1;
 *******************************
 * Not supported Test#8
@@ -411,9 +459,9 @@ select name from ndb_show_tables_results
 name
 truncate ndb_show_tables_results;
 DROP TABLE t1;
-*******************************
-* Add column c as nullable TEXT
-*******************************
+****************************************
+* Add column c as nullable TEXT and BLOB
+****************************************
 CREATE TABLE t1 (a INT UNSIGNED  AUTO_INCREMENT KEY, b INT DEFAULT 2 COLUMN_FORMAT DYNAMIC) ENGINE NDB;
 
 ndb_show_tables completed.....
@@ -429,6 +477,15 @@ select name from ndb_show_tables_results
 name
 't1'
 truncate ndb_show_tables_results;
+ALTER ONLINE TABLE t1 ADD d BLOB;
+ERROR 42000: This version of MySQL doesn't yet support 'ALTER ONLINE TABLE t1 ADD d BLOB'
+
+ndb_show_tables completed.....
+
+select name from ndb_show_tables_results where id = @t1_id and name like '%t1%' and type like '%UserTable%';
+name
+'t1'
+truncate ndb_show_tables_results;
 DROP TABLE t1;
 CREATE TABLE t1 (a INT UNSIGNED AUTO_INCREMENT KEY, b INT COLUMN_FORMAT DYNAMIC) ENGINE NDB;
 
@@ -488,6 +545,13 @@ COUNT(*)
 SELECT COUNT(*) FROM t1 WHERE g IS NULL;
 COUNT(*)
 25
+UPDATE t1 SET c = 3.402823466E+38, d = 1.2686868689898989E+308, e = 666.66, f = '2007-10-23 23:23:23', g = '1111' WHERE a = 1;
+SELECT * FROM t1 WHERE a = 1 or a = 10 or a = 20 or a = 30 ORDER BY a;
+a	b	c	d	e	f	g
+1	5	3.40282e+38	1.2686868689899e+308	666.66	2007-10-23 23:23:23	1111
+10	1	-3.40282e+38	NULL	NULL	NULL	NULL
+20	1	-3.40282e+38	1.79769313486232e+308	345.21	NULL	NULL
+30	1	-3.40282e+38	1.79769313486232e+308	345.21	1000-01-01 00:00:00	0101
 *********************************
 * Backup and restore tables w/ new column
 *********************************
@@ -522,6 +586,24 @@ Warnings:
 Warning	1475	DYNAMIC column b with STORAGE DISK is not supported, column will become FIXED
 ALTER ONLINE TABLE t1 CHANGE b b_1 INT COLUMN_FORMAT DYNAMIC;
 ERROR 42000: This version of MySQL doesn't yet support 'ALTER ONLINE TABLE t1 CHANGE b b_1 INT COLUMN_FORMAT DYNAMIC'
+ALTER ONLINE TABLE t1 ADD COLUMN c INT COLUMN_FORMAT DYNAMIC;
+ERROR 42000: This version of MySQL doesn't yet support 'ALTER ONLINE TABLE t1 ADD COLUMN c INT COLUMN_FORMAT DYNAMIC'
+ALTER ONLINE TABLE t1 ADD COLUMN d FLOAT COLUMN_FORMAT DYNAMIC;
+ERROR 42000: This version of MySQL doesn't yet support 'ALTER ONLINE TABLE t1 ADD COLUMN d FLOAT COLUMN_FORMAT DYNAMIC'
+ALTER ONLINE TABLE t1 ADD COLUMN  e DOUBLE COLUMN_FORMAT DYNAMIC;
+ERROR 42000: This version of MySQL doesn't yet support 'ALTER ONLINE TABLE t1 ADD COLUMN  e DOUBLE COLUMN_FORMAT DYNAMIC'
+ALTER ONLINE TABLE t1 ADD COLUMN f DATETIME COLUMN_FORMAT DYNAMIC;
+ERROR 42000: This version of MySQL doesn't yet support 'ALTER ONLINE TABLE t1 ADD COLUMN f DATETIME COLUMN_FORMAT DYNAMIC'
+ALTER ONLINE TABLE t1 ADD COLUMN g DECIMAL(5,2) COLUMN_FORMAT DYNAMIC;
+ERROR 42000: This version of MySQL doesn't yet support 'ALTER ONLINE TABLE t1 ADD COLUMN g DECIMAL(5,2) COLUMN_FORMAT DYNAMIC'
+ALTER ONLINE TABLE t1 ADD COLUMN h CHAR(20) COLUMN_FORMAT DYNAMIC;
+ERROR 42000: This version of MySQL doesn't yet support 'ALTER ONLINE TABLE t1 ADD COLUMN h CHAR(20) COLUMN_FORMAT DYNAMIC'
+ALTER ONLINE TABLE t1 ADD COLUMN h VARCHAR(20) COLUMN_FORMAT DYNAMIC;
+ERROR 42000: This version of MySQL doesn't yet support 'ALTER ONLINE TABLE t1 ADD COLUMN h VARCHAR(20) COLUMN_FORMAT DYNAMIC'
+ALTER ONLINE TABLE t1 ADD COLUMN h BINARY(20) COLUMN_FORMAT DYNAMIC;
+ERROR 42000: This version of MySQL doesn't yet support 'ALTER ONLINE TABLE t1 ADD COLUMN h BINARY(20) COLUMN_FORMAT DYNAMIC'
+ALTER ONLINE TABLE t1 ADD COLUMN h VARBINARY(20) COLUMN_FORMAT DYNAMIC;
+ERROR 42000: This version of MySQL doesn't yet support 'ALTER ONLINE TABLE t1 ADD COLUMN h VARBINARY(20) COLUMN_FORMAT DYNAMIC'
 DROP TABLE t1;
 ALTER TABLESPACE ts1
 DROP DATAFILE 'datafile.dat'
diff -Nrup a/mysql-test/suite/ndb/t/ndb_alter_table_mix_backup_restore.test b/mysql-test/suite/ndb/t/ndb_alter_table_mix_backup_restore.test
--- /dev/null	Wed Dec 31 16:00:00 196900
+++ b/mysql-test/suite/ndb/t/ndb_alter_table_mix_backup_restore.test	2007-11-02 19:10:15 +08:00
@@ -0,0 +1,42 @@
+#############################################################
+# Author: Guangbao
+# Date: 2007-10-31
+# Purpose: mix backup/restore test for basic online alter table
+##############################################################
+
+--source include/have_multi_ndb.inc
+--source include/not_embedded.inc
+
+##############################
+# mix endian restore section #
+##############################
+#
+# Restore backup files (from little endian)
+#
+--disable_warnings
+USE test;
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+--echo *********************************
+--echo * restore tables w/ new column from little endian
+--echo *********************************
+--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 1 -m -r $MYSQL_TEST_DIR/std_data/ndb_backup51_online_alter_table_data_le >> $NDB_TOOLS_OUTPUT
+--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 2 -r $MYSQL_TEST_DIR/std_data/ndb_backup51_online_alter_table_data_le >> $NDB_TOOLS_OUTPUT
+SHOW TABLES;
+SHOW CREATE TABLE t1;
+SELECT * FROM t1 WHERE a = 1 or a = 10 or a = 20 or a = 30 ORDER BY a;
+DROP TABLE t1;
+
+#
+# Restore backup files (from big endian)
+#
+--echo *********************************
+--echo * restore tables w/ new column from big endian
+--echo *********************************
+--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 1 -m -r $MYSQL_TEST_DIR/std_data/ndb_backup51_online_alter_table_data_be >> $NDB_TOOLS_OUTPUT
+--exec $NDB_TOOLS_DIR/ndb_restore --no-defaults -b 1 -n 2 -r $MYSQL_TEST_DIR/std_data/ndb_backup51_online_alter_table_data_be >> $NDB_TOOLS_OUTPUT
+SHOW TABLES;
+SHOW CREATE TABLE t1;
+SELECT * FROM t1 WHERE a = 1 or a = 10 or a = 20 or a = 30 ORDER BY a;
+DROP TABLE t1;
+# End of 5.1 Test Case
diff -Nrup a/mysql-test/suite/ndb/t/ndb_alter_table_online.test b/mysql-test/suite/ndb/t/ndb_alter_table_online.test
--- a/mysql-test/suite/ndb/t/ndb_alter_table_online.test	2007-10-06 01:39:39 +08:00
+++ b/mysql-test/suite/ndb/t/ndb_alter_table_online.test	2007-11-02 19:10:15 +08:00
@@ -42,6 +42,8 @@ truncate ndb_show_tables_results;
 
 INSERT INTO t1 values (2,1,"a");
 SELECT * FROM t1 ORDER BY a;
+UPDATE t1 SET c='b' where a = 2;
+SELECT * FROM t1 ORDER BY a;
 DROP TABLE t1;
 
 --echo *******************************
@@ -65,6 +67,8 @@ truncate ndb_show_tables_results;
 
 INSERT INTO t1 values (2,"a",1);
 SELECT * FROM t1 ORDER BY a;
+UPDATE t1 SET c = 2 where a = 2;
+SELECT * FROM t1 ORDER BY a;
 DROP TABLE t1;
 
 --echo *******************************
@@ -88,6 +92,8 @@ truncate ndb_show_tables_results;
 
 INSERT INTO t1 values (2,1,1);
 SELECT * FROM t1 ORDER BY a;
+UPDATE t1 SET c = 2 where a = 2;
+SELECT * FROM t1 ORDER BY a;
 
 --echo *******************************
 --echo * Create online Index ci
@@ -240,6 +246,8 @@ ALTER TABLE t1 ADD c CHAR(19);
 
 INSERT INTO t1 values (2,1,"a");
 SELECT * FROM t1 ORDER BY a;
+UPDATE t1 SET c = 'b' where a = 2;
+SELECT * FROM t1 ORDER BY a;
 DROP TABLE t1;
 
 --echo *******************************
@@ -263,7 +271,8 @@ ALTER TABLE t1 ADD c CHAR(19) DEFAULT 17
 
 INSERT INTO t1 values (2,1,"a");
 SELECT * FROM t1 ORDER BY a;
-
+UPDATE t1 SET c = 'b' where a = 2;
+SELECT * FROM t1 ORDER BY a;
 --echo *******************************
 --echo * Not supported Test#3
 --echo *******************************
@@ -279,7 +288,9 @@ select name from ndb_show_tables_results
 truncate ndb_show_tables_results;
 
 ALTER TABLE t1 ADD d INT AFTER b;
-
+INSERT INTO t1 VALUES(3,1,1,'b');
+SELECT * FROM t1 ORDER BY a;
+UPDATE t1 SET d = 2 where a = 3;
 SELECT * FROM t1 ORDER BY a;
 
 --echo *******************************
@@ -315,6 +326,8 @@ ALTER TABLE t1 ADD c TIMESTAMP;
 
 INSERT INTO t1 values (2,2,'2007-09-19 18:46:02');
 SELECT * FROM t1 ORDER BY a;
+UPDATE t1 SET c = '2007-10-22 16:35:06' where a = 2;
+SELECT * FROM t1 ORDER BY a;
 DROP TABLE t1;
 
 --echo *******************************
@@ -338,6 +351,8 @@ ALTER TABLE t1 ADD c CHAR(19) NOT NULL;
 
 INSERT INTO t1 values (2,1,"a");
 SELECT * FROM t1 ORDER BY a;
+UPDATE t1 SET c = 'b' where a = 2;
+SELECT * FROM t1 ORDER BY a;
 DROP TABLE t1;
 
 --echo *******************************
@@ -361,6 +376,8 @@ ALTER TABLE t1 ADD c CHAR(19) COLUMN_FOR
 
 INSERT INTO t1 values (2,1,"a");
 SELECT * FROM t1 ORDER BY a;
+UPDATE t1 SET c = 'b' WHERE a = 2;
+SELECT * FROM t1 ORDER BY a;
 DROP TABLE t1;
 
 --echo *******************************
@@ -425,9 +442,9 @@ DROP TABLE t1;
 ######################################
 # Bug:30205
 ######################################
---echo *******************************
---echo * Add column c as nullable TEXT
---echo *******************************
+--echo ****************************************
+--echo * Add column c as nullable TEXT and BLOB
+--echo ****************************************
 CREATE TABLE t1 (a INT UNSIGNED  AUTO_INCREMENT KEY, b INT DEFAULT 2 COLUMN_FORMAT DYNAMIC) ENGINE NDB;
 --source include/ndb_show_tables_result.inc
 set @t1_id = (select id from ndb_show_tables_results where name like '%t1%' and type like '%UserTable%');
@@ -445,6 +462,11 @@ ALTER ONLINE TABLE t1 ADD c TEXT;
 --source include/ndb_show_tables_result.inc
 select name from ndb_show_tables_results where id = @t1_id and name like '%t1%' and type like '%UserTable%';
 truncate ndb_show_tables_results;
+--error ER_NOT_SUPPORTED_YET
+ALTER ONLINE TABLE t1 ADD d BLOB;
+--source include/ndb_show_tables_result.inc
+select name from ndb_show_tables_results where id = @t1_id and name like '%t1%' and type like '%UserTable%';
+truncate ndb_show_tables_results;
 DROP TABLE t1;
 
 ######################################
@@ -548,6 +570,9 @@ SELECT COUNT(*) FROM t1 WHERE e IS NULL;
 SELECT COUNT(*) FROM t1 WHERE f IS NULL;
 SELECT COUNT(*) FROM t1 WHERE g IS NULL;
 
+UPDATE t1 SET c = 3.402823466E+38, d = 1.2686868689898989E+308, e = 666.66, f = '2007-10-23 23:23:23', g = '1111' WHERE a = 1;
+SELECT * FROM t1 WHERE a = 1 or a = 10 or a = 20 or a = 30 ORDER BY a;
+
 ##############################
 # Backup and restore section #
 ##############################
@@ -593,7 +618,24 @@ ENGINE=NDB;
 
 --error ER_NOT_SUPPORTED_YET
 ALTER ONLINE TABLE t1 CHANGE b b_1 INT COLUMN_FORMAT DYNAMIC;
-
+--error ER_NOT_SUPPORTED_YET
+ALTER ONLINE TABLE t1 ADD COLUMN c INT COLUMN_FORMAT DYNAMIC;
+--error ER_NOT_SUPPORTED_YET
+ALTER ONLINE TABLE t1 ADD COLUMN d FLOAT COLUMN_FORMAT DYNAMIC;
+--error ER_NOT_SUPPORTED_YET
+ALTER ONLINE TABLE t1 ADD COLUMN  e DOUBLE COLUMN_FORMAT DYNAMIC;
+--error ER_NOT_SUPPORTED_YET
+ALTER ONLINE TABLE t1 ADD COLUMN f DATETIME COLUMN_FORMAT DYNAMIC;
+--error ER_NOT_SUPPORTED_YET
+ALTER ONLINE TABLE t1 ADD COLUMN g DECIMAL(5,2) COLUMN_FORMAT DYNAMIC;
+--error ER_NOT_SUPPORTED_YET
+ALTER ONLINE TABLE t1 ADD COLUMN h CHAR(20) COLUMN_FORMAT DYNAMIC;
+--error ER_NOT_SUPPORTED_YET
+ALTER ONLINE TABLE t1 ADD COLUMN h VARCHAR(20) COLUMN_FORMAT DYNAMIC;
+--error ER_NOT_SUPPORTED_YET
+ALTER ONLINE TABLE t1 ADD COLUMN h BINARY(20) COLUMN_FORMAT DYNAMIC;
+--error ER_NOT_SUPPORTED_YET
+ALTER ONLINE TABLE t1 ADD COLUMN h VARBINARY(20) COLUMN_FORMAT DYNAMIC;
 DROP TABLE t1;
 
 ALTER TABLESPACE ts1
diff -Nrup a/mysql-test/suite/rpl_ndb/r/rpl_ndb_add_column.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_add_column.result
--- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_add_column.result	2007-09-04 12:54:18 +08:00
+++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_add_column.result	2007-11-02 19:10:15 +08:00
@@ -5,51 +5,179 @@ reset slave;
 drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
 start slave;
 CREATE TABLE t1 (c1 INT KEY) ROW_FORMAT=DYNAMIC ENGINE=NDB;
-INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
+INSERT INTO t1 VALUES (1),(2),(3);
 ALTER TABLE t1 ADD c2 INT;
 SELECT * FROM t1 ORDER BY c1;
 c1	c2
 1	NULL
 2	NULL
 3	NULL
-4	NULL
-5	NULL
-6	NULL
-7	NULL
-8	NULL
-9	NULL
-10	NULL
-INSERT INTO t1 VALUES (11,11),(12,12),(13,13),(14,14);
+INSERT INTO t1 VALUES (6,6),(7,7),(8,8);
 SELECT * FROM t1 ORDER BY c1;
 c1	c2
 1	NULL
 2	NULL
 3	NULL
-4	NULL
-5	NULL
-6	NULL
-7	NULL
-8	NULL
-9	NULL
-10	NULL
-11	11
-12	12
-13	13
-14	14
+6	6
+7	7
+8	8
 SELECT * FROM t1 ORDER BY c1;
 c1	c2
 1	NULL
 2	NULL
 3	NULL
-4	NULL
-5	NULL
-6	NULL
-7	NULL
-8	NULL
-9	NULL
-10	NULL
-11	11
-12	12
-13	13
-14	14
+6	6
+7	7
+8	8
+ALTER ONLINE TABLE t1 ADD c CHAR(19);
+INSERT INTO t1 values (11,1,"a");
+ALTER ONLINE TABLE t1 ADD d FLOAT;
+INSERT INTO t1 VALUES(12, 2,'b', -3.402823466E+38);
+ALTER ONLINE TABLE t1 ADD e DOUBLE UNSIGNED;
+INSERT INTO t1 VALUES(13, 3,'c', -3.402823466E+38, 1.7976931348623157E+308);
+ALTER ONLINE TABLE t1 ADD f DECIMAL(5,2);
+INSERT INTO t1 VALUES(14, 4,'d', -3.402823466E+38, 1.7976931348623157E+308, 456.78);
+ALTER ONLINE TABLE t1 ADD g DATETIME;
+INSERT INTO t1 VALUES(15, 5,'e', -3.402823466E+38, 1.7976931348623157E+308, 456.78, '2007-10-26 12:00:00');
+ALTER ONLINE TABLE t1 ADD h BINARY(4);
+INSERT INTO t1 VALUES(16, 6,'f', -3.402823466E+38, 1.7976931348623157E+308, 456.78, '2007-10-26 12:00:00',"abcd");
+**********************
+"Master data"
+**********************
+SELECT * FROM t1 ORDER BY c1;
+c1	c2	c	d	e	f	g	h
+1	NULL	NULL	NULL	NULL	NULL	NULL	NULL
+2	NULL	NULL	NULL	NULL	NULL	NULL	NULL
+3	NULL	NULL	NULL	NULL	NULL	NULL	NULL
+6	6	NULL	NULL	NULL	NULL	NULL	NULL
+7	7	NULL	NULL	NULL	NULL	NULL	NULL
+8	8	NULL	NULL	NULL	NULL	NULL	NULL
+11	1	a	NULL	NULL	NULL	NULL	NULL
+12	2	b	-3.40282e+38	NULL	NULL	NULL	NULL
+13	3	c	-3.40282e+38	1.79769313486232e+308	NULL	NULL	NULL
+14	4	d	-3.40282e+38	1.79769313486232e+308	456.78	NULL	NULL
+15	5	e	-3.40282e+38	1.79769313486232e+308	456.78	2007-10-26 12:00:00	NULL
+16	6	f	-3.40282e+38	1.79769313486232e+308	456.78	2007-10-26 12:00:00	abcd
+**********************
+"Slave data"
+**********************
+SELECT * FROM t1 ORDER BY c1;
+c1	c2	c	d	e	f	g	h
+1	NULL	NULL	NULL	NULL	NULL	NULL	NULL
+2	NULL	NULL	NULL	NULL	NULL	NULL	NULL
+3	NULL	NULL	NULL	NULL	NULL	NULL	NULL
+6	6	NULL	NULL	NULL	NULL	NULL	NULL
+7	7	NULL	NULL	NULL	NULL	NULL	NULL
+8	8	NULL	NULL	NULL	NULL	NULL	NULL
+11	1	a	NULL	NULL	NULL	NULL	NULL
+12	2	b	-3.40282e+38	NULL	NULL	NULL	NULL
+13	3	c	-3.40282e+38	1.79769313486232e+308	NULL	NULL	NULL
+14	4	d	-3.40282e+38	1.79769313486232e+308	456.78	NULL	NULL
+15	5	e	-3.40282e+38	1.79769313486232e+308	456.78	2007-10-26 12:00:00	NULL
+16	6	f	-3.40282e+38	1.79769313486232e+308	456.78	2007-10-26 12:00:00	abcd
+UPDATE t1 SET c = "abcdef", d = 3.402823466E+38, e = 1.7976931348623157E+308, f = 987.65, g = '2007-10-22 22:22:22', h = "aaaa";
+***************************
+"Master Data After Update"
+***************************
+SELECT * FROM t1 ORDER BY c1;
+c1	c2	c	d	e	f	g	h
+1	NULL	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+2	NULL	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+3	NULL	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+6	6	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+7	7	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+8	8	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+11	1	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+12	2	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+13	3	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+14	4	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+15	5	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+16	6	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+*************************
+"Slave Data After Update"
+*************************
+SELECT * FROM t1 ORDER BY c1;
+c1	c2	c	d	e	f	g	h
+1	NULL	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+2	NULL	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+3	NULL	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+6	6	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+7	7	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+8	8	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+11	1	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+12	2	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+13	3	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+14	4	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+15	5	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+16	6	abcdef	3.40282e+38	1.79769313486232e+308	987.65	2007-10-22 22:22:22	aaaa
+DROP TABLE t1;
+*************************************************
+* Insert And Update New Added Columns With Commit
+*************************************************
+CREATE TABLE t1 (a INT UNSIGNED KEY, b INT UNSIGNED) ROW_FORMAT=DYNAMIC ENGINE NDB;
+INSERT INTO t1 VALUES(1,1),(2,2);
+BEGIN;
+ALTER ONLINE TABLE t1 ADD c CHAR(19), ADD d VARCHAR(255), ADD e char(255);
+INSERT INTO t1 VALUES (3,0,'3','3','3'),(4,0,'4','4','4'),(5,0,null,null,null);
+UPDATE t1 SET c = 'aaa', d = 'bbb', e = 'ccc' WHERE a = 4;
+COMMIT;
+SELECT * FROM t1 ORDER BY a;
+a	b	c	d	e
+1	1	NULL	NULL	NULL
+2	2	NULL	NULL	NULL
+3	0	3	3	3
+4	0	aaa	bbb	ccc
+5	0	NULL	NULL	NULL
+*************************
+"Slave Data With Commit
+*************************
+SELECT * FROM t1 ORDER BY a;
+a	b	c	d	e
+1	1	NULL	NULL	NULL
+2	2	NULL	NULL	NULL
+3	0	3	3	3
+4	0	aaa	bbb	ccc
+5	0	NULL	NULL	NULL
+***************************************************
+* Insert And Update New Added Columns With Rollback
+***************************************************
+DROP TABLE t1;
+CREATE TABLE t1 (a INT UNSIGNED KEY, b INT UNSIGNED) ROW_FORMAT=DYNAMIC ENGINE NDB;
+INSERT INTO t1 VALUES(1,1),(2,2);
+ALTER TABLE t1 ADD c CHAR(19), ADD d VARCHAR(255), ADD e char(255);
+BEGIN;
+INSERT INTO t1 VALUES (3,0,'3','3','3'),(4,0,'4','4','4'),(5,0,null,null,null);
+UPDATE t1 SET c = 'aaa', d = 'bbb', e = 'ccc' WHERE a = 4;
+ROLLBACK;
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(10) unsigned NOT NULL,
+  `b` int(10) unsigned DEFAULT NULL,
+  `c` char(19) DEFAULT NULL,
+  `d` varchar(255) DEFAULT NULL,
+  `e` char(255) DEFAULT NULL,
+  PRIMARY KEY (`a`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
+SELECT * FROM t1 ORDER BY a;
+a	b	c	d	e
+1	1	NULL	NULL	NULL
+2	2	NULL	NULL	NULL
+*************************
+"Slave Data With Rollback
+*************************
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(10) unsigned NOT NULL,
+  `b` int(10) unsigned DEFAULT NULL,
+  `c` char(19) DEFAULT NULL,
+  `d` varchar(255) DEFAULT NULL,
+  `e` char(255) DEFAULT NULL,
+  PRIMARY KEY (`a`)
+) ENGINE=ndbcluster DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
+SELECT * FROM t1 ORDER BY a;
+a	b	c	d	e
+1	1	NULL	NULL	NULL
+2	2	NULL	NULL	NULL
 DROP TABLE t1;
diff -Nrup a/mysql-test/suite/rpl_ndb/t/rpl_ndb_add_column.test b/mysql-test/suite/rpl_ndb/t/rpl_ndb_add_column.test
--- a/mysql-test/suite/rpl_ndb/t/rpl_ndb_add_column.test	2007-09-06 00:04:43 +08:00
+++ b/mysql-test/suite/rpl_ndb/t/rpl_ndb_add_column.test	2007-11-02 19:10:15 +08:00
@@ -7,7 +7,7 @@
 --connection master
 CREATE TABLE t1 (c1 INT KEY) ROW_FORMAT=DYNAMIC ENGINE=NDB;
 
-INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
+INSERT INTO t1 VALUES (1),(2),(3);
 
 ALTER TABLE t1 ADD c2 INT;
 
@@ -17,12 +17,99 @@ SELECT * FROM t1 ORDER BY c1;
 
 connection master;
 
-INSERT INTO t1 VALUES (11,11),(12,12),(13,13),(14,14);
+INSERT INTO t1 VALUES (6,6),(7,7),(8,8);
 SELECT * FROM t1 ORDER BY c1;
 
 --sync_slave_with_master
 connection slave;
 SELECT * FROM t1 ORDER BY c1;
+
+#
+# Test online alter table for various types
+#
+connection master;
+ALTER ONLINE TABLE t1 ADD c CHAR(19);
+INSERT INTO t1 values (11,1,"a");
+ALTER ONLINE TABLE t1 ADD d FLOAT;
+INSERT INTO t1 VALUES(12, 2,'b', -3.402823466E+38);
+ALTER ONLINE TABLE t1 ADD e DOUBLE UNSIGNED;
+INSERT INTO t1 VALUES(13, 3,'c', -3.402823466E+38, 1.7976931348623157E+308);
+ALTER ONLINE TABLE t1 ADD f DECIMAL(5,2);
+INSERT INTO t1 VALUES(14, 4,'d', -3.402823466E+38, 1.7976931348623157E+308, 456.78);
+ALTER ONLINE TABLE t1 ADD g DATETIME;
+INSERT INTO t1 VALUES(15, 5,'e', -3.402823466E+38, 1.7976931348623157E+308, 456.78, '2007-10-26 12:00:00');
+ALTER ONLINE TABLE t1 ADD h BINARY(4);
+INSERT INTO t1 VALUES(16, 6,'f', -3.402823466E+38, 1.7976931348623157E+308, 456.78, '2007-10-26 12:00:00',"abcd");
+--echo **********************
+--echo "Master data"
+--echo **********************
+SELECT * FROM t1 ORDER BY c1;
+--sync_slave_with_master
+connection slave;
+--echo **********************
+--echo "Slave data"
+--echo **********************
+SELECT * FROM t1 ORDER BY c1;
+ 
+#
+# Update the new added column
+#
+connection master;
+UPDATE t1 SET c = "abcdef", d = 3.402823466E+38, e = 1.7976931348623157E+308, f = 987.65, g = '2007-10-22 22:22:22', h = "aaaa";
+--echo ***************************
+--echo "Master Data After Update"
+--echo ***************************
+SELECT * FROM t1 ORDER BY c1;
+--sync_slave_with_master
+connection slave;
+--echo *************************
+--echo "Slave Data After Update"
+--echo *************************
+SELECT * FROM t1 ORDER BY c1;
+
+connection master;
+DROP TABLE t1;
+
+--echo *************************************************
+--echo * Insert And Update New Added Columns With Commit
+--echo *************************************************
+connection master;
+CREATE TABLE t1 (a INT UNSIGNED KEY, b INT UNSIGNED) ROW_FORMAT=DYNAMIC ENGINE NDB;
+INSERT INTO t1 VALUES(1,1),(2,2);
+BEGIN;
+ALTER ONLINE TABLE t1 ADD c CHAR(19), ADD d VARCHAR(255), ADD e char(255);
+INSERT INTO t1 VALUES (3,0,'3','3','3'),(4,0,'4','4','4'),(5,0,null,null,null);
+UPDATE t1 SET c = 'aaa', d = 'bbb', e = 'ccc' WHERE a = 4;
+COMMIT;
+SELECT * FROM t1 ORDER BY a;
+--sync_slave_with_master
+connection slave;
+--echo *************************
+--echo "Slave Data With Commit
+--echo *************************
+SELECT * FROM t1 ORDER BY a;
+
+--echo ***************************************************
+--echo * Insert And Update New Added Columns With Rollback
+--echo ***************************************************
+connection master;
+DROP TABLE t1;
+CREATE TABLE t1 (a INT UNSIGNED KEY, b INT UNSIGNED) ROW_FORMAT=DYNAMIC ENGINE NDB;
+INSERT INTO t1 VALUES(1,1),(2,2);
+ALTER TABLE t1 ADD c CHAR(19), ADD d VARCHAR(255), ADD e char(255);
+BEGIN;
+INSERT INTO t1 VALUES (3,0,'3','3','3'),(4,0,'4','4','4'),(5,0,null,null,null);
+UPDATE t1 SET c = 'aaa', d = 'bbb', e = 'ccc' WHERE a = 4;
+ROLLBACK;
+SHOW CREATE TABLE t1;
+SELECT * FROM t1 ORDER BY a;
+--sync_slave_with_master
+connection slave;
+--echo *************************
+--echo "Slave Data With Rollback
+--echo *************************
+SHOW CREATE TABLE t1;
+SELECT * FROM t1 ORDER BY a;
 
 # cleanup
 --connection master
Thread
bk commit into 5.1 tree (gni:1.2663)gni2 Nov