blackhole.test 5.23 KB
Newer Older
1 2 3 4
#
# Simple test for blackhole example
# Taken from the select test
#
5
-- source include/not_embedded.inc
6
-- source include/have_blackhole.inc
7
-- source include/have_log_bin.inc
8

9 10 11 12
# The server need to be started in $MYSQLTEST_VARDIR since it
# uses ../std_data_ln/
-- source include/uses_vardir.inc

13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
--disable_warnings
drop table if exists t1,t2;
--enable_warnings

CREATE TABLE t1 (
  Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
  Varor_period smallint(4) unsigned DEFAULT '0' NOT NULL
) ENGINE=blackhole;

INSERT INTO t1 VALUES (9410,9412);
  
select period from t1;
select * from t1;
select t1.* from t1;

#
# Create test table
#

CREATE TABLE t2 (
  auto int NOT NULL auto_increment,
  fld1 int(6) unsigned zerofill DEFAULT '000000' NOT NULL,
  companynr tinyint(2) unsigned zerofill DEFAULT '00' NOT NULL,
  fld3 char(30) DEFAULT '' NOT NULL,
  fld4 char(35) DEFAULT '' NOT NULL,
  fld5 char(35) DEFAULT '' NOT NULL,
  fld6 char(4) DEFAULT '' NOT NULL,
  primary key (auto)
) ENGINE=blackhole;  

INSERT INTO t2 VALUES (1192,068305,00,'Colombo','hardware','colicky','');
INSERT INTO t2 VALUES (1193,000000,00,'nondecreasing','implant','thrillingly','');
--enable_query_log

#
# Search with a key
#

select t2.fld3 from t2 where companynr = 58 and fld3 like "%imaginable%";
select fld3 from t2 where fld3 like "%cultivation" ;

#
# Search with a key using sorting and limit the same time
#

select t2.fld3,companynr from t2 where companynr = 57+1 order by fld3;
select fld3,companynr from t2 where companynr = 58 order by fld3;

select fld3 from t2 order by fld3 desc limit 10;
select fld3 from t2 order by fld3 desc limit 5;
select fld3 from t2 order by fld3 desc limit 5,5;

#
# Search with a key having a constant with each unique key.
# The table is read directly with read-next on fld3
#

select t2.fld3 from t2 where fld3 = 'honeysuckle';
select t2.fld3 from t2 where fld3 LIKE 'honeysuckl_';
select t2.fld3 from t2 where fld3 LIKE 'hon_ysuckl_';
select t2.fld3 from t2 where fld3 LIKE 'honeysuckle%';
select t2.fld3 from t2 where fld3 LIKE 'h%le';

select t2.fld3 from t2 where fld3 LIKE 'honeysuckle_';
select t2.fld3 from t2 where fld3 LIKE 'don_t_find_me_please%';

#
# Test sorting with a used key (there is no need for sorting)
#

select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3;
select fld1,fld3 from t2 where fld3="Colombo" or fld3 = "nondecreasing" order by fld3;


# Test for fulltext
DROP TABLE t1;
CREATE TABLE t1 (a VARCHAR(200), b TEXT, FULLTEXT (a,b));
INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'),
                       ('Full-text indexes', 'are called collections'),
                          ('Only MyISAM tables','support collections'),
             ('Function MATCH ... AGAINST()','is used to do a search'),
        ('Full-text search in MySQL', 'implements vector space model');
SHOW INDEX FROM t1;

# nl search

select * from t1 where MATCH(a,b) AGAINST ("collections");
explain extended select * from t1 where MATCH(a,b) AGAINST ("collections");
select * from t1 where MATCH(a,b) AGAINST ("indexes");
select * from t1 where MATCH(a,b) AGAINST ("indexes collections");
select * from t1 where MATCH(a,b) AGAINST ("only");
104

105 106 107 108 109 110 111 112 113 114 115 116
# Test that every DML (except SELECT) and DDL gets into binlog
# so that blackhole can be used as "binlog propagator"

reset master;
drop table t1,t2;
create table t1 (a int) engine=blackhole;
delete from t1 where a=10;
update t1 set a=11 where a=15;
insert into t1 values(1);
insert ignore into t1 values(1);
replace into t1 values(100);
create table t2 (a varchar(200)) engine=blackhole;
117
eval load data infile '../std_data_ln/words.dat' into table t2;
118 119 120 121 122 123 124 125 126 127 128 129 130
alter table t1 add b int;
alter table t1 drop b;
create table t3 like t1;
insert into t1 select * from t3;
replace into t1 select * from t3;
# Just to verify
select * from t1;
select * from t2;
select * from t3;

let $VERSION=`select version()`;
--replace_result $VERSION VERSION
--replace_column 2 # 5 #
131
--replace_regex /file_id=[0-9]+/file_id=#/
132 133 134
show binlog events;

drop table t1,t2,t3;
135

136 137 138 139 140 141 142 143 144
#
# BUG#27998 - mysqld crashed when executing INSERT DELAYED on a BLACKHOLE
#             table
#
CREATE TABLE t1(a INT) ENGINE=BLACKHOLE;
--error 1031
INSERT DELAYED INTO t1 VALUES(1);
DROP TABLE t1;

145

146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
#
#Bug#19717: DELETE Query Error on BLACKHOLE when using WHERE on column with UNIQUE INDEX
#
CREATE TABLE t1(a INT, b INT) ENGINE=BLACKHOLE;
DELETE FROM t1 WHERE a=10;
ALTER TABLE t1 ADD INDEX(a);
DELETE FROM t1 WHERE a=10;
ALTER TABLE t1 DROP INDEX a;
ALTER TABLE t1 ADD UNIQUE INDEX(a);
DELETE FROM t1 WHERE a=10;
ALTER TABLE t1 DROP INDEX a;
ALTER TABLE t1 ADD PRIMARY KEY(a);
DELETE FROM t1 WHERE a=10;
DROP TABLE t1;

161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184
#
# Bug#35178 INSERT_ID not written to binary log for inserts against BLACKHOLE backed tables
#
#
# the test checks that explicitly prescribed with set insert_id= value
# preceeds the following autoincrement insert in a blachhole
#

reset master;
create table t1 (a int auto_increment, primary key (a)) engine=blackhole;

# not insert_id prescribed insert binlogs with the default set insert_id 1
insert into t1 values (11), (NULL), (NULL), (NULL);
set insert_id= 3;
insert into t1 values (NULL), (33), (NULL);
set insert_id= 5;
insert into t1 values (55), (NULL);
source include/show_binlog_events2.inc;

# cleanup
drop table t1;


# End of tests