mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
416aed25ed
The problem was the Gtid_list event which is logged to the binlog in 10.0 and is not understood by the 5.5 server. This event is supposed to be replaced with a dummy event for 5.5 servers. But the very first event logged in the very first binlog has an empty list of GTID, which makes the event too short to be replacable with an empty event. The fix is to pad the empty Gtid_list event to be big enough to be replacable by a dummy event.
349 lines
12 KiB
Text
349 lines
12 KiB
Text
drop table if exists t1, t2, t3, t4, t5, t6;
|
|
create table t1 (id int(8), name varchar(32));
|
|
create table t2 (id int(8), name varchar(32)) ENGINE="MyISAM";
|
|
create table t3 (id int(8), name varchar(32)) ENGINE="MEMORY";
|
|
create table t4 (id int(8), name varchar(32)) ENGINE="HEAP";
|
|
create table t5 (id int(8), name varchar(32)) ENGINE="ARCHIVE";
|
|
create table t6 (id int(8), name varchar(32)) ENGINE="InnoDB";
|
|
insert into t1 values (1, 'first value');
|
|
insert into t1 values (2, 'first value');
|
|
insert into t1 values (3, 'first value');
|
|
insert into t1 values (4, 'first value');
|
|
insert into t1 values (5, 'first value');
|
|
insert into t2 values (1, 'first value');
|
|
insert into t2 values (2, 'first value');
|
|
insert into t2 values (3, 'first value');
|
|
insert into t2 values (4, 'first value');
|
|
insert into t2 values (5, 'first value');
|
|
insert into t3 values (1, 'first value');
|
|
insert into t3 values (2, 'first value');
|
|
insert into t3 values (3, 'first value');
|
|
insert into t3 values (4, 'first value');
|
|
insert into t3 values (5, 'first value');
|
|
insert into t4 values (1, 'first value');
|
|
insert into t4 values (2, 'first value');
|
|
insert into t4 values (3, 'first value');
|
|
insert into t4 values (4, 'first value');
|
|
insert into t4 values (5, 'first value');
|
|
insert into t5 values (1, 'first value');
|
|
insert into t5 values (2, 'first value');
|
|
insert into t5 values (3, 'first value');
|
|
insert into t5 values (4, 'first value');
|
|
insert into t5 values (5, 'first value');
|
|
insert into t6 values (1, 'first value');
|
|
insert into t6 values (2, 'first value');
|
|
insert into t6 values (3, 'first value');
|
|
insert into t6 values (4, 'first value');
|
|
insert into t6 values (5, 'first value');
|
|
select * from t1;
|
|
id name
|
|
1 first value
|
|
2 first value
|
|
3 first value
|
|
4 first value
|
|
5 first value
|
|
select * from t2;
|
|
id name
|
|
1 first value
|
|
2 first value
|
|
3 first value
|
|
4 first value
|
|
5 first value
|
|
select * from t3;
|
|
id name
|
|
1 first value
|
|
2 first value
|
|
3 first value
|
|
4 first value
|
|
5 first value
|
|
select * from t4;
|
|
id name
|
|
1 first value
|
|
2 first value
|
|
3 first value
|
|
4 first value
|
|
5 first value
|
|
select * from t5;
|
|
id name
|
|
1 first value
|
|
2 first value
|
|
3 first value
|
|
4 first value
|
|
5 first value
|
|
select * from t6;
|
|
id name
|
|
1 first value
|
|
2 first value
|
|
3 first value
|
|
4 first value
|
|
5 first value
|
|
|
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
|
/*!40101 SET NAMES utf8 */;
|
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
|
|
|
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
|
|
|
|
USE `test`;
|
|
DROP TABLE IF EXISTS `t1`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8 */;
|
|
CREATE TABLE `t1` (
|
|
`id` int(8) DEFAULT NULL,
|
|
`name` varchar(32) DEFAULT NULL
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
|
INSERT DELAYED IGNORE INTO `t1` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
|
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
|
DROP TABLE IF EXISTS `t2`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8 */;
|
|
CREATE TABLE `t2` (
|
|
`id` int(8) DEFAULT NULL,
|
|
`name` varchar(32) DEFAULT NULL
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
|
|
INSERT DELAYED IGNORE INTO `t2` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
|
/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
|
|
DROP TABLE IF EXISTS `t3`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8 */;
|
|
CREATE TABLE `t3` (
|
|
`id` int(8) DEFAULT NULL,
|
|
`name` varchar(32) DEFAULT NULL
|
|
) ENGINE=MEMORY DEFAULT CHARSET=latin1;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
/*!40000 ALTER TABLE `t3` DISABLE KEYS */;
|
|
INSERT DELAYED IGNORE INTO `t3` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
|
/*!40000 ALTER TABLE `t3` ENABLE KEYS */;
|
|
DROP TABLE IF EXISTS `t4`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8 */;
|
|
CREATE TABLE `t4` (
|
|
`id` int(8) DEFAULT NULL,
|
|
`name` varchar(32) DEFAULT NULL
|
|
) ENGINE=MEMORY DEFAULT CHARSET=latin1;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
/*!40000 ALTER TABLE `t4` DISABLE KEYS */;
|
|
INSERT DELAYED IGNORE INTO `t4` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
|
/*!40000 ALTER TABLE `t4` ENABLE KEYS */;
|
|
DROP TABLE IF EXISTS `t5`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8 */;
|
|
CREATE TABLE `t5` (
|
|
`id` int(8) DEFAULT NULL,
|
|
`name` varchar(32) DEFAULT NULL
|
|
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
/*!40000 ALTER TABLE `t5` DISABLE KEYS */;
|
|
INSERT DELAYED IGNORE INTO `t5` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
|
/*!40000 ALTER TABLE `t5` ENABLE KEYS */;
|
|
DROP TABLE IF EXISTS `t6`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8 */;
|
|
CREATE TABLE `t6` (
|
|
`id` int(8) DEFAULT NULL,
|
|
`name` varchar(32) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
/*!40000 ALTER TABLE `t6` DISABLE KEYS */;
|
|
INSERT IGNORE INTO `t6` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
|
/*!40000 ALTER TABLE `t6` ENABLE KEYS */;
|
|
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
|
|
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
|
|
|
|
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
|
/*!40101 SET NAMES utf8 */;
|
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
|
|
|
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET latin1 */;
|
|
|
|
USE `test`;
|
|
DROP TABLE IF EXISTS `t1`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8 */;
|
|
CREATE TABLE `t1` (
|
|
`id` int(8) DEFAULT NULL,
|
|
`name` varchar(32) DEFAULT NULL
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
|
|
INSERT DELAYED INTO `t1` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
|
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
|
|
DROP TABLE IF EXISTS `t2`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8 */;
|
|
CREATE TABLE `t2` (
|
|
`id` int(8) DEFAULT NULL,
|
|
`name` varchar(32) DEFAULT NULL
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
/*!40000 ALTER TABLE `t2` DISABLE KEYS */;
|
|
INSERT DELAYED INTO `t2` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
|
/*!40000 ALTER TABLE `t2` ENABLE KEYS */;
|
|
DROP TABLE IF EXISTS `t3`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8 */;
|
|
CREATE TABLE `t3` (
|
|
`id` int(8) DEFAULT NULL,
|
|
`name` varchar(32) DEFAULT NULL
|
|
) ENGINE=MEMORY DEFAULT CHARSET=latin1;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
/*!40000 ALTER TABLE `t3` DISABLE KEYS */;
|
|
INSERT DELAYED INTO `t3` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
|
/*!40000 ALTER TABLE `t3` ENABLE KEYS */;
|
|
DROP TABLE IF EXISTS `t4`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8 */;
|
|
CREATE TABLE `t4` (
|
|
`id` int(8) DEFAULT NULL,
|
|
`name` varchar(32) DEFAULT NULL
|
|
) ENGINE=MEMORY DEFAULT CHARSET=latin1;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
/*!40000 ALTER TABLE `t4` DISABLE KEYS */;
|
|
INSERT DELAYED INTO `t4` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
|
/*!40000 ALTER TABLE `t4` ENABLE KEYS */;
|
|
DROP TABLE IF EXISTS `t5`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8 */;
|
|
CREATE TABLE `t5` (
|
|
`id` int(8) DEFAULT NULL,
|
|
`name` varchar(32) DEFAULT NULL
|
|
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
/*!40000 ALTER TABLE `t5` DISABLE KEYS */;
|
|
INSERT DELAYED INTO `t5` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
|
/*!40000 ALTER TABLE `t5` ENABLE KEYS */;
|
|
DROP TABLE IF EXISTS `t6`;
|
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
/*!40101 SET character_set_client = utf8 */;
|
|
CREATE TABLE `t6` (
|
|
`id` int(8) DEFAULT NULL,
|
|
`name` varchar(32) DEFAULT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
|
|
/*!40000 ALTER TABLE `t6` DISABLE KEYS */;
|
|
INSERT INTO `t6` VALUES (1,'first value'),(2,'first value'),(3,'first value'),(4,'first value'),(5,'first value');
|
|
/*!40000 ALTER TABLE `t6` ENABLE KEYS */;
|
|
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
|
|
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
|
|
|
drop table t1;
|
|
drop table t2;
|
|
drop table t3;
|
|
drop table t4;
|
|
drop table t5;
|
|
drop table t6;
|
|
SELECT @@global.storage_engine INTO @old_engine;
|
|
SET GLOBAL storage_engine=InnoDB;
|
|
CREATE VIEW v1 AS SELECT * FROM t1;
|
|
INSERT INTO t1 VALUES();
|
|
SELECT COUNT(*) FROM v1;
|
|
COUNT(*)
|
|
1
|
|
SELECT COUNT(*) FROM v1;
|
|
COUNT(*)
|
|
1
|
|
DROP VIEW v1;
|
|
DROP TABLE t1;
|
|
SET GLOBAL storage_engine=@old_engine;
|
|
# Connection default
|
|
SET binlog_format= mixed;
|
|
RESET MASTER;
|
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES (1),(2);
|
|
CREATE TABLE t2 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
|
|
INSERT INTO t2 VALUES (1,0), (2,0);
|
|
SELECT GET_LOCK("block_queries_1", 120);
|
|
GET_LOCK("block_queries_1", 120)
|
|
1
|
|
# Connection c3
|
|
SELECT GET_LOCK("block_queries_2", 120);
|
|
GET_LOCK("block_queries_2", 120)
|
|
1
|
|
# Connection c1
|
|
SET @c= 0;
|
|
SELECT IF(@c<1, @c:=@c+1, GET_LOCK("block_queries_1", 120)) FROM t1 ORDER BY a;
|
|
# Connection c2
|
|
SET binlog_format="row";
|
|
SET @d= 10;
|
|
UPDATE t2 SET b=IF(@d<=10, @d:=@d+1, GET_LOCK("block_queries_2", 120)) ORDER BY a;
|
|
# Connection default
|
|
# Make sure other queries are running (and waiting).
|
|
SELECT RELEASE_LOCK("block_queries_1");
|
|
RELEASE_LOCK("block_queries_1")
|
|
1
|
|
# Connection c3
|
|
SELECT RELEASE_LOCK("block_queries_2");
|
|
RELEASE_LOCK("block_queries_2")
|
|
1
|
|
# Connection c1
|
|
IF(@c<1, @c:=@c+1, GET_LOCK("block_queries_1", 120))
|
|
1
|
|
1
|
|
# Connection c2
|
|
# Connection default
|
|
SELECT * FROM t2 ORDER BY a;
|
|
a b
|
|
1 11
|
|
2 1
|
|
DROP TABLE t1;
|
|
DROP TABLE t2;
|
|
SHOW BINLOG EVENTS LIMIT 7,3;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 593 Xid 1 620 COMMIT /* XID */
|
|
master-bin.000001 620 Gtid 1 658 GTID 0-1-3
|
|
master-bin.000001 658 Query 1 777 use `test`; CREATE TABLE t2 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB
|
|
-- CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=939;
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a
|
|
1
|
|
2
|
|
SELECT * FROM t2 ORDER BY a;
|
|
a b
|
|
1 0
|
|
2 0
|
|
DROP TABLE t1,t2;
|