Commit a90934f3 authored by Otto Kekäläinen's avatar Otto Kekäläinen
Browse files

Imported Upstream version 5.5.46

parent 3f8c7c93
...@@ -14,6 +14,15 @@ if (!$MTR_FEEDBACK_PLUGIN) { ...@@ -14,6 +14,15 @@ if (!$MTR_FEEDBACK_PLUGIN) {
# is doing some work in other workers. # is doing some work in other workers.
# #
sleep 310; sleep 310;
# The test expects that the plugin will send a report at least 2 times,
# now (5 min after loading) and on server shutdown which happens below.
# Since we have already waited for 5 min, let's be generous
# and make sure the server has enough time to shut down properly.
# We won't lose anything if the shutdown is fast, but if it's slow, the plugin
# will still be able to finish the job and write about it in the error log.
--let $shutdown_timeout= 60
source include/restart_mysqld.inc; source include/restart_mysqld.inc;
replace_result https http; replace_result https http;
......
...@@ -14,4 +14,109 @@ select * from mysqltest.t3; ...@@ -14,4 +14,109 @@ select * from mysqltest.t3;
n n
45 45
drop database mysqltest; drop database mysqltest;
use test;
#
# Test bug where ALTER TABLE MODIFY didn't replicate properly
#
create table t1 (a int unsigned primary key, b int);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(10) unsigned NOT NULL,
`b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
insert into t1 (a) values (1),((1<<32)-1);
select * from t1;
a b
1 NULL
4294967295 NULL
alter table t1 modify a bigint;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` bigint(20) NOT NULL DEFAULT '0',
`b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t1;
a b
1 NULL
4294967295 NULL
alter table t1 modify a int unsigned;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(10) unsigned NOT NULL DEFAULT '0',
`b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t1;
a b
1 NULL
4294967295 NULL
alter table t1 modify a bigint unsigned;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` bigint(20) unsigned NOT NULL DEFAULT '0',
`b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t1;
a b
1 NULL
4294967295 NULL
use test;
select * from t1;
a b
1 NULL
4294967295 NULL
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` bigint(20) unsigned NOT NULL DEFAULT '0',
`b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
create table t2 (a int unsigned auto_increment primary key, b int);
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` int(10) unsigned NOT NULL AUTO_INCREMENT,
`b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
alter table t2 modify a bigint;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` bigint(20) NOT NULL DEFAULT '0',
`b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
alter table t2 modify a bigint auto_increment;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` bigint(20) NOT NULL AUTO_INCREMENT,
`b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1,t2;
#
# MDEV-8432: Slave cannot replicate signed integer-type values
# with high bit set to 1
# Test replication when we have int on master and bigint on slave
#
create table t1 (a int unsigned primary key, b int);
SET GLOBAL SLAVE_TYPE_CONVERSIONS='ALL_NON_LOSSY';
alter table t1 modify a bigint unsigned;
insert into t1 (a) values (1),((1<<32)-1);
select * from t1;
a b
1 NULL
4294967295 NULL
SET GLOBAL SLAVE_TYPE_CONVERSIONS='';
drop table t1;
include/rpl_end.inc include/rpl_end.inc
include/master-slave.inc include/master-slave.inc
[connection master] [connection master]
start slave;
include/rpl_end.inc
...@@ -15,4 +15,57 @@ drop database mysqltest; ...@@ -15,4 +15,57 @@ drop database mysqltest;
sync_slave_with_master; sync_slave_with_master;
# End of 4.1 tests # End of 4.1 tests
connection master;
use test;
--echo #
--echo # Test bug where ALTER TABLE MODIFY didn't replicate properly
--echo #
create table t1 (a int unsigned primary key, b int);
show create table t1;
insert into t1 (a) values (1),((1<<32)-1);
select * from t1;
alter table t1 modify a bigint;
show create table t1;
select * from t1;
alter table t1 modify a int unsigned;
show create table t1;
select * from t1;
alter table t1 modify a bigint unsigned;
show create table t1;
select * from t1;
sync_slave_with_master;
use test;
select * from t1;
show create table t1;
connection master;
#
create table t2 (a int unsigned auto_increment primary key, b int);
show create table t2;
alter table t2 modify a bigint;
show create table t2;
alter table t2 modify a bigint auto_increment;
show create table t2;
drop table t1,t2;
--echo #
--echo # MDEV-8432: Slave cannot replicate signed integer-type values
--echo # with high bit set to 1
--echo # Test replication when we have int on master and bigint on slave
--echo #
create table t1 (a int unsigned primary key, b int);
sync_slave_with_master;
SET GLOBAL SLAVE_TYPE_CONVERSIONS='ALL_NON_LOSSY';
alter table t1 modify a bigint unsigned;
connection master;
insert into t1 (a) values (1),((1<<32)-1);
sync_slave_with_master;
select * from t1;
SET GLOBAL SLAVE_TYPE_CONVERSIONS='';
connection master;
drop table t1;
--source include/rpl_end.inc --source include/rpl_end.inc
--innodb-flush-log-at-trx-commit=2
...@@ -10,3 +10,10 @@ ...@@ -10,3 +10,10 @@
--exec $MYSQL_SLAP --silent --socket=$SLAVE_MYSOCK -q "START SLAVE; STOP SLAVE; SHOW GLOBAL STATUS" -c 2 --number-of-queries=100 --create-schema=test --exec $MYSQL_SLAP --silent --socket=$SLAVE_MYSOCK -q "START SLAVE; STOP SLAVE; SHOW GLOBAL STATUS" -c 2 --number-of-queries=100 --create-schema=test
# All done. # All done.
--connection slave
start slave;
--connection master
--source include/rpl_end.inc
...@@ -821,3 +821,14 @@ FROM ( SELECT * FROM t2 ) AS sq2, t3 ...@@ -821,3 +821,14 @@ FROM ( SELECT * FROM t2 ) AS sq2, t3
ORDER BY field; ORDER BY field;
drop table t3, t2, t1; drop table t3, t2, t1;
--echo #
--echo # MDEV-7821 - Server crashes in Item_func_group_concat::fix_fields on 2nd
--echo # execution of PS
--echo #
CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES(1),(2);
PREPARE stmt FROM "SELECT GROUP_CONCAT(t1a.a ORDER BY 1, t1a.a=0) FROM t1 AS t1a, t1 AS t1b GROUP BY t1a.a";
EXECUTE stmt;
EXECUTE stmt;
DROP TABLE t1;
...@@ -206,6 +206,20 @@ SELECT if(1, NULL, (SELECT min('hello'))); ...@@ -206,6 +206,20 @@ SELECT if(1, NULL, (SELECT min('hello')));
--echo End of 5.2 tests --echo End of 5.2 tests
--echo #
--echo # MDEV-8663: IF Statement returns multiple values erroneously
--echo # (or Assertion `!null_value' failed in Item::send(Protocol*, String*)
--echo #
CREATE TABLE `t1` (
`datas` VARCHAR(25) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `t1` VALUES ('1,2'), ('2,3'), ('3,4');
SELECT IF(FIND_IN_SET('1', `datas`), 1.5, IF(FIND_IN_SET('2', `datas`), 2, NULL)) AS `First`, '1' AS `Second`, '2' AS `Third` FROM `t1`;
drop table t1;
--disable_query_log --disable_query_log
# Restore timezone to default # Restore timezone to default
set time_zone= @@global.time_zone; set time_zone= @@global.time_zone;
......
...@@ -391,6 +391,210 @@ set optimizer_switch=@optimizer_switch_save; ...@@ -391,6 +391,210 @@ set optimizer_switch=@optimizer_switch_save;
drop view v_merge, vm; drop view v_merge, vm;
drop table t1,tv; drop table t1,tv;
--echo #
--echo # MDEV-4017 - GET_LOCK() with negative timeouts has strange behavior
--echo #
SELECT GET_LOCK('ul1', NULL);
SELECT GET_LOCK('ul1', -1);
--echo #
--echo # MDEV-8624 MariaDB hangs on query with many logical condition
--echo #
CREATE TABLE `t1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`submitdate` datetime DEFAULT NULL,
`lastpage` int(11) DEFAULT NULL,
`startlanguage` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
`token` varchar(36) COLLATE utf8_unicode_ci DEFAULT NULL,
`datestamp` datetime NOT NULL,
`startdate` datetime NOT NULL,
`ipaddr` text COLLATE utf8_unicode_ci,
`refurl` text COLLATE utf8_unicode_ci,
`57813X540X1723` text COLLATE utf8_unicode_ci,
`57813X540X1724` text COLLATE utf8_unicode_ci,
`57813X540X1725` text COLLATE utf8_unicode_ci,
`57813X540X1726` double DEFAULT NULL,
`57813X540X1909` double DEFAULT NULL,
`57813X541X17271` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X541X17272` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X541X17273` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X541X17274` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X541X17275` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X541X17276` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X541X17281` text COLLATE utf8_unicode_ci,
`57813X541X17282` text COLLATE utf8_unicode_ci,
`57813X541X17283` text COLLATE utf8_unicode_ci,
`57813X541X17284` text COLLATE utf8_unicode_ci,
`57813X541X17285` text COLLATE utf8_unicode_ci,
`57813X541X17286` text COLLATE utf8_unicode_ci,
`57813X542X18131` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X542X18132` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X542X18133` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X542X18134` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X542X18135` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X542X18136` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X542X18137` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X542X18138` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X542X18139` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X542X18141` text COLLATE utf8_unicode_ci,
`57813X542X18142` text COLLATE utf8_unicode_ci,
`57813X542X18143` text COLLATE utf8_unicode_ci,
`57813X542X18144` text COLLATE utf8_unicode_ci,
`57813X542X18145` text COLLATE utf8_unicode_ci,
`57813X542X18146` text COLLATE utf8_unicode_ci,
`57813X542X18147` text COLLATE utf8_unicode_ci,
`57813X542X18148` text COLLATE utf8_unicode_ci,
`57813X542X18149` text COLLATE utf8_unicode_ci,
`57813X543X18451` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X543X18452` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X543X18453` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X543X18454` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X543X18455` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X543X18456` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X543X18461` text COLLATE utf8_unicode_ci,
`57813X543X18462` text COLLATE utf8_unicode_ci,
`57813X543X18463` text COLLATE utf8_unicode_ci,
`57813X543X18464` text COLLATE utf8_unicode_ci,
`57813X543X18465` text COLLATE utf8_unicode_ci,
`57813X543X18466` text COLLATE utf8_unicode_ci,
`57813X544X18711` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X544X18712` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X544X18713` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X544X18714` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X544X18715` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X544X18716` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X544X18717` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X544X18718` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X544X18721` text COLLATE utf8_unicode_ci,
`57813X544X18722` text COLLATE utf8_unicode_ci,
`57813X544X18723` text COLLATE utf8_unicode_ci,
`57813X544X18724` text COLLATE utf8_unicode_ci,
`57813X544X18725` text COLLATE utf8_unicode_ci,
`57813X544X18726` text COLLATE utf8_unicode_ci,
`57813X544X18727` text COLLATE utf8_unicode_ci,
`57813X544X18728` text COLLATE utf8_unicode_ci,
`57813X546X1902` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X546X1903` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X546X1904` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
`57813X545X1901` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `lime_survey_57813_idx` (`token`),
KEY `57813X540X1723` (`57813X540X1723`(100)),
KEY `57813X540X1724` (`57813X540X1724`(100)),
KEY `57813X540X1726` (`57813X540X1726`),
KEY `57813X540X1725` (`57813X540X1725`(100)),
KEY `57813X546X1902` (`57813X546X1902`),
KEY `57813X546X1903` (`57813X546X1903`),
KEY `57813X546X1904` (`57813X546X1904`)
);
SELECT
COUNT(*) as `N`,
ROUND(
(
SUM(
(
(
IF( 57813X541X17271 IS NOT NULL AND 57813X541X17271 != '' AND 57813X541X17271 != '99', 57813X541X17271, 0 ) +
IF( 57813X541X17272 IS NOT NULL AND 57813X541X17272 != '' AND 57813X541X17272 != '99', 57813X541X17272, 0 ) +
IF( 57813X541X17273 IS NOT NULL AND 57813X541X17273 != '' AND 57813X541X17273 != '99', 57813X541X17273, 0 ) +
IF( 57813X541X17274 IS NOT NULL AND 57813X541X17274 != '' AND 57813X541X17274 != '99', 57813X541X17274, 0 ) +
IF( 57813X541X17275 IS NOT NULL AND 57813X541X17275 != '' AND 57813X541X17275 != '99', 57813X541X17275, 0 ) +
IF( 57813X541X17276 IS NOT NULL AND 57813X541X17276 != '' AND 57813X541X17276 != '99', 57813X541X17276, 0 ) +
IF( 57813X542X18131 IS NOT NULL AND 57813X542X18131 != '' AND 57813X542X18131 != '99', 57813X542X18131, 0 ) +
IF( 57813X542X18132 IS NOT NULL AND 57813X542X18132 != '' AND 57813X542X18132 != '99', 57813X542X18132, 0 ) +
IF( 57813X542X18133 IS NOT NULL AND 57813X542X18133 != '' AND 57813X542X18133 != '99', 57813X542X18133, 0 ) +
IF( 57813X542X18134 IS NOT NULL AND 57813X542X18134 != '' AND 57813X542X18134 != '99', 57813X542X18134, 0 ) +
IF( 57813X542X18135 IS NOT NULL AND 57813X542X18135 != '' AND 57813X542X18135 != '99', 57813X542X18135, 0 ) +
IF( 57813X542X18136 IS NOT NULL AND 57813X542X18136 != '' AND 57813X542X18136 != '99', 57813X542X18136, 0 ) +
IF( 57813X542X18137 IS NOT NULL AND 57813X542X18137 != '' AND 57813X542X18137 != '99', 57813X542X18137, 0 ) +
IF( 57813X542X18138 IS NOT NULL AND 57813X542X18138 != '' AND 57813X542X18138 != '99', 57813X542X18138, 0 ) +
IF( 57813X542X18139 IS NOT NULL AND 57813X542X18139 != '' AND 57813X542X18139 != '99', 57813X542X18139, 0 ) +
IF( 57813X543X18451 IS NOT NULL AND 57813X543X18451 != '' AND 57813X543X18451 != '99', 57813X543X18451, 0 ) +
IF( 57813X543X18452 IS NOT NULL AND 57813X543X18452 != '' AND 57813X543X18452 != '99', 57813X543X18452, 0 ) +
IF( 57813X543X18453 IS NOT NULL AND 57813X543X18453 != '' AND 57813X543X18453 != '99', 57813X543X18453, 0 ) +
IF( 57813X543X18454 IS NOT NULL AND 57813X543X18454 != '' AND 57813X543X18454 != '99', 57813X543X18454, 0 ) +
IF( 57813X543X18455 IS NOT NULL AND 57813X543X18455 != '' AND 57813X543X18455 != '99', 57813X543X18455, 0 ) +
IF( 57813X543X18456 IS NOT NULL AND 57813X543X18456 != '' AND 57813X543X18456 != '99', 57813X543X18456, 0 ) +
IF( 57813X544X18711 IS NOT NULL AND 57813X544X18711 != '' AND 57813X544X18711 != '99', 57813X544X18711, 0 ) +
IF( 57813X544X18712 IS NOT NULL AND 57813X544X18712 != '' AND 57813X544X18712 != '99', 57813X544X18712, 0 ) +
IF( 57813X544X18713 IS NOT NULL AND 57813X544X18713 != '' AND 57813X544X18713 != '99', 57813X544X18713, 0 ) +
IF( 57813X544X18714 IS NOT NULL AND 57813X544X18714 != '' AND 57813X544X18714 != '99', 57813X544X18714, 0 ) +
IF( 57813X544X18715 IS NOT NULL AND 57813X544X18715 != '' AND 57813X544X18715 != '99', 57813X544X18715, 0 ) +
IF( 57813X544X18716 IS NOT NULL AND 57813X544X18716 != '' AND 57813X544X18716 != '99', 57813X544X18716, 0 ) +
IF( 57813X544X18717 IS NOT NULL AND 57813X544X18717 != '' AND 57813X544X18717 != '99', 57813X544X18717, 0 ) +
IF( 57813X544X18718 IS NOT NULL AND 57813X544X18718 != '' AND 57813X544X18718 != '99', 57813X544X18718, 0 )
)
/
(
IF( 57813X541X17271 IS NOT NULL AND 57813X541X17271 != '' AND 57813X541X17271 != '99', 1, 0 ) +
IF( 57813X541X17272 IS NOT NULL AND 57813X541X17272 != '' AND 57813X541X17272 != '99', 1, 0 ) +
IF( 57813X541X17273 IS NOT NULL AND 57813X541X17273 != '' AND 57813X541X17273 != '99', 1, 0 ) +
IF( 57813X541X17274 IS NOT NULL AND 57813X541X17274 != '' AND 57813X541X17274 != '99', 1, 0 ) +
IF( 57813X541X17275 IS NOT NULL AND 57813X541X17275 != '' AND 57813X541X17275 != '99', 1, 0 ) +
IF( 57813X541X17276 IS NOT NULL AND 57813X541X17276 != '' AND 57813X541X17276 != '99', 1, 0 ) +
IF( 57813X542X18131 IS NOT NULL AND 57813X542X18131 != '' AND 57813X542X18131 != '99', 1, 0 ) +
IF( 57813X542X18132 IS NOT NULL AND 57813X542X18132 != '' AND 57813X542X18132 != '99', 1, 0 ) +
IF( 57813X542X18133 IS NOT NULL AND 57813X542X18133 != '' AND 57813X542X18133 != '99', 1, 0 ) +
IF( 57813X542X18134 IS NOT NULL AND 57813X542X18134 != '' AND 57813X542X18134 != '99', 1, 0 ) +
IF( 57813X542X18135 IS NOT NULL AND 57813X542X18135 != '' AND 57813X542X18135 != '99', 1, 0 ) +
IF( 57813X542X18136 IS NOT NULL AND 57813X542X18136 != '' AND 57813X542X18136 != '99', 1, 0 ) +
IF( 57813X542X18137 IS NOT NULL AND 57813X542X18137 != '' AND 57813X542X18137 != '99', 1, 0 ) +
IF( 57813X542X18138 IS NOT NULL AND 57813X542X18138 != '' AND 57813X542X18138 != '99', 1, 0 ) +
IF( 57813X542X18139 IS NOT NULL AND 57813X542X18139 != '' AND 57813X542X18139 != '99', 1, 0 ) +
IF( 57813X543X18451 IS NOT NULL AND 57813X543X18451 != '' AND 57813X543X18451 != '99', 1, 0 ) +
IF( 57813X543X18452 IS NOT NULL AND 57813X543X18452 != '' AND 57813X543X18452 != '99', 1, 0 ) +
IF( 57813X543X18453 IS NOT NULL AND 57813X543X18453 != '' AND 57813X543X18453 != '99', 1, 0 ) +
IF( 57813X543X18454 IS NOT NULL AND 57813X543X18454 != '' AND 57813X543X18454 != '99', 1, 0 ) +
IF( 57813X543X18455 IS NOT NULL AND 57813X543X18455 != '' AND 57813X543X18455 != '99', 1, 0 ) +
IF( 57813X543X18456 IS NOT NULL AND 57813X543X18456 != '' AND 57813X543X18456 != '99', 1, 0 ) +
IF( 57813X544X18711 IS NOT NULL AND 57813X544X18711 != '' AND 57813X544X18711 != '99', 1, 0 ) +
IF( 57813X544X18712 IS NOT NULL AND 57813X544X18712 != '' AND 57813X544X18712 != '99', 1, 0 ) +
IF( 57813X544X18713 IS NOT NULL AND 57813X544X18713 != '' AND 57813X544X18713 != '99', 1, 0 ) +
IF( 57813X544X18714 IS NOT NULL AND 57813X544X18714 != '' AND 57813X544X18714 != '99', 1, 0 ) +
IF( 57813X544X18715 IS NOT NULL AND 57813X544X18715 != '' AND 57813X544X18715 != '99', 1, 0 ) +
IF( 57813X544X18716 IS NOT NULL AND 57813X544X18716 != '' AND 57813X544X18716 != '99', 1, 0 ) +
IF( 57813X544X18717 IS NOT NULL AND 57813X544X18717 != '' AND 57813X544X18717 != '99', 1, 0 ) +
IF( 57813X544X18718 IS NOT NULL AND 57813X544X18718 != '' AND 57813X544X18718 != '99', 1, 0 )
)
)
)
/ COUNT(*) ), 4) as `AVG`
FROM `t1`
WHERE `submitdate` IS NOT NULL
AND (
( 57813X541X17271 IS NOT NULL AND 57813X541X17271 != '' AND 57813X541X17271 != '99' ) OR
( 57813X541X17272 IS NOT NULL AND 57813X541X17272 != '' AND 57813X541X17272 != '99' ) OR
( 57813X541X17273 IS NOT NULL AND 57813X541X17273 != '' AND 57813X541X17273 != '99' ) OR
( 57813X541X17274 IS NOT NULL AND 57813X541X17274 != '' AND 57813X541X17274 != '99' ) OR
( 57813X541X17275 IS NOT NULL AND 57813X541X17275 != '' AND 57813X541X17275 != '99' ) OR
( 57813X541X17276 IS NOT NULL AND 57813X541X17276 != '' AND 57813X541X17276 != '99' ) OR
( 57813X542X18131 IS NOT NULL AND 57813X542X18131 != '' AND 57813X542X18131 != '99' ) OR
( 57813X542X18132 IS NOT NULL AND 57813X542X18132 != '' AND 57813X542X18132 != '99' ) OR
( 57813X542X18133 IS NOT NULL AND 57813X542X18133 != '' AND 57813X542X18133 != '99' ) OR
( 57813X542X18134 IS NOT NULL AND 57813X542X18134 != '' AND 57813X542X18134 != '99' ) OR
( 57813X542X18135 IS NOT NULL AND 57813X542X18135 != '' AND 57813X542X18135 != '99' ) OR
( 57813X542X18136 IS NOT NULL AND 57813X542X18136 != '' AND 57813X542X18136 != '99' ) OR
( 57813X542X18137 IS NOT NULL AND 57813X542X18137 != '' AND 57813X542X18137 != '99' ) OR
( 57813X542X18138 IS NOT NULL AND 57813X542X18138 != '' AND 57813X542X18138 != '99' ) OR
( 57813X542X18139 IS NOT NULL AND 57813X542X18139 != '' AND 57813X542X18139 != '99' ) OR
( 57813X543X18451 IS NOT NULL AND 57813X543X18451 != '' AND 57813X543X18451 != '99' ) OR
( 57813X543X18452 IS NOT NULL AND 57813X543X18452 != '' AND 57813X543X18452 != '99' ) OR
( 57813X543X18453 IS NOT NULL AND 57813X543X18453 != '' AND 57813X543X18453 != '99' ) OR
( 57813X543X18454 IS NOT NULL AND 57813X543X18454 != '' AND 57813X543X18454 != '99' ) OR
( 57813X543X18455 IS NOT NULL AND 57813X543X18455 != '' AND 57813X543X18455 != '99' ) OR
( 57813X543X18456 IS NOT NULL AND 57813X543X18456 != '' AND 57813X543X18456 != '99' ) OR
( 57813X544X18711 IS NOT NULL AND 57813X544X18711 != '' AND 57813X544X18711 != '99' ) OR
( 57813X544X18712 IS NOT NULL AND 57813X544X18712 != '' AND 57813X544X18712 != '99' ) OR
( 57813X544X18713 IS NOT NULL AND 57813X544X18713 != '' AND 57813X544X18713 != '99' ) OR
( 57813X544X18714 IS NOT NULL AND 57813X544X18714 != '' AND 57813X544X18714 != '99' ) OR
( 57813X544X18715 IS NOT NULL AND 57813X544X18715 != '' AND 57813X544X18715 != '99' ) OR
( 57813X544X18716 IS NOT NULL AND 57813X544X18716 != '' AND 57813X544X18716 != '99' ) OR
( 57813X544X18717 IS NOT NULL AND 57813X544X18717 != '' AND 57813X544X18717 != '99' ) OR
( 57813X544X18718 IS NOT NULL AND 57813X544X18718 != '' AND 57813X544X18718 != '99' ) )
AND 57813X540X1723 = 'Test';
drop table t1;
--echo # --echo #
--echo # End of 5.5 tests --echo # End of 5.5 tests
......
...@@ -8,15 +8,12 @@ select variable_name from information_schema.session_variables where variable_na ...@@ -8,15 +8,12 @@ select variable_name from information_schema.session_variables where variable_na
(select variable_name from information_schema.session_variables where variable_name = 'basedir'); (select variable_name from information_schema.session_variables where variable_name = 'basedir');
# #
# information_schema tables inside subqueries, they should not be re-populated # MDEV-8796 Delete with sub query with information_schema.TABLES deletes too many rows
# (i_s.columns needs to scan i_s itself, creating a tmp table for every i_s
# table. if it's re-populated, it'll do that multiple times)
# #
create table t1 (a char); create table t1 (x int);
insert t1 values ('a'),('t'),('z'); create table t2 (x int);
flush status; create table t3 (x int);
select a, exists (select 1 from information_schema.columns where table_schema=concat('tes',a)) from t1; create table t4 AS select table_name from information_schema.TABLES where table_schema = database() and table_type = 'BASE TABLE' ;
# fix the result in ps-protocol delete from t4 where table_name not in (select table_name from information_schema.TABLES where table_schema = database() and table_type = 'BASE TABLE');
--replace_result 39 38 select * from t4;
show status like 'created_tmp_tables'; drop table t1, t2, t3, t4;
drop table t1;
...@@ -16,3 +16,6 @@ commit; ...@@ -16,3 +16,6 @@ commit;
--source include/show_binlog_events.inc --source include/show_binlog_events.inc
drop table t1; drop table t1;
uninstall plugin innodb; uninstall plugin innodb;
--source include/restart_mysqld.inc
...@@ -116,3 +116,17 @@ LOAD XML INFILE '../../std_data/loadxml.dat' INTO TABLE t1 ...@@ -116,3 +116,17 @@ LOAD XML INFILE '../../std_data/loadxml.dat' INTO TABLE t1
ROWS IDENTIFIED BY '<row>' (a,@b) SET b=concat('!',@b); ROWS IDENTIFIED BY '<row>' (a,@b) SET b=concat('!',@b);
SELECT * FROM t1 ORDER BY a; SELECT * FROM t1 ORDER BY a;
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # Bug#16171518 LOAD XML DOES NOT HANDLE EMPTY ELEMENTS
--echo #
CREATE TABLE t1 (col1 VARCHAR(3), col2 VARCHAR(3), col3 VARCHAR(3), col4 VARCHAR(4));
LOAD XML INFILE '../../std_data/bug16171518_1.dat' INTO TABLE t1;
SELECT * FROM t1 ORDER BY col1, col2, col3, col4;
DROP TABLE t1;
CREATE TABLE t1 (col1 VARCHAR(3), col2 VARCHAR(3), col3 INTEGER);
LOAD XML INFILE '../../std_data/bug16171518_2.dat' INTO TABLE t1;
SELECT * FROM t1 ORDER BY col1, col2, col3;
DROP TABLE t1;
#
# Specific tests for case-insensitive file systems
# i.e. lower_case_filesystem=ON
#
-- source include/have_case_insensitive_file_system.inc
# Embedded server does not support restarting.
--source include/not_embedded.inc
--echo #
--echo # Bug#20198490 : LOWER_CASE_TABLE_NAMES=0 ON WINDOWS LEADS TO PROBLEMS
--echo #
let SEARCH_FILE= $MYSQLTEST_VARDIR/log/my_restart.err;
--error 0,1
--remove_file $SEARCH_FILE
#Shutdown the server
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
#Start the server with --lower_case_table_names=0 in Windows.
--enable_reconnect
--error 1
--exec $MYSQLD_CMD --lower_case_table_names=0 > $SEARCH_FILE 2>&1
#Search for the error messege in the server error log.
let SEARCH_PATTERN= \[ERROR\] The server option \'lower_case_table_names\' is configured to use case sensitive table names but the data directory is on a case-insensitive file system which is an unsupported combination\. Please consider either using a case sensitive file system for your data directory or switching to a case-insensitive table name mode\.;
--source include/search_pattern_in_file.inc
#Restart the server
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--source include/wait_until_connected_again.inc
#Cleanup
--error 0,1
--remove_file $SEARCH_FILE
#
# Test of force of lower-case-table-names=0
# (User has case insensitive file system and wants to preserve case of
# table names)
#
--source include/have_innodb.inc
--source include/have_lowercase0.inc
--source include/have_case_insensitive_file_system.inc
--source include/not_windows.inc
call mtr.add_suppression("Cannot find or open table test/BUG29839 from");
--disable_warnings
DROP TABLE IF EXISTS t1,T1;
--enable_warnings
#
# This is actually an error, but ok as the user has forced this
# by using --lower-case-table-names=0
CREATE TABLE t1 (a INT);
SELECT * FROM T1;
FLUSH TABLES;
DROP TABLE t1;
#
# InnoDB should in this case be case sensitive
# Note that this is not true on windows as no this OS, InnoDB is always
# storing things in lower case.
#
CREATE TABLE bug29839 (a INT) ENGINE=INNODB;
--error ER_NO_SUCH_TABLE
SELECT * FROM BUG29839;
DROP TABLE bug29839;
# End of 4.1 tests
--source include/count_sessions.inc
--echo #
--echo # Tests for corrupted MyISAM tables and MyISAMMRG tables with corrupted
--echo # children..
--echo # --echo #
--echo # Test of MyISAM MRG tables with corrupted children.
--echo # Run with --myisam-recover=force option. --echo # Run with --myisam-recover=force option.
--echo # --echo #
--echo # Preparation: we need to make sure that the merge parent --echo # Preparation: we need to make sure that the merge parent
...@@ -57,10 +61,10 @@ eval $lock; ...@@ -57,10 +61,10 @@ eval $lock;
--echo # --echo #
connection default; connection default;
--echo # --echo #
--echo # We have to disable the ps-protocol, to avoid --echo # We have to disable the ps-protocol, to avoid
--echo # "Prepared statement needs to be re-prepared" errors --echo # "Prepared statement needs to be re-prepared" errors
--echo # -- table def versions change all the time with full table cache. --echo # -- table def versions change all the time with full table cache.
--echo # --echo #
--disable_ps_protocol --disable_ps_protocol
--disable_warnings --disable_warnings
drop table if exists t1, t1_mrg, t1_copy; drop table if exists t1, t1_mrg, t1_copy;
...@@ -69,12 +73,12 @@ let $MYSQLD_DATADIR=`select @@datadir`; ...@@ -69,12 +73,12 @@ let $MYSQLD_DATADIR=`select @@datadir`;
--echo # --echo #
--echo # Prepare a MERGE engine table, that refers to a corrupted --echo # Prepare a MERGE engine table, that refers to a corrupted
--echo # child. --echo # child.
--echo # --echo #
create table t1 (a int, key(a)) engine=myisam; create table t1 (a int, key(a)) engine=myisam;
create table t1_mrg (a int) union (t1) engine=merge; create table t1_mrg (a int) union (t1) engine=merge;
--echo # --echo #
--echo # Create a table with a corrupted index file: --echo # Create a table with a corrupted index file:
--echo # save an old index file, insert more rows, --echo # save an old index file, insert more rows,
--echo # overwrite the new index file with the old one. --echo # overwrite the new index file with the old one.
--echo # --echo #
insert into t1 (a) values (1), (2), (3); insert into t1 (a) values (1), (2), (3);
...@@ -111,3 +115,66 @@ set @@global.table_open_cache=default; ...@@ -111,3 +115,66 @@ set @@global.table_open_cache=default;
disconnect con1; disconnect con1;
connection default; connection default;
--enable_ps_protocol --enable_ps_protocol
--echo #
--echo # 18075170 - sql node restart required to avoid deadlock after
--echo # restore
--echo #
--echo # Check that auto-repair for MyISAM tables can now happen in the
--echo # middle of transaction, without aborting it.
--enable_prepare_warnings
connection default;
create table t1 (a int, key(a)) engine=myisam;
create table t2 (a int);
insert into t2 values (1);
--echo # Create a table with a corrupted index file:
--echo # save an old index file, insert more rows,
--echo # overwrite the new index file with the old one.
insert into t1 (a) values (1);
flush table t1;
--copy_file $MYSQLD_DATADIR/test/t1.MYI $MYSQLD_DATADIR/test/t1_copy.MYI
insert into t1 (a) values (4);
flush table t1;
--remove_file $MYSQLD_DATADIR/test/t1.MYI
--copy_file $MYSQLD_DATADIR/test/t1_copy.MYI $MYSQLD_DATADIR/test/t1.MYI
--remove_file $MYSQLD_DATADIR/test/t1_copy.MYI
--echo # Check table is needed to mark the table as crashed.
check table t1;
--echo # At this point we have a corrupt t1
set autocommit = 0;
select * from t2;
--echo # Without fix select from t1 will break the transaction. After the fix
--echo # transaction should be active and should hold lock on table t2. Alter
--echo # table from con2 will wait only if the transaction is not broken.
--replace_regex /'.*[\/\\]/'/
select * from t1;
connect(con2, localhost, root);
--SEND ALTER TABLE t2 ADD val INT
connection default;
--echo # With fix we should have alter table waiting for t2 lock here.
let $wait_condition=
SELECT count(*) = 1 FROM information_schema.processlist WHERE state
LIKE "Waiting%" AND info = "ALTER TABLE t2 ADD val INT";
--source include/wait_condition.inc
ROLLBACK;
SET autocommit = 1;
connection con2;
--REAP
connection default;
disconnect con2;
--echo # Cleanup
drop table t1, t2;
# Wait till all disconnects are completed
-- source include/wait_until_count_sessions.inc
...@@ -14,7 +14,6 @@ file_exists $MYSQLD_DATADIR/mysql_upgrade_info; ...@@ -14,7 +14,6 @@ file_exists $MYSQLD_DATADIR/mysql_upgrade_info;
--echo Run it again - should say already completed --echo Run it again - should say already completed
--replace_result $MYSQL_SERVER_VERSION VERSION --replace_result $MYSQL_SERVER_VERSION VERSION
--error 1
--exec $MYSQL_UPGRADE 2>&1 --exec $MYSQL_UPGRADE 2>&1
# It should have created a file in the MySQL Servers datadir # It should have created a file in the MySQL Servers datadir
......
...@@ -901,13 +901,8 @@ select * from t1; ...@@ -901,13 +901,8 @@ select * from t1;
create view v1 as create view v1 as
select * from v3 where b in (1, 2, 3, 4, 5, 6, 7); select * from v3 where b in (1, 2, 3, 4, 5, 6, 7);
# Disable warnings since LIMIT warning for unsafe statement if
# binlog_format = STATEMENT. Note: after BUG#45832, the warning should
# not be issued.
--disable_warnings
create view v2 as create view v2 as
select v3.a from v3, v1 where v1.a=v3.a and v3.b=3 limit 1; select v3.a from v3, v1 where v1.a=v3.a and v3.b=3 limit 1;
--enable_warnings
--exec $MYSQL_DUMP --skip-comments test --exec $MYSQL_DUMP --skip-comments test
...@@ -1777,7 +1772,7 @@ drop table words; ...@@ -1777,7 +1772,7 @@ drop table words;
--replace_regex /.*mysqlimport(\.exe)*/mysqlimport/ --replace_regex /.*mysqlimport(\.exe)*/mysqlimport/
--replace_result mysqldump.exe mysqldump --replace_result mysqldump.exe mysqldump
--error 1 --error 1
--exec $MYSQL_IMPORT --silent --use-threads=2 test $MYSQLTEST_VARDIR/tmp/t1.txt $MYSQLTEST_VARDIR/tmp/t2.txt $MYSQLTEST_VARDIR/std_data/words.dat $MYSQLTEST_VARDIR/std_data/words2.dat 2>&1 --exec $MYSQL_IMPORT --silent --use-threads=2 test $MYSQLTEST_VARDIR/tmp/t1.txt $MYSQLTEST_VARDIR/tmp/t2.txt $MYSQLTEST_VARDIR/std_data/words.dat $MYSQLTEST_VARDIR/std_data/words2.dat
drop table t1; drop table t1;
drop table t2; drop table t2;
...@@ -2456,6 +2451,35 @@ drop table t1, t2; ...@@ -2456,6 +2451,35 @@ drop table t1, t2;
--echo # End of 5.1 tests --echo # End of 5.1 tests
--echo # --echo #
--echo #
--echo # Bug #20772273 : MYSQLIMPORT --USE-THREADS DOESN'T USE MULTIPLE THREADS
--echo #
CREATE DATABASE db_20772273;
USE db_20772273;
CREATE TABLE t1(a INT);
INSERT INTO t1 VALUES (1), (2);
CREATE TABLE t2(a INT);
INSERT INTO t2 VALUES (3), (4);
SELECT * FROM t1;
SELECT * FROM t2;
--exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ db_20772273
--exec $MYSQL db_20772273 < $MYSQLTEST_VARDIR/tmp/t1.sql
--exec $MYSQL db_20772273 < $MYSQLTEST_VARDIR/tmp/t2.sql
# Test mysqlimport with multiple threads
--exec $MYSQL_IMPORT --silent --use-threads=2 db_20772273 $MYSQLTEST_VARDIR/tmp/t1.txt $MYSQLTEST_VARDIR/tmp/t2.txt
SELECT * FROM t1;
SELECT * FROM t2;
#Cleanup
DROP TABLE t1;
DROP TABLE t2;
DROP DATABASE db_20772273;
# #
# MDEV-6091 mysqldump goes in a loop and segfaults if --dump-slave is specified and it cannot connect to the server # MDEV-6091 mysqldump goes in a loop and segfaults if --dump-slave is specified and it cannot connect to the server
# #
......
...@@ -1146,7 +1146,7 @@ subpartition by hash (rand(a+b)); ...@@ -1146,7 +1146,7 @@ subpartition by hash (rand(a+b));
# #
# Subpartition by hash, wrong subpartition function # Subpartition by hash, wrong subpartition function
# #
--error ER_SUBPARTITION_ERROR --error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 ( CREATE TABLE t1 (
a int not null, a int not null,
b int not null, b int not null,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment