List:Commits« Previous MessageNext Message »
From:Guilhem Bichot Date:June 28 2008 5:09pm
Subject:bzr commit into mysql-6.0 branch (guilhem:2669)
View as plain text  
#At file:///home/mysql_src/bzrrepos/mysql-6.0-maria/

 2669 Guilhem Bichot	2008-06-28
      Splitting too long test which timed out on power mac g5.
added:
  mysql-test/r/maria3.result
  mysql-test/t/maria3.test
modified:
  mysql-test/r/maria.result
  mysql-test/t/maria.test

per-file messages:
  mysql-test/r/maria.result
    result update
  mysql-test/r/maria3.result
    new result
  mysql-test/t/maria.test
    moving a piece to another test (too long)
  mysql-test/t/maria3.test
    a piece of maria.test
=== modified file 'mysql-test/r/maria.result'
--- a/mysql-test/r/maria.result	2008-06-26 17:48:42 +0000
+++ b/mysql-test/r/maria.result	2008-06-28 15:08:54 +0000
@@ -1866,536 +1866,3 @@ t1	CREATE TABLE `t1` (
   KEY `b` (`b`) KEY_BLOCK_SIZE=8192
 ) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 KEY_BLOCK_SIZE=16384
 drop table t1;
-create table t1 (a int not null, key `a` (a) key_block_size=512);
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `a` int(11) NOT NULL,
-  KEY `a` (`a`) KEY_BLOCK_SIZE=8192
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0
-drop table t1;
-create table t1 (a varchar(2048), key `a` (a) key_block_size=1000000000000000000);
-Warnings:
-Warning	1071	Specified key was too long; max key length is 1444 bytes
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `a` varchar(2048) DEFAULT NULL,
-  KEY `a` (`a`(1444)) KEY_BLOCK_SIZE=8192
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0
-drop table t1;
-create table t1 (a int not null, key `a` (a) key_block_size=1025);
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `a` int(11) NOT NULL,
-  KEY `a` (`a`) KEY_BLOCK_SIZE=8192
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0
-drop table t1;
-create table t1 (a int not null, key key_block_size=1024 (a));
-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 '=1024 (a))' at line 1
-create table t1 (a int not null, key `a` key_block_size=1024 (a));
-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 'key_block_size=1024 (a))' at
line 1
-CREATE TABLE t1 (
-c1 INT,
-c2 VARCHAR(300),
-KEY (c1) KEY_BLOCK_SIZE 1024,
-KEY (c2) KEY_BLOCK_SIZE 8192
-);
-INSERT INTO t1 VALUES (10, REPEAT('a', CEIL(RAND(10) * 300))),
-(11, REPEAT('b', CEIL(RAND() * 300))),
-(12, REPEAT('c', CEIL(RAND() * 300))),
-(13, REPEAT('d', CEIL(RAND() * 300))),
-(14, REPEAT('e', CEIL(RAND() * 300))),
-(15, REPEAT('f', CEIL(RAND() * 300))),
-(16, REPEAT('g', CEIL(RAND() * 300))),
-(17, REPEAT('h', CEIL(RAND() * 300))),
-(18, REPEAT('i', CEIL(RAND() * 300))),
-(19, REPEAT('j', CEIL(RAND() * 300))),
-(20, REPEAT('k', CEIL(RAND() * 300))),
-(21, REPEAT('l', CEIL(RAND() * 300))),
-(22, REPEAT('m', CEIL(RAND() * 300))),
-(23, REPEAT('n', CEIL(RAND() * 300))),
-(24, REPEAT('o', CEIL(RAND() * 300))),
-(25, REPEAT('p', CEIL(RAND() * 300))),
-(26, REPEAT('q', CEIL(RAND() * 300))),
-(27, REPEAT('r', CEIL(RAND() * 300))),
-(28, REPEAT('s', CEIL(RAND() * 300))),
-(29, REPEAT('t', CEIL(RAND() * 300))),
-(30, REPEAT('u', CEIL(RAND() * 300))),
-(31, REPEAT('v', CEIL(RAND() * 300))),
-(32, REPEAT('w', CEIL(RAND() * 300))),
-(33, REPEAT('x', CEIL(RAND() * 300))),
-(34, REPEAT('y', CEIL(RAND() * 300))),
-(35, REPEAT('z', CEIL(RAND() * 300)));
-INSERT INTO t1 SELECT * FROM t1;
-INSERT INTO t1 SELECT * FROM t1;
-CHECK TABLE t1;
-Table	Op	Msg_type	Msg_text
-test.t1	check	status	OK
-REPAIR TABLE t1;
-Table	Op	Msg_type	Msg_text
-test.t1	repair	status	OK
-DELETE FROM t1 WHERE c1 >= 10;
-CHECK TABLE t1;
-Table	Op	Msg_type	Msg_text
-test.t1	check	status	OK
-DROP TABLE t1;
-create table t1 (a int) transactional=0;
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `a` int(11) DEFAULT NULL
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 TRANSACTIONAL=0
-drop table t1;
-create table t1 (a int) row_format=dynamic transactional=0;
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `a` int(11) DEFAULT NULL
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=DYNAMIC TRANSACTIONAL=0
-drop table t1;
-create table t1 (a int) row_format=dynamic transactional=1;
-Warnings:
-Note	1478	Row format set to PAGE because of TRANSACTIONAL=1 option
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `a` int(11) DEFAULT NULL
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE TRANSACTIONAL=1
-alter table t1 row_format=PAGE;
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `a` int(11) DEFAULT NULL
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE TRANSACTIONAL=1
-alter table t1 row_format=DYNAMIC;
-Warnings:
-Note	1478	Row format set to PAGE because of TRANSACTIONAL=1 option
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `a` int(11) DEFAULT NULL
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE TRANSACTIONAL=1
-alter table t1 transactional=0;
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `a` int(11) DEFAULT NULL
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE TRANSACTIONAL=0
-alter table t1 row_format=DYNAMIC;
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `a` int(11) DEFAULT NULL
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=DYNAMIC TRANSACTIONAL=0
-drop table t1;
-create table t1 (a int) row_format=PAGE;
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `a` int(11) DEFAULT NULL
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE
-drop table t1;
-create table t1 (a int) row_format=PAGE TRANSACTIONAL=DEFAULT;
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `a` int(11) DEFAULT NULL
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE
-alter table t1 row_format=DYNAMIC;
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `a` int(11) DEFAULT NULL
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=DYNAMIC
-drop table t1;
-create table `t1` (
-t1_name varchar(255) default null,
-t1_id int(10) unsigned not null auto_increment,
-key (t1_name),
-primary key (t1_id)
-) engine=maria auto_increment = 1000 default charset=latin1;
-lock tables t1 write;
-INSERT INTO `t1` VALUES ('bla',1000),('bla',1001),('bla',1002);
-check table t1;
-Table	Op	Msg_type	Msg_text
-test.t1	check	status	OK
-unlock tables;
-create table t2 like t1;
-insert into t2 select * from t1;
-analyze table t2;
-Table	Op	Msg_type	Msg_text
-test.t2	analyze	status	Table is already up to date
-delete from t2;
-insert into t2 select * from t1;
-analyze table t2;
-Table	Op	Msg_type	Msg_text
-test.t2	analyze	status	Table is already up to date
-drop table t1,t2;
-create table t1 (a bigint auto_increment, primary key(a), b char(255), c varchar(20000));
-update t1 set b=repeat('a',100) where a between 1 and 100;
-check table t1;
-Table	Op	Msg_type	Msg_text
-test.t1	check	status	OK
-update t1 set c=repeat('a',8192*2) where a between 200 and 202;
-check table t1;
-Table	Op	Msg_type	Msg_text
-test.t1	check	status	OK
-drop table t1;
-CREATE TABLE t1 (a int, b int, v varchar(60000)) checksum=1 engine=maria;
-insert into t1 values (1,1,"aaa"),(1,2,null);
-checksum table t1;
-Table	Checksum
-test.t1	1112804611
-lock table t1 write;
-insert into t1 values (1,3,repeat('c',30000)),(4,4,repeat('a',30000));
-update t1 set v="row5" where b=4;
-delete from t1 where b=3;
-select a, b, length(v) from t1;
-a	b	length(v)
-1	1	3
-1	2	NULL
-4	4	4
-drop table t1;
-CREATE TABLE t1 (
-auto int(5) unsigned NOT NULL auto_increment,
-string char(10) default "hello",
-tiny tinyint(4) DEFAULT '0' NOT NULL ,
-short smallint(6) DEFAULT '1' NOT NULL ,
-medium mediumint(8) DEFAULT '0' NOT NULL,
-long_int int(11) DEFAULT '0' NOT NULL,
-longlong bigint(13) DEFAULT '0' NOT NULL,
-real_float float(13,1) DEFAULT 0.0 NOT NULL,
-real_double double(16,4),
-utiny tinyint(3) unsigned DEFAULT '0' NOT NULL,
-ushort smallint(5) unsigned zerofill DEFAULT '00000' NOT NULL,
-umedium mediumint(8) unsigned DEFAULT '0' NOT NULL,
-ulong int(11) unsigned DEFAULT '0' NOT NULL,
-ulonglong bigint(13) unsigned DEFAULT '0' NOT NULL,
-time_stamp timestamp,
-date_field date,	
-time_field time,	
-date_time datetime,
-blob_col blob,
-tinyblob_col tinyblob,
-mediumblob_col mediumblob  not null default '',
-longblob_col longblob  not null default '',
-options enum('one','two','tree') not null ,
-flags set('one','two','tree') not null default '',
-PRIMARY KEY (auto),
-KEY (utiny),
-KEY (tiny),
-KEY (short),
-KEY any_name (medium),
-KEY (longlong),
-KEY (real_float),
-KEY (ushort),
-KEY (umedium),
-KEY (ulong),
-KEY (ulonglong,ulong),
-KEY (options,flags)
-) engine=maria;
-insert into t1 values (10,1,1,1,1,1,1,1,1,1,1,1,1,1,NULL,0,0,0,1,1,1,1,'one','one');
-create table t2 (primary key (auto)) engine=maria row_format=page select auto+1 as auto,1
as t1, 'a' as t2, repeat('a',256) as t3, binary repeat('b',256) as t4, repeat('a',4096) as
t5, binary repeat('b',4096) as t6, '' as t7, binary '' as t8 from t1;
-check table t1,t2;
-Table	Op	Msg_type	Msg_text
-test.t1	check	status	OK
-test.t2	check	status	OK
-select t1,t2,length(t3),length(t4),length(t5),length(t6),t7,t8 from t2;
-t1	t2	length(t3)	length(t4)	length(t5)	length(t6)	t7	t8
-1	a	256	256	4096	4096		
-drop table t2;
-create table t2 (primary key (auto)) engine=maria row_format=dynamic select auto+1 as
auto,1 as t1, 'a' as t2, repeat('a',256) as t3, binary repeat('b',256) as t4,
repeat('a',4096) as t5, binary repeat('b',4096) as t6, '' as t7, binary '' as t8 from t1;
-check table t2;
-Table	Op	Msg_type	Msg_text
-test.t2	check	status	OK
-drop table t1,t2;
-CREATE TABLE t1 (seq int, s1 int, s2 blob);
-insert into t1 values (1, 1, MD5(1));
-update t1 set s1=2 where seq=1;
-check table t1 extended;
-Table	Op	Msg_type	Msg_text
-test.t1	check	status	OK
-drop table t1;
-show variables like 'maria%';
-Variable_name	Value
-maria_block_size	8192
-maria_checkpoint_interval	30
-maria_force_start_after_recovery_failures	0
-maria_log_file_size	4294959104
-maria_log_purge_type	immediate
-maria_max_sort_file_size	9223372036854775807
-maria_page_checksum	OFF
-maria_pagecache_age_threshold	300
-maria_pagecache_buffer_size	8388600
-maria_pagecache_division_limit	100
-maria_recover	OFF
-maria_repair_threads	1
-maria_sort_buffer_size	8388608
-maria_stats_method	nulls_unequal
-maria_sync_log_dir	NEWFILE
-show status like 'maria%';
-Variable_name	Value
-Maria_pagecache_blocks_not_flushed	#
-Maria_pagecache_blocks_unused	#
-Maria_pagecache_blocks_used	#
-Maria_pagecache_read_requests	#
-Maria_pagecache_reads	#
-Maria_pagecache_write_requests	#
-Maria_pagecache_writes	#
-create table t1 (b char(0));
-insert into t1 values(NULL),("");
-select length(b) from t1;
-length(b)
-NULL
-0
-alter table t1 add column c char(0), add key (c);
-insert into t1 values("",""),("",NULL);
-select length(b),length(c) from t1;
-length(b)	length(c)
-NULL	NULL
-0	NULL
-0	0
-0	NULL
-select length(b),length(c) from t1 where c is null;
-length(b)	length(c)
-NULL	NULL
-0	NULL
-0	NULL
-select length(b),length(c) from t1 where c is not null;
-length(b)	length(c)
-0	0
-select length(b),length(c) from t1 order by c;
-length(b)	length(c)
-NULL	NULL
-0	NULL
-0	NULL
-0	0
-alter table t1 add column d char(0) not null, add key (d);
-ERROR 42000: The used storage engine can't index column 'd'
-drop table t1;
-CREATE TABLE t1 (a bit(3));
-insert into t1 values (NULL),(0),(1),(2),(3),(4),(5),(6),(7);
-select hex(a) from t1;
-hex(a)
-NULL
-0
-1
-2
-3
-4
-5
-6
-7
-drop table t1;
-create table t1(a bit not null);
-insert into t1 values(0),(1);
-select a+0 from t1;
-a+0
-0
-1
-drop table t1;
-CREATE TABLE t1 (col1 int, s1 char(16) DEFAULT NULL, s2 char(16) DEFAULT NULL, KEY
(s1,s2));
-insert into t1 (col1) values(0);
-drop table t1;
-set global maria_page_checksum=1;
-create table t1 (a int);
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `a` int(11) DEFAULT NULL
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
-drop table t1;
-set global maria_log_file_size=4294967296;
-Warnings:
-Warning	1292	Truncated incorrect log_file_size value: '4294967296'
-create table t1 (a int not null);
-lock tables t1 write;
-insert into t1 values (1),(2);
-delete from t1;
-unlock tables;
-select * from t1;
-a
-insert into t1 values (1),(2);
-delete from t1;
-select * from t1;
-a
-drop table t1;
-create table t1 (c int);
-insert into t1 values(1),(2);
-create table t2 select * from t1;
-create table t3 select * from t1, t2;
-ERROR 42S21: Duplicate column name 'c'
-create table t3 select t1.c AS c1, t2.c AS c2,1 as "const" from t1, t2;
-drop table t1, t2, t3;
-create table t1 (t datetime) engine=maria;
-insert into t1 values
(101),(691231),(700101),(991231),(10000101),(99991231),(101000000),(691231000000),(700101000000),(991231235959),(10000101000000),(99991231235959),(20030100000000),(20030000000000);
-select * from t1;
-t
-2000-01-01 00:00:00
-2069-12-31 00:00:00
-1970-01-01 00:00:00
-1999-12-31 00:00:00
-1000-01-01 00:00:00
-9999-12-31 00:00:00
-2000-01-01 00:00:00
-2069-12-31 00:00:00
-1970-01-01 00:00:00
-1999-12-31 23:59:59
-1000-01-01 00:00:00
-9999-12-31 23:59:59
-2003-01-00 00:00:00
-2003-00-00 00:00:00
-optimize table t1;
-Table	Op	Msg_type	Msg_text
-test.t1	optimize	status	OK
-check table t1;
-Table	Op	Msg_type	Msg_text
-test.t1	check	status	OK
-delete from t1 where t > 0;
-optimize table t1;
-Table	Op	Msg_type	Msg_text
-test.t1	optimize	status	OK
-check table t1;
-Table	Op	Msg_type	Msg_text
-test.t1	check	status	OK
-drop table t1;
-SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
-CREATE TABLE t1 (id int(11) PRIMARY KEY auto_increment,f1 varchar(10) NOT NULL UNIQUE);
-INSERT IGNORE INTO t1 (f1) VALUES ("test1");
-INSERT IGNORE INTO t1 (f1) VALUES ("test1");
-INSERT IGNORE INTO t1 (f1) VALUES ("test2");
-SELECT * FROM t1;
-id	f1
-1	test1
-2	test2
-drop table t1;
-SET SQL_MODE = 'TRADITIONAL';
-create table t1 (n int not null primary key auto_increment, c char(1), unique(c));
-insert into t1 values(100, "a");
-insert into t1 values(300, "b");
-insert into t1 values(50, "a");
-ERROR 23000: Duplicate entry 'a' for key 'c'
-insert into t1 values(null, "c");
-select * from t1;
-n	c
-100	a
-300	b
-301	c
-update t1 set n=400,c='a' where n=301;
-ERROR 23000: Duplicate entry 'a' for key 'c'
-insert into t1 values(null, "d");
-select * from t1;
-n	c
-100	a
-300	b
-301	c
-302	d
-drop table t1;
-create table t1 (n int not null primary key auto_increment, c char(1), unique(c))
transactional=0 row_format=dynamic;
-insert into t1 values(100, "a");
-insert into t1 values(300, "b");
-insert into t1 values(50, "a");
-ERROR 23000: Duplicate entry 'a' for key 'c'
-insert into t1 values(null, "c");
-select * from t1;
-n	c
-100	a
-300	b
-301	c
-update t1 set n=400,c='a' where n=301;
-ERROR 23000: Duplicate entry 'a' for key 'c'
-insert into t1 values(null, "d");
-select * from t1;
-n	c
-100	a
-300	b
-301	c
-302	d
-drop table t1;
-create table t1 (n int not null, c char(1)) engine=maria;
-alter table t1 engine=myisam;
-alter table t1 engine=maria;
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `n` int(11) NOT NULL,
-  `c` char(1) DEFAULT NULL
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
-drop table t1;
-create table t1 (n int not null, c char(1)) engine=maria transactional=1;
-alter table t1 engine=myisam;
-Warnings:
-Error	1478	Table storage engine 'MyISAM' does not support the create option
'TRANSACTIONAL=1'
-alter table t1 engine=maria;
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `n` int(11) NOT NULL,
-  `c` char(1) DEFAULT NULL
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 TRANSACTIONAL=1
-drop table t1;
-create table t1 (n int not null, c char(1)) engine=myisam transactional=1;
-Warnings:
-Error	1478	Table storage engine 'MyISAM' does not support the create option
'TRANSACTIONAL=1'
-alter table t1 engine=maria;
-show create table t1;
-Table	Create Table
-t1	CREATE TABLE `t1` (
-  `n` int(11) NOT NULL,
-  `c` char(1) DEFAULT NULL
-) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 TRANSACTIONAL=1
-drop table t1;
-create table t1 (a int, key(a)) transactional=0;
-insert into t1 values (0),(1),(2),(3),(4);
-insert into t1 select NULL from t1;
-check table t1;
-Table	Op	Msg_type	Msg_text
-test.t1	check	status	OK
-drop table t1;
-create temporary table t1 (a int, key(a)) transactional=1;
-create temporary table t2 (a int, key(a)) transactional=1;
-insert into t1 values (0),(1),(2),(3),(4);
-insert into t2 select * from t1;
-insert into t1 select NULL from t2;
-select count(*) from t1;
-count(*)
-10
-select count(*) from t1 where a >= 4;
-count(*)
-1
-drop table t1;
-create table t1 (i int auto_increment not null primary key) transactional=0;
-check table t1 extended;
-Table	Op	Msg_type	Msg_text
-test.t1	check	status	OK
-delete from t1 where i = 10;
-check table t1 extended;
-Table	Op	Msg_type	Msg_text
-test.t1	check	status	OK
-drop table t1;
-create table t1 (i int auto_increment not null primary key);
-check table t1 extended;
-Table	Op	Msg_type	Msg_text
-test.t1	check	status	OK
-delete from t1 where i = 10;
-check table t1 extended;
-Table	Op	Msg_type	Msg_text
-test.t1	check	status	OK
-drop table t1;
-CREATE TABLE t1(a VARCHAR(20), FULLTEXT(a)) transactional=0;
-INSERT INTO t1 VALUES('Offside'),('City Of God');
-SELECT a FROM t1 WHERE MATCH a AGAINST ('+city of*' IN BOOLEAN MODE);
-a
-City Of God
-SELECT a FROM t1 WHERE MATCH a AGAINST ('+city (of)*' IN BOOLEAN MODE);
-a
-City Of God
-DROP TABLE t1;
-create table t1(a int) engine=maria transactional=1;
-select CREATE_OPTIONS from information_schema.TABLES where
-TABLE_SCHEMA='test' and TABLE_NAME='t1';
-CREATE_OPTIONS
-transactional=1
-drop table t1;

