mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 11:01:52 +01:00
4930209b12
Per review by Serg, include start row with new line. We are hoping we haven't annoyed people that prefered the old way. Adding an option for new lines seems like over-engineering in advance. So if there are complaints, let them be known (JIRA), and we'll add this under an option. Test cases updated.
412 lines
13 KiB
Text
412 lines
13 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 utf8mb4 */;
|
|
/*!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 utf8mb4 */;
|
|
/*!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.default_storage_engine INTO @old_engine;
|
|
SET GLOBAL default_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 default_storage_engine=@old_engine;
|
|
connect c1,127.0.0.1,root,,test,$MASTER_MYPORT,;
|
|
connect c2,127.0.0.1,root,,test,$MASTER_MYPORT,;
|
|
connect c3,127.0.0.1,root,,test,$MASTER_MYPORT,;
|
|
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;
|
|
include/show_binlog_events.inc
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
|
master-bin.000001 # Query # # use `test`; INSERT INTO t2 VALUES (1,0), (2,0)
|
|
master-bin.000001 # Xid # # COMMIT /* XID */
|
|
-- CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=<pos>;
|
|
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;
|