#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 Bichot | 28 Jun |