=== added file 'mysql-test/r/maria3.result'
--- a/mysql-test/r/maria3.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/r/maria3.result	2008-06-28 15:08:54 +0000
@@ -0,0 +1,542 @@
+select * from INFORMATION_SCHEMA.ENGINES where ENGINE="MARIA";
+ENGINE	SUPPORT	COMMENT	TRANSACTIONS	XA	SAVEPOINTS
+MARIA	YES	Crash-safe tables with MyISAM heritage	YES	NO	NO
+set global storage_engine=maria;
+set session storage_engine=maria;
+set global maria_page_checksum=0;
+set global maria_log_file_size=4294967295;
+drop table if exists t1,t2;
+SET SQL_WARNINGS=1;
+create table t1 (a int not null, key `a` (a) key_block_size=512);
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) NOT NULL,
+  KEY `a` (`a`) KEY_BLOCK_SIZE=8192
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0
+drop table t1;
+create table t1 (a varchar(2048), key `a` (a) key_block_size=1000000000000000000);
+Warnings:
+Warning	1071	Specified key was too long; max key length is 1444 bytes
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` varchar(2048) DEFAULT NULL,
+  KEY `a` (`a`(1444)) KEY_BLOCK_SIZE=8192
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0
+drop table t1;
+create table t1 (a int not null, key `a` (a) key_block_size=1025);
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) NOT NULL,
+  KEY `a` (`a`) KEY_BLOCK_SIZE=8192
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0
+drop table t1;
+create table t1 (a int not null, key key_block_size=1024 (a));
+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 '=1024 (a))' at line 1
+create table t1 (a int not null, key `a` key_block_size=1024 (a));
+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 'key_block_size=1024 (a))' at
line 1
+CREATE TABLE t1 (
+c1 INT,
+c2 VARCHAR(300),
+KEY (c1) KEY_BLOCK_SIZE 1024,
+KEY (c2) KEY_BLOCK_SIZE 8192
+);
+INSERT INTO t1 VALUES (10, REPEAT('a', CEIL(RAND(10) * 300))),
+(11, REPEAT('b', CEIL(RAND() * 300))),
+(12, REPEAT('c', CEIL(RAND() * 300))),
+(13, REPEAT('d', CEIL(RAND() * 300))),
+(14, REPEAT('e', CEIL(RAND() * 300))),
+(15, REPEAT('f', CEIL(RAND() * 300))),
+(16, REPEAT('g', CEIL(RAND() * 300))),
+(17, REPEAT('h', CEIL(RAND() * 300))),
+(18, REPEAT('i', CEIL(RAND() * 300))),
+(19, REPEAT('j', CEIL(RAND() * 300))),
+(20, REPEAT('k', CEIL(RAND() * 300))),
+(21, REPEAT('l', CEIL(RAND() * 300))),
+(22, REPEAT('m', CEIL(RAND() * 300))),
+(23, REPEAT('n', CEIL(RAND() * 300))),
+(24, REPEAT('o', CEIL(RAND() * 300))),
+(25, REPEAT('p', CEIL(RAND() * 300))),
+(26, REPEAT('q', CEIL(RAND() * 300))),
+(27, REPEAT('r', CEIL(RAND() * 300))),
+(28, REPEAT('s', CEIL(RAND() * 300))),
+(29, REPEAT('t', CEIL(RAND() * 300))),
+(30, REPEAT('u', CEIL(RAND() * 300))),
+(31, REPEAT('v', CEIL(RAND() * 300))),
+(32, REPEAT('w', CEIL(RAND() * 300))),
+(33, REPEAT('x', CEIL(RAND() * 300))),
+(34, REPEAT('y', CEIL(RAND() * 300))),
+(35, REPEAT('z', CEIL(RAND() * 300)));
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+CHECK TABLE t1;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+REPAIR TABLE t1;
+Table	Op	Msg_type	Msg_text
+test.t1	repair	status	OK
+DELETE FROM t1 WHERE c1 >= 10;
+CHECK TABLE t1;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+DROP TABLE t1;
+create table t1 (a int) transactional=0;
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) DEFAULT NULL
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 TRANSACTIONAL=0
+drop table t1;
+create table t1 (a int) row_format=dynamic transactional=0;
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) DEFAULT NULL
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=DYNAMIC TRANSACTIONAL=0
+drop table t1;
+create table t1 (a int) row_format=dynamic transactional=1;
+Warnings:
+Note	1478	Row format set to PAGE because of TRANSACTIONAL=1 option
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) DEFAULT NULL
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE TRANSACTIONAL=1
+alter table t1 row_format=PAGE;
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) DEFAULT NULL
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE TRANSACTIONAL=1
+alter table t1 row_format=DYNAMIC;
+Warnings:
+Note	1478	Row format set to PAGE because of TRANSACTIONAL=1 option
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) DEFAULT NULL
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE TRANSACTIONAL=1
+alter table t1 transactional=0;
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) DEFAULT NULL
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE TRANSACTIONAL=0
+alter table t1 row_format=DYNAMIC;
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) DEFAULT NULL
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=DYNAMIC TRANSACTIONAL=0
+drop table t1;
+create table t1 (a int) row_format=PAGE;
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) DEFAULT NULL
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE
+drop table t1;
+create table t1 (a int) row_format=PAGE TRANSACTIONAL=DEFAULT;
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) DEFAULT NULL
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=PAGE
+alter table t1 row_format=DYNAMIC;
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) DEFAULT NULL
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 ROW_FORMAT=DYNAMIC
+drop table t1;
+create table `t1` (
+t1_name varchar(255) default null,
+t1_id int(10) unsigned not null auto_increment,
+key (t1_name),
+primary key (t1_id)
+) engine=maria auto_increment = 1000 default charset=latin1;
+lock tables t1 write;
+INSERT INTO `t1` VALUES ('bla',1000),('bla',1001),('bla',1002);
+check table t1;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+unlock tables;
+create table t2 like t1;
+insert into t2 select * from t1;
+analyze table t2;
+Table	Op	Msg_type	Msg_text
+test.t2	analyze	status	Table is already up to date
+delete from t2;
+insert into t2 select * from t1;
+analyze table t2;
+Table	Op	Msg_type	Msg_text
+test.t2	analyze	status	Table is already up to date
+drop table t1,t2;
+create table t1 (a bigint auto_increment, primary key(a), b char(255), c varchar(20000));
+update t1 set b=repeat('a',100) where a between 1 and 100;
+check table t1;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+update t1 set c=repeat('a',8192*2) where a between 200 and 202;
+check table t1;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+drop table t1;
+CREATE TABLE t1 (a int, b int, v varchar(60000)) checksum=1 engine=maria;
+insert into t1 values (1,1,"aaa"),(1,2,null);
+checksum table t1;
+Table	Checksum
+test.t1	1112804611
+lock table t1 write;
+insert into t1 values (1,3,repeat('c',30000)),(4,4,repeat('a',30000));
+update t1 set v="row5" where b=4;
+delete from t1 where b=3;
+select a, b, length(v) from t1;
+a	b	length(v)
+1	1	3
+1	2	NULL
+4	4	4
+drop table t1;
+CREATE TABLE t1 (
+auto int(5) unsigned NOT NULL auto_increment,
+string char(10) default "hello",
+tiny tinyint(4) DEFAULT '0' NOT NULL ,
+short smallint(6) DEFAULT '1' NOT NULL ,
+medium mediumint(8) DEFAULT '0' NOT NULL,
+long_int int(11) DEFAULT '0' NOT NULL,
+longlong bigint(13) DEFAULT '0' NOT NULL,
+real_float float(13,1) DEFAULT 0.0 NOT NULL,
+real_double double(16,4),
+utiny tinyint(3) unsigned DEFAULT '0' NOT NULL,
+ushort smallint(5) unsigned zerofill DEFAULT '00000' NOT NULL,
+umedium mediumint(8) unsigned DEFAULT '0' NOT NULL,
+ulong int(11) unsigned DEFAULT '0' NOT NULL,
+ulonglong bigint(13) unsigned DEFAULT '0' NOT NULL,
+time_stamp timestamp,
+date_field date,	
+time_field time,	
+date_time datetime,
+blob_col blob,
+tinyblob_col tinyblob,
+mediumblob_col mediumblob  not null default '',
+longblob_col longblob  not null default '',
+options enum('one','two','tree') not null ,
+flags set('one','two','tree') not null default '',
+PRIMARY KEY (auto),
+KEY (utiny),
+KEY (tiny),
+KEY (short),
+KEY any_name (medium),
+KEY (longlong),
+KEY (real_float),
+KEY (ushort),
+KEY (umedium),
+KEY (ulong),
+KEY (ulonglong,ulong),
+KEY (options,flags)
+) engine=maria;
+insert into t1 values (10,1,1,1,1,1,1,1,1,1,1,1,1,1,NULL,0,0,0,1,1,1,1,'one','one');
+create table t2 (primary key (auto)) engine=maria row_format=page select auto+1 as auto,1
as t1, 'a' as t2, repeat('a',256) as t3, binary repeat('b',256) as t4, repeat('a',4096) as
t5, binary repeat('b',4096) as t6, '' as t7, binary '' as t8 from t1;
+check table t1,t2;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+test.t2	check	status	OK
+select t1,t2,length(t3),length(t4),length(t5),length(t6),t7,t8 from t2;
+t1	t2	length(t3)	length(t4)	length(t5)	length(t6)	t7	t8
+1	a	256	256	4096	4096		
+drop table t2;
+create table t2 (primary key (auto)) engine=maria row_format=dynamic select auto+1 as
auto,1 as t1, 'a' as t2, repeat('a',256) as t3, binary repeat('b',256) as t4,
repeat('a',4096) as t5, binary repeat('b',4096) as t6, '' as t7, binary '' as t8 from t1;
+check table t2;
+Table	Op	Msg_type	Msg_text
+test.t2	check	status	OK
+drop table t1,t2;
+CREATE TABLE t1 (seq int, s1 int, s2 blob);
+insert into t1 values (1, 1, MD5(1));
+update t1 set s1=2 where seq=1;
+check table t1 extended;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+drop table t1;
+show variables like 'maria%';
+Variable_name	Value
+maria_block_size	8192
+maria_checkpoint_interval	30
+maria_force_start_after_recovery_failures	0
+maria_log_file_size	4294959104
+maria_log_purge_type	immediate
+maria_max_sort_file_size	9223372036854775807
+maria_page_checksum	OFF
+maria_pagecache_age_threshold	300
+maria_pagecache_buffer_size	8388600
+maria_pagecache_division_limit	100
+maria_recover	OFF
+maria_repair_threads	1
+maria_sort_buffer_size	8388608
+maria_stats_method	nulls_unequal
+maria_sync_log_dir	NEWFILE
+show status like 'maria%';
+Variable_name	Value
+Maria_pagecache_blocks_not_flushed	#
+Maria_pagecache_blocks_unused	#
+Maria_pagecache_blocks_used	#
+Maria_pagecache_read_requests	#
+Maria_pagecache_reads	#
+Maria_pagecache_write_requests	#
+Maria_pagecache_writes	#
+create table t1 (b char(0));
+insert into t1 values(NULL),("");
+select length(b) from t1;
+length(b)
+NULL
+0
+alter table t1 add column c char(0), add key (c);
+insert into t1 values("",""),("",NULL);
+select length(b),length(c) from t1;
+length(b)	length(c)
+NULL	NULL
+0	NULL
+0	0
+0	NULL
+select length(b),length(c) from t1 where c is null;
+length(b)	length(c)
+NULL	NULL
+0	NULL
+0	NULL
+select length(b),length(c) from t1 where c is not null;
+length(b)	length(c)
+0	0
+select length(b),length(c) from t1 order by c;
+length(b)	length(c)
+NULL	NULL
+0	NULL
+0	NULL
+0	0
+alter table t1 add column d char(0) not null, add key (d);
+ERROR 42000: The used storage engine can't index column 'd'
+drop table t1;
+CREATE TABLE t1 (a bit(3));
+insert into t1 values (NULL),(0),(1),(2),(3),(4),(5),(6),(7);
+select hex(a) from t1;
+hex(a)
+NULL
+0
+1
+2
+3
+4
+5
+6
+7
+drop table t1;
+create table t1(a bit not null);
+insert into t1 values(0),(1);
+select a+0 from t1;
+a+0
+0
+1
+drop table t1;
+CREATE TABLE t1 (col1 int, s1 char(16) DEFAULT NULL, s2 char(16) DEFAULT NULL, KEY
(s1,s2));
+insert into t1 (col1) values(0);
+drop table t1;
+set global maria_page_checksum=1;
+create table t1 (a int);
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `a` int(11) DEFAULT NULL
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
+drop table t1;
+set global maria_log_file_size=4294967296;
+Warnings:
+Warning	1292	Truncated incorrect log_file_size value: '4294967296'
+create table t1 (a int not null);
+lock tables t1 write;
+insert into t1 values (1),(2);
+delete from t1;
+unlock tables;
+select * from t1;
+a
+insert into t1 values (1),(2);
+delete from t1;
+select * from t1;
+a
+drop table t1;
+create table t1 (c int);
+insert into t1 values(1),(2);
+create table t2 select * from t1;
+create table t3 select * from t1, t2;
+ERROR 42S21: Duplicate column name 'c'
+create table t3 select t1.c AS c1, t2.c AS c2,1 as "const" from t1, t2;
+drop table t1, t2, t3;
+create table t1 (t datetime) engine=maria;
+insert into t1 values
(101),(691231),(700101),(991231),(10000101),(99991231),(101000000),(691231000000),(700101000000),(991231235959),(10000101000000),(99991231235959),(20030100000000),(20030000000000);
+select * from t1;
+t
+2000-01-01 00:00:00
+2069-12-31 00:00:00
+1970-01-01 00:00:00
+1999-12-31 00:00:00
+1000-01-01 00:00:00
+9999-12-31 00:00:00
+2000-01-01 00:00:00
+2069-12-31 00:00:00
+1970-01-01 00:00:00
+1999-12-31 23:59:59
+1000-01-01 00:00:00
+9999-12-31 23:59:59
+2003-01-00 00:00:00
+2003-00-00 00:00:00
+optimize table t1;
+Table	Op	Msg_type	Msg_text
+test.t1	optimize	status	OK
+check table t1;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+delete from t1 where t > 0;
+optimize table t1;
+Table	Op	Msg_type	Msg_text
+test.t1	optimize	status	OK
+check table t1;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+drop table t1;
+SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
+CREATE TABLE t1 (id int(11) PRIMARY KEY auto_increment,f1 varchar(10) NOT NULL UNIQUE);
+INSERT IGNORE INTO t1 (f1) VALUES ("test1");
+INSERT IGNORE INTO t1 (f1) VALUES ("test1");
+INSERT IGNORE INTO t1 (f1) VALUES ("test2");
+SELECT * FROM t1;
+id	f1
+1	test1
+2	test2
+drop table t1;
+SET SQL_MODE = 'TRADITIONAL';
+create table t1 (n int not null primary key auto_increment, c char(1), unique(c));
+insert into t1 values(100, "a");
+insert into t1 values(300, "b");
+insert into t1 values(50, "a");
+ERROR 23000: Duplicate entry 'a' for key 'c'
+insert into t1 values(null, "c");
+select * from t1;
+n	c
+100	a
+300	b
+301	c
+update t1 set n=400,c='a' where n=301;
+ERROR 23000: Duplicate entry 'a' for key 'c'
+insert into t1 values(null, "d");
+select * from t1;
+n	c
+100	a
+300	b
+301	c
+302	d
+drop table t1;
+create table t1 (n int not null primary key auto_increment, c char(1), unique(c))
transactional=0 row_format=dynamic;
+insert into t1 values(100, "a");
+insert into t1 values(300, "b");
+insert into t1 values(50, "a");
+ERROR 23000: Duplicate entry 'a' for key 'c'
+insert into t1 values(null, "c");
+select * from t1;
+n	c
+100	a
+300	b
+301	c
+update t1 set n=400,c='a' where n=301;
+ERROR 23000: Duplicate entry 'a' for key 'c'
+insert into t1 values(null, "d");
+select * from t1;
+n	c
+100	a
+300	b
+301	c
+302	d
+drop table t1;
+create table t1 (n int not null, c char(1)) engine=maria;
+alter table t1 engine=myisam;
+alter table t1 engine=maria;
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `n` int(11) NOT NULL,
+  `c` char(1) DEFAULT NULL
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1
+drop table t1;
+create table t1 (n int not null, c char(1)) engine=maria transactional=1;
+alter table t1 engine=myisam;
+Warnings:
+Error	1478	Table storage engine 'MyISAM' does not support the create option
'TRANSACTIONAL=1'
+alter table t1 engine=maria;
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `n` int(11) NOT NULL,
+  `c` char(1) DEFAULT NULL
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 TRANSACTIONAL=1
+drop table t1;
+create table t1 (n int not null, c char(1)) engine=myisam transactional=1;
+Warnings:
+Error	1478	Table storage engine 'MyISAM' does not support the create option
'TRANSACTIONAL=1'
+alter table t1 engine=maria;
+show create table t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `n` int(11) NOT NULL,
+  `c` char(1) DEFAULT NULL
+) ENGINE=MARIA DEFAULT CHARSET=latin1 PAGE_CHECKSUM=1 TRANSACTIONAL=1
+drop table t1;
+create table t1 (a int, key(a)) transactional=0;
+insert into t1 values (0),(1),(2),(3),(4);
+insert into t1 select NULL from t1;
+check table t1;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+drop table t1;
+create temporary table t1 (a int, key(a)) transactional=1;
+create temporary table t2 (a int, key(a)) transactional=1;
+insert into t1 values (0),(1),(2),(3),(4);
+insert into t2 select * from t1;
+insert into t1 select NULL from t2;
+select count(*) from t1;
+count(*)
+10
+select count(*) from t1 where a >= 4;
+count(*)
+1
+drop table t1;
+create table t1 (i int auto_increment not null primary key) transactional=0;
+check table t1 extended;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+delete from t1 where i = 10;
+check table t1 extended;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+drop table t1;
+create table t1 (i int auto_increment not null primary key);
+check table t1 extended;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+delete from t1 where i = 10;
+check table t1 extended;
+Table	Op	Msg_type	Msg_text
+test.t1	check	status	OK
+drop table t1;
+CREATE TABLE t1(a VARCHAR(20), FULLTEXT(a)) transactional=0;
+INSERT INTO t1 VALUES('Offside'),('City Of God');
+SELECT a FROM t1 WHERE MATCH a AGAINST ('+city of*' IN BOOLEAN MODE);
+a
+City Of God
+SELECT a FROM t1 WHERE MATCH a AGAINST ('+city (of)*' IN BOOLEAN MODE);
+a
+City Of God
+DROP TABLE t1;
+create table t1(a int) engine=maria transactional=1;
+select CREATE_OPTIONS from information_schema.TABLES where
+TABLE_SCHEMA='test' and TABLE_NAME='t1';
+CREATE_OPTIONS
+transactional=1
+drop table t1;

=== modified file 'mysql-test/t/maria.test'
--- a/mysql-test/t/maria.test	2008-06-26 17:48:42 +0000
+++ b/mysql-test/t/maria.test	2008-06-28 15:08:54 +0000
@@ -1150,455 +1150,6 @@ create table t1 (a int not null, b int, 
 show create table t1;
 drop table t1;
 
-
-# Test limits and errors of key_block_size
-
-create table t1 (a int not null, key `a` (a) key_block_size=512);
-show create table t1;
-drop table t1;
-
-create table t1 (a varchar(2048), key `a` (a) key_block_size=1000000000000000000);
-show create table t1;
-drop table t1;
-
-create table t1 (a int not null, key `a` (a) key_block_size=1025);
-show create table t1;
-drop table t1;
-
---error 1064
-create table t1 (a int not null, key key_block_size=1024 (a));
---error 1064
-create table t1 (a int not null, key `a` key_block_size=1024 (a));
-
-#
-# Test of changing MI_KEY_BLOCK_LENGTH
-#
-
-CREATE TABLE t1 (
-  c1 INT,
-  c2 VARCHAR(300),
-  KEY (c1) KEY_BLOCK_SIZE 1024,
-  KEY (c2) KEY_BLOCK_SIZE 8192
-  );
-INSERT INTO t1 VALUES (10, REPEAT('a', CEIL(RAND(10) * 300))),
-  (11, REPEAT('b', CEIL(RAND() * 300))),
-  (12, REPEAT('c', CEIL(RAND() * 300))),
-  (13, REPEAT('d', CEIL(RAND() * 300))),
-  (14, REPEAT('e', CEIL(RAND() * 300))),
-  (15, REPEAT('f', CEIL(RAND() * 300))),
-  (16, REPEAT('g', CEIL(RAND() * 300))),
-  (17, REPEAT('h', CEIL(RAND() * 300))),
-  (18, REPEAT('i', CEIL(RAND() * 300))),
-  (19, REPEAT('j', CEIL(RAND() * 300))),
-  (20, REPEAT('k', CEIL(RAND() * 300))),
-  (21, REPEAT('l', CEIL(RAND() * 300))),
-  (22, REPEAT('m', CEIL(RAND() * 300))),
-  (23, REPEAT('n', CEIL(RAND() * 300))),
-  (24, REPEAT('o', CEIL(RAND() * 300))),
-  (25, REPEAT('p', CEIL(RAND() * 300))),
-  (26, REPEAT('q', CEIL(RAND() * 300))),
-  (27, REPEAT('r', CEIL(RAND() * 300))),
-  (28, REPEAT('s', CEIL(RAND() * 300))),
-  (29, REPEAT('t', CEIL(RAND() * 300))),
-  (30, REPEAT('u', CEIL(RAND() * 300))),
-  (31, REPEAT('v', CEIL(RAND() * 300))),
-  (32, REPEAT('w', CEIL(RAND() * 300))),
-  (33, REPEAT('x', CEIL(RAND() * 300))),
-  (34, REPEAT('y', CEIL(RAND() * 300))),
-  (35, REPEAT('z', CEIL(RAND() * 300)));
-INSERT INTO t1 SELECT * FROM t1;
-INSERT INTO t1 SELECT * FROM t1;
-CHECK TABLE t1;
-REPAIR TABLE t1;
-DELETE FROM t1 WHERE c1 >= 10;
-CHECK TABLE t1;
-DROP TABLE t1;
-
-#
-# Test that TRANSACTIONAL is preserved
-#
-
-create table t1 (a int) transactional=0;
-show create table t1;
-drop table t1;
-create table t1 (a int) row_format=dynamic transactional=0;
-show create table t1;
-drop table t1;
-create table t1 (a int) row_format=dynamic transactional=1;
-show create table t1;
-alter table t1 row_format=PAGE;
-show create table t1;
-alter table t1 row_format=DYNAMIC;
-show create table t1;
-alter table t1 transactional=0;
-show create table t1;
-alter table t1 row_format=DYNAMIC;
-show create table t1;
-drop table t1;
-create table t1 (a int) row_format=PAGE;
-show create table t1;
-drop table t1;
-create table t1 (a int) row_format=PAGE TRANSACTIONAL=DEFAULT;
-show create table t1;
-alter table t1 row_format=DYNAMIC;
-show create table t1;
-drop table t1;
-
-# CHECK TABLE was reporting
-# "Size of datafile is: 0         Should be: 16384"
-#
-
-create table `t1` (
-    t1_name varchar(255) default null,
-    t1_id int(10) unsigned not null auto_increment,
-    key (t1_name),
-    primary key (t1_id)
-) engine=maria auto_increment = 1000 default charset=latin1;
-lock tables t1 write;
-INSERT INTO `t1` VALUES ('bla',1000),('bla',1001),('bla',1002);
-check table t1;
-unlock tables;
-
-#
-# Check that an empty table uses fast recreate of index when we fill it
-# with insert ... select.
-
-create table t2 like t1;
-insert into t2 select * from t1;
-
-# This should say that the table is already up to date
-analyze table t2;
-delete from t2;
-insert into t2 select * from t1;
-analyze table t2;
-
-drop table t1,t2;
-
-#
-# Test when expanding a row so that it doesn't fit into the same page
-#
-
-create table t1 (a bigint auto_increment, primary key(a), b char(255), c varchar(20000));
-
-let $1=1000;
---disable_query_log
---disable_warnings
-while ($1)
-{
-  insert into t1 () values();
-  dec $1;
-}
---enable_query_log
-update t1 set b=repeat('a',100) where a between 1 and 100;
-check table t1;
-update t1 set c=repeat('a',8192*2) where a between 200 and 202;
-check table t1;
-drop table t1;
-
-#
-# Test where we shrink varchar
-#
-
-CREATE TABLE t1 (a int, b int, v varchar(60000)) checksum=1 engine=maria;
-insert into t1 values (1,1,"aaa"),(1,2,null);
-checksum table t1;
-lock table t1 write;
-insert into t1 values (1,3,repeat('c',30000)),(4,4,repeat('a',30000));
-update t1 set v="row5" where b=4;
-delete from t1 where b=3;
-select a, b, length(v) from t1;
-drop table t1;
-
-#
-# Test tail pages for blobs
-#
-
-CREATE TABLE t1 (
-  auto int(5) unsigned NOT NULL auto_increment,
-  string char(10) default "hello",
-  tiny tinyint(4) DEFAULT '0' NOT NULL ,
-  short smallint(6) DEFAULT '1' NOT NULL ,
-  medium mediumint(8) DEFAULT '0' NOT NULL,
-  long_int int(11) DEFAULT '0' NOT NULL,
-  longlong bigint(13) DEFAULT '0' NOT NULL,
-  real_float float(13,1) DEFAULT 0.0 NOT NULL,
-  real_double double(16,4),
-  utiny tinyint(3) unsigned DEFAULT '0' NOT NULL,
-  ushort smallint(5) unsigned zerofill DEFAULT '00000' NOT NULL,
-  umedium mediumint(8) unsigned DEFAULT '0' NOT NULL,
-  ulong int(11) unsigned DEFAULT '0' NOT NULL,
-  ulonglong bigint(13) unsigned DEFAULT '0' NOT NULL,
-  time_stamp timestamp,
-  date_field date,	
-  time_field time,	
-  date_time datetime,
-  blob_col blob,
-  tinyblob_col tinyblob,
-  mediumblob_col mediumblob  not null default '',
-  longblob_col longblob  not null default '',
-  options enum('one','two','tree') not null ,
-  flags set('one','two','tree') not null default '',
-  PRIMARY KEY (auto),
-  KEY (utiny),
-  KEY (tiny),
-  KEY (short),
-  KEY any_name (medium),
-  KEY (longlong),
-  KEY (real_float),
-  KEY (ushort),
-  KEY (umedium),
-  KEY (ulong),
-  KEY (ulonglong,ulong),
-  KEY (options,flags)
-) engine=maria;
-insert into t1 values (10,1,1,1,1,1,1,1,1,1,1,1,1,1,NULL,0,0,0,1,1,1,1,'one','one');
-create table t2 (primary key (auto)) engine=maria row_format=page select auto+1 as auto,1
as t1, 'a' as t2, repeat('a',256) as t3, binary repeat('b',256) as t4, repeat('a',4096) as
t5, binary repeat('b',4096) as t6, '' as t7, binary '' as t8 from t1;
-check table t1,t2;
-select t1,t2,length(t3),length(t4),length(t5),length(t6),t7,t8 from t2;
-drop table t2;
-create table t2 (primary key (auto)) engine=maria row_format=dynamic select auto+1 as
auto,1 as t1, 'a' as t2, repeat('a',256) as t3, binary repeat('b',256) as t4,
repeat('a',4096) as t5, binary repeat('b',4096) as t6, '' as t7, binary '' as t8 from t1;
-check table t2;
-drop table t1,t2;
-
-# Test UPDATE with small BLOB which fits on head page
-
-CREATE TABLE t1 (seq int, s1 int, s2 blob);
-insert into t1 values (1, 1, MD5(1));
-update t1 set s1=2 where seq=1;
-check table t1 extended;
-drop table t1;
-
-# Fix if we are using safemalloc
---replace_result 8388572 8388600
-show variables like 'maria%';
---replace_column 2 #
-show status like 'maria%';
-
-#
-# Test creating table with no field data and index on zero length columns
-#
-
-create table t1 (b char(0));
-insert into t1 values(NULL),("");
-select length(b) from t1;
-alter table t1 add column c char(0), add key (c);
-insert into t1 values("",""),("",NULL);
-select length(b),length(c) from t1;
-select length(b),length(c) from t1 where c is null;
-select length(b),length(c) from t1 where c is not null;
-select length(b),length(c) from t1 order by c;
---error 1167
-alter table t1 add column d char(0) not null, add key (d);
-drop table t1;
-
-CREATE TABLE t1 (a bit(3));
-insert into t1 values (NULL),(0),(1),(2),(3),(4),(5),(6),(7);
-select hex(a) from t1;
-drop table t1;
-create table t1(a bit not null);
-insert into t1 values(0),(1);
-select a+0 from t1;
-drop table t1;
-
-#
-# Test of min_key_length
-#
-
-CREATE TABLE t1 (col1 int, s1 char(16) DEFAULT NULL, s2 char(16) DEFAULT NULL, KEY
(s1,s2));
-insert into t1 (col1) values(0);
-drop table t1;
-
-#
-# Show that page_checksum is remembered
-#
-set global maria_page_checksum=1;
-create table t1 (a int);
-show create table t1;
-drop table t1;
-
-#
-# Test warning on log file size truncates
-#
-
---enable_warnings
-set global maria_log_file_size=4294967296;
-
-#
-# Test delete of all rows in autocommit and not autocommit
-#
-
-create table t1 (a int not null);
-lock tables t1 write;
-insert into t1 values (1),(2);
-delete from t1;
-unlock tables;
-select * from t1;
-insert into t1 values (1),(2);
-delete from t1;
-select * from t1;
-drop table t1;
-
-# Test for bug "ha_enable_transaction(on) not called by CREATE TABLE"
-# (originally from type_ranges.test)
-
-create table t1 (c int);
-insert into t1 values(1),(2);
-create table t2 select * from t1;
---error 1060
-create table t3 select * from t1, t2; # Should give an error
-create table t3 select t1.c AS c1, t2.c AS c2,1 as "const" from t1, t2;
-drop table t1, t2, t3;
-
-# Test for bug "maria_repair() (OPTIMIZE) leaves wrong
-# data_file_length" (originally from type_datetime.test)
-
-create table t1 (t datetime) engine=maria;
-insert into t1 values
(101),(691231),(700101),(991231),(10000101),(99991231),(101000000),(691231000000),(700101000000),(991231235959),(10000101000000),(99991231235959),(20030100000000),(20030000000000);
-select * from t1;
-optimize table t1;
-check table t1;
-delete from t1 where t > 0;
-optimize table t1;
-check table t1;
-drop table t1;
-
-#
-# Test auto-increment
-#
-
-SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
-CREATE TABLE t1 (id int(11) PRIMARY KEY auto_increment,f1 varchar(10) NOT NULL UNIQUE);
-INSERT IGNORE INTO t1 (f1) VALUES ("test1");
-INSERT IGNORE INTO t1 (f1) VALUES ("test1");
-INSERT IGNORE INTO t1 (f1) VALUES ("test2");
-SELECT * FROM t1;
-drop table t1;
-SET SQL_MODE = 'TRADITIONAL';
-
-create table t1 (n int not null primary key auto_increment, c char(1), unique(c));
-insert into t1 values(100, "a");
-insert into t1 values(300, "b");
---error 1062
-insert into t1 values(50, "a");
-insert into t1 values(null, "c");
-select * from t1;
---error 1062
-update t1 set n=400,c='a' where n=301;
-insert into t1 values(null, "d");
-select * from t1;
-drop table t1;
-
-create table t1 (n int not null primary key auto_increment, c char(1), unique(c))
transactional=0 row_format=dynamic;
-insert into t1 values(100, "a");
-insert into t1 values(300, "b");
---error 1062
-insert into t1 values(50, "a");
-insert into t1 values(null, "c");
-select * from t1;
---error 1062
-update t1 set n=400,c='a' where n=301;
-insert into t1 values(null, "d");
-select * from t1;
-drop table t1;
-
-#
-# Test warnings with transactional=1 with MyISAM
-#
-
-create table t1 (n int not null, c char(1)) engine=maria;
-alter table t1 engine=myisam;
-alter table t1 engine=maria;
-show create table t1;
-drop table t1;
-create table t1 (n int not null, c char(1)) engine=maria transactional=1;
-alter table t1 engine=myisam;
-alter table t1 engine=maria;
-show create table t1;
-drop table t1;
-create table t1 (n int not null, c char(1)) engine=myisam transactional=1;
-alter table t1 engine=maria;
-show create table t1;
-drop table t1;
-
-#
-# Some tests that have failed with transactional=0
-#
-
-# Testing buik insert
-create table t1 (a int, key(a)) transactional=0;
-insert into t1 values (0),(1),(2),(3),(4);
-insert into t1 select NULL from t1;
-check table t1;
-drop table t1;
-
-#
-# Some tests with temporary tables
-#
-
-create temporary table t1 (a int, key(a)) transactional=1;
-create temporary table t2 (a int, key(a)) transactional=1;
-insert into t1 values (0),(1),(2),(3),(4);
-insert into t2 select * from t1;
-insert into t1 select NULL from t2;
-select count(*) from t1;
-select count(*) from t1 where a >= 4;
-drop table t1;
-
-#
-# Test problems with small rows and row_type=page 
-# Bug 35048 "maria table corruption reported when transactional=0"
-#
-
-create table t1 (i int auto_increment not null primary key) transactional=0;
-
-let $i=510;
---disable_query_log
-while ($i)
-{
-  dec $i;
-  insert into t1 values (null);
-}
---enable_query_log
-check table t1 extended;
-delete from t1 where i = 10;
-check table t1 extended;
-drop table t1;
-
-create table t1 (i int auto_increment not null primary key);
-
-let $i=510;
---disable_query_log
-while ($i)
-{
-  dec $i;
-  insert into t1 values (null);
-}
---enable_query_log
-check table t1 extended;
-delete from t1 where i = 10;
-check table t1 extended;
-drop table t1;
-
-#
-# BUG#29445 - match ... against () never returns
-#
-CREATE TABLE t1(a VARCHAR(20), FULLTEXT(a)) transactional=0;
-INSERT INTO t1 VALUES('Offside'),('City Of God');
-SELECT a FROM t1 WHERE MATCH a AGAINST ('+city of*' IN BOOLEAN MODE);
-SELECT a FROM t1 WHERE MATCH a AGAINST ('+city (of)*' IN BOOLEAN MODE);
-DROP TABLE t1;
-
-#
-# BUG#36104 - INFORMATION_SCHEMA.TABLES shows TRANSACTIONAL=1 twice in
-# CREATE_OPTIONS
-#
-create table t1(a int) engine=maria transactional=1;
-select CREATE_OPTIONS from information_schema.TABLES where
-TABLE_SCHEMA='test' and TABLE_NAME='t1';
-drop table t1;
-
-# End of 5.1 tests
-
 --disable_result_log
 --disable_query_log
 eval set global storage_engine=$default_engine, maria_page_checksum=$default_checksum;

=== added file 'mysql-test/t/maria3.test'
--- a/mysql-test/t/maria3.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/t/maria3.test	2008-06-28 15:08:54 +0000
@@ -0,0 +1,470 @@
+-- source include/have_maria.inc
+
+select * from INFORMATION_SCHEMA.ENGINES where ENGINE="MARIA";
+
+let $default_engine=`select @@global.storage_engine`;
+let $default_checksum=`select @@global.maria_page_checksum`;
+set global storage_engine=maria;
+set session storage_engine=maria;
+set global maria_page_checksum=0;
+set global maria_log_file_size=4294967295;
+
+# Initialise
+--disable_warnings
+drop table if exists t1,t2;
+--enable_warnings
+SET SQL_WARNINGS=1;
+
+# Test limits and errors of key_block_size
+
+create table t1 (a int not null, key `a` (a) key_block_size=512);
+show create table t1;
+drop table t1;
+
+create table t1 (a varchar(2048), key `a` (a) key_block_size=1000000000000000000);
+show create table t1;
+drop table t1;
+
+create table t1 (a int not null, key `a` (a) key_block_size=1025);
+show create table t1;
+drop table t1;
+
+--error 1064
+create table t1 (a int not null, key key_block_size=1024 (a));
+--error 1064
+create table t1 (a int not null, key `a` key_block_size=1024 (a));
+
+#
+# Test of changing MI_KEY_BLOCK_LENGTH
+#
+
+CREATE TABLE t1 (
+  c1 INT,
+  c2 VARCHAR(300),
+  KEY (c1) KEY_BLOCK_SIZE 1024,
+  KEY (c2) KEY_BLOCK_SIZE 8192
+  );
+INSERT INTO t1 VALUES (10, REPEAT('a', CEIL(RAND(10) * 300))),
+  (11, REPEAT('b', CEIL(RAND() * 300))),
+  (12, REPEAT('c', CEIL(RAND() * 300))),
+  (13, REPEAT('d', CEIL(RAND() * 300))),
+  (14, REPEAT('e', CEIL(RAND() * 300))),
+  (15, REPEAT('f', CEIL(RAND() * 300))),
+  (16, REPEAT('g', CEIL(RAND() * 300))),
+  (17, REPEAT('h', CEIL(RAND() * 300))),
+  (18, REPEAT('i', CEIL(RAND() * 300))),
+  (19, REPEAT('j', CEIL(RAND() * 300))),
+  (20, REPEAT('k', CEIL(RAND() * 300))),
+  (21, REPEAT('l', CEIL(RAND() * 300))),
+  (22, REPEAT('m', CEIL(RAND() * 300))),
+  (23, REPEAT('n', CEIL(RAND() * 300))),
+  (24, REPEAT('o', CEIL(RAND() * 300))),
+  (25, REPEAT('p', CEIL(RAND() * 300))),
+  (26, REPEAT('q', CEIL(RAND() * 300))),
+  (27, REPEAT('r', CEIL(RAND() * 300))),
+  (28, REPEAT('s', CEIL(RAND() * 300))),
+  (29, REPEAT('t', CEIL(RAND() * 300))),
+  (30, REPEAT('u', CEIL(RAND() * 300))),
+  (31, REPEAT('v', CEIL(RAND() * 300))),
+  (32, REPEAT('w', CEIL(RAND() * 300))),
+  (33, REPEAT('x', CEIL(RAND() * 300))),
+  (34, REPEAT('y', CEIL(RAND() * 300))),
+  (35, REPEAT('z', CEIL(RAND() * 300)));
+INSERT INTO t1 SELECT * FROM t1;
+INSERT INTO t1 SELECT * FROM t1;
+CHECK TABLE t1;
+REPAIR TABLE t1;
+DELETE FROM t1 WHERE c1 >= 10;
+CHECK TABLE t1;
+DROP TABLE t1;
+
+#
+# Test that TRANSACTIONAL is preserved
+#
+
+create table t1 (a int) transactional=0;
+show create table t1;
+drop table t1;
+create table t1 (a int) row_format=dynamic transactional=0;
+show create table t1;
+drop table t1;
+create table t1 (a int) row_format=dynamic transactional=1;
+show create table t1;
+alter table t1 row_format=PAGE;
+show create table t1;
+alter table t1 row_format=DYNAMIC;
+show create table t1;
+alter table t1 transactional=0;
+show create table t1;
+alter table t1 row_format=DYNAMIC;
+show create table t1;
+drop table t1;
+create table t1 (a int) row_format=PAGE;
+show create table t1;
+drop table t1;
+create table t1 (a int) row_format=PAGE TRANSACTIONAL=DEFAULT;
+show create table t1;
+alter table t1 row_format=DYNAMIC;
+show create table t1;
+drop table t1;
+
+# CHECK TABLE was reporting
+# "Size of datafile is: 0         Should be: 16384"
+#
+
+create table `t1` (
+    t1_name varchar(255) default null,
+    t1_id int(10) unsigned not null auto_increment,
+    key (t1_name),
+    primary key (t1_id)
+) engine=maria auto_increment = 1000 default charset=latin1;
+lock tables t1 write;
+INSERT INTO `t1` VALUES ('bla',1000),('bla',1001),('bla',1002);
+check table t1;
+unlock tables;
+
+#
+# Check that an empty table uses fast recreate of index when we fill it
+# with insert ... select.
+
+create table t2 like t1;
+insert into t2 select * from t1;
+
+# This should say that the table is already up to date
+analyze table t2;
+delete from t2;
+insert into t2 select * from t1;
+analyze table t2;
+
+drop table t1,t2;
+
+#
+# Test when expanding a row so that it doesn't fit into the same page
+#
+
+create table t1 (a bigint auto_increment, primary key(a), b char(255), c varchar(20000));
+
+let $1=1000;
+--disable_query_log
+--disable_warnings
+while ($1)
+{
+  insert into t1 () values();
+  dec $1;
+}
+--enable_query_log
+update t1 set b=repeat('a',100) where a between 1 and 100;
+check table t1;
+update t1 set c=repeat('a',8192*2) where a between 200 and 202;
+check table t1;
+drop table t1;
+
+#
+# Test where we shrink varchar
+#
+
+CREATE TABLE t1 (a int, b int, v varchar(60000)) checksum=1 engine=maria;
+insert into t1 values (1,1,"aaa"),(1,2,null);
+checksum table t1;
+lock table t1 write;
+insert into t1 values (1,3,repeat('c',30000)),(4,4,repeat('a',30000));
+update t1 set v="row5" where b=4;
+delete from t1 where b=3;
+select a, b, length(v) from t1;
+drop table t1;
+
+#
+# Test tail pages for blobs
+#
+
+CREATE TABLE t1 (
+  auto int(5) unsigned NOT NULL auto_increment,
+  string char(10) default "hello",
+  tiny tinyint(4) DEFAULT '0' NOT NULL ,
+  short smallint(6) DEFAULT '1' NOT NULL ,
+  medium mediumint(8) DEFAULT '0' NOT NULL,
+  long_int int(11) DEFAULT '0' NOT NULL,
+  longlong bigint(13) DEFAULT '0' NOT NULL,
+  real_float float(13,1) DEFAULT 0.0 NOT NULL,
+  real_double double(16,4),
+  utiny tinyint(3) unsigned DEFAULT '0' NOT NULL,
+  ushort smallint(5) unsigned zerofill DEFAULT '00000' NOT NULL,
+  umedium mediumint(8) unsigned DEFAULT '0' NOT NULL,
+  ulong int(11) unsigned DEFAULT '0' NOT NULL,
+  ulonglong bigint(13) unsigned DEFAULT '0' NOT NULL,
+  time_stamp timestamp,
+  date_field date,	
+  time_field time,	
+  date_time datetime,
+  blob_col blob,
+  tinyblob_col tinyblob,
+  mediumblob_col mediumblob  not null default '',
+  longblob_col longblob  not null default '',
+  options enum('one','two','tree') not null ,
+  flags set('one','two','tree') not null default '',
+  PRIMARY KEY (auto),
+  KEY (utiny),
+  KEY (tiny),
+  KEY (short),
+  KEY any_name (medium),
+  KEY (longlong),
+  KEY (real_float),
+  KEY (ushort),
+  KEY (umedium),
+  KEY (ulong),
+  KEY (ulonglong,ulong),
+  KEY (options,flags)
+) engine=maria;
+insert into t1 values (10,1,1,1,1,1,1,1,1,1,1,1,1,1,NULL,0,0,0,1,1,1,1,'one','one');
+create table t2 (primary key (auto)) engine=maria row_format=page select auto+1 as auto,1
as t1, 'a' as t2, repeat('a',256) as t3, binary repeat('b',256) as t4, repeat('a',4096) as
t5, binary repeat('b',4096) as t6, '' as t7, binary '' as t8 from t1;
+check table t1,t2;
+select t1,t2,length(t3),length(t4),length(t5),length(t6),t7,t8 from t2;
+drop table t2;
+create table t2 (primary key (auto)) engine=maria row_format=dynamic select auto+1 as
auto,1 as t1, 'a' as t2, repeat('a',256) as t3, binary repeat('b',256) as t4,
repeat('a',4096) as t5, binary repeat('b',4096) as t6, '' as t7, binary '' as t8 from t1;
+check table t2;
+drop table t1,t2;
+
+# Test UPDATE with small BLOB which fits on head page
+
+CREATE TABLE t1 (seq int, s1 int, s2 blob);
+insert into t1 values (1, 1, MD5(1));
+update t1 set s1=2 where seq=1;
+check table t1 extended;
+drop table t1;
+
+# Fix if we are using safemalloc
+--replace_result 8388572 8388600
+show variables like 'maria%';
+--replace_column 2 #
+show status like 'maria%';
+
+#
+# Test creating table with no field data and index on zero length columns
+#
+
+create table t1 (b char(0));
+insert into t1 values(NULL),("");
+select length(b) from t1;
+alter table t1 add column c char(0), add key (c);
+insert into t1 values("",""),("",NULL);
+select length(b),length(c) from t1;
+select length(b),length(c) from t1 where c is null;
+select length(b),length(c) from t1 where c is not null;
+select length(b),length(c) from t1 order by c;
+--error 1167
+alter table t1 add column d char(0) not null, add key (d);
+drop table t1;
+
+CREATE TABLE t1 (a bit(3));
+insert into t1 values (NULL),(0),(1),(2),(3),(4),(5),(6),(7);
+select hex(a) from t1;
+drop table t1;
+create table t1(a bit not null);
+insert into t1 values(0),(1);
+select a+0 from t1;
+drop table t1;
+
+#
+# Test of min_key_length
+#
+
+CREATE TABLE t1 (col1 int, s1 char(16) DEFAULT NULL, s2 char(16) DEFAULT NULL, KEY
(s1,s2));
+insert into t1 (col1) values(0);
+drop table t1;
+
+#
+# Show that page_checksum is remembered
+#
+set global maria_page_checksum=1;
+create table t1 (a int);
+show create table t1;
+drop table t1;
+
+#
+# Test warning on log file size truncates
+#
+
+--enable_warnings
+set global maria_log_file_size=4294967296;
+
+#
+# Test delete of all rows in autocommit and not autocommit
+#
+
+create table t1 (a int not null);
+lock tables t1 write;
+insert into t1 values (1),(2);
+delete from t1;
+unlock tables;
+select * from t1;
+insert into t1 values (1),(2);
+delete from t1;
+select * from t1;
+drop table t1;
+
+# Test for bug "ha_enable_transaction(on) not called by CREATE TABLE"
+# (originally from type_ranges.test)
+
+create table t1 (c int);
+insert into t1 values(1),(2);
+create table t2 select * from t1;
+--error 1060
+create table t3 select * from t1, t2; # Should give an error
+create table t3 select t1.c AS c1, t2.c AS c2,1 as "const" from t1, t2;
+drop table t1, t2, t3;
+
+# Test for bug "maria_repair() (OPTIMIZE) leaves wrong
+# data_file_length" (originally from type_datetime.test)
+
+create table t1 (t datetime) engine=maria;
+insert into t1 values
(101),(691231),(700101),(991231),(10000101),(99991231),(101000000),(691231000000),(700101000000),(991231235959),(10000101000000),(99991231235959),(20030100000000),(20030000000000);
+select * from t1;
+optimize table t1;
+check table t1;
+delete from t1 where t > 0;
+optimize table t1;
+check table t1;
+drop table t1;
+
+#
+# Test auto-increment
+#
+
+SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
+CREATE TABLE t1 (id int(11) PRIMARY KEY auto_increment,f1 varchar(10) NOT NULL UNIQUE);
+INSERT IGNORE INTO t1 (f1) VALUES ("test1");
+INSERT IGNORE INTO t1 (f1) VALUES ("test1");
+INSERT IGNORE INTO t1 (f1) VALUES ("test2");
+SELECT * FROM t1;
+drop table t1;
+SET SQL_MODE = 'TRADITIONAL';
+
+create table t1 (n int not null primary key auto_increment, c char(1), unique(c));
+insert into t1 values(100, "a");
+insert into t1 values(300, "b");
+--error 1062
+insert into t1 values(50, "a");
+insert into t1 values(null, "c");
+select * from t1;
+--error 1062
+update t1 set n=400,c='a' where n=301;
+insert into t1 values(null, "d");
+select * from t1;
+drop table t1;
+
+create table t1 (n int not null primary key auto_increment, c char(1), unique(c))
transactional=0 row_format=dynamic;
+insert into t1 values(100, "a");
+insert into t1 values(300, "b");
+--error 1062
+insert into t1 values(50, "a");
+insert into t1 values(null, "c");
+select * from t1;
+--error 1062
+update t1 set n=400,c='a' where n=301;
+insert into t1 values(null, "d");
+select * from t1;
+drop table t1;
+
+#
+# Test warnings with transactional=1 with MyISAM
+#
+
+create table t1 (n int not null, c char(1)) engine=maria;
+alter table t1 engine=myisam;
+alter table t1 engine=maria;
+show create table t1;
+drop table t1;
+create table t1 (n int not null, c char(1)) engine=maria transactional=1;
+alter table t1 engine=myisam;
+alter table t1 engine=maria;
+show create table t1;
+drop table t1;
+create table t1 (n int not null, c char(1)) engine=myisam transactional=1;
+alter table t1 engine=maria;
+show create table t1;
+drop table t1;
+
+#
+# Some tests that have failed with transactional=0
+#
+
+# Testing buik insert
+create table t1 (a int, key(a)) transactional=0;
+insert into t1 values (0),(1),(2),(3),(4);
+insert into t1 select NULL from t1;
+check table t1;
+drop table t1;
+
+#
+# Some tests with temporary tables
+#
+
+create temporary table t1 (a int, key(a)) transactional=1;
+create temporary table t2 (a int, key(a)) transactional=1;
+insert into t1 values (0),(1),(2),(3),(4);
+insert into t2 select * from t1;
+insert into t1 select NULL from t2;
+select count(*) from t1;
+select count(*) from t1 where a >= 4;
+drop table t1;
+
+#
+# Test problems with small rows and row_type=page 
+# Bug 35048 "maria table corruption reported when transactional=0"
+#
+
+create table t1 (i int auto_increment not null primary key) transactional=0;
+
+let $i=510;
+--disable_query_log
+while ($i)
+{
+  dec $i;
+  insert into t1 values (null);
+}
+--enable_query_log
+check table t1 extended;
+delete from t1 where i = 10;
+check table t1 extended;
+drop table t1;
+
+create table t1 (i int auto_increment not null primary key);
+
+let $i=510;
+--disable_query_log
+while ($i)
+{
+  dec $i;
+  insert into t1 values (null);
+}
+--enable_query_log
+check table t1 extended;
+delete from t1 where i = 10;
+check table t1 extended;
+drop table t1;
+
+#
+# BUG#29445 - match ... against () never returns
+#
+CREATE TABLE t1(a VARCHAR(20), FULLTEXT(a)) transactional=0;
+INSERT INTO t1 VALUES('Offside'),('City Of God');
+SELECT a FROM t1 WHERE MATCH a AGAINST ('+city of*' IN BOOLEAN MODE);
+SELECT a FROM t1 WHERE MATCH a AGAINST ('+city (of)*' IN BOOLEAN MODE);
+DROP TABLE t1;
+
+#
+# BUG#36104 - INFORMATION_SCHEMA.TABLES shows TRANSACTIONAL=1 twice in
+# CREATE_OPTIONS
+#
+create table t1(a int) engine=maria transactional=1;
+select CREATE_OPTIONS from information_schema.TABLES where
+TABLE_SCHEMA='test' and TABLE_NAME='t1';
+drop table t1;
+
+# End of 5.1 tests
+
+--disable_result_log
+--disable_query_log
+eval set global storage_engine=$default_engine, maria_page_checksum=$default_checksum;
+--enable_result_log
+--enable_query_log

Thread
bzr commit into mysql-6.0 branch (guilhem:2669) Guilhem Bichot28 Jun