1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Merge branch '10.1' of bzr::/usr/home/serg/Abk/mysql into 10.1

This commit is contained in:
Sergei Golubchik
2014-05-25 10:18:07 +02:00
2288 changed files with 109052 additions and 89175 deletions

0
mysql-test/collections/default.weekly Executable file → Normal file
View File

View File

@ -98,8 +98,8 @@
# --> less switching of AUTOCOMMIT mode on master side.
#
# 4. Never use a test object, which was direct or indirect affected by a
# preceeding test sequence again.
# If one preceeding test sequence hits a (sometimes not visible,
# preceding test sequence again.
# If one preceding test sequence hits a (sometimes not visible,
# because the sql error code of the statement might be 0) bug
# and these rules are ignored, a following test sequence might earn ugly
# effects like failing 'sync_slave_with_master', crashes of the slave or

View File

@ -221,7 +221,7 @@ INSERT INTO t7 VALUES (1,3), (2,6), (3,9);
SELECT * FROM t7 ORDER BY C1;
# since bug#31552/31609 idempotency is not default any longer. In order
# the preceeding test INSERT INTO t7 to pass the mode is switched
# the preceding test INSERT INTO t7 to pass the mode is switched
# temprorarily
set @@global.slave_exec_mode= 'IDEMPOTENT';
@ -260,7 +260,7 @@ INSERT INTO t8 VALUES (1,2,3), (2,4,6), (3,6,9);
SELECT * FROM t8 ORDER BY a;
# since bug#31552/31609 idempotency is not default any longer. In order
# the preceeding test INSERT INTO t8 to pass the mode is switched
# the preceding test INSERT INTO t8 to pass the mode is switched
# temprorarily
set @@global.slave_exec_mode= 'IDEMPOTENT';

View File

@ -64,6 +64,14 @@ select a sounds like a from t1;
select 1 from t1 order by cast(a as char(1));
drop table t1;
--echo #
--echo # MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found
--echo #
SET character_set_client=latin1;
SET character_set_connection= @test_character_set;
SET collation_connection= @test_collation;
SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1;
#
# Bug#27580 SPACE() function collation bug?
#

View File

@ -1818,6 +1818,17 @@ SELECT f1() FROM t1 LEFT JOIN (SELECT 1 AS a FROM t1 LIMIT 0) AS d ON 1 GROUP BY
DROP FUNCTION f1;
DROP TABLE t1;
--echo #
--echo # MDEV-5702 Incorrect results are returned with NULLIF()
--echo #
CREATE TABLE t1 (d DATE);
INSERT INTO t1 VALUES ('1999-11-11'),('2014-02-04');
SELECT DISTINCT d, CAST(d AS CHAR), NULLIF(d,"2000-01-01") AS bad, NULLIF(CAST(d AS CHAR),"2000-01-01") AS good FROM t1;
CREATE TABLE t2 AS SELECT DISTINCT d, NULLIF(d,'2000-01-01') AS bad FROM t1;
SHOW CREATE TABLE t2;
DROP TABLE t1, t2;
SET NAMES latin1;
SET sql_mode='';
CREATE TABLE t1(a char(215) CHARACTER SET utf8 NOT NULL DEFAULT '', KEY(a));

View File

@ -1,4 +1,5 @@
# Copyright (c) 2007 MySQL AB, 2009, 2010 Sun Microsystems, Inc.
# Use is subject to license terms
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

View File

@ -9,6 +9,7 @@ innodb-buffer-page
innodb-buffer-page-lru
innodb-sys-foreign
innodb-sys-foreign-col
innodb-sys-tables
innodb-metrics
[xtradb_plugin]
@ -22,6 +23,7 @@ innodb-buffer-page
innodb-buffer-page-lru
innodb-sys-foreign
innodb-sys-foreign-col
innodb-sys-tables
innodb-metrics
[xtradb]
@ -34,4 +36,5 @@ innodb-buffer-page
innodb-buffer-page-lru
innodb-sys-foreign
innodb-sys-foreign-col
innodb-sys-tables
innodb-metrics

View File

@ -1,4 +1,5 @@
# Copyright (C) 2010 Sun Microsystems, Inc.
# Use is subject to license terms
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

View File

@ -10,7 +10,7 @@
# 1. We wait for $current_sessions <= $count_sessions because in the use case
# with count_sessions.inc before and wait_until_count_sessions.inc after
# the core of the test it could happen that the disconnects of sessions
# belonging to the preceeding test are not finished.
# belonging to the preceding test are not finished.
# sessions at test begin($count_sessions) = m + n
# sessions of the previous test which will be soon disconnected = n (n >= 0)
# sessions at test end ($current sessions, assuming the test disconnects

View File

@ -1,5 +1,6 @@
# -*- cperl -*-
# Copyright (C) 2004-2008 MySQL AB
# Use is subject to license terms
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

View File

