mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
5a6996dbcd
binlogging of insert into a autoincrement blackhole table ignored an explicit set insert_id. Fixed with refining of the blackhole's insert method to call update_auto_increment() that prepares binlogging the insert query with the preceeding set insert_id. Note, as the engine does not store any actual data one has to explicitly provide to the server with the value of the autoincrement column via set insert_id. Otherwise binlogging will happend with the default set insert_id=1. mysql-test/r/blackhole.result: results changed mysql-test/t/blackhole.test: a regression test for the bug added sql/ha_blackhole.cc: blackhole's insert method is refined to call update_auto_increment() that prepares binlogging the insert query with the preceeding set insert_id.
157 lines
6.3 KiB
Text
157 lines
6.3 KiB
Text
drop table if exists t1,t2;
|
|
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;
|
|
period
|
|
select * from t1;
|
|
Period Varor_period
|
|
select t1.* from t1;
|
|
Period Varor_period
|
|
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','');
|
|
select t2.fld3 from t2 where companynr = 58 and fld3 like "%imaginable%";
|
|
fld3
|
|
select fld3 from t2 where fld3 like "%cultivation" ;
|
|
fld3
|
|
select t2.fld3,companynr from t2 where companynr = 57+1 order by fld3;
|
|
fld3 companynr
|
|
select fld3,companynr from t2 where companynr = 58 order by fld3;
|
|
fld3 companynr
|
|
select fld3 from t2 order by fld3 desc limit 10;
|
|
fld3
|
|
select fld3 from t2 order by fld3 desc limit 5;
|
|
fld3
|
|
select fld3 from t2 order by fld3 desc limit 5,5;
|
|
fld3
|
|
select t2.fld3 from t2 where fld3 = 'honeysuckle';
|
|
fld3
|
|
select t2.fld3 from t2 where fld3 LIKE 'honeysuckl_';
|
|
fld3
|
|
select t2.fld3 from t2 where fld3 LIKE 'hon_ysuckl_';
|
|
fld3
|
|
select t2.fld3 from t2 where fld3 LIKE 'honeysuckle%';
|
|
fld3
|
|
select t2.fld3 from t2 where fld3 LIKE 'h%le';
|
|
fld3
|
|
select t2.fld3 from t2 where fld3 LIKE 'honeysuckle_';
|
|
fld3
|
|
select t2.fld3 from t2 where fld3 LIKE 'don_t_find_me_please%';
|
|
fld3
|
|
select t2.fld3 from t2 where fld3 >= 'honeysuckle' and fld3 <= 'honoring' order by fld3;
|
|
fld3
|
|
select fld1,fld3 from t2 where fld3="Colombo" or fld3 = "nondecreasing" order by fld3;
|
|
fld1 fld3
|
|
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;
|
|
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
|
t1 1 a 1 a NULL NULL NULL NULL YES FULLTEXT
|
|
t1 1 a 2 b NULL NULL NULL NULL YES FULLTEXT
|
|
select * from t1 where MATCH(a,b) AGAINST ("collections");
|
|
a b
|
|
Only MyISAM tables support collections
|
|
Full-text indexes are called collections
|
|
explain extended select * from t1 where MATCH(a,b) AGAINST ("collections");
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 fulltext a a 0 1 Using where
|
|
Warnings:
|
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where (match `test`.`t1`.`a`,`test`.`t1`.`b` against (_latin1'collections'))
|
|
select * from t1 where MATCH(a,b) AGAINST ("indexes");
|
|
a b
|
|
Full-text indexes are called collections
|
|
select * from t1 where MATCH(a,b) AGAINST ("indexes collections");
|
|
a b
|
|
Full-text indexes are called collections
|
|
Only MyISAM tables support collections
|
|
select * from t1 where MATCH(a,b) AGAINST ("only");
|
|
a b
|
|
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;
|
|
load data infile '../std_data_ln/words.dat' into table t2;
|
|
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;
|
|
select * from t1;
|
|
a
|
|
select * from t2;
|
|
a
|
|
select * from t3;
|
|
a
|
|
show binlog events;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Format_desc 1 # Server ver: VERSION, Binlog ver: 4
|
|
master-bin.000001 # Query 1 # use `test`; drop table t1,t2
|
|
master-bin.000001 # Query 1 # use `test`; create table t1 (a int) engine=blackhole
|
|
master-bin.000001 # Query 1 # use `test`; delete from t1 where a=10
|
|
master-bin.000001 # Query 1 # use `test`; update t1 set a=11 where a=15
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(1)
|
|
master-bin.000001 # Query 1 # use `test`; insert ignore into t1 values(1)
|
|
master-bin.000001 # Query 1 # use `test`; replace into t1 values(100)
|
|
master-bin.000001 # Query 1 # use `test`; create table t2 (a varchar(200)) engine=blackhole
|
|
master-bin.000001 # Begin_load_query 1 # ;file_id=#;block_len=581
|
|
master-bin.000001 # Execute_load_query 1 # use `test`; load data infile '../std_data_ln/words.dat' into table t2 ;file_id=#
|
|
master-bin.000001 # Query 1 # use `test`; alter table t1 add b int
|
|
master-bin.000001 # Query 1 # use `test`; alter table t1 drop b
|
|
master-bin.000001 # Query 1 # use `test`; create table t3 like t1
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 select * from t3
|
|
master-bin.000001 # Query 1 # use `test`; replace into t1 select * from t3
|
|
drop table t1,t2,t3;
|
|
CREATE TABLE t1(a INT) ENGINE=BLACKHOLE;
|
|
INSERT DELAYED INTO t1 VALUES(1);
|
|
ERROR HY000: Table storage engine for 't1' doesn't have this option
|
|
DROP TABLE t1;
|
|
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;
|
|
reset master;
|
|
create table t1 (a int auto_increment, primary key (a)) engine=blackhole;
|
|
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);
|
|
show binlog events from <binlog_start>;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query 1 # use `test`; create table t1 (a int auto_increment, primary key (a)) engine=blackhole
|
|
master-bin.000001 # Intvar 1 # INSERT_ID=1
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values (11), (NULL), (NULL), (NULL)
|
|
master-bin.000001 # Intvar 1 # INSERT_ID=3
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values (NULL), (33), (NULL)
|
|
master-bin.000001 # Intvar 1 # INSERT_ID=5
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values (55), (NULL)
|
|
drop table t1;
|