Browse Source
Back-port of changes made to 6.0-maria (to remove compiler warnings or fix simple test failures)
Back-port of changes made to 6.0-maria (to remove compiler warnings or fix simple test failures)
in the last days: substitution in tests has to work for absolute datadir (/dev/shm/...); internal temp tables (like information_schema) can be Maria; Maria may not be compiled in; splitting too long maria.test in two; mtr --embedded runs in mysql-test not mysql-test/var/master-data so we need some absolute paths in tests; can't restart mysqld in --embedded; missing DBUG_VOID_RETURN in mysqltest.c (fix from Serg); is_collation_character_set_applicability.test was too long name which broke tar's 99-char limit.pull/843/head
39 changed files with 1148 additions and 1106 deletions
-
2client/mysqltest.c
-
4mysql-test/mysql-test-run.pl
-
4mysql-test/r/maria-recover.result
-
533mysql-test/r/maria.result
-
542mysql-test/r/maria3.result
-
2mysql-test/suite/funcs_1/datadict/processlist_priv.inc
-
1mysql-test/suite/funcs_1/datadict/processlist_val.inc
-
1mysql-test/suite/funcs_1/datadict/tables2.inc
-
0mysql-test/suite/funcs_1/r/is_collation_charset_applic.result
-
2mysql-test/suite/funcs_1/r/is_columns.result
-
2mysql-test/suite/funcs_1/r/is_events.result
-
2mysql-test/suite/funcs_1/r/is_routines.result
-
64mysql-test/suite/funcs_1/r/is_tables_is.result
-
74mysql-test/suite/funcs_1/r/is_tables_myisam.result
-
56mysql-test/suite/funcs_1/r/is_tables_mysql.result
-
2mysql-test/suite/funcs_1/r/is_triggers.result
-
2mysql-test/suite/funcs_1/r/is_views.result
-
4mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result
-
4mysql-test/suite/funcs_1/r/processlist_priv_ps.result
-
2mysql-test/suite/funcs_1/r/processlist_val_no_prot.result
-
2mysql-test/suite/funcs_1/r/processlist_val_ps.result
-
0mysql-test/suite/funcs_1/t/is_collation_charset_applic.test
-
1mysql-test/suite/funcs_1/t/is_columns.test
-
1mysql-test/suite/funcs_1/t/is_events.test
-
1mysql-test/suite/funcs_1/t/is_routines.test
-
1mysql-test/suite/funcs_1/t/is_triggers.test
-
1mysql-test/suite/funcs_1/t/is_views.test
-
4mysql-test/t/maria-no-logging.test
-
3mysql-test/t/maria-purge.test
-
2mysql-test/t/maria-recover-master.opt
-
2mysql-test/t/maria-recover.test
-
2mysql-test/t/maria-recovery-big.test
-
2mysql-test/t/maria-recovery-bitmap.test
-
2mysql-test/t/maria-recovery-master.opt
-
2mysql-test/t/maria-recovery-rtree-ft.test
-
2mysql-test/t/maria-recovery.test
-
449mysql-test/t/maria.test
-
470mysql-test/t/maria3.test
-
4storage/maria/ma_delete.c
@ -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 1112 bytes |
|||
show create table t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`a` varchar(2048) DEFAULT NULL, |
|||
KEY `a` (`a`(1112)) 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; |
@ -1 +1 @@ |
|||
--maria-recover=backup --maria-log-dir-path=../tmp |
|||
--loose-maria-recover=backup --loose-maria-log-dir-path=$MYSQLTEST_VARDIR/tmp |
@ -1 +1 @@ |
|||
--skip-stack-trace --skip-core-file --maria-log-dir-path=../tmp |
|||
--skip-stack-trace --skip-core-file --loose-maria-log-dir-path=$MYSQLTEST_VARDIR/tmp |
@ -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 |
Write
Preview
Loading…
Cancel
Save
Reference in new issue