@ -1,8 +1,8 @@
#!/usr/bin/perl
# -*- cperl -*-
# Copyright (c) 2004, 2013, Oracle and/or its affiliates.
# Copyright (c) 2009, 2013, Monty Program Ab
# Copyright (c) 2004, 2014, Oracle and/or its affiliates.
# Copyright (c) 2009, 2014, Monty Program Ab
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -481,7 +481,6 @@ sub main {
);
mtr_error("Could not create testcase server port: $!") unless $server;
my $server_port = $server->sockport();
mtr_report("Using server port $server_port");
if ($opt_resfile) {
resfile_init("$opt_vardir/mtr-results.txt");
@ -525,15 +524,17 @@ sub main {
# Send Ctrl-C to any children still running
kill("INT", keys(%children));
# Wait for childs to exit
foreach my $pid (keys %children)
{
my $ret_pid= waitpid($pid, 0);
if ($ret_pid != $pid){
mtr_report("Unknown process $ret_pid exited");
}
else {
delete $children{$ret_pid};
if (!IS_WINDOWS) {
# Wait for children to exit
foreach my $pid (keys %children)
{
my $ret_pid= waitpid($pid, 0);
if ($ret_pid != $pid){
mtr_report("Unknown process $ret_pid exited");
}
else {
delete $children{$ret_pid};
}
}
}
@ -1871,22 +1872,9 @@ sub collect_mysqld_features {
mtr_add_arg($args, "--lc-messages-dir=%s", $path_language);
mtr_add_arg($args, "--skip-grant-tables");
mtr_add_arg($args, "--log-warnings=0");
for (@opt_extra_mysqld_opt) {
mtr_add_arg($args, $_) unless /^--binlog-format\b/;
}
my $euid= $>;
if (!IS_WINDOWS and $euid == 0) {
mtr_add_arg($args, "--user=root");
}
mtr_add_arg($args, "--verbose");
mtr_add_arg($args, "--help");
# Need --user=root if running as *nix root user
if (!IS_WINDOWS and $> == 0)
{
mtr_add_arg($args, "--user=root");
}
my $exe_mysqld= find_mysqld($bindir);
my $cmd= join(" ", $exe_mysqld, @$args);
@ -6537,7 +6525,7 @@ Misc options
start-dirty Only start the servers (without initialization) for
the first specified test case
user-args In combination with start* and no test name, drops
arguments to mysqld except those speficied with
arguments to mysqld except those specified with
--mysqld (if any)
wait-all If --start or --start-dirty option is used, wait for all
servers to exit before finishing the process

View File

@ -1,4 +1,5 @@
# Copyright (C) 2005, 2007 MySQL AB
# Use is subject to license terms
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public

View File

@ -1461,24 +1461,6 @@ t2 CREATE TABLE `t2` (
) ENGINE=InnoDB DEFAULT CHARSET=latin1
DROP TABLE t2;
DROP TABLE t1;
#
# Bug#11938817 ALTER BEHAVIOR DIFFERENT THEN DOCUMENTED
#
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(a INT) engine=innodb;
INSERT INTO t1 VALUES (1), (2);
# This should not do anything
ALTER TABLE t1;
affected rows: 0
# Check that we rebuild the table
ALTER TABLE t1 engine=innodb;
affected rows: 2
info: Records: 2 Duplicates: 0 Warnings: 0
# This should also rebuild the table
ALTER TABLE t1 FORCE;
affected rows: 2
info: Records: 2 Duplicates: 0 Warnings: 0
DROP TABLE t1;
# Bug#11748057 (formerly known as 34972): ALTER TABLE statement doesn't
# identify correct column name.
#
@ -1888,8 +1870,8 @@ ALTER TABLE tm1 DEFAULT CHARACTER SET utf8;
affected rows: 2
info: Records: 2 Duplicates: 0 Warnings: 0
ALTER TABLE ti1 FORCE;
affected rows: 2
info: Records: 2 Duplicates: 0 Warnings: 0
affected rows: 0
info: Records: 0 Duplicates: 0 Warnings: 0
ALTER TABLE tm1 FORCE;
affected rows: 2
info: Records: 2 Duplicates: 0 Warnings: 0

View File

@ -16,3 +16,11 @@ insert t1 values (repeat('3', 8193),3,1,1);
ALTER TABLE t1 ADD PRIMARY KEY (col4(10)) , ADD UNIQUE KEY uidx (col3);
ERROR 23000: Duplicate entry '1' for key 'uidx'
DROP TABLE t1;
CREATE TABLE t1 (a INT) ENGINE = InnoDB;
INSERT INTO t1 VALUES (2);
ALTER TABLE t1 ADD PRIMARY KEY (a);
ALTER TABLE t1 DROP PRIMARY KEY;
INSERT INTO t1 VALUES (2);
ALTER TABLE t1 ADD PRIMARY KEY (a);
ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
DROP TABLE t1;

View File

@ -71,6 +71,15 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
#
# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found
#
SET character_set_client=latin1;
SET character_set_connection= @test_character_set;
SET collation_connection= @test_collation;
SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1;
COLLATION('.') c1
big5_chinese_ci .wwwmysqlcom
set names utf8;
create table t1 (
name varchar(10),

View File

@ -2886,6 +2886,23 @@ f1()
00:00:01
DROP FUNCTION f1;
DROP TABLE t1;
#
# MDEV-5702 Incorrect results are returned with NULLIF()
#
CREATE TABLE t1 (d DATE);
INSERT INTO t1 VALUES ('1999-11-11'),('2014-02-04');
SELECT DISTINCT d, CAST(d AS CHAR), NULLIF(d,"2000-01-01") AS bad, NULLIF(CAST(d AS CHAR),"2000-01-01") AS good FROM t1;
d CAST(d AS CHAR) bad good
1999-11-11 1999-11-11 1999-11-11 1999-11-11
2014-02-04 2014-02-04 2014-02-04 2014-02-04
CREATE TABLE t2 AS SELECT DISTINCT d, NULLIF(d,'2000-01-01') AS bad FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`d` date DEFAULT NULL,
`bad` varbinary(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1, t2;
SET NAMES latin1;
SET sql_mode='';
CREATE TABLE t1(a char(215) CHARACTER SET utf8 NOT NULL DEFAULT '', KEY(a));

View File

@ -75,6 +75,15 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
#
# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found
#
SET character_set_client=latin1;
SET character_set_connection= @test_character_set;
SET collation_connection= @test_collation;
SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1;
COLLATION('.') c1
cp1250_general_ci .wwwmysqlcom
set names utf8;
create table t1 (
name varchar(10),
@ -168,6 +177,15 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
#
# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found
#
SET character_set_client=latin1;
SET character_set_connection= @test_character_set;
SET collation_connection= @test_collation;
SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1;
COLLATION('.') c1
cp1250_czech_cs .wwwmysqlcom
set names utf8;
create table t1 (
name varchar(10),

View File

@ -3278,6 +3278,23 @@ f1()
00:00:01
DROP FUNCTION f1;
DROP TABLE t1;
#
# MDEV-5702 Incorrect results are returned with NULLIF()
#
CREATE TABLE t1 (d DATE);
INSERT INTO t1 VALUES ('1999-11-11'),('2014-02-04');
SELECT DISTINCT d, CAST(d AS CHAR), NULLIF(d,"2000-01-01") AS bad, NULLIF(CAST(d AS CHAR),"2000-01-01") AS good FROM t1;
d CAST(d AS CHAR) bad good
1999-11-11 1999-11-11 1999-11-11 1999-11-11
2014-02-04 2014-02-04 2014-02-04 2014-02-04
CREATE TABLE t2 AS SELECT DISTINCT d, NULLIF(d,'2000-01-01') AS bad FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`d` date DEFAULT NULL,
`bad` varchar(10) CHARACTER SET cp1251 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1, t2;
SET NAMES latin1;
SET sql_mode='';
CREATE TABLE t1(a char(215) CHARACTER SET utf8 NOT NULL DEFAULT '', KEY(a));
@ -3303,5 +3320,15 @@ SELECT COALESCE(IF(test1=1, NULL, 1), test2) FROM t1;
COALESCE(IF(test1=1, NULL, 1), test2)
DROP TABLE t1;
#
# MDEV-5459 Illegal mix of collations for datetime
#
SET NAMES cp1251;
CREATE TABLE t1 (dt DATETIME);
INSERT INTO t1 VALUES ('2014-01-02 10:20:30');
SELECT date(dt) FROM t1 WHERE (CASE WHEN 1 THEN date(dt) ELSE null END >= '2013-12-01 00:00:00');
date(dt)
2014-01-02
DROP TABLE t1;
#
# End of 5.5 tests
#

View File

@ -71,6 +71,15 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
#
# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found
#
SET character_set_client=latin1;
SET character_set_connection= @test_character_set;
SET collation_connection= @test_collation;
SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1;
COLLATION('.') c1
euckr_korean_ci .wwwmysqlcom
set names utf8;
create table t1 (
name varchar(10),

View File

@ -71,6 +71,15 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
#
# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found
#
SET character_set_client=latin1;
SET character_set_connection= @test_character_set;
SET collation_connection= @test_collation;
SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1;
COLLATION('.') c1
gb2312_chinese_ci .wwwmysqlcom
set names utf8;
create table t1 (
name varchar(10),

View File

@ -71,6 +71,15 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
#
# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found
#
SET character_set_client=latin1;
SET character_set_connection= @test_character_set;
SET collation_connection= @test_collation;
SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1;
COLLATION('.') c1
gbk_chinese_ci .wwwmysqlcom
set names utf8;
create table t1 (
name varchar(10),

View File

@ -308,6 +308,108 @@ select 'a' regexp 'A' collate latin1_general_cs;
select 'a' regexp 'A' collate latin1_bin;
'a' regexp 'A' collate latin1_bin
0
SET @test_character_set= 'latin1';
SET @test_collation= 'latin1_swedish_ci';
SET @safe_character_set_server= @@character_set_server;
SET @safe_collation_server= @@collation_server;
SET @safe_character_set_client= @@character_set_client;
SET @safe_character_set_results= @@character_set_results;
SET character_set_server= @test_character_set;
SET collation_server= @test_collation;
CREATE DATABASE d1;
USE d1;
CREATE TABLE t1 (c CHAR(10), KEY(c));
SHOW FULL COLUMNS FROM t1;
Field Type Collation Null Key Default Extra Privileges Comment
c char(10) latin1_swedish_ci YES MUL NULL
INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa');
SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%';
want3results
aaa
aaaa
aaaaa
DROP TABLE t1;
CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2)));
SHOW FULL COLUMNS FROM t1;
Field Type Collation Null Key Default Extra Privileges Comment
c1 varchar(15) latin1_swedish_ci YES MUL NULL
INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab');
SELECT c1 as want3results from t1 where c1 like 'l%';
want3results
location
loberge
lotre
SELECT c1 as want3results from t1 where c1 like 'lo%';
want3results
location
loberge
lotre
SELECT c1 as want1result from t1 where c1 like 'loc%';
want1result
location
SELECT c1 as want1result from t1 where c1 like 'loca%';
want1result
location
SELECT c1 as want1result from t1 where c1 like 'locat%';
want1result
location
SELECT c1 as want1result from t1 where c1 like 'locati%';
want1result
location
SELECT c1 as want1result from t1 where c1 like 'locatio%';
want1result
location
SELECT c1 as want1result from t1 where c1 like 'location%';
want1result
location
DROP TABLE t1;
create table t1 (a set('a') not null);
insert into t1 values (),();
Warnings:
Warning 1364 Field 'a' doesn't have a default value
select cast(a as char(1)) from t1;
cast(a as char(1))
select a sounds like a from t1;
a sounds like a
1
1
select 1 from t1 order by cast(a as char(1));
1
1
1
drop table t1;
#
# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found
#
SET character_set_client=latin1;
SET character_set_connection= @test_character_set;
SET collation_connection= @test_collation;
SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1;
COLLATION('.') c1
latin1_swedish_ci .wwwmysqlcom
set names utf8;
create table t1 (
name varchar(10),
level smallint unsigned);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`name` varchar(10) DEFAULT NULL,
`level` smallint(5) unsigned DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
insert into t1 values ('string',1);
select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
concat(name,space(level)) concat(name, repeat(' ',level))
string string
drop table t1;
DROP DATABASE d1;
USE test;
SET character_set_server= @safe_character_set_server;
SET collation_server= @safe_collation_server;
SET character_set_client= @safe_character_set_client;
SET character_set_results= @safe_character_set_results;
SET collation_connection='latin1_swedish_ci';
create table t1 select repeat('a',4000) a;
delete from t1;
@ -3460,6 +3562,23 @@ f1()
00:00:01
DROP FUNCTION f1;
DROP TABLE t1;
#
# MDEV-5702 Incorrect results are returned with NULLIF()
#
CREATE TABLE t1 (d DATE);
INSERT INTO t1 VALUES ('1999-11-11'),('2014-02-04');
SELECT DISTINCT d, CAST(d AS CHAR), NULLIF(d,"2000-01-01") AS bad, NULLIF(CAST(d AS CHAR),"2000-01-01") AS good FROM t1;
d CAST(d AS CHAR) bad good
1999-11-11 1999-11-11 1999-11-11 1999-11-11
2014-02-04 2014-02-04 2014-02-04 2014-02-04
CREATE TABLE t2 AS SELECT DISTINCT d, NULLIF(d,'2000-01-01') AS bad FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`d` date DEFAULT NULL,
`bad` varchar(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1, t2;
SET NAMES latin1;
SET sql_mode='';
CREATE TABLE t1(a char(215) CHARACTER SET utf8 NOT NULL DEFAULT '', KEY(a));

View File

@ -5841,6 +5841,15 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
#
# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found
#
SET character_set_client=latin1;
SET character_set_connection= @test_character_set;
SET collation_connection= @test_collation;
SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1;
COLLATION('.') c1
utf8_swedish_ci .wwwmysqlcom
set names utf8;
create table t1 (
name varchar(10),

View File

@ -71,6 +71,15 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
#
# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found
#
SET character_set_client=latin1;
SET character_set_connection= @test_character_set;
SET collation_connection= @test_collation;
SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1;
COLLATION('.') c1
ucs2_general_ci .wwwmysqlcom
set names utf8;
create table t1 (
name varchar(10),
@ -4460,6 +4469,23 @@ f1()
00:00:01
DROP FUNCTION f1;
DROP TABLE t1;
#
# MDEV-5702 Incorrect results are returned with NULLIF()
#
CREATE TABLE t1 (d DATE);
INSERT INTO t1 VALUES ('1999-11-11'),('2014-02-04');
SELECT DISTINCT d, CAST(d AS CHAR), NULLIF(d,"2000-01-01") AS bad, NULLIF(CAST(d AS CHAR),"2000-01-01") AS good FROM t1;
d CAST(d AS CHAR) bad good
1999-11-11 1999-11-11 1999-11-11 1999-11-11
2014-02-04 2014-02-04 2014-02-04 2014-02-04
CREATE TABLE t2 AS SELECT DISTINCT d, NULLIF(d,'2000-01-01') AS bad FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`d` date DEFAULT NULL,
`bad` varchar(10) CHARACTER SET ucs2 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1, t2;
SET NAMES latin1;
SET sql_mode='';
CREATE TABLE t1(a char(215) CHARACTER SET utf8 NOT NULL DEFAULT '', KEY(a));

View File

@ -13,6 +13,12 @@ a
2
3
4
SELECT * FROM t1;
a
1
2
3
4
DROP TABLE t1;
#
# End of 5.5 tests

View File

@ -2826,6 +2826,15 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
#
# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found
#
SET character_set_client=latin1;
SET character_set_connection= @test_character_set;
SET collation_connection= @test_collation;
SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1;
COLLATION('.') c1
utf16_swedish_ci .wwwmysqlcom
set names utf8;
create table t1 (
name varchar(10),

View File

@ -2826,6 +2826,15 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
#
# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found
#
SET character_set_client=latin1;
SET character_set_connection= @test_character_set;
SET collation_connection= @test_collation;
SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1;
COLLATION('.') c1
utf32_swedish_ci .wwwmysqlcom
set names utf8;
create table t1 (
name varchar(10),

View File

@ -5337,6 +5337,23 @@ f1()
00:00:01
DROP FUNCTION f1;
DROP TABLE t1;
#
# MDEV-5702 Incorrect results are returned with NULLIF()
#
CREATE TABLE t1 (d DATE);
INSERT INTO t1 VALUES ('1999-11-11'),('2014-02-04');
SELECT DISTINCT d, CAST(d AS CHAR), NULLIF(d,"2000-01-01") AS bad, NULLIF(CAST(d AS CHAR),"2000-01-01") AS good FROM t1;
d CAST(d AS CHAR) bad good
1999-11-11 1999-11-11 1999-11-11 1999-11-11
2014-02-04 2014-02-04 2014-02-04 2014-02-04
CREATE TABLE t2 AS SELECT DISTINCT d, NULLIF(d,'2000-01-01') AS bad FROM t1;
SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`d` date DEFAULT NULL,
`bad` varchar(10) CHARACTER SET utf8 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1, t2;
SET NAMES latin1;
SET sql_mode='';
CREATE TABLE t1(a char(215) CHARACTER SET utf8 NOT NULL DEFAULT '', KEY(a));

View File

@ -699,6 +699,51 @@ EXECUTE stmt;
DEALLOCATE PREPARE stmt;
DROP TABLE t1;
End of 5.1 tests
#
# Start of 5.5 tests
#
#
# MDEV-6146 Can't mix (latin1_swedish_ci,NUMERIC) and (utf8_unicode_ci,IMPLICIT) for MATCH
#
SET NAMES utf8;
CREATE TABLE t1
(
txt text COLLATE utf8_unicode_ci NOT NULL,
uid int(11) NOT NULL,
id2 int(11) NOT NULL,
KEY uid (uid),
KEY id2 (id2)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO t1 VALUES ('txt1',1234,5678);
SELECT * FROM t1 WHERE MATCH (id2, uid, txt) AGAINST ('txt1' IN BOOLEAN MODE);
txt uid id2
txt1 1234 5678
SELECT * FROM t1 WHERE MATCH (id2, uid, txt) AGAINST ('1234' IN BOOLEAN MODE);
txt uid id2
txt1 1234 5678
SELECT * FROM t1 WHERE MATCH (id2, uid, txt) AGAINST ('5678' IN BOOLEAN MODE);
txt uid id2
txt1 1234 5678
DROP TABLE t1;
CREATE TABLE t1 (
txt1 text COLLATE utf8_unicode_ci NOT NULL,
txt2 text COLLATE latin1_swedish_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO t1 VALUES ('nnn1 x1 y1 ööö1','mmm1 ùùù1');
INSERT INTO t1 VALUES ('nnn2 x2 y2 ööö2','mmm2 ùùù2');
INSERT INTO t1 VALUES ('nnn3 x3 y3 ööö3','mmm3 ùùù3');
INSERT INTO t1 VALUES ('nnn4 x4 y4 ööö4','mmm4 ùùù4');
INSERT INTO t1 VALUES ('nnn5 x5 y5 ööö5','mmm5 ');
SELECT * FROM t1 WHERE MATCH (txt1,txt2) AGAINST ('ööö1' IN BOOLEAN MODE);
txt1 txt2
nnn1 x1 y1 ööö1 mmm1 ùùù1
SELECT * FROM t1 WHERE MATCH (txt1,txt2) AGAINST ('ùùù2' IN BOOLEAN MODE);
txt1 txt2
nnn2 x2 y2 ööö2 mmm2 ùùù2
DROP TABLE t1;
#
# End of 5.5 tests
#
CREATE TABLE t1 (
id int(11) auto_increment,
title varchar(100) default '',

View File

@ -119,7 +119,7 @@ substring_index('aaaaaaaaa1','aaa',-3)
aaaaaa1
select substring_index('aaaaaaaaa1','aaa',-4);
substring_index('aaaaaaaaa1','aaa',-4)
aaaaaaaaa1
select substring_index('the king of thethe hill','the',-2);
substring_index('the king of thethe hill','the',-2)
the hill
@ -2659,6 +2659,35 @@ NULL NULL
8
drop table t1;
End of 5.1 tests
#
# Start of 5.3 tests
#
#
# Bug#11829861: SUBSTRING_INDEX() RESULTS IN MISSING CHARACTERS WHEN USED
# INSIDE LOWER()
#
SET @user_at_host = 'root@mytinyhost-PC.local';
SELECT LOWER(SUBSTRING_INDEX(@user_at_host, '@', -1));
LOWER(SUBSTRING_INDEX(@user_at_host, '@', -1))
mytinyhost-pc.local
# End of test BUG#11829861
#
# Bug#42404: SUBSTRING_INDEX() RESULTS ARE INCONSISTENT
#
CREATE TABLE t (i INT NOT NULL, c CHAR(255) NOT NULL);
INSERT INTO t VALUES (0,'.www.mysql.com'),(1,'.wwwmysqlcom');
SELECT i, SUBSTRING_INDEX(c, '.', -2) FROM t WHERE i = 1;
i SUBSTRING_INDEX(c, '.', -2)
1 .wwwmysqlcom
SELECT i, SUBSTRING_INDEX(c, '.', -2) FROM t;
i SUBSTRING_INDEX(c, '.', -2)
0 mysql.com
1 .wwwmysqlcom
DROP TABLE t;
# End of test BUG#42404
#
# End of 5.3 tests
#
Start of 5.4 tests
SELECT format(12345678901234567890.123, 3);
format(12345678901234567890.123, 3)

View File

@ -2474,6 +2474,15 @@ v 2v,2v
NULL 1c,2v,2v
DROP TABLE t1,t2;
#
# MDEV-6129: Server crashes during UNION with ORDER BY field IS NULL
#
SET sql_mode='ONLY_FULL_GROUP_BY';
SELECT 1 AS test UNION SELECT 2 AS test ORDER BY test IS NULL ASC;
test
1
2
SET sql_mode='';
#
# Bug #58782
# Missing rows with SELECT .. WHERE .. IN subquery
# with full GROUP BY and no aggr

View File

@ -638,6 +638,35 @@ set optimizer_switch=@save_optimizer_switch;
drop table t1,t2,t3;
End of 5.2 tests
#
# Bug mdev-6116: an equality in the conjunction of HAVING
# and IN subquery in WHERE
# (The bug is caused by the same problem as bug mdev-5927)
#
CREATE TABLE t1 (f_key varchar(1), f_nokey varchar(1), INDEX(f_key));
INSERT INTO t1 VALUES ('v','v'),('s','s');
CREATE TABLE t2 (f_int int, f_key varchar(1), INDEX(f_key));
INSERT INTO t2 VALUES
(4,'j'),(6,'v'),(3,'c'),(5,'m'),(3,'d'),(2,'d'),(2,'y'),
(9,'t'),(3,'d'),(8,'s'),(1,'r'),(8,'m'),(8,'b'),(5,'x');
SELECT t2.f_int FROM t1 INNER JOIN t2 ON (t2.f_key = t1.f_nokey)
WHERE t1.f_nokey IN (
SELECT t1.f_key FROM t1, t2 WHERE t1.f_key = t2.f_key
) HAVING t2.f_int >= 0 AND t2.f_int != 0;
f_int
6
8
DROP TABLE t1,t2;
#
# Bug mdev-5927: an equality in the conjunction of HAVING
# and an equality in WHERE
#
CREATE TABLE t1 (pk int PRIMARY KEY, f int NOT NULL, INDEX(f));
INSERT INTO t1 VALUES (1,0), (2,8);
SELECT * FROM t1 WHERE f = 2 HAVING ( pk IN ( SELECT 9 ) AND f != 0 );
pk f
DROP TABLE t1;
End of 5.3 tests
#
# Bug mdev-5160: two-way join with HAVING over the second table
#
CREATE TABLE t1 (c1 varchar(6)) ENGINE=MyISAM;

View File

@ -359,3 +359,184 @@ Note 1831 Duplicate index 'i4' defined on the table 'test.t1'. This is deprecate
SET DEBUG_SYNC= 'RESET';
DROP TABLE t1;
SET DEBUG_SYNC= 'RESET';
#
#BUG#13975225:ONLINE OPTIMIZE TABLE FOR INNODB TABLES
#
SET DEBUG_SYNC= 'alter_table_inplace_after_lock_downgrade SIGNAL downgraded WAIT_FOR continue';
#Setting up INNODB table.
CREATE TABLE t1(fld1 INT, fld2 INT, fld3 INT) ENGINE= INNODB;
INSERT INTO t1 VALUES (155, 45, 55);
#Concurrent INSERT, UPDATE, SELECT and DELETE is supported
#during OPTIMIZE TABLE operation for INNODB tables.
connection default;
#OPTIMIZE TABLE operation.
OPTIMIZE TABLE t1;
connection con1;
SET DEBUG_SYNC= 'now WAIT_FOR downgraded';
# With the patch, concurrent DML operation succeeds.
INSERT INTO t1 VALUES (10, 11, 12);
UPDATE t1 SET fld1= 20 WHERE fld1= 155;
DELETE FROM t1 WHERE fld1= 20;
SELECT * from t1;
fld1 fld2 fld3
10 11 12
SET DEBUG_SYNC= 'now SIGNAL continue';
connection default;
Table Op Msg_type Msg_text
test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
test.t1 optimize status OK
DROP TABLE t1;
SET DEBUG_SYNC= 'RESET';
#Concurrent INSERT, UPDATE, SELECT and DELETE is supported
#during OPTIMIZE TABLE operation for Partitioned table.
SET DEBUG_SYNC= 'alter_table_inplace_after_lock_downgrade SIGNAL downgraded WAIT_FOR continue';
#Setup PARTITIONED table.
CREATE TABLE t1(fld1 INT) ENGINE= INNODB PARTITION BY HASH(fld1) PARTITIONS 4;
INSERT INTO t1 VALUES(10);
#OPTIMIZE TABLE operation.
OPTIMIZE TABLE t1;
connection con1;
SET DEBUG_SYNC= 'now WAIT_FOR downgraded';
# With the patch, concurrent DML operation succeeds.
INSERT INTO t1 VALUES (30);
UPDATE t1 SET fld1= 20 WHERE fld1= 10;
DELETE FROM t1 WHERE fld1= 20;
SELECT * from t1;
fld1
30
SET DEBUG_SYNC= 'now SIGNAL continue';
connection default;
Table Op Msg_type Msg_text
test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
test.t1 optimize status OK
DROP TABLE t1;
SET DEBUG_SYNC= 'RESET';
#ALTER TABLE FORCE and ALTER TABLE ENGINE uses online rebuild
#of the table.
CREATE TABLE t1(fld1 INT, fld2 INT) ENGINE=INNODB;
INSERT INTO t1 VALUES(10, 20);
ALTER TABLE t1 FORCE;
affected rows: 0
info: Records: 0 Duplicates: 0 Warnings: 0
ALTER TABLE t1 ENGINE=INNODB;
affected rows: 0
info: Records: 0 Duplicates: 0 Warnings: 0
#ALTER TABLE FORCE, ALTER TABLE ENGINE and OPTIMIZE TABLE uses
#table copy when the old_alter_table enabled.
SET SESSION old_alter_table= TRUE;
affected rows: 0
ALTER TABLE t1 FORCE;
affected rows: 1
info: Records: 1 Duplicates: 0 Warnings: 0
ALTER TABLE t1 ENGINE= INNODB;
affected rows: 1
info: Records: 1 Duplicates: 0 Warnings: 0
SET DEBUG_SYNC= 'alter_table_copy_after_lock_upgrade SIGNAL upgraded';
affected rows: 0
#OPTIMIZE TABLE operation using table copy.
OPTIMIZE TABLE t1;
connection con1;
SET DEBUG_SYNC= 'now WAIT_FOR upgraded';
affected rows: 0
INSERT INTO t1 VALUES(10, 20);
affected rows: 1
connection default;
Table Op Msg_type Msg_text
test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
test.t1 optimize status OK
affected rows: 2
SET DEBUG_SYNC= 'RESET';
affected rows: 0
SET SESSION old_alter_table= FALSE;
affected rows: 0
#ALTER TABLE FORCE and ALTER TABLE ENGINE uses table copy
#when ALGORITHM COPY is used.
ALTER TABLE t1 FORCE, ALGORITHM= COPY;
affected rows: 2
info: Records: 2 Duplicates: 0 Warnings: 0
ALTER TABLE t1 ENGINE= INNODB, ALGORITHM= COPY;
affected rows: 2
info: Records: 2 Duplicates: 0 Warnings: 0
DROP TABLE t1;
#OPTIMIZE TABLE on a table with FULLTEXT index uses
#ALTER TABLE FORCE using COPY algorithm here. This
#test case ensures the COPY table debug sync point is hit.
SET DEBUG_SYNC= 'alter_table_copy_after_lock_upgrade SIGNAL upgraded';
#Setup a table with FULLTEXT index.
connection default;
CREATE TABLE t1(fld1 CHAR(10), FULLTEXT(fld1)) ENGINE= INNODB;
INSERT INTO t1 VALUES("String1");
#OPTIMIZE TABLE operation.
OPTIMIZE TABLE t1;
connection con1;
SET DEBUG_SYNC= 'now WAIT_FOR upgraded';
INSERT INTO t1 VALUES("String2");
connection default;
Table Op Msg_type Msg_text
test.t1 optimize note Table does not support optimize, doing recreate + analyze instead
test.t1 optimize status OK
SET DEBUG_SYNC= 'RESET';
DROP TABLE t1;
#Test which demonstrates that ALTER TABLE, OPTIMIZE PARTITION
#takes OPTIMIZE TABLE code path, hence does an online rebuild
#of the table with the patch.
connection default;
SET DEBUG_SYNC= 'alter_table_inplace_after_lock_downgrade SIGNAL downgraded WAIT_FOR continue';
#Setup PARTITIONED table.
CREATE TABLE t1(fld1 INT) ENGINE= INNODB PARTITION BY HASH(fld1) PARTITIONS 4;
INSERT INTO t1 VALUES(10);
#OPTIMIZE ALL PARTITIONS operation.
ALTER TABLE t1 OPTIMIZE PARTITION ALL;
connection con1;
SET DEBUG_SYNC= 'now WAIT_FOR downgraded';
# With the patch, concurrent DML operation succeeds.
INSERT INTO t1 VALUES (30);
UPDATE t1 SET fld1= 20 WHERE fld1= 10;
DELETE FROM t1 WHERE fld1= 20;
SELECT * from t1;
fld1
30
SET DEBUG_SYNC= 'now SIGNAL continue';
connection default;
Table Op Msg_type Msg_text
test.t1 optimize note Table does not support optimize on partitions. All partitions will be rebuilt and analyzed.
test.t1 optimize status OK
SET DEBUG_SYNC= 'RESET';
#OPTIMIZE PER PARTITION operation.
SET DEBUG_SYNC= 'alter_table_inplace_after_lock_downgrade SIGNAL downgraded WAIT_FOR continue';
ALTER TABLE t1 OPTIMIZE PARTITION p0;
connection con1;
SET DEBUG_SYNC= 'now WAIT_FOR downgraded';
# With the patch, concurrent DML operation succeeds.
INSERT INTO t1 VALUES (30);
UPDATE t1 SET fld1= 20 WHERE fld1= 10;
DELETE FROM t1 WHERE fld1= 20;
SELECT * from t1;
fld1
30
30
SET DEBUG_SYNC= 'now SIGNAL continue';
connection default;
Table Op Msg_type Msg_text
test.t1 optimize note Table does not support optimize on partitions. All partitions will be rebuilt and analyzed.
test.t1 optimize status OK
SET DEBUG_SYNC= 'RESET';
# Test case for Bug#11938817 (ALTER BEHAVIOR DIFFERENT THEN DOCUMENTED).
# This should not do anything
ALTER TABLE t1;
affected rows: 0
SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL rebuild';
# Check that we rebuild the table
ALTER TABLE t1 engine=innodb;
connection con1;
SET DEBUG_SYNC= 'now WAIT_FOR rebuild';
connection default;
SET DEBUG_SYNC= 'RESET';
SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL rebuild';
# Check that we rebuild the table
ALTER TABLE t1 FORCE;
connection con1;
SET DEBUG_SYNC= 'now WAIT_FOR rebuild';
connection default;
SET DEBUG_SYNC= 'RESET';
DROP TABLE t1;

View File

@ -3086,18 +3086,17 @@ DELETE FROM t2 WHERE a = 3;
# Now that DELETE blocks on a metadata lock, we should be able to do
# SELECT * FROM m1 here. SELECT used to be blocked by a DELETE table
# lock request.
SELECT * FROM m1;
a
1
2
3
4
SELECT * FROM m1 WHERE a < 3;
# Resuming ALTER TABLE
SET DEBUG_SYNC= 'now SIGNAL continue';
# Connection con1
# Reaping: ALTER TABLE m1 engine=MERGE UNION=(t2, t1)
# Connection con2
# Reaping: DELETE FROM t2 WHERE a = 3
# Reaping: SELECT * FROM m1 WHERE a < 3
a
1
2
# Connection default
DROP TABLE m1, t1, t2;
SET DEBUG_SYNC= 'RESET';

View File

@ -794,6 +794,35 @@ SELECT * FROM t2;
col_int_key pk_1 pk_2 col_int
1 7 11 4
DROP TABLE t1,t2;
#
# MDEV-6139: UPDATE w/ join against MRG_MyISAM table with read-only
# sub-table fails
# MDEV-6193: Problems with multi-table updates that JOIN against
# read-only table
#
CREATE TABLE t1 (
id int(10) unsigned,
a int(11)
) ENGINE=MyISAM;
CREATE TABLE t3 (
id int(10) unsigned,
b int(11)
) ENGINE=MyISAM;
CREATE TABLE t2 (
id int(10) unsigned,
b int(11)
) ENGINE=MRG_MyISAM UNION=(t3);
FLUSH TABLES;
update t1 join t2 using (id) set t1.a=t2.b;
create view v2 as select * from t2;
update t1 join v2 using (id) set t1.a=0;
create view v1 as select * from t3;
update t1 join v1 using (id) set t1.a=0;
update t1 join INFORMATION_SCHEMA.CHARACTER_SETS on (id=MAXLEN) set t1.a=0;
create view v3 as select t2.id, t3.b from t2 join t3 using(id);
update t1 join v3 using (id) set t1.a=0;
drop view v1, v2, v3;
drop table t2, t3, t1;
end of 5.5 tests
# Bug mdev-5970

View File

@ -297,10 +297,7 @@ CHECK TABLE bug47205 FOR UPGRADE;
Table Op Msg_type Msg_text
test.bug47205 check error Table rebuild required. Please do "ALTER TABLE `bug47205` FORCE" or dump/reload to fix it!
# ALTER TABLE ... FORCE should rebuild the table
# and therefore output "affected rows: 1"
ALTER TABLE bug47205 FORCE;
affected rows: 1
info: Records: 1 Duplicates: 0 Warnings: 0
# Table should now be ok
CHECK TABLE bug47205 FOR UPGRADE;
Table Op Msg_type Msg_text

View File

@ -683,7 +683,7 @@ The following options may be given as the first argument:
plugins from a given library_file will be loaded.
--plugin-load-add=name
Optional semicolon-separated list of plugins to load.
This option adds to the list speficied by --plugin-load
This option adds to the list specified by --plugin-load
in an incremental way. It can be specified many times,
adding more plugins every time.
--plugin-maturity=name
@ -756,7 +756,7 @@ The following options may be given as the first argument:
--relay-log-space-limit=#
Maximum space to use for all relay logs
--replicate-annotate-row-events
Tells the slave to write annotate rows events recieved
Tells the slave to write annotate rows events received
from the master to its own binary log. Ignored if
log_slave_updates is not set
--replicate-do-db=name
@ -1244,7 +1244,7 @@ performance-schema-max-rwlock-instances 1724
performance-schema-max-socket-classes 10
performance-schema-max-socket-instances 179
performance-schema-max-stage-classes 150
performance-schema-max-statement-classes 179
performance-schema-max-statement-classes 180
performance-schema-max-table-handles 445
performance-schema-max-table-instances 445
performance-schema-max-thread-classes 50

View File

@ -5286,3 +5286,7 @@ drop table t1, t2;
#
# End of 5.1 tests
#
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

View File

@ -618,3 +618,28 @@ DROP TABLE t1, t2, t3;
#
# End of 5.1 tests
#
#
# Bug#17075846 : unquoted file names for variable values are
# accepted but parsed incorrectly
#
SET default_storage_engine=a.myisam;
ERROR 42000: Incorrect argument type to variable 'default_storage_engine'
SET default_storage_engine = .a.MyISAM;
ERROR 42000: Incorrect argument type to variable 'default_storage_engine'
SET default_storage_engine = a.b.MyISAM;
ERROR 42000: Incorrect argument type to variable 'default_storage_engine'
SET default_storage_engine = `a`.MyISAM;
ERROR 42000: Incorrect argument type to variable 'default_storage_engine'
SET default_storage_engine = `a`.`MyISAM`;
ERROR 42000: Incorrect argument type to variable 'default_storage_engine'
set default_storage_engine = "a.MYISAM";
ERROR 42000: Unknown storage engine 'a.MYISAM'
set default_storage_engine = 'a.MYISAM';
ERROR 42000: Unknown storage engine 'a.MYISAM'
set default_storage_engine = `a.MYISAM`;
ERROR 42000: Unknown storage engine 'a.MYISAM'
CREATE TABLE t1 (s VARCHAR(100));
CREATE TRIGGER trigger1 BEFORE INSERT ON t1 FOR EACH ROW
SET default_storage_engine = NEW.INNODB;
ERROR 42S22: Unknown column 'INNODB' in 'NEW'
DROP TABLE t1;

View File

@ -42,16 +42,21 @@ SELECT * FROM t1;
a
set global example_ulong_var=500;
set global example_enum_var= e1;
set session example_int_var= -1;
show status like 'example%';
Variable_name Value
Example_func_example enum_var is 0, ulong_var is 500, double_var is 8.500000, really
Example_func_example enum_var is 0, ulong_var is 500, int_var is -1, double_var is 8.500000, really
show variables like 'example%';
Variable_name Value
example_double_thdvar 8.500000
example_double_var 8.500000
example_enum_var e1
example_int_var -1
example_ulong_var 500
example_varopt_default 5
select @@session.example_int_var;
@@session.example_int_var
-1
UNINSTALL SONAME 'ha_example';
Warnings:
Warning 1620 Plugin is busy and will be uninstalled on shutdown

View File

@ -613,8 +613,8 @@ insert into t2 values ("1", "1", "sup", "0"), ("2", "1", "sup", "1"),
("4", "1", "sup", "0");
create table t3 (
id int(11) not null default '0',
preceeding_id int(11) not null default '0',
primary key (id,preceeding_id)
preceding_id int(11) not null default '0',
primary key (id,preceding_id)
);
create table t4 (
user_id varchar(50) not null,
@ -625,7 +625,7 @@ insert into t4 values("nicke", "imp");
prepare stmt from
'select distinct t1.partner_id
from t1 left join t3 on t1.id = t3.id
left join t1 pp on pp.id = t3.preceeding_id
left join t1 pp on pp.id = t3.preceding_id
where
exists (
select *

View File

@ -7007,3 +7007,11 @@ id select_type table type possible_keys key key_len ref rows Extra
2 SUBQUERY t1 index a a 5 NULL 2 Using where; Using index
2 SUBQUERY t2 ref b b 5 test.t1.a 2 Using index
DROP TABLE t1,t2;
#
# MDEV-5991: crash in Item_field::used_tables
#
create table t1 (c int);
select exists(select 1 from t1 group by `c` in (select `c` from t1));
exists(select 1 from t1 group by `c` in (select `c` from t1))
0
drop table t1;

View File

@ -7015,6 +7015,14 @@ id select_type table type possible_keys key key_len ref rows Extra
2 SUBQUERY t1 index a a 5 NULL 2 Using where; Using index
2 SUBQUERY t2 ref b b 5 test.t1.a 2 Using index
DROP TABLE t1,t2;
#
# MDEV-5991: crash in Item_field::used_tables
#
create table t1 (c int);
select exists(select 1 from t1 group by `c` in (select `c` from t1));
exists(select 1 from t1 group by `c` in (select `c` from t1))
0
drop table t1;
set optimizer_switch=default;
select @@optimizer_switch like '%exists_to_in=on%';
@@optimizer_switch like '%exists_to_in=on%'

View File

@ -7004,6 +7004,14 @@ id select_type table type possible_keys key key_len ref rows Extra
2 SUBQUERY t1 index a a 5 NULL 2 Using where; Using index
2 SUBQUERY t2 ref b b 5 test.t1.a 2 Using index
DROP TABLE t1,t2;
#
# MDEV-5991: crash in Item_field::used_tables
#
create table t1 (c int);
select exists(select 1 from t1 group by `c` in (select `c` from t1));
exists(select 1 from t1 group by `c` in (select `c` from t1))
0
drop table t1;
set optimizer_switch=default;
select @@optimizer_switch like '%materialization=on%';
@@optimizer_switch like '%materialization=on%'

View File

@ -7002,4 +7002,12 @@ id select_type table type possible_keys key key_len ref rows Extra
2 SUBQUERY t1 index a a 5 NULL 2 Using where; Using index
2 SUBQUERY t2 ref b b 5 test.t1.a 2 Using index
DROP TABLE t1,t2;
#
# MDEV-5991: crash in Item_field::used_tables
#
create table t1 (c int);
select exists(select 1 from t1 group by `c` in (select `c` from t1));
exists(select 1 from t1 group by `c` in (select `c` from t1))
0
drop table t1;
set @optimizer_switch_for_subselect_test=null;

View File

@ -7013,6 +7013,14 @@ id select_type table type possible_keys key key_len ref rows Extra
2 SUBQUERY t1 index a a 5 NULL 2 Using where; Using index
2 SUBQUERY t2 ref b b 5 test.t1.a 2 Using index
DROP TABLE t1,t2;
#
# MDEV-5991: crash in Item_field::used_tables
#
create table t1 (c int);
select exists(select 1 from t1 group by `c` in (select `c` from t1));
exists(select 1 from t1 group by `c` in (select `c` from t1))
0
drop table t1;
set optimizer_switch=default;
select @@optimizer_switch like '%subquery_cache=on%';
@@optimizer_switch like '%subquery_cache=on%'

View File

@ -7002,5 +7002,13 @@ id select_type table type possible_keys key key_len ref rows Extra
2 SUBQUERY t1 index a a 5 NULL 2 Using where; Using index
2 SUBQUERY t2 ref b b 5 test.t1.a 2 Using index
DROP TABLE t1,t2;
#
# MDEV-5991: crash in Item_field::used_tables
#
create table t1 (c int);
select exists(select 1 from t1 group by `c` in (select `c` from t1));
exists(select 1 from t1 group by `c` in (select `c` from t1))
0
drop table t1;
set @optimizer_switch_for_subselect_test=null;
set @join_cache_level_for_subselect_test=NULL;

View File

@ -1007,8 +1007,8 @@ insert into t2 values ("1", "1", "sup", "0"), ("2", "1", "sup", "1"),
("4", "1", "sup", "0");
create table t3 (
id int(11) not null default '0',
preceeding_id int(11) not null default '0',
primary key (id,preceeding_id)
preceding_id int(11) not null default '0',
primary key (id,preceding_id)
);
create table t4 (
user_id varchar(50) not null,

View File

@ -1020,8 +1020,8 @@ insert into t2 values ("1", "1", "sup", "0"), ("2", "1", "sup", "1"),
("4", "1", "sup", "0");
create table t3 (
id int(11) not null default '0',
preceeding_id int(11) not null default '0',
primary key (id,preceeding_id)
preceding_id int(11) not null default '0',
primary key (id,preceding_id)
);
create table t4 (
user_id varchar(50) not null,

View File

@ -347,6 +347,50 @@ Warnings:
Warning 1292 Incorrect datetime value: '0'
Warning 1292 Incorrect datetime value: '0'
Warning 1292 Incorrect datetime value: '0'
#
# MDEV-5041 Inserting a TIME with hour>24 into a DATETIME column produces a wrong value
#
SELECT CAST(TIME('-800:20:30') AS DATE);
CAST(TIME('-800:20:30') AS DATE)
2013-07-16
SELECT CAST(TIME('800:20:30') AS DATE);
CAST(TIME('800:20:30') AS DATE)
2013-09-21
SELECT CAST(TIME('33 08:20:30') AS DATE);
CAST(TIME('33 08:20:30') AS DATE)
2013-09-21
CREATE TABLE t1 (a DATE);
INSERT INTO t1 VALUES (TIME('800:20:30'));
Warnings:
Note 1265 Data truncated for column 'a' at row 1
INSERT INTO t1 VALUES (TIME('33 08:20:30'));
Warnings:
Note 1265 Data truncated for column 'a' at row 1
SET SQL_MODE=NO_ZERO_IN_DATE;
INSERT INTO t1 VALUES (TIME('48:20:30'));
Warnings:
Note 1265 Data truncated for column 'a' at row 1
SET SQL_MODE=DEFAULT;
SELECT * FROM t1;
a
2013-09-21
2013-09-21
2013-08-21
DROP TABLE t1;
CREATE PROCEDURE test5041()
BEGIN
DECLARE t TIME;
DECLARE d DATE;
SET t= TIME('800:00:00');
SET d= t;
SELECT d;
END;|
call test5041();
d
2013-09-21
Warnings:
Note 1265 Data truncated for column 'd' at row 1
drop procedure test5041;
SET @@timestamp=DEFAULT;
#
# End of 5.3 tests

View File

@ -684,6 +684,44 @@ CONVERT_TZ(GREATEST(TIMESTAMP('2021-00-00'),TIMESTAMP('2022-00-00')),'+00:00','+
NULL
Warnings:
Warning 1292 Incorrect datetime value: '2022-00-00 00:00:00'
#
# MDEV-5041 Inserting a TIME with hour>24 into a DATETIME column produces a wrong value
#
SET @@timestamp=UNIX_TIMESTAMP('2013-08-19 20:30:00');
SELECT CAST(TIME('-800:20:30') AS DATETIME);
CAST(TIME('-800:20:30') AS DATETIME)
2013-07-16 15:39:30
SELECT CAST(TIME('800:20:30') AS DATETIME);
CAST(TIME('800:20:30') AS DATETIME)
2013-09-21 08:20:30
SELECT CAST(TIME('33 08:20:30') AS DATETIME);
CAST(TIME('33 08:20:30') AS DATETIME)
2013-09-21 08:20:30
CREATE TABLE t1 (a DATETIME);
INSERT INTO t1 VALUES (TIME('800:20:30'));
INSERT INTO t1 VALUES (TIME('33 08:20:30'));
SET SQL_MODE=NO_ZERO_IN_DATE;
INSERT INTO t1 VALUES (TIME('48:20:30'));
SET SQL_MODE=DEFAULT;
SELECT * FROM t1;
a
2013-09-21 08:20:30
2013-09-21 08:20:30
2013-08-21 00:20:30
DROP TABLE t1;
CREATE PROCEDURE test5041()
BEGIN
DECLARE t TIME;
DECLARE dt DATETIME;
SET t= TIME('800:20:30');
SET dt= t;
SELECT dt;
END;|
call test5041();
dt
2013-09-21 08:20:30
drop procedure test5041;
SET @@timestamp=DEFAULT;
End of 5.3 tests
#
# Start of 5.5 tests

View File

@ -846,6 +846,24 @@ Warnings:
Warning 1356 View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
drop view v1;
drop table t1;
create table t1 (a varchar(20));
create view v1 as select a from t1;
alter table t1 change a aa int;
select * from v1;
ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
show table status;
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
t1 MyISAM 10 Fixed 0 0 0 # 1024 0 NULL # # NULL latin1_swedish_ci NULL
v1 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
Warnings:
Warning 1356 View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
show create view v1;
View Create View character_set_client collation_connection
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`a` AS `a` from `t1` latin1 latin1_swedish_ci
Warnings:
Warning 1356 View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
drop view v1;
drop table t1;
create view v1 as select 99999999999999999999999999999999999999999999999999999 as col1;
show create view v1;
View Create View character_set_client collation_connection
@ -5016,6 +5034,24 @@ id test
1 0
drop view v1;
drop table t1;
#
# MDEV-5981: name resolution issues with views and multi-update
# in ps-protocol
#
create table t1 (id1 int primary key, val1 varchar(20));
insert into t1 values (1, 'test1');
create table t2 (id2 int primary key, val2 varchar(20));
insert into t2 values (1, 'test2');
create algorithm=merge view v1 as select id1 as id1v1, val1 as val1v1 from t1;
create algorithm=merge view v2 as
select t2.id2 as id2v2, t2.val2 as val2v2
from t2, v1
where t2.id2 = v1.id1v1;
prepare stmt1 from "update v2 set val2v2 = 'test19' where 1 = id2v2";
execute stmt1;
deallocate prepare stmt1;
drop view v1,v2;
drop table t1,t2;
# -----------------------------------------------------------------
# -- End of 5.3 tests.
# -----------------------------------------------------------------

View File

@ -132,7 +132,7 @@ xb1 xc1
SELECT extractValue(@xml,'/a//@x[2]');
extractValue(@xml,'/a//@x[2]')
xb2 xc2
SET @xml='<a><b>b1</b><b>b2</b><c><b>c1b1</b><b>c1b2</b></c><c><b>c2b1</c></b></a>';
SET @xml='<a><b>b1</b><b>b2</b><c><b>c1b1</b><b>c1b2</b></c><c><b>c2b1</b></c></a>';
SELECT extractValue(@xml,'//b[1]');
extractValue(@xml,'//b[1]')
b1 c1b1 c2b1
@ -1134,6 +1134,24 @@ Warnings:
Warning 1525 Incorrect XML value: 'parse error at line 1 pos 11: STRING unexpected (ident or '/' wanted)'
End of 5.1 tests
#
# Start of 5.3 tests
#
#
# MDEV-5338 XML parser accepts malformed data
#
SELECT ExtractValue('<a>xxx</c>','/a/b');
ExtractValue('<a>xxx</c>','/a/b')
NULL
Warnings:
Warning 1525 Incorrect XML value: 'parse error at line 1 pos 10: '</c>' unexpected ('</a>' wanted)'
SELECT ExtractValue('<a><b>xxx</c></a>','/a/b');
ExtractValue('<a><b>xxx</c></a>','/a/b')
NULL
Warnings:
Warning 1525 Incorrect XML value: 'parse error at line 1 pos 13: '</c>' unexpected ('</b>' wanted)'
#
# End of 5.3 tests
#
# Start of 5.5 tests
#
#

View File

@ -74,6 +74,15 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
#
# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found
#
SET character_set_client=latin1;
SET character_set_connection= @test_character_set;
SET collation_connection= @test_collation;
SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1;
COLLATION('.') c1
cp932_japanese_ci .wwwmysqlcom
set names utf8;
create table t1 (
name varchar(10),

View File

@ -74,6 +74,15 @@ select 1 from t1 order by cast(a as char(1));
1
1
drop table t1;
#
# MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found
#
SET character_set_client=latin1;
SET character_set_connection= @test_character_set;
SET collation_connection= @test_collation;
SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1;
COLLATION('.') c1
cp932_japanese_ci .wwwmysqlcom
set names utf8;
create table t1 (
name varchar(10),

View File

@ -89,7 +89,7 @@ echo
# - TIME (printed value will be unified), the exact values are like
# "normal" load: 0 (seconds)
# "heavy" load: 1 or more (seconds)
# - State 'executing'
# - State 'Filling schema table'
# - INFO must contain the corresponding SHOW/SELECT PROCESSLIST
#
# 1. Just dump what we get
@ -109,7 +109,7 @@ FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = @default_id;
SELECT COUNT(*) = 1 AS "Expect 1"
FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = @default_id
AND USER = 'root' AND DB = 'test' AND Command IN('Query','Execute')
AND State = 'executing';
AND State = 'Filling schema table';
#
# 4. Change the DB
USE information_schema;

View File

@ -44,11 +44,11 @@ ID root HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
SELECT * FROM processlist ORDER BY id;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID root HOST_NAME information_schema Query TIME executing SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID root HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID root HOST_NAME information_schema Query TIME executing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID root HOST_NAME information_schema Query TIME Filling schema table SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
CREATE TEMPORARY TABLE test.t_processlist AS SELECT * FROM processlist;
UPDATE test.t_processlist SET user='horst' WHERE id=1 ;
@ -119,10 +119,10 @@ Id User Host db Command Time State Info Progress
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM processlist ORDER BY id;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
CREATE TEMPORARY TABLE test.t_processlist AS SELECT * FROM processlist;
UPDATE test.t_processlist SET user='horst' WHERE id=1 ;
INSERT INTO processlist SELECT * FROM test.t_processlist;
@ -182,7 +182,7 @@ Id User Host db Command Time State Info Progress
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
####################################################################################
4.2 New connection con101 (ddicttestuser1 with PROCESS privilege)
SHOW/SELECT shows all processes/threads.
@ -197,7 +197,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
####################################################################################
@ -221,7 +221,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
@ -245,7 +245,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
####################################################################################
@ -263,7 +263,7 @@ Grants for @localhost
GRANT USAGE ON *.* TO ''@'localhost'
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
####################################################################################
8 Grant SUPER (does not imply PROCESS) privilege to ddicttestuser1
@ -285,7 +285,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
@ -311,7 +311,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
@ -365,7 +365,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser2 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser2 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser2 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
@ -394,7 +394,7 @@ ID ddicttestuser2 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser2 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser2 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser2 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser2 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
####################################################################################
11.2 Revoke SUPER,PROCESS,GRANT OPTION privilege from user ddicttestuser1
@ -423,7 +423,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
@ -459,7 +459,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID

View File

@ -44,11 +44,11 @@ ID root HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
SELECT * FROM processlist ORDER BY id;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID root HOST_NAME information_schema Execute TIME executing SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID root HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID root HOST_NAME information_schema Execute TIME executing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID root HOST_NAME information_schema Execute TIME Filling schema table SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
CREATE TEMPORARY TABLE test.t_processlist AS SELECT * FROM processlist;
UPDATE test.t_processlist SET user='horst' WHERE id=1 ;
@ -119,10 +119,10 @@ Id User Host db Command Time State Info Progress
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM processlist ORDER BY id;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO, TIME_MS, STAGE, MAX_STAGE, PROGRESS, MEMORY_USED, EXAMINED_ROWS, QUERY_ID FROM processlist ORDER BY id TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
CREATE TEMPORARY TABLE test.t_processlist AS SELECT * FROM processlist;
UPDATE test.t_processlist SET user='horst' WHERE id=1 ;
INSERT INTO processlist SELECT * FROM test.t_processlist;
@ -182,7 +182,7 @@ Id User Host db Command Time State Info Progress
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
####################################################################################
4.2 New connection con101 (ddicttestuser1 with PROCESS privilege)
SHOW/SELECT shows all processes/threads.
@ -197,7 +197,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
####################################################################################
@ -221,7 +221,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
@ -245,7 +245,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
####################################################################################
@ -263,7 +263,7 @@ Grants for @localhost
GRANT USAGE ON *.* TO ''@'localhost'
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
####################################################################################
8 Grant SUPER (does not imply PROCESS) privilege to ddicttestuser1
@ -285,7 +285,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
@ -311,7 +311,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
@ -365,7 +365,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser2 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser2 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser2 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
@ -394,7 +394,7 @@ ID ddicttestuser2 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser2 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser2 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser2 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser2 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
####################################################################################
11.2 Revoke SUPER,PROCESS,GRANT OPTION privilege from user ddicttestuser1
@ -423,7 +423,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
@ -459,7 +459,7 @@ ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
ID ddicttestuser1 HOST_NAME information_schema Query TIME init SHOW processlist TIME_MS
SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME executing SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Execute TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS 0 0 0.000 MEMORY ROWS QUERY_ID

View File

@ -33,7 +33,7 @@ PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
<ID> root <HOST_NAME> test Query <TIME> executing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> root <HOST_NAME> test Query <TIME> Filling schema table SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
SHOW FULL PROCESSLIST;
Id User Host db Command Time State Info Progress
<ID> root <HOST_NAME> test Query <TIME> init SHOW FULL PROCESSLIST <TIME_MS>
@ -45,7 +45,7 @@ Expect exact one connection with this id
SELECT COUNT(*) = 1 AS "Expect 1"
FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = @default_id
AND USER = 'root' AND DB = 'test' AND Command IN('Query','Execute')
AND State = 'executing';
AND State = 'Filling schema table';
Expect 1
1
USE information_schema;
@ -114,7 +114,7 @@ Expect 1
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
<ID> test_user <HOST_NAME> information_schema Query <TIME> executing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> test_user <HOST_NAME> information_schema Query <TIME> Filling schema table SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
SHOW FULL PROCESSLIST;
Id User Host db Command Time State Info Progress
<ID> test_user <HOST_NAME> information_schema Query <TIME> init SHOW FULL PROCESSLIST 0.000
@ -131,7 +131,7 @@ Id User Host db Command Time State Info Progress
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
<ID> test_user <HOST_NAME> information_schema Query <TIME> executing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> test_user <HOST_NAME> information_schema Query <TIME> Filling schema table SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> test_user <HOST_NAME> information_schema Sleep <TIME> NULL <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
SHOW FULL PROCESSLIST;
Id User Host db Command Time State Info Progress
@ -159,7 +159,7 @@ SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
<ID> test_user <HOST_NAME> information_schema Query <TIME> User sleep SELECT sleep(10), 17 <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> test_user <HOST_NAME> information_schema Sleep <TIME> NULL <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> root <HOST_NAME> information_schema Query <TIME> executing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> root <HOST_NAME> information_schema Query <TIME> Filling schema table SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
SHOW FULL PROCESSLIST;
Id User Host db Command Time State Info Progress
<ID> root <HOST_NAME> information_schema Query <TIME> init SHOW FULL PROCESSLIST 0.000
@ -206,7 +206,7 @@ SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
<ID> test_user <HOST_NAME> information_schema Query <TIME> Waiting for table metadata lock SELECT COUNT(*) FROM test.t1 <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> test_user <HOST_NAME> information_schema Sleep <TIME> NULL <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> root <HOST_NAME> information_schema Query <TIME> executing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> root <HOST_NAME> information_schema Query <TIME> Filling schema table SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
UNLOCK TABLES;
# ----- switch to connection con2 (user = test_user) -----

View File

@ -33,7 +33,7 @@ PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
<ID> root <HOST_NAME> test Execute <TIME> executing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> root <HOST_NAME> test Execute <TIME> Filling schema table SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
SHOW FULL PROCESSLIST;
Id User Host db Command Time State Info Progress
<ID> root <HOST_NAME> test Query <TIME> init SHOW FULL PROCESSLIST <TIME_MS>
@ -45,7 +45,7 @@ Expect exact one connection with this id
SELECT COUNT(*) = 1 AS "Expect 1"
FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = @default_id
AND USER = 'root' AND DB = 'test' AND Command IN('Query','Execute')
AND State = 'executing';
AND State = 'Filling schema table';
Expect 1
1
USE information_schema;
@ -114,7 +114,7 @@ Expect 1
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
<ID> test_user <HOST_NAME> information_schema Execute <TIME> executing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> test_user <HOST_NAME> information_schema Execute <TIME> Filling schema table SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
SHOW FULL PROCESSLIST;
Id User Host db Command Time State Info Progress
<ID> test_user <HOST_NAME> information_schema Query <TIME> init SHOW FULL PROCESSLIST 0.000
@ -131,7 +131,7 @@ Id User Host db Command Time State Info Progress
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
<ID> test_user <HOST_NAME> information_schema Execute <TIME> executing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> test_user <HOST_NAME> information_schema Execute <TIME> Filling schema table SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> test_user <HOST_NAME> information_schema Sleep <TIME> NULL <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
SHOW FULL PROCESSLIST;
Id User Host db Command Time State Info Progress
@ -159,7 +159,7 @@ SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
<ID> test_user <HOST_NAME> information_schema Query <TIME> User sleep SELECT sleep(10), 17 <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> test_user <HOST_NAME> information_schema Sleep <TIME> NULL <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> root <HOST_NAME> information_schema Execute <TIME> executing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> root <HOST_NAME> information_schema Execute <TIME> Filling schema table SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
SHOW FULL PROCESSLIST;
Id User Host db Command Time State Info Progress
<ID> root <HOST_NAME> information_schema Query <TIME> init SHOW FULL PROCESSLIST 0.000
@ -206,7 +206,7 @@ SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED EXAMINED_ROWS QUERY_ID
<ID> test_user <HOST_NAME> information_schema Query <TIME> Waiting for table metadata lock SELECT COUNT(*) FROM test.t1 <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> test_user <HOST_NAME> information_schema Sleep <TIME> NULL <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> root <HOST_NAME> information_schema Execute <TIME> executing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
<ID> root <HOST_NAME> information_schema Execute <TIME> Filling schema table SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST <TIME_MS> 0 0 0.000 <MEMORY> <ROWS> <QUERY_ID>
UNLOCK TABLES;
# ----- switch to connection con2 (user = test_user) -----

View File

@ -284,7 +284,7 @@ INSERT INTO t1_values SET
# other interesting value
# numbers -> 0
# strings, blobs, binaries -> not full length of used data type, "exotic"
# characters and preceeding and trailing spaces
# characters and preceding and trailing spaces
# FIXME enum, set ??
INSERT INTO t1_values SET
my_char_30 = ' ---äÖüß@µ*$-- ',

View File

@ -545,7 +545,7 @@ let $message= Testcase 3.3.1.7 ;
# view names are accepted, at creation time, alteration time,
# and drop time.
###############################################################################
# Note(mleich): non-qualified view name means a view name without preceeding
# Note(mleich): non-qualified view name means a view name without preceding
# database name
--disable_warnings
DROP VIEW IF EXISTS v1 ;

View File

@ -852,6 +852,14 @@ select data_length,index_length from information_schema.tables where table_schem
data_length index_length
81024 121024
drop table t1;
CREATE TABLE t1 (id INT);
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (2);
SET @@max_heap_table_size = 1024*1024*1024*20;
CREATE TEMPORARY TABLE tmp ENGINE=MEMORY
SELECT id FROM t1;
DROP TEMPORARY TABLE tmp;
drop table t1;
CREATE TABLE t1 (
id int(11) NOT NULL AUTO_INCREMENT,
color enum('GREEN', 'WHITE') DEFAULT NULL,

View File

@ -617,6 +617,23 @@ insert into t1 select rand(100000000) from t1;
select data_length,index_length from information_schema.tables where table_schema="test" and table_name="t1";
drop table t1;
#
# MDEV-5905 Creating tmp. memory table kills the server
#
CREATE TABLE t1 (id INT);
INSERT INTO t1 VALUES (1);
INSERT INTO t1 VALUES (2);
--disable_warnings
SET @@max_heap_table_size = 1024*1024*1024*20;
--enable_warnings
CREATE TEMPORARY TABLE tmp ENGINE=MEMORY
SELECT id FROM t1;
DROP TEMPORARY TABLE tmp;
drop table t1;
#
# BUG#51763 Can't delete rows from MEMORY table with HASH key
#

View File

@ -0,0 +1,15 @@
#
# Bug#18185930 UPD_NODE_INSERT_BLOB CAUSES BTR_EXTERN_OWNER_FLAG
# ASSERTION
#
create table t1 (f1 int primary key, f2 blob) engine = innodb;
insert into t1 values (1, repeat('*', 50000));
select f1, substring(f2, 1, 40) from t1;
f1 substring(f2, 1, 40)
1 ****************************************
set debug_dbug = 'd,row_ins_index_entry_timeout';
update t1 set f1 = 3;
select f1, substring(f2, 1, 40) from t1;
f1 substring(f2, 1, 40)
3 ****************************************
drop table t1;

View File

@ -0,0 +1,9 @@
#
# Bug #18010711 UNIQUE PREFIX INDEX ON BINARY COLUMN: FAILING
# ASSERTION: FLEN == LEN
#
create table t1 (f1 binary(5)) engine=innodb;
insert into t1 values ('w'), ('w');
create unique index index_t1 on t1(f1(4));
ERROR 23000: Duplicate entry 'w' for key 'index_t1'
drop table t1;

View File

@ -1309,3 +1309,30 @@ t1 CREATE TABLE `t1` (
PRIMARY KEY (`c1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
DROP TABLE t1;
#
# Bug #14049391 INNODB MISCALCULATES AUTO-INCREMENT
# AFTER CHANGING AUTO_INCREMENT_INCREMEMENT
#
CREATE TABLE t ( i INT AUTO_INCREMENT, KEY(i) ) ENGINE=InnoDB;
SET auto_increment_increment = 300;
INSERT INTO t VALUES (NULL), (NULL);
SHOW CREATE TABLE t;
Table Create Table
t CREATE TABLE `t` (
`i` int(11) NOT NULL AUTO_INCREMENT,
KEY `i` (`i`)
) ENGINE=InnoDB AUTO_INCREMENT=601 DEFAULT CHARSET=latin1
SET auto_increment_increment = 50;
INSERT INTO t VALUES (NULL);
SELECT * FROM t;
i
1
301
351
SHOW CREATE TABLE t;
Table Create Table
t CREATE TABLE `t` (
`i` int(11) NOT NULL AUTO_INCREMENT,
KEY `i` (`i`)
) ENGINE=InnoDB AUTO_INCREMENT=401 DEFAULT CHARSET=latin1
DROP TABLE t;

View File

@ -0,0 +1,72 @@
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 10 AND end_lsn > 20 ;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA . `INNODB_CHANGED_PAGES` AS table1 WHERE ( ( (NOT ( ( ( ( (NOT ( table1 . `page_id` <> table1 . `start_lsn` AND table1 . `space_id` <> 8) AND table1 . `page_id` >= table1 . `end_lsn`) OR table1 . `end_lsn` = table1 . `space_id`) AND table1 . `end_lsn` <> table1 . `page_id`) OR table1 . `end_lsn` < 8) AND table1 . `space_id` >= '2000-06-10 11:33:07.046821') AND table1 . `end_lsn` >= 5) AND table1 . `start_lsn` < 'mm') OR table1 . `end_lsn` != table1 . `end_lsn`) HAVING ( table1 . `start_lsn` < '2005-09-09 01:34:19.012946' OR table1 . `page_id` < 6) ORDER BY table1 . `start_lsn`
LIMIT 3;
space_id page_id start_lsn end_lsn
Warnings:
Warning 1292 Truncated incorrect DOUBLE value: 'mm'
Warning 1292 Truncated incorrect DOUBLE value: '2005-09-09 01:34:19.012946'
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn > 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn >= 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn > 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn >= 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 and end_lsn < 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 and end_lsn < 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 and end_lsn <= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 and end_lsn <= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn = 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn = 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn < 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn < 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn <= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn <= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn < 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn < 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn <= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn <= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn > 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn > 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn >= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn >= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn > 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn > 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn >= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn >= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE (start_lsn > 2000000 and end_lsn < 3000000) or (start_lsn > 4000000 and end_lsn < 5000000);
space_id page_id start_lsn end_lsn

View File

@ -0,0 +1,43 @@
#
# Bug#14668683 ASSERT REC_GET_DELETED_FLAG(REC, PAGE_IS_COMP(PAGE))
#
create table t1(f1 char(1) primary key, f2 int not null, f3 blob)
engine=innodb;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`f1` char(1) NOT NULL,
`f2` int(11) NOT NULL,
`f3` blob,
PRIMARY KEY (`f1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
insert into t1 values ('a', 0, repeat('b',8102));
select f1 from t1;
f1
a
update t1 set f1='A';
select f1 from t1;
f1
A
drop table t1;
#
# Another test case
#
create table t1 (f1 char(1), f2 longblob, f3 blob, primary key(f1))
charset=utf8 engine=innodb;
replace into t1 set f1=0xa3;
Warnings:
Warning 1366 Incorrect string value: '\xA3' for column 'f1' at row 1
select f1 from t1;
f1
update t1 set f1=0x6a;
update t1 set f3=repeat(0xb1,8103);
update t1 set f1=0x4a;
update t1 set f1=0x82;
Warnings:
Warning 1366 Incorrect string value: '\x82' for column 'f1' at row 1
select f1 from t1;
f1
drop table t1;

View File

@ -1691,7 +1691,7 @@ variable_value - @innodb_rows_deleted_orig
71
SELECT variable_value - @innodb_rows_inserted_orig FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_rows_inserted';
variable_value - @innodb_rows_inserted_orig
1007
964
SELECT variable_value - @innodb_rows_updated_orig FROM information_schema.global_status WHERE LOWER(variable_name) = 'innodb_rows_updated';
variable_value - @innodb_rows_updated_orig
866

View File

@ -6,10 +6,7 @@ CREATE TABLE t3 (e INT) ENGINE=InnoDB;
CREATE TABLE t4 ENGINE=InnoDB AS SELECT * FROM t2;
BEGIN;
UPDATE t1 SET a = 0 WHERE a = ( SELECT e FROM t3 );
SET DEBUG_SYNC='srv_suspend_mysql_thread_enter SIGNAL waiting';
UPDATE t4 SET d = 1 WHERE d in ( SELECT a FROM t1 ) ORDER BY c LIMIT 6;
SET DEBUG_SYNC='now WAIT_FOR waiting';
SET DEBUG_SYNC='RESET';
UPDATE t4 SET d = 9;
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
commit;

View File

@ -0,0 +1,17 @@
# This file contains tests involving update operations on blob data type.
--source include/have_innodb.inc
--source include/have_debug.inc
--echo #
--echo # Bug#18185930 UPD_NODE_INSERT_BLOB CAUSES BTR_EXTERN_OWNER_FLAG
--echo # ASSERTION
--echo #
create table t1 (f1 int primary key, f2 blob) engine = innodb;
insert into t1 values (1, repeat('*', 50000));
select f1, substring(f2, 1, 40) from t1;
set debug_dbug = 'd,row_ins_index_entry_timeout';
update t1 set f1 = 3;
select f1, substring(f2, 1, 40) from t1;
drop table t1;

View File

@ -0,0 +1,11 @@
--source include/have_innodb.inc
--echo #
--echo # Bug #18010711 UNIQUE PREFIX INDEX ON BINARY COLUMN: FAILING
--echo # ASSERTION: FLEN == LEN
--echo #
create table t1 (f1 binary(5)) engine=innodb;
insert into t1 values ('w'), ('w');
--error ER_DUP_ENTRY
create unique index index_t1 on t1(f1(4));
drop table t1;

View File

@ -1,3 +1,8 @@
if (`select plugin_auth_version <= "5.5.37-MariaDB-34.0" from information_schema.plugins where plugin_name='innodb'`)
{
--skip Not fixed in XtraDB as of 5.5.37-MariaDB-34.0 or earlier
}
--source include/have_innodb.inc
# embedded server ignores 'delayed', so skip this
-- source include/not_embedded.inc
@ -666,3 +671,16 @@ SELECT * FROM t1;
SHOW CREATE TABLE t1;
DROP TABLE t1;
--echo #
--echo # Bug #14049391 INNODB MISCALCULATES AUTO-INCREMENT
--echo # AFTER CHANGING AUTO_INCREMENT_INCREMEMENT
--echo #
CREATE TABLE t ( i INT AUTO_INCREMENT, KEY(i) ) ENGINE=InnoDB;
SET auto_increment_increment = 300;
INSERT INTO t VALUES (NULL), (NULL);
SHOW CREATE TABLE t;
SET auto_increment_increment = 50;
INSERT INTO t VALUES (NULL);
SELECT * FROM t;
SHOW CREATE TABLE t;
DROP TABLE t;

View File

@ -0,0 +1 @@
--innodb-track-changed-pages=0 --innodb-changed-pages=1

View File

@ -0,0 +1,63 @@
-- source include/have_xtradb.inc
#
# This test requires innodb-changed-pages=1 so that necessary information schema table exists
# and innodb-track-changed-pages=0 to disable actual changed pages tracking, because
# page number are not consistent from run to run
#
#
# MDEV-4791: ssertion range_end >= range_start fails in log0online.c
# on select from I_S.INNODB_CHANGED_PAGES
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 10 AND end_lsn > 20 ;
SELECT * FROM INFORMATION_SCHEMA . `INNODB_CHANGED_PAGES` AS table1 WHERE ( ( (NOT ( ( ( ( (NOT ( table1 . `page_id` <> table1 . `start_lsn` AND table1 . `space_id` <> 8) AND table1 . `page_id` >= table1 . `end_lsn`) OR table1 . `end_lsn` = table1 . `space_id`) AND table1 . `end_lsn` <> table1 . `page_id`) OR table1 . `end_lsn` < 8) AND table1 . `space_id` >= '2000-06-10 11:33:07.046821') AND table1 . `end_lsn` >= 5) AND table1 . `start_lsn` < 'mm') OR table1 . `end_lsn` != table1 . `end_lsn`) HAVING ( table1 . `start_lsn` < '2005-09-09 01:34:19.012946' OR table1 . `page_id` < 6) ORDER BY table1 . `start_lsn`
LIMIT 3;
#
# Basic tests
#
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn > 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn >= 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn > 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn >= 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 and end_lsn < 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 and end_lsn < 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 and end_lsn <= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 and end_lsn <= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn = 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn = 2000000;
#
# OR
#
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn < 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn < 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn <= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn <= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn < 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn < 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn <= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn <= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn > 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn > 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn >= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn >= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn > 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn > 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn >= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn >= 3000000;
#
# Range
#
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE (start_lsn > 2000000 and end_lsn < 3000000) or (start_lsn > 4000000 and end_lsn < 5000000);

View File

@ -0,0 +1,38 @@
#
# Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
#
# This file contains test cases for checking the functionality "update by
# delete + insert".
--source include/have_innodb.inc
--echo #
--echo # Bug#14668683 ASSERT REC_GET_DELETED_FLAG(REC, PAGE_IS_COMP(PAGE))
--echo #
create table t1(f1 char(1) primary key, f2 int not null, f3 blob)
engine=innodb;
show create table t1;
insert into t1 values ('a', 0, repeat('b',8102));
select f1 from t1;
update t1 set f1='A';
select f1 from t1;
drop table t1;
--echo #
--echo # Another test case
--echo #
create table t1 (f1 char(1), f2 longblob, f3 blob, primary key(f1))
charset=utf8 engine=innodb;
replace into t1 set f1=0xa3;
select f1 from t1;
update t1 set f1=0x6a;
update t1 set f3=repeat(0xb1,8103);
update t1 set f1=0x4a;
update t1 set f1=0x82;
select f1 from t1;
drop table t1;

View File

@ -1,8 +1,3 @@
if (`select plugin_auth_version < "5.6.17" from information_schema.plugins where plugin_name='innodb'`)
{
--skip Not fixed in InnoDB before 5.6.17
}
#
# Test of wrong call to unlock_row
# MDEV-5629 Failing assertion: state == TRX_STATE_NOT_STARTED on
@ -10,7 +5,6 @@ if (`select plugin_auth_version < "5.6.17" from information_schema.plugins where
#
--source include/have_innodb.inc
--source include/have_debug_sync.inc
CREATE TABLE t1 (a INT, b INT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1,1),(2,2);
@ -28,17 +22,17 @@ UPDATE t1 SET a = 0 WHERE a = ( SELECT e FROM t3 );
--connect (con12,localhost,root,,test)
SET DEBUG_SYNC='srv_suspend_mysql_thread_enter SIGNAL waiting';
--send
UPDATE t4 SET d = 1 WHERE d in ( SELECT a FROM t1 ) ORDER BY c LIMIT 6;
--connection con11
# Wait for con12 to start waiting for con11
SET DEBUG_SYNC='now WAIT_FOR waiting';
SET DEBUG_SYNC='RESET';
let $wait_condition=
select count(*) = 1 from information_schema.innodb_trx
where trx_state = "lock wait" and
trx_query like "%SELECT a FROM t1%";
--source include/wait_condition.inc
UPDATE t4 SET d = 9;

View File

@ -0,0 +1,38 @@
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB
PARTITION BY KEY (a) PARTITIONS 2;
INSERT INTO t1 VALUES (1,1);
INSERT INTO t1 VALUES (2,2), (3,8);
INSERT INTO t1 VALUES (4,16);
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 t1 VALUES (1,1)
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (2,2), (3,8)
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4,16)
master-bin.000001 # Xid # # COMMIT /* XID */
DROP TABLE t1;
SET binlog_format='row';
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB
PARTITION BY KEY (a) PARTITIONS 2;
INSERT INTO t1 VALUES (1,1);
INSERT INTO t1 VALUES (2,2), (3,8);
INSERT INTO t1 VALUES (4,16);
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 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
DROP TABLE t1;

View File

@ -0,0 +1,32 @@
--source include/have_innodb.inc
--source include/have_partition.inc
--source include/have_binlog_format_statement.inc
# Test binlogging of some transactions on a partitioned InnoDB table.
# The bug was seen as one of the inserts being logged with a COMMIT query
# event instead of the correct XID event.
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB
PARTITION BY KEY (a) PARTITIONS 2;
--let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1)
--let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1)
INSERT INTO t1 VALUES (1,1);
INSERT INTO t1 VALUES (2,2), (3,8);
INSERT INTO t1 VALUES (4,16);
--source include/show_binlog_events.inc
# Same thing in row mode.
DROP TABLE t1;
SET binlog_format='row';
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB
PARTITION BY KEY (a) PARTITIONS 2;
--let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1)
--let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1)
INSERT INTO t1 VALUES (1,1);
INSERT INTO t1 VALUES (2,2), (3,8);
INSERT INTO t1 VALUES (4,16);
--source include/show_binlog_events.inc
DROP TABLE t1;

View File

@ -9,3 +9,16 @@
# Do not use any TAB characters for whitespace.
#
##############################################################################
sizing_off: not updated for 10.0 yet
sizing_med: not updated for 10.0 yet
sizing_low: not updated for 10.0 yet
sizing_high: not updated for 10.0 yet
sizing_growth: not updated for 10.0 yet
sizing_default: not updated for 10.0 yet
binlog_edge_mix: needs slave_relay_log_info
binlog_edge_row: needs slave_relay_log_info
binlog_edge_stmt: needs slave_relay_log_info
binlog_ok_mix: needs slave_relay_log_info
binlog_ok_row: needs slave_relay_log_info
binlog_ok_stmt: needs slave_relay_log_info

View File

@ -0,0 +1,188 @@
# Test replication, when using special non-replicated tables.
#
# This test involve special statements that use non-replicated tables.
# Changes affecting non replicated tables are never written to the binlog.
# Executing these statements may or may not work, as the statements involved
# are edge cases.
# In MIXED or ROW binlog format, execution should succeed,
# and only partial data (the rows affecting replicated tables only)
# should be written to the binlog.
# In STATEMENT binlog format, execution should
# raise a warning (ER_BINLOG_UNSAFE_STATEMENT) if a non replicated table is
# only read from, or fail with an error (ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES)
# if a non replicated table is written to.
#
# SHOW ERRORS will print in the
# test .result file the exact outcome.
RESET MASTER;
--disable_warnings
drop database if exists my_replicated_db;
--enable_warnings
call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
create database my_replicated_db;
create table my_replicated_db.my_tx_table(a bigint) engine = innodb;
create table my_replicated_db.my_non_tx_table(a bigint) engine = myisam;
create table my_replicated_db.my_bh_table(a bigint) engine = blackhole;
use test;
drop table if exists marker_start;
use my_replicated_db;
insert into my_tx_table(a)
values (1000), (2000), (3000);
insert into my_non_tx_table(a)
values (1000), (2000), (3000);
insert into my_bh_table(a)
values (1000), (2000), (3000);
use test;
drop table if exists marker_insert_select;
use my_replicated_db;
# Note:
# The queries used here do not make any sense (no semantic).
# What this test is interrested in, is check the behavior
# when replicating queries that mix both:
# - non replicated tables
# - replicated tables
insert into my_tx_table(a)
select thread_id from performance_schema.threads;
insert into my_non_tx_table(a)
select thread_id from performance_schema.threads;
insert into my_bh_table(a)
select thread_id from performance_schema.threads;
# For the information_schema,
# no error is enforced yet.
# Documenting the current behavior
insert into my_tx_table(a)
select id from information_schema.processlist;
insert into my_non_tx_table(a)
select id from information_schema.processlist;
insert into my_bh_table(a)
select id from information_schema.processlist;
insert into my_tx_table(a)
select thread_id from mysql.general_log;
insert into my_non_tx_table(a)
select thread_id from mysql.general_log;
insert into my_bh_table(a)
select thread_id from mysql.general_log;
insert into my_tx_table(a)
select thread_id from mysql.slow_log;
insert into my_non_tx_table(a)
select thread_id from mysql.slow_log;
insert into my_bh_table(a)
select thread_id from mysql.slow_log;
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_bh_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_non_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_bh_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
insert into my_bh_table(a)
select Relay_log_pos from mysql.slave_worker_info;
use test;
drop table if exists marker_multi_update;
use my_replicated_db;
--error 0, ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES
update my_tx_table, performance_schema.setup_instruments
set my_tx_table.a = my_tx_table.a + 1,
performance_schema.setup_instruments.timed= 'NO';
--error 0, ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES
update my_non_tx_table, performance_schema.setup_instruments
set my_non_tx_table.a = my_non_tx_table.a + 1,
performance_schema.setup_instruments.timed= 'NO';
--error 0, ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES
update my_bh_table, performance_schema.setup_instruments
set my_bh_table.a = my_bh_table.a + 1,
performance_schema.setup_instruments.timed= 'NO';
use test;
drop table if exists marker_multi_delete;
use my_replicated_db;
insert into performance_schema.setup_actors
values ('FOO', 'FOO', 'FOO');
--error 0, ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES
delete my_tx_table.*, performance_schema.setup_actors.*
from my_tx_table, performance_schema.setup_actors
where my_tx_table.a != 1000
or performance_schema.setup_actors.role='FOO';
insert into performance_schema.setup_actors
values ('BAR', 'BAR', 'BAR');
--error 0, ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES
delete my_non_tx_table.*, performance_schema.setup_actors.*
from my_non_tx_table, performance_schema.setup_actors
where my_non_tx_table.a != 1000
or performance_schema.setup_actors.role='BAR';
insert into performance_schema.setup_actors
values ('BAZ', 'BAZ', 'BAZ');
--error 0, ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES
delete my_bh_table.*, performance_schema.setup_actors.*
from my_bh_table, performance_schema.setup_actors
where my_bh_table.a != 1000
or performance_schema.setup_actors.role='BAZ';
use test;
drop table if exists marker_end;
drop database my_replicated_db;
--source include/show_binlog_events.inc
# Restore performance_schema.setup_actors, damaged by this script
truncate table performance_schema.setup_actors;
insert into performance_schema.setup_actors values ('%', '%', '%');

View File

@ -0,0 +1,146 @@
# Test replication, when using special non-replicated tables.
#
# This test involve special statements that use non-replicated tables.
# Changes affecting non replicated tables are never written to the binlog.
# Executing these statements should work nicely with replication in all cases:
# - STATEMENT binlog format
# - MIXED binlog format
# - ROW binlog format.
RESET MASTER;
--disable_warnings
drop database if exists my_local_db;
--enable_warnings
create database my_local_db;
create table my_local_db.my_tx_table(a bigint) engine = innodb;
create table my_local_db.my_non_tx_table(a bigint) engine = myisam;
use test;
drop table if exists marker_start;
# --binlog-ignore-db only works with the current database.
use my_local_db;
insert into my_tx_table(a)
values (1000), (2000), (3000);
insert into my_non_tx_table(a)
values (1000), (2000), (3000);
use test;
drop table if exists marker_truncate;
use performance_schema;
truncate table events_waits_history;
truncate table events_waits_history_long;
use test;
truncate table performance_schema.events_statements_history_long;
truncate table performance_schema.host_cache;
use test;
drop table if exists marker_update;
use performance_schema;
update setup_instruments set enabled='NO';
update setup_instruments set timed='NO';
use test;
update performance_schema.setup_instruments set enabled='YES', timed='YES';
update performance_schema.threads set instrumented='YES';
use test;
drop table if exists marker_insert;
insert into performance_schema.setup_actors(`user`, `host`, `role`)
values ('XXX', 'XXX', 'XXX'),
('YYY', 'YYY', 'YYY'),
('ZZZ', 'ZZZ', 'ZZZ');
select * from performance_schema.setup_actors
where user in ('XXX', 'YYY', 'ZZZ') order by user;
insert into performance_schema.setup_objects
(object_type, object_schema, object_name, enabled, timed)
values ('TABLE', 'DB1', 'AAA', 'YES', 'YES'),
('TABLE', 'DB1', 'BBB', 'NO', 'NO'),
('TABLE', 'DB2', 'CCC', 'YES', 'NO'),
('TABLE', 'DB2', 'DDD', 'NO', 'YES');
select * from performance_schema.setup_objects
where object_schema like 'DB%' order by object_name;
use test;
drop table if exists marker_insert_select;
# Note:
# The queries used here do not make any sense (no semantic).
# What this test is interrested in, is check the behavior
# when replicating queries that mix both:
# - non replicated tables
# - replicated tables
use my_local_db;
insert into my_tx_table(a)
select thread_id from performance_schema.threads;
insert into my_non_tx_table(a)
select thread_id from performance_schema.threads;
insert into my_tx_table(a)
select id from information_schema.processlist;
insert into my_non_tx_table(a)
select id from information_schema.processlist;
insert into my_tx_table(a)
select thread_id from mysql.general_log;
insert into my_non_tx_table(a)
select thread_id from mysql.general_log;
insert into my_tx_table(a)
select thread_id from mysql.slow_log;
insert into my_non_tx_table(a)
select thread_id from mysql.slow_log;
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_non_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
use test;
drop table if exists marker_delete;
delete from performance_schema.setup_actors
where user in ('XXX', 'YYY', 'ZZZ');
delete from performance_schema.setup_objects
where object_schema like 'DB%';
use test;
drop table if exists marker_end;
drop database my_local_db;
# The content of the binlog dumped in the result file
# should not contain any references to non-replicated tables.
--source include/show_binlog_events.inc

View File

@ -0,0 +1,23 @@
# Tests for the performance schema
# ==========================================
# HELPER include/disable_instruments
# ==========================================
#
# ==== Usage ====
#
# 1. Define the instrument to be disabled/enabled:
#
# let $pfs_instrument=<instrument>
#
# Where <instrument> is the instrument name with or without wildcards, e.g.
#
# let $pfs_instrument='%statement/sql%'
#
--disable_query_log ONCE
eval update performance_schema.setup_instruments
set enabled='no', timed='no'
where name like $pfs_instrument;

View File

@ -0,0 +1,23 @@
# Tests for the performance schema
# ==========================================
# HELPER include/enable_instruments
# ==========================================
#
# ==== Usage ====
#
# 1. Define the instrument to be enabled/disabled:
#
# let $pfs_instrument=<instrument>
#
# Where <instrument> is the instrument name with or without wildcards, e.g.
#
# let $pfs_instrument='%statement/sql%'
#
--disable_query_log ONCE
eval update performance_schema.setup_instruments
set enabled='yes', timed='yes'
where name like $pfs_instrument;

View File

@ -123,8 +123,8 @@ update performance_schema.setup_instruments set enabled='YES', timed='YES'
update performance_schema.setup_instruments set enabled='YES', timed='YES'
where name in ('statement/sql/select',
'statement/sql/insert',
'statement/com/',
'statement/com/Query',
'statement/abstract/new_packet',
'statement/abstract/Query',
'statement/com/Quit',
'statement/com/error');

View File

@ -0,0 +1,13 @@
# The performance schema internal structures are compiled with PFS_ALIGN,
# and the sizeof() structures is platform dependent.
#
# For tests sensitive to the internal sizes (show engine performance_schema
# status), make sure we use a platform with aligned memory.
--disable_query_log
let $aligned = `SELECT count(*) from performance_schema.session_connect_attrs where PROCESSLIST_ID = connection_id() and ATTR_NAME = '_os' and ATTR_VALUE in ('Linux', 'Windows')`;
if (!$aligned)
{
skip Need a platform with aligned memory;
}
--enable_query_log

View File

@ -0,0 +1,15 @@
# Tests for the performance schema
# ==========================================
# HELPER include/rpl_truncate_statements.inc
# ==========================================
--disable_query_log
update performance_schema.setup_instruments set enabled='no', timed='no' where name like '%statement/%';
truncate table performance_schema.events_waits_history_long;
truncate table performance_schema.events_statements_summary_by_digest;
truncate table performance_schema.events_statements_history;
truncate table performance_schema.events_statements_history_long;
update performance_schema.setup_instruments set enabled='yes', timed='yes' where name like '%statement/%';
--enable_query_log

View File

@ -2,8 +2,8 @@
show variables like "table_definition_cache";
show variables like "table_open_cache";
show variables like "max_connections";
# Results vary by platform:
# show variables like "open_files_limit";
# open_files_limit depends on OS configuration (ulimit -n)
#show variables like "open_files_limit";
show variables like "%performance_schema%";
show status like "%performance_schema%";

View File

@ -0,0 +1,178 @@
set binlog_format=mixed;
RESET MASTER;
drop database if exists my_replicated_db;
call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
create database my_replicated_db;
create table my_replicated_db.my_tx_table(a bigint) engine = innodb;
create table my_replicated_db.my_non_tx_table(a bigint) engine = myisam;
create table my_replicated_db.my_bh_table(a bigint) engine = blackhole;
use test;
drop table if exists marker_start;
Warnings:
Note 1051 Unknown table 'test.marker_start'
use my_replicated_db;
insert into my_tx_table(a)
values (1000), (2000), (3000);
insert into my_non_tx_table(a)
values (1000), (2000), (3000);
insert into my_bh_table(a)
values (1000), (2000), (3000);
use test;
drop table if exists marker_insert_select;
Warnings:
Note 1051 Unknown table 'test.marker_insert_select'
use my_replicated_db;
insert into my_tx_table(a)
select thread_id from performance_schema.threads;
insert into my_non_tx_table(a)
select thread_id from performance_schema.threads;
insert into my_bh_table(a)
select thread_id from performance_schema.threads;
insert into my_tx_table(a)
select id from information_schema.processlist;
insert into my_non_tx_table(a)
select id from information_schema.processlist;
insert into my_bh_table(a)
select id from information_schema.processlist;
insert into my_tx_table(a)
select thread_id from mysql.general_log;
insert into my_non_tx_table(a)
select thread_id from mysql.general_log;
insert into my_bh_table(a)
select thread_id from mysql.general_log;
insert into my_tx_table(a)
select thread_id from mysql.slow_log;
insert into my_non_tx_table(a)
select thread_id from mysql.slow_log;
insert into my_bh_table(a)
select thread_id from mysql.slow_log;
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_bh_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_non_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_bh_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
insert into my_bh_table(a)
select Relay_log_pos from mysql.slave_worker_info;
use test;
drop table if exists marker_multi_update;
Warnings:
Note 1051 Unknown table 'test.marker_multi_update'
use my_replicated_db;
update my_tx_table, performance_schema.setup_instruments
set my_tx_table.a = my_tx_table.a + 1,
performance_schema.setup_instruments.timed= 'NO';
update my_non_tx_table, performance_schema.setup_instruments
set my_non_tx_table.a = my_non_tx_table.a + 1,
performance_schema.setup_instruments.timed= 'NO';
update my_bh_table, performance_schema.setup_instruments
set my_bh_table.a = my_bh_table.a + 1,
performance_schema.setup_instruments.timed= 'NO';
use test;
drop table if exists marker_multi_delete;
Warnings:
Note 1051 Unknown table 'test.marker_multi_delete'
use my_replicated_db;
insert into performance_schema.setup_actors
values ('FOO', 'FOO', 'FOO');
delete my_tx_table.*, performance_schema.setup_actors.*
from my_tx_table, performance_schema.setup_actors
where my_tx_table.a != 1000
or performance_schema.setup_actors.role='FOO';
insert into performance_schema.setup_actors
values ('BAR', 'BAR', 'BAR');
delete my_non_tx_table.*, performance_schema.setup_actors.*
from my_non_tx_table, performance_schema.setup_actors
where my_non_tx_table.a != 1000
or performance_schema.setup_actors.role='BAR';
insert into performance_schema.setup_actors
values ('BAZ', 'BAZ', 'BAZ');
delete my_bh_table.*, performance_schema.setup_actors.*
from my_bh_table, performance_schema.setup_actors
where my_bh_table.a != 1000
or performance_schema.setup_actors.role='BAZ';
use test;
drop table if exists marker_end;
Warnings:
Note 1051 Unknown table 'test.marker_end'
drop database my_replicated_db;
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # drop database if exists my_replicated_db
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `mtr`; INSERT INTO test_suppressions (pattern) VALUES ( NAME_CONST('pattern',_latin1'Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT' COLLATE 'latin1_swedish_ci'))
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # create database my_replicated_db
master-bin.000001 # Query # # use `test`; create table my_replicated_db.my_tx_table(a bigint) engine = innodb
master-bin.000001 # Query # # use `test`; create table my_replicated_db.my_non_tx_table(a bigint) engine = myisam
master-bin.000001 # Query # # use `test`; create table my_replicated_db.my_bh_table(a bigint) engine = blackhole
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_start` /* generated by server */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_tx_table(a)
values (1000), (2000), (3000)
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_non_tx_table(a)
values (1000), (2000), (3000)
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_bh_table(a)
values (1000), (2000), (3000)
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_insert_select` /* generated by server */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_tx_table)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_non_tx_table)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_bh_table)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_tx_table(a)
select id from information_schema.processlist
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_non_tx_table(a)
select id from information_schema.processlist
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_bh_table(a)
select id from information_schema.processlist
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_multi_update` /* generated by server */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_tx_table)
master-bin.000001 # Update_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_non_tx_table)
master-bin.000001 # Update_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_multi_delete` /* generated by server */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_tx_table)
master-bin.000001 # Delete_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_non_tx_table)
master-bin.000001 # Delete_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_end` /* generated by server */
master-bin.000001 # Query # # drop database my_replicated_db
truncate table performance_schema.setup_actors;
insert into performance_schema.setup_actors values ('%', '%', '%');

View File

@ -0,0 +1,183 @@
set binlog_format=row;
RESET MASTER;
drop database if exists my_replicated_db;
call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
create database my_replicated_db;
create table my_replicated_db.my_tx_table(a bigint) engine = innodb;
create table my_replicated_db.my_non_tx_table(a bigint) engine = myisam;
create table my_replicated_db.my_bh_table(a bigint) engine = blackhole;
use test;
drop table if exists marker_start;
Warnings:
Note 1051 Unknown table 'test.marker_start'
use my_replicated_db;
insert into my_tx_table(a)
values (1000), (2000), (3000);
insert into my_non_tx_table(a)
values (1000), (2000), (3000);
insert into my_bh_table(a)
values (1000), (2000), (3000);
use test;
drop table if exists marker_insert_select;
Warnings:
Note 1051 Unknown table 'test.marker_insert_select'
use my_replicated_db;
insert into my_tx_table(a)
select thread_id from performance_schema.threads;
insert into my_non_tx_table(a)
select thread_id from performance_schema.threads;
insert into my_bh_table(a)
select thread_id from performance_schema.threads;
insert into my_tx_table(a)
select id from information_schema.processlist;
insert into my_non_tx_table(a)
select id from information_schema.processlist;
insert into my_bh_table(a)
select id from information_schema.processlist;
insert into my_tx_table(a)
select thread_id from mysql.general_log;
insert into my_non_tx_table(a)
select thread_id from mysql.general_log;
insert into my_bh_table(a)
select thread_id from mysql.general_log;
insert into my_tx_table(a)
select thread_id from mysql.slow_log;
insert into my_non_tx_table(a)
select thread_id from mysql.slow_log;
insert into my_bh_table(a)
select thread_id from mysql.slow_log;
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_bh_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_non_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_bh_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
insert into my_bh_table(a)
select Relay_log_pos from mysql.slave_worker_info;
use test;
drop table if exists marker_multi_update;
Warnings:
Note 1051 Unknown table 'test.marker_multi_update'
use my_replicated_db;
update my_tx_table, performance_schema.setup_instruments
set my_tx_table.a = my_tx_table.a + 1,
performance_schema.setup_instruments.timed= 'NO';
update my_non_tx_table, performance_schema.setup_instruments
set my_non_tx_table.a = my_non_tx_table.a + 1,
performance_schema.setup_instruments.timed= 'NO';
update my_bh_table, performance_schema.setup_instruments
set my_bh_table.a = my_bh_table.a + 1,
performance_schema.setup_instruments.timed= 'NO';
Warnings:
Warning 1870 Row events are not logged for UPDATE statements that modify BLACKHOLE tables in row format. Table(s): 'my_bh_table.'
use test;
drop table if exists marker_multi_delete;
Warnings:
Note 1051 Unknown table 'test.marker_multi_delete'
use my_replicated_db;
insert into performance_schema.setup_actors
values ('FOO', 'FOO', 'FOO');
delete my_tx_table.*, performance_schema.setup_actors.*
from my_tx_table, performance_schema.setup_actors
where my_tx_table.a != 1000
or performance_schema.setup_actors.role='FOO';
insert into performance_schema.setup_actors
values ('BAR', 'BAR', 'BAR');
delete my_non_tx_table.*, performance_schema.setup_actors.*
from my_non_tx_table, performance_schema.setup_actors
where my_non_tx_table.a != 1000
or performance_schema.setup_actors.role='BAR';
insert into performance_schema.setup_actors
values ('BAZ', 'BAZ', 'BAZ');
delete my_bh_table.*, performance_schema.setup_actors.*
from my_bh_table, performance_schema.setup_actors
where my_bh_table.a != 1000
or performance_schema.setup_actors.role='BAZ';
Warnings:
Warning 1870 Row events are not logged for DELETE statements that modify BLACKHOLE tables in row format. Table(s): 'my_bh_table.'
use test;
drop table if exists marker_end;
Warnings:
Note 1051 Unknown table 'test.marker_end'
drop database my_replicated_db;
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # drop database if exists my_replicated_db
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (mtr.test_suppressions)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # create database my_replicated_db
master-bin.000001 # Query # # use `test`; create table my_replicated_db.my_tx_table(a bigint) engine = innodb
master-bin.000001 # Query # # use `test`; create table my_replicated_db.my_non_tx_table(a bigint) engine = myisam
master-bin.000001 # Query # # use `test`; create table my_replicated_db.my_bh_table(a bigint) engine = blackhole
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_start` /* generated by server */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_tx_table)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_non_tx_table)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_bh_table)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_insert_select` /* generated by server */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_tx_table)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_non_tx_table)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_bh_table)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_tx_table)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_non_tx_table)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_bh_table)
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_multi_update` /* generated by server */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_tx_table)
master-bin.000001 # Update_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_non_tx_table)
master-bin.000001 # Update_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_multi_delete` /* generated by server */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_tx_table)
master-bin.000001 # Delete_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (my_replicated_db.my_non_tx_table)
master-bin.000001 # Delete_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_end` /* generated by server */
master-bin.000001 # Query # # drop database my_replicated_db
truncate table performance_schema.setup_actors;
insert into performance_schema.setup_actors values ('%', '%', '%');

View File

@ -0,0 +1,258 @@
set binlog_format=statement;
RESET MASTER;
drop database if exists my_replicated_db;
call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
create database my_replicated_db;
create table my_replicated_db.my_tx_table(a bigint) engine = innodb;
create table my_replicated_db.my_non_tx_table(a bigint) engine = myisam;
create table my_replicated_db.my_bh_table(a bigint) engine = blackhole;
use test;
drop table if exists marker_start;
Warnings:
Note 1051 Unknown table 'test.marker_start'
use my_replicated_db;
insert into my_tx_table(a)
values (1000), (2000), (3000);
insert into my_non_tx_table(a)
values (1000), (2000), (3000);
insert into my_bh_table(a)
values (1000), (2000), (3000);
use test;
drop table if exists marker_insert_select;
Warnings:
Note 1051 Unknown table 'test.marker_insert_select'
use my_replicated_db;
insert into my_tx_table(a)
select thread_id from performance_schema.threads;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_non_tx_table(a)
select thread_id from performance_schema.threads;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_bh_table(a)
select thread_id from performance_schema.threads;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_tx_table(a)
select id from information_schema.processlist;
insert into my_non_tx_table(a)
select id from information_schema.processlist;
insert into my_bh_table(a)
select id from information_schema.processlist;
insert into my_tx_table(a)
select thread_id from mysql.general_log;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_non_tx_table(a)
select thread_id from mysql.general_log;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_bh_table(a)
select thread_id from mysql.general_log;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_tx_table(a)
select thread_id from mysql.slow_log;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_non_tx_table(a)
select thread_id from mysql.slow_log;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_bh_table(a)
select thread_id from mysql.slow_log;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_bh_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_non_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_bh_table(a)
select Master_log_pos from mysql.slave_master_info;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
insert into my_bh_table(a)
select Relay_log_pos from mysql.slave_worker_info;
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves.
use test;
drop table if exists marker_multi_update;
Warnings:
Note 1051 Unknown table 'test.marker_multi_update'
use my_replicated_db;
update my_tx_table, performance_schema.setup_instruments
set my_tx_table.a = my_tx_table.a + 1,
performance_schema.setup_instruments.timed= 'NO';
update my_non_tx_table, performance_schema.setup_instruments
set my_non_tx_table.a = my_non_tx_table.a + 1,
performance_schema.setup_instruments.timed= 'NO';
update my_bh_table, performance_schema.setup_instruments
set my_bh_table.a = my_bh_table.a + 1,
performance_schema.setup_instruments.timed= 'NO';
use test;
drop table if exists marker_multi_delete;
Warnings:
Note 1051 Unknown table 'test.marker_multi_delete'
use my_replicated_db;
insert into performance_schema.setup_actors
values ('FOO', 'FOO', 'FOO');
delete my_tx_table.*, performance_schema.setup_actors.*
from my_tx_table, performance_schema.setup_actors
where my_tx_table.a != 1000
or performance_schema.setup_actors.role='FOO';
insert into performance_schema.setup_actors
values ('BAR', 'BAR', 'BAR');
delete my_non_tx_table.*, performance_schema.setup_actors.*
from my_non_tx_table, performance_schema.setup_actors
where my_non_tx_table.a != 1000
or performance_schema.setup_actors.role='BAR';
insert into performance_schema.setup_actors
values ('BAZ', 'BAZ', 'BAZ');
delete my_bh_table.*, performance_schema.setup_actors.*
from my_bh_table, performance_schema.setup_actors
where my_bh_table.a != 1000
or performance_schema.setup_actors.role='BAZ';
use test;
drop table if exists marker_end;
Warnings:
Note 1051 Unknown table 'test.marker_end'
drop database my_replicated_db;
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # drop database if exists my_replicated_db
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `mtr`; INSERT INTO test_suppressions (pattern) VALUES ( NAME_CONST('pattern',_latin1'Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT' COLLATE 'latin1_swedish_ci'))
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # create database my_replicated_db
master-bin.000001 # Query # # use `test`; create table my_replicated_db.my_tx_table(a bigint) engine = innodb
master-bin.000001 # Query # # use `test`; create table my_replicated_db.my_non_tx_table(a bigint) engine = myisam
master-bin.000001 # Query # # use `test`; create table my_replicated_db.my_bh_table(a bigint) engine = blackhole
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_start` /* generated by server */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_tx_table(a)
values (1000), (2000), (3000)
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_non_tx_table(a)
values (1000), (2000), (3000)
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_bh_table(a)
values (1000), (2000), (3000)
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_insert_select` /* generated by server */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_tx_table(a)
select thread_id from performance_schema.threads
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_non_tx_table(a)
select thread_id from performance_schema.threads
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_bh_table(a)
select thread_id from performance_schema.threads
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_tx_table(a)
select id from information_schema.processlist
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_non_tx_table(a)
select id from information_schema.processlist
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_bh_table(a)
select id from information_schema.processlist
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_tx_table(a)
select thread_id from mysql.general_log
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_non_tx_table(a)
select thread_id from mysql.general_log
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_bh_table(a)
select thread_id from mysql.general_log
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_tx_table(a)
select thread_id from mysql.slow_log
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_non_tx_table(a)
select thread_id from mysql.slow_log
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_bh_table(a)
select thread_id from mysql.slow_log
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_bh_table(a)
select Relay_log_pos from mysql.slave_relay_log_info
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_tx_table(a)
select Master_log_pos from mysql.slave_master_info
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_non_tx_table(a)
select Master_log_pos from mysql.slave_master_info
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_bh_table(a)
select Master_log_pos from mysql.slave_master_info
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Query # # use `my_replicated_db`; insert into my_bh_table(a)
select Relay_log_pos from mysql.slave_worker_info
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_multi_update` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_multi_delete` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_end` /* generated by server */
master-bin.000001 # Query # # drop database my_replicated_db
truncate table performance_schema.setup_actors;
insert into performance_schema.setup_actors values ('%', '%', '%');

View File

@ -0,0 +1,119 @@
set binlog_format=mixed;
RESET MASTER;
drop database if exists my_local_db;
create database my_local_db;
create table my_local_db.my_tx_table(a bigint) engine = innodb;
create table my_local_db.my_non_tx_table(a bigint) engine = myisam;
use test;
drop table if exists marker_start;
Warnings:
Note 1051 Unknown table 'test.marker_start'
use my_local_db;
insert into my_tx_table(a)
values (1000), (2000), (3000);
insert into my_non_tx_table(a)
values (1000), (2000), (3000);
use test;
drop table if exists marker_truncate;
Warnings:
Note 1051 Unknown table 'test.marker_truncate'
use performance_schema;
truncate table events_waits_history;
truncate table events_waits_history_long;
use test;
truncate table performance_schema.events_statements_history_long;
truncate table performance_schema.host_cache;
use test;
drop table if exists marker_update;
Warnings:
Note 1051 Unknown table 'test.marker_update'
use performance_schema;
update setup_instruments set enabled='NO';
update setup_instruments set timed='NO';
use test;
update performance_schema.setup_instruments set enabled='YES', timed='YES';
update performance_schema.threads set instrumented='YES';
use test;
drop table if exists marker_insert;
Warnings:
Note 1051 Unknown table 'test.marker_insert'
insert into performance_schema.setup_actors(`user`, `host`, `role`)
values ('XXX', 'XXX', 'XXX'),
('YYY', 'YYY', 'YYY'),
('ZZZ', 'ZZZ', 'ZZZ');
select * from performance_schema.setup_actors
where user in ('XXX', 'YYY', 'ZZZ') order by user;
HOST USER ROLE
XXX XXX XXX
YYY YYY YYY
ZZZ ZZZ ZZZ
insert into performance_schema.setup_objects
(object_type, object_schema, object_name, enabled, timed)
values ('TABLE', 'DB1', 'AAA', 'YES', 'YES'),
('TABLE', 'DB1', 'BBB', 'NO', 'NO'),
('TABLE', 'DB2', 'CCC', 'YES', 'NO'),
('TABLE', 'DB2', 'DDD', 'NO', 'YES');
select * from performance_schema.setup_objects
where object_schema like 'DB%' order by object_name;
OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED
TABLE DB1 AAA YES YES
TABLE DB1 BBB NO NO
TABLE DB2 CCC YES NO
TABLE DB2 DDD NO YES
use test;
drop table if exists marker_insert_select;
Warnings:
Note 1051 Unknown table 'test.marker_insert_select'
use my_local_db;
insert into my_tx_table(a)
select thread_id from performance_schema.threads;
insert into my_non_tx_table(a)
select thread_id from performance_schema.threads;
insert into my_tx_table(a)
select id from information_schema.processlist;
insert into my_non_tx_table(a)
select id from information_schema.processlist;
insert into my_tx_table(a)
select thread_id from mysql.general_log;
insert into my_non_tx_table(a)
select thread_id from mysql.general_log;
insert into my_tx_table(a)
select thread_id from mysql.slow_log;
insert into my_non_tx_table(a)
select thread_id from mysql.slow_log;
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_non_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
use test;
drop table if exists marker_delete;
Warnings:
Note 1051 Unknown table 'test.marker_delete'
delete from performance_schema.setup_actors
where user in ('XXX', 'YYY', 'ZZZ');
delete from performance_schema.setup_objects
where object_schema like 'DB%';
use test;
drop table if exists marker_end;
Warnings:
Note 1051 Unknown table 'test.marker_end'
drop database my_local_db;
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; create table my_local_db.my_tx_table(a bigint) engine = innodb
master-bin.000001 # Query # # use `test`; create table my_local_db.my_non_tx_table(a bigint) engine = myisam
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_start` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_truncate` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_update` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_insert` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_insert_select` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_delete` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_end` /* generated by server */

View File

@ -0,0 +1,119 @@
set binlog_format=row;
RESET MASTER;
drop database if exists my_local_db;
create database my_local_db;
create table my_local_db.my_tx_table(a bigint) engine = innodb;
create table my_local_db.my_non_tx_table(a bigint) engine = myisam;
use test;
drop table if exists marker_start;
Warnings:
Note 1051 Unknown table 'test.marker_start'
use my_local_db;
insert into my_tx_table(a)
values (1000), (2000), (3000);
insert into my_non_tx_table(a)
values (1000), (2000), (3000);
use test;
drop table if exists marker_truncate;
Warnings:
Note 1051 Unknown table 'test.marker_truncate'
use performance_schema;
truncate table events_waits_history;
truncate table events_waits_history_long;
use test;
truncate table performance_schema.events_statements_history_long;
truncate table performance_schema.host_cache;
use test;
drop table if exists marker_update;
Warnings:
Note 1051 Unknown table 'test.marker_update'
use performance_schema;
update setup_instruments set enabled='NO';
update setup_instruments set timed='NO';
use test;
update performance_schema.setup_instruments set enabled='YES', timed='YES';
update performance_schema.threads set instrumented='YES';
use test;
drop table if exists marker_insert;
Warnings:
Note 1051 Unknown table 'test.marker_insert'
insert into performance_schema.setup_actors(`user`, `host`, `role`)
values ('XXX', 'XXX', 'XXX'),
('YYY', 'YYY', 'YYY'),
('ZZZ', 'ZZZ', 'ZZZ');
select * from performance_schema.setup_actors
where user in ('XXX', 'YYY', 'ZZZ') order by user;
HOST USER ROLE
XXX XXX XXX
YYY YYY YYY
ZZZ ZZZ ZZZ
insert into performance_schema.setup_objects
(object_type, object_schema, object_name, enabled, timed)
values ('TABLE', 'DB1', 'AAA', 'YES', 'YES'),
('TABLE', 'DB1', 'BBB', 'NO', 'NO'),
('TABLE', 'DB2', 'CCC', 'YES', 'NO'),
('TABLE', 'DB2', 'DDD', 'NO', 'YES');
select * from performance_schema.setup_objects
where object_schema like 'DB%' order by object_name;
OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED
TABLE DB1 AAA YES YES
TABLE DB1 BBB NO NO
TABLE DB2 CCC YES NO
TABLE DB2 DDD NO YES
use test;
drop table if exists marker_insert_select;
Warnings:
Note 1051 Unknown table 'test.marker_insert_select'
use my_local_db;
insert into my_tx_table(a)
select thread_id from performance_schema.threads;
insert into my_non_tx_table(a)
select thread_id from performance_schema.threads;
insert into my_tx_table(a)
select id from information_schema.processlist;
insert into my_non_tx_table(a)
select id from information_schema.processlist;
insert into my_tx_table(a)
select thread_id from mysql.general_log;
insert into my_non_tx_table(a)
select thread_id from mysql.general_log;
insert into my_tx_table(a)
select thread_id from mysql.slow_log;
insert into my_non_tx_table(a)
select thread_id from mysql.slow_log;
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_non_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
use test;
drop table if exists marker_delete;
Warnings:
Note 1051 Unknown table 'test.marker_delete'
delete from performance_schema.setup_actors
where user in ('XXX', 'YYY', 'ZZZ');
delete from performance_schema.setup_objects
where object_schema like 'DB%';
use test;
drop table if exists marker_end;
Warnings:
Note 1051 Unknown table 'test.marker_end'
drop database my_local_db;
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; create table my_local_db.my_tx_table(a bigint) engine = innodb
master-bin.000001 # Query # # use `test`; create table my_local_db.my_non_tx_table(a bigint) engine = myisam
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_start` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_truncate` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_update` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_insert` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_insert_select` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_delete` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_end` /* generated by server */

View File

@ -0,0 +1,119 @@
set binlog_format=statement;
RESET MASTER;
drop database if exists my_local_db;
create database my_local_db;
create table my_local_db.my_tx_table(a bigint) engine = innodb;
create table my_local_db.my_non_tx_table(a bigint) engine = myisam;
use test;
drop table if exists marker_start;
Warnings:
Note 1051 Unknown table 'test.marker_start'
use my_local_db;
insert into my_tx_table(a)
values (1000), (2000), (3000);
insert into my_non_tx_table(a)
values (1000), (2000), (3000);
use test;
drop table if exists marker_truncate;
Warnings:
Note 1051 Unknown table 'test.marker_truncate'
use performance_schema;
truncate table events_waits_history;
truncate table events_waits_history_long;
use test;
truncate table performance_schema.events_statements_history_long;
truncate table performance_schema.host_cache;
use test;
drop table if exists marker_update;
Warnings:
Note 1051 Unknown table 'test.marker_update'
use performance_schema;
update setup_instruments set enabled='NO';
update setup_instruments set timed='NO';
use test;
update performance_schema.setup_instruments set enabled='YES', timed='YES';
update performance_schema.threads set instrumented='YES';
use test;
drop table if exists marker_insert;
Warnings:
Note 1051 Unknown table 'test.marker_insert'
insert into performance_schema.setup_actors(`user`, `host`, `role`)
values ('XXX', 'XXX', 'XXX'),
('YYY', 'YYY', 'YYY'),
('ZZZ', 'ZZZ', 'ZZZ');
select * from performance_schema.setup_actors
where user in ('XXX', 'YYY', 'ZZZ') order by user;
HOST USER ROLE
XXX XXX XXX
YYY YYY YYY
ZZZ ZZZ ZZZ
insert into performance_schema.setup_objects
(object_type, object_schema, object_name, enabled, timed)
values ('TABLE', 'DB1', 'AAA', 'YES', 'YES'),
('TABLE', 'DB1', 'BBB', 'NO', 'NO'),
('TABLE', 'DB2', 'CCC', 'YES', 'NO'),
('TABLE', 'DB2', 'DDD', 'NO', 'YES');
select * from performance_schema.setup_objects
where object_schema like 'DB%' order by object_name;
OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED
TABLE DB1 AAA YES YES
TABLE DB1 BBB NO NO
TABLE DB2 CCC YES NO
TABLE DB2 DDD NO YES
use test;
drop table if exists marker_insert_select;
Warnings:
Note 1051 Unknown table 'test.marker_insert_select'
use my_local_db;
insert into my_tx_table(a)
select thread_id from performance_schema.threads;
insert into my_non_tx_table(a)
select thread_id from performance_schema.threads;
insert into my_tx_table(a)
select id from information_schema.processlist;
insert into my_non_tx_table(a)
select id from information_schema.processlist;
insert into my_tx_table(a)
select thread_id from mysql.general_log;
insert into my_non_tx_table(a)
select thread_id from mysql.general_log;
insert into my_tx_table(a)
select thread_id from mysql.slow_log;
insert into my_non_tx_table(a)
select thread_id from mysql.slow_log;
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_relay_log_info;
insert into my_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_non_tx_table(a)
select Master_log_pos from mysql.slave_master_info;
insert into my_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
insert into my_non_tx_table(a)
select Relay_log_pos from mysql.slave_worker_info;
use test;
drop table if exists marker_delete;
Warnings:
Note 1051 Unknown table 'test.marker_delete'
delete from performance_schema.setup_actors
where user in ('XXX', 'YYY', 'ZZZ');
delete from performance_schema.setup_objects
where object_schema like 'DB%';
use test;
drop table if exists marker_end;
Warnings:
Note 1051 Unknown table 'test.marker_end'
drop database my_local_db;
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; create table my_local_db.my_tx_table(a bigint) engine = innodb
master-bin.000001 # Query # # use `test`; create table my_local_db.my_non_tx_table(a bigint) engine = myisam
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_start` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_truncate` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_update` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_insert` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_insert_select` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_delete` /* generated by server */
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `marker_end` /* generated by server */

View File

@ -3,6 +3,7 @@ UPDATE performance_schema.setup_instruments SET enabled = 'YES'
WHERE name LIKE 'wait/io/file/%';
update performance_schema.threads SET instrumented = 'YES'
WHERE PROCESSLIST_ID=connection_id();
truncate table performance_schema.events_statements_summary_by_digest;
flush status;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (id INT PRIMARY KEY, b CHAR(100) DEFAULT 'initial value')

View File

@ -2,6 +2,7 @@ UPDATE performance_schema.setup_instruments SET enabled = 'NO', timed = 'YES';
UPDATE performance_schema.setup_instruments SET enabled = 'YES'
WHERE name LIKE 'wait/synch/mutex/%'
OR name LIKE 'wait/synch/rwlock/%';
truncate table performance_schema.events_statements_summary_by_digest;
flush status;
select NAME from performance_schema.mutex_instances
where NAME = 'wait/synch/mutex/sql/TABLE_SHARE::tdc.LOCK_table_share' GROUP BY NAME;

View File

@ -23,8 +23,10 @@ User Host
select `User`, `Host` from mysql.`user` where `user` like 'santa.claus.%';
User Host
select @@global.max_connect_errors into @saved_max_connect_errors;
set global max_connect_errors = 2;
set global max_connect_errors = 3;
grant select on test.* to 'root'@'santa.claus.ipv4.example.com';
create user 'quota'@'santa.claus.ipv4.example.com';
grant select on test.* to 'quota'@'santa.claus.ipv4.example.com';
select "Con1 is alive";
Con1 is alive
Con1 is alive
@ -207,7 +209,215 @@ COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
ERROR 08S01: Bad handshake
"Dumping performance_schema.host_cache"
IP 192.0.2.4
HOST santa.claus.ipv4.example.com
HOST_VALIDATED YES
SUM_CONNECT_ERRORS 2
COUNT_HOST_BLOCKED_ERRORS 0
COUNT_NAMEINFO_TRANSIENT_ERRORS 0
COUNT_NAMEINFO_PERMANENT_ERRORS 0
COUNT_FORMAT_ERRORS 0
COUNT_ADDRINFO_TRANSIENT_ERRORS 0
COUNT_ADDRINFO_PERMANENT_ERRORS 0
COUNT_FCRDNS_ERRORS 0
COUNT_HOST_ACL_ERRORS 0
COUNT_NO_AUTH_PLUGIN_ERRORS 0
COUNT_AUTH_PLUGIN_ERRORS 0
COUNT_HANDSHAKE_ERRORS 2
COUNT_PROXY_USER_ERRORS 0
COUNT_PROXY_USER_ACL_ERRORS 0
COUNT_AUTHENTICATION_ERRORS 0
COUNT_SSL_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS 0
COUNT_DEFAULT_DATABASE_ERRORS 0
COUNT_INIT_CONNECT_ERRORS 0
COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
set global debug_dbug= "-d,native_password_bad_reply";
message
Valid connection should reset SUM_CONNECT_ERROR counter
set global debug_dbug= "+d,native_password_bad_reply";
"Dumping performance_schema.host_cache"
IP 192.0.2.4
HOST santa.claus.ipv4.example.com
HOST_VALIDATED YES
SUM_CONNECT_ERRORS 0
COUNT_HOST_BLOCKED_ERRORS 0
COUNT_NAMEINFO_TRANSIENT_ERRORS 0
COUNT_NAMEINFO_PERMANENT_ERRORS 0
COUNT_FORMAT_ERRORS 0
COUNT_ADDRINFO_TRANSIENT_ERRORS 0
COUNT_ADDRINFO_PERMANENT_ERRORS 0
COUNT_FCRDNS_ERRORS 0
COUNT_HOST_ACL_ERRORS 0
COUNT_NO_AUTH_PLUGIN_ERRORS 0
COUNT_AUTH_PLUGIN_ERRORS 0
COUNT_HANDSHAKE_ERRORS 2
COUNT_PROXY_USER_ERRORS 0
COUNT_PROXY_USER_ACL_ERRORS 0
COUNT_AUTHENTICATION_ERRORS 0
COUNT_SSL_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS 0
COUNT_DEFAULT_DATABASE_ERRORS 0
COUNT_INIT_CONNECT_ERRORS 0
COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
ERROR 08S01: Bad handshake
"Dumping performance_schema.host_cache"
IP 192.0.2.4
HOST santa.claus.ipv4.example.com
HOST_VALIDATED YES
SUM_CONNECT_ERRORS 1
COUNT_HOST_BLOCKED_ERRORS 0
COUNT_NAMEINFO_TRANSIENT_ERRORS 0
COUNT_NAMEINFO_PERMANENT_ERRORS 0
COUNT_FORMAT_ERRORS 0
COUNT_ADDRINFO_TRANSIENT_ERRORS 0
COUNT_ADDRINFO_PERMANENT_ERRORS 0
COUNT_FCRDNS_ERRORS 0
COUNT_HOST_ACL_ERRORS 0
COUNT_NO_AUTH_PLUGIN_ERRORS 0
COUNT_AUTH_PLUGIN_ERRORS 0
COUNT_HANDSHAKE_ERRORS 3
COUNT_PROXY_USER_ERRORS 0
COUNT_PROXY_USER_ACL_ERRORS 0
COUNT_AUTHENTICATION_ERRORS 0
COUNT_SSL_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS 0
COUNT_DEFAULT_DATABASE_ERRORS 0
COUNT_INIT_CONNECT_ERRORS 0
COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
ERROR 08S01: Bad handshake
"Dumping performance_schema.host_cache"
IP 192.0.2.4
HOST santa.claus.ipv4.example.com
HOST_VALIDATED YES
SUM_CONNECT_ERRORS 2
COUNT_HOST_BLOCKED_ERRORS 0
COUNT_NAMEINFO_TRANSIENT_ERRORS 0
COUNT_NAMEINFO_PERMANENT_ERRORS 0
COUNT_FORMAT_ERRORS 0
COUNT_ADDRINFO_TRANSIENT_ERRORS 0
COUNT_ADDRINFO_PERMANENT_ERRORS 0
COUNT_FCRDNS_ERRORS 0
COUNT_HOST_ACL_ERRORS 0
COUNT_NO_AUTH_PLUGIN_ERRORS 0
COUNT_AUTH_PLUGIN_ERRORS 0
COUNT_HANDSHAKE_ERRORS 4
COUNT_PROXY_USER_ERRORS 0
COUNT_PROXY_USER_ACL_ERRORS 0
COUNT_AUTHENTICATION_ERRORS 0
COUNT_SSL_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS 0
COUNT_DEFAULT_DATABASE_ERRORS 0
COUNT_INIT_CONNECT_ERRORS 0
COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
ERROR 08S01: Bad handshake
"Dumping performance_schema.host_cache"
IP 192.0.2.4
HOST santa.claus.ipv4.example.com
HOST_VALIDATED YES
SUM_CONNECT_ERRORS 3
COUNT_HOST_BLOCKED_ERRORS 0
COUNT_NAMEINFO_TRANSIENT_ERRORS 0
COUNT_NAMEINFO_PERMANENT_ERRORS 0
COUNT_FORMAT_ERRORS 0
COUNT_ADDRINFO_TRANSIENT_ERRORS 0
COUNT_ADDRINFO_PERMANENT_ERRORS 0
COUNT_FCRDNS_ERRORS 0
COUNT_HOST_ACL_ERRORS 0
COUNT_NO_AUTH_PLUGIN_ERRORS 0
COUNT_AUTH_PLUGIN_ERRORS 0
COUNT_HANDSHAKE_ERRORS 5
COUNT_PROXY_USER_ERRORS 0
COUNT_PROXY_USER_ACL_ERRORS 0
COUNT_AUTHENTICATION_ERRORS 0
COUNT_SSL_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS 0
COUNT_DEFAULT_DATABASE_ERRORS 0
COUNT_INIT_CONNECT_ERRORS 0
COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
ERROR HY000: Host '192.0.2.4' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
"Dumping performance_schema.host_cache"
IP 192.0.2.4
HOST santa.claus.ipv4.example.com
HOST_VALIDATED YES
SUM_CONNECT_ERRORS 3
COUNT_HOST_BLOCKED_ERRORS 1
COUNT_NAMEINFO_TRANSIENT_ERRORS 0
COUNT_NAMEINFO_PERMANENT_ERRORS 0
COUNT_FORMAT_ERRORS 0
COUNT_ADDRINFO_TRANSIENT_ERRORS 0
COUNT_ADDRINFO_PERMANENT_ERRORS 0
COUNT_FCRDNS_ERRORS 0
COUNT_HOST_ACL_ERRORS 0
COUNT_NO_AUTH_PLUGIN_ERRORS 0
COUNT_AUTH_PLUGIN_ERRORS 0
COUNT_HANDSHAKE_ERRORS 5
COUNT_PROXY_USER_ERRORS 0
COUNT_PROXY_USER_ACL_ERRORS 0
COUNT_AUTHENTICATION_ERRORS 0
COUNT_SSL_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS 0
COUNT_DEFAULT_DATABASE_ERRORS 0
COUNT_INIT_CONNECT_ERRORS 0
COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
ERROR HY000: Host '192.0.2.4' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
"Dumping performance_schema.host_cache"
IP 192.0.2.4
HOST santa.claus.ipv4.example.com
HOST_VALIDATED YES
SUM_CONNECT_ERRORS 3
COUNT_HOST_BLOCKED_ERRORS 2
COUNT_NAMEINFO_TRANSIENT_ERRORS 0
COUNT_NAMEINFO_PERMANENT_ERRORS 0
COUNT_FORMAT_ERRORS 0
COUNT_ADDRINFO_TRANSIENT_ERRORS 0
COUNT_ADDRINFO_PERMANENT_ERRORS 0
COUNT_FCRDNS_ERRORS 0
COUNT_HOST_ACL_ERRORS 0
COUNT_NO_AUTH_PLUGIN_ERRORS 0
COUNT_AUTH_PLUGIN_ERRORS 0
COUNT_HANDSHAKE_ERRORS 5
COUNT_PROXY_USER_ERRORS 0
COUNT_PROXY_USER_ACL_ERRORS 0
COUNT_AUTHENTICATION_ERRORS 0
COUNT_SSL_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS 0
COUNT_DEFAULT_DATABASE_ERRORS 0
COUNT_INIT_CONNECT_ERRORS 0
COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
revoke select on test.* from 'root'@'santa.claus.ipv4.example.com';
drop user 'root'@'santa.claus.ipv4.example.com';
revoke select on test.* from 'quota'@'santa.claus.ipv4.example.com';
drop user 'quota'@'santa.claus.ipv4.example.com';
set global max_connect_errors = @saved_max_connect_errors;
set global debug_dbug= default;

View File

@ -23,8 +23,10 @@ User Host
select `User`, `Host` from mysql.`user` where `user` like 'santa.claus.%';
User Host
select @@global.max_connect_errors into @saved_max_connect_errors;
set global max_connect_errors = 2;
set global max_connect_errors = 3;
grant select on test.* to 'root'@'santa.claus.ipv6.example.com';
create user 'quota'@'santa.claus.ipv6.example.com';
grant select on test.* to 'quota'@'santa.claus.ipv6.example.com';
select "Con1 is alive";
Con1 is alive
Con1 is alive
@ -207,7 +209,215 @@ COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
ERROR 08S01: Bad handshake
"Dumping performance_schema.host_cache"
IP 2001:db8::6:6
HOST santa.claus.ipv6.example.com
HOST_VALIDATED YES
SUM_CONNECT_ERRORS 2
COUNT_HOST_BLOCKED_ERRORS 0
COUNT_NAMEINFO_TRANSIENT_ERRORS 0
COUNT_NAMEINFO_PERMANENT_ERRORS 0
COUNT_FORMAT_ERRORS 0
COUNT_ADDRINFO_TRANSIENT_ERRORS 0
COUNT_ADDRINFO_PERMANENT_ERRORS 0
COUNT_FCRDNS_ERRORS 0
COUNT_HOST_ACL_ERRORS 0
COUNT_NO_AUTH_PLUGIN_ERRORS 0
COUNT_AUTH_PLUGIN_ERRORS 0
COUNT_HANDSHAKE_ERRORS 2
COUNT_PROXY_USER_ERRORS 0
COUNT_PROXY_USER_ACL_ERRORS 0
COUNT_AUTHENTICATION_ERRORS 0
COUNT_SSL_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS 0
COUNT_DEFAULT_DATABASE_ERRORS 0
COUNT_INIT_CONNECT_ERRORS 0
COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
set global debug_dbug= "-d,native_password_bad_reply";
message
Valid connection should reset SUM_CONNECT_ERROR counter
set global debug_dbug= "+d,native_password_bad_reply";
"Dumping performance_schema.host_cache"
IP 2001:db8::6:6
HOST santa.claus.ipv6.example.com
HOST_VALIDATED YES
SUM_CONNECT_ERRORS 0
COUNT_HOST_BLOCKED_ERRORS 0
COUNT_NAMEINFO_TRANSIENT_ERRORS 0
COUNT_NAMEINFO_PERMANENT_ERRORS 0
COUNT_FORMAT_ERRORS 0
COUNT_ADDRINFO_TRANSIENT_ERRORS 0
COUNT_ADDRINFO_PERMANENT_ERRORS 0
COUNT_FCRDNS_ERRORS 0
COUNT_HOST_ACL_ERRORS 0
COUNT_NO_AUTH_PLUGIN_ERRORS 0
COUNT_AUTH_PLUGIN_ERRORS 0
COUNT_HANDSHAKE_ERRORS 2
COUNT_PROXY_USER_ERRORS 0
COUNT_PROXY_USER_ACL_ERRORS 0
COUNT_AUTHENTICATION_ERRORS 0
COUNT_SSL_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS 0
COUNT_DEFAULT_DATABASE_ERRORS 0
COUNT_INIT_CONNECT_ERRORS 0
COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
ERROR 08S01: Bad handshake
"Dumping performance_schema.host_cache"
IP 2001:db8::6:6
HOST santa.claus.ipv6.example.com
HOST_VALIDATED YES
SUM_CONNECT_ERRORS 1
COUNT_HOST_BLOCKED_ERRORS 0
COUNT_NAMEINFO_TRANSIENT_ERRORS 0
COUNT_NAMEINFO_PERMANENT_ERRORS 0
COUNT_FORMAT_ERRORS 0
COUNT_ADDRINFO_TRANSIENT_ERRORS 0
COUNT_ADDRINFO_PERMANENT_ERRORS 0
COUNT_FCRDNS_ERRORS 0
COUNT_HOST_ACL_ERRORS 0
COUNT_NO_AUTH_PLUGIN_ERRORS 0
COUNT_AUTH_PLUGIN_ERRORS 0
COUNT_HANDSHAKE_ERRORS 3
COUNT_PROXY_USER_ERRORS 0
COUNT_PROXY_USER_ACL_ERRORS 0
COUNT_AUTHENTICATION_ERRORS 0
COUNT_SSL_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS 0
COUNT_DEFAULT_DATABASE_ERRORS 0
COUNT_INIT_CONNECT_ERRORS 0
COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
ERROR 08S01: Bad handshake
"Dumping performance_schema.host_cache"
IP 2001:db8::6:6
HOST santa.claus.ipv6.example.com
HOST_VALIDATED YES
SUM_CONNECT_ERRORS 2
COUNT_HOST_BLOCKED_ERRORS 0
COUNT_NAMEINFO_TRANSIENT_ERRORS 0
COUNT_NAMEINFO_PERMANENT_ERRORS 0
COUNT_FORMAT_ERRORS 0
COUNT_ADDRINFO_TRANSIENT_ERRORS 0
COUNT_ADDRINFO_PERMANENT_ERRORS 0
COUNT_FCRDNS_ERRORS 0
COUNT_HOST_ACL_ERRORS 0
COUNT_NO_AUTH_PLUGIN_ERRORS 0
COUNT_AUTH_PLUGIN_ERRORS 0
COUNT_HANDSHAKE_ERRORS 4
COUNT_PROXY_USER_ERRORS 0
COUNT_PROXY_USER_ACL_ERRORS 0
COUNT_AUTHENTICATION_ERRORS 0
COUNT_SSL_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS 0
COUNT_DEFAULT_DATABASE_ERRORS 0
COUNT_INIT_CONNECT_ERRORS 0
COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
ERROR 08S01: Bad handshake
"Dumping performance_schema.host_cache"
IP 2001:db8::6:6
HOST santa.claus.ipv6.example.com
HOST_VALIDATED YES
SUM_CONNECT_ERRORS 3
COUNT_HOST_BLOCKED_ERRORS 0
COUNT_NAMEINFO_TRANSIENT_ERRORS 0
COUNT_NAMEINFO_PERMANENT_ERRORS 0
COUNT_FORMAT_ERRORS 0
COUNT_ADDRINFO_TRANSIENT_ERRORS 0
COUNT_ADDRINFO_PERMANENT_ERRORS 0
COUNT_FCRDNS_ERRORS 0
COUNT_HOST_ACL_ERRORS 0
COUNT_NO_AUTH_PLUGIN_ERRORS 0
COUNT_AUTH_PLUGIN_ERRORS 0
COUNT_HANDSHAKE_ERRORS 5
COUNT_PROXY_USER_ERRORS 0
COUNT_PROXY_USER_ACL_ERRORS 0
COUNT_AUTHENTICATION_ERRORS 0
COUNT_SSL_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS 0
COUNT_DEFAULT_DATABASE_ERRORS 0
COUNT_INIT_CONNECT_ERRORS 0
COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
ERROR HY000: Host '2001:db8::6:6' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
"Dumping performance_schema.host_cache"
IP 2001:db8::6:6
HOST santa.claus.ipv6.example.com
HOST_VALIDATED YES
SUM_CONNECT_ERRORS 3
COUNT_HOST_BLOCKED_ERRORS 1
COUNT_NAMEINFO_TRANSIENT_ERRORS 0
COUNT_NAMEINFO_PERMANENT_ERRORS 0
COUNT_FORMAT_ERRORS 0
COUNT_ADDRINFO_TRANSIENT_ERRORS 0
COUNT_ADDRINFO_PERMANENT_ERRORS 0
COUNT_FCRDNS_ERRORS 0
COUNT_HOST_ACL_ERRORS 0
COUNT_NO_AUTH_PLUGIN_ERRORS 0
COUNT_AUTH_PLUGIN_ERRORS 0
COUNT_HANDSHAKE_ERRORS 5
COUNT_PROXY_USER_ERRORS 0
COUNT_PROXY_USER_ACL_ERRORS 0
COUNT_AUTHENTICATION_ERRORS 0
COUNT_SSL_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS 0
COUNT_DEFAULT_DATABASE_ERRORS 0
COUNT_INIT_CONNECT_ERRORS 0
COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
ERROR HY000: Host '2001:db8::6:6' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
"Dumping performance_schema.host_cache"
IP 2001:db8::6:6
HOST santa.claus.ipv6.example.com
HOST_VALIDATED YES
SUM_CONNECT_ERRORS 3
COUNT_HOST_BLOCKED_ERRORS 2
COUNT_NAMEINFO_TRANSIENT_ERRORS 0
COUNT_NAMEINFO_PERMANENT_ERRORS 0
COUNT_FORMAT_ERRORS 0
COUNT_ADDRINFO_TRANSIENT_ERRORS 0
COUNT_ADDRINFO_PERMANENT_ERRORS 0
COUNT_FCRDNS_ERRORS 0
COUNT_HOST_ACL_ERRORS 0
COUNT_NO_AUTH_PLUGIN_ERRORS 0
COUNT_AUTH_PLUGIN_ERRORS 0
COUNT_HANDSHAKE_ERRORS 5
COUNT_PROXY_USER_ERRORS 0
COUNT_PROXY_USER_ACL_ERRORS 0
COUNT_AUTHENTICATION_ERRORS 0
COUNT_SSL_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_ERRORS 0
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS 0
COUNT_DEFAULT_DATABASE_ERRORS 0
COUNT_INIT_CONNECT_ERRORS 0
COUNT_LOCAL_ERRORS 0
COUNT_UNKNOWN_ERRORS 0
FIRST_ERROR_SEEN set
LAST_ERROR_SEEN set
revoke select on test.* from 'root'@'santa.claus.ipv6.example.com';
drop user 'root'@'santa.claus.ipv6.example.com';
revoke select on test.* from 'quota'@'santa.claus.ipv6.example.com';
drop user 'quota'@'santa.claus.ipv6.example.com';
set global max_connect_errors = @saved_max_connect_errors;
set global debug_dbug= default;

View File

@ -106,9 +106,6 @@ wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL
wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL
wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL
wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL
wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL
wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL
wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL
wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL
wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL
wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL

Some files were not shown because too many files have changed in this diff Show More