mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 19:37:16 +02:00
Merge branch '5.5' into 10.0
This commit is contained in:
commit
872649c7ba
109 changed files with 1309 additions and 319 deletions
|
|
@ -409,3 +409,8 @@ SELECT * FROM t1 WHERE a=0.9;
|
|||
SELECT * FROM t1 WHERE a IN (0.8,0.9);
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-9372 select 100 between 1 and 9223372036854775808 returns false
|
||||
--echo #
|
||||
SELECT 100 BETWEEN 1 AND 9223372036854775808;
|
||||
|
|
|
|||
|
|
@ -7,5 +7,16 @@ create table t1 (a date);
|
|||
insert t1 values ('2000-01-02'), ('2001-02-03'), ('2002-03-04');
|
||||
set debug_dbug='d,str_to_datetime_warn';
|
||||
select * from t1 where a > date_add('2000-01-01', interval 5 day);
|
||||
set debug_dbug='';
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# MDEV-9707 MAX(timestamp(6) column) in correlated sub-query returns non-existent row data in original table
|
||||
#
|
||||
create table t1 (id int not null, ut timestamp(6) not null);
|
||||
insert into t1 values(1, '2001-01-01 00:00:00.2');
|
||||
insert into t1 values(1, '2001-01-01 00:00:00.1');
|
||||
select * from t1;
|
||||
select (select max(m2.ut) from t1 m2 where m1.id <> 0) from t1 m1;
|
||||
drop table t1;
|
||||
|
||||
|
|
|
|||
|
|
@ -193,3 +193,12 @@ insert t1 values ('00:00:00'),('00:01:00');
|
|||
select case t1.f1 when '00:00:00' then 1 end from t1;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-9745 Crash with CASE WHEN TRUE THEN COALESCE(CAST(NULL AS UNSIGNED)) ELSE 4 END
|
||||
--echo #
|
||||
CREATE TABLE t1 SELECT CASE WHEN TRUE THEN COALESCE(CAST(NULL AS UNSIGNED)) ELSE 4 END AS a;
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 SELECT CASE WHEN TRUE THEN COALESCE(CAST(NULL AS UNSIGNED)) ELSE 40 END AS a;
|
||||
DESCRIBE t1;
|
||||
DROP TABLE t1;
|
||||
|
|
|
|||
16
mysql-test/t/ctype_cp850.test
Normal file
16
mysql-test/t/ctype_cp850.test
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
--echo #
|
||||
--echo # Start of 5.5 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-9862 Illegal mix of collation, when comparing column with CASE expression
|
||||
--echo #
|
||||
SET NAMES cp850;
|
||||
CREATE TABLE t1 (a CHAR(1) CHARACTER SET latin1);
|
||||
SELECT a FROM t1 WHERE CASE a WHEN 'aaaa' THEN 'Y' WHEN 'aaaa' THEN 'Y' ELSE NULL END <> a;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
|
@ -67,10 +67,10 @@ select /*2*/ user, host, db, command, state, info
|
|||
select release_lock("test_lock2");
|
||||
drop event закачка;
|
||||
|
||||
# Wait for release_lock("test_lock2") to complete,
|
||||
# Wait for get_lock("test_lock2") to complete,
|
||||
# to avoid polluting the next test information_schema.processlist
|
||||
let $wait_condition= select count(*) = 0 from information_schema.processlist
|
||||
where (state like 'User lock%' AND info like 'select get_lock%');
|
||||
where info='select get_lock("test_lock2", 20)';
|
||||
--source include/wait_condition.inc
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -32,3 +32,18 @@ INSERT INTO t1 VALUES(0xA3C2);
|
|||
DROP TABLE t1;
|
||||
|
||||
# End of 5.1 tests
|
||||
|
||||
#
|
||||
# MDEV-9986 Full-text search of the utf8mb4 column causes crash
|
||||
#
|
||||
create table t1 (
|
||||
id varchar(255),
|
||||
business_name text null collate utf8mb4_unicode_ci,
|
||||
street_address text,
|
||||
fulltext index ft (business_name),
|
||||
fulltext index ft2 (street_address)
|
||||
);
|
||||
--error ER_FT_MATCHING_KEY_NOT_FOUND
|
||||
select * from t1 where match (business_name, street_address) against ('some business name and address here');
|
||||
select * from t1 where match (business_name, street_address) against ('some business name and address here' in boolean mode);
|
||||
drop table t1;
|
||||
|
|
|
|||
|
|
@ -484,6 +484,14 @@ SELECT -a FROM t1;
|
|||
--error ER_DATA_OUT_OF_RANGE
|
||||
SELECT -b FROM t1;
|
||||
|
||||
# try with two rows now
|
||||
INSERT INTO t1 VALUES(0,0);
|
||||
|
||||
--error ER_DATA_OUT_OF_RANGE
|
||||
SELECT -a FROM t1;
|
||||
--error ER_DATA_OUT_OF_RANGE
|
||||
SELECT -b FROM t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
# Decimal overflows
|
||||
|
|
|
|||
43
mysql-test/t/insert_innodb.test
Normal file
43
mysql-test/t/insert_innodb.test
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
--source include/have_innodb.inc
|
||||
|
||||
#
|
||||
# MDEV-8979 IGNORE does not ignore the error 1452
|
||||
#
|
||||
|
||||
--echo #
|
||||
--echo # BUG#22037930: INSERT IGNORE FAILS TO IGNORE
|
||||
--echo # FOREIGN KEY CONSTRAINT
|
||||
|
||||
--echo # Setup.
|
||||
CREATE TABLE t1 (fld1 INT PRIMARY KEY) ENGINE=INNODB;
|
||||
CREATE TABLE t2 (fld2 INT, FOREIGN KEY (fld2) REFERENCES t1 (fld1))
|
||||
ENGINE=INNODB;
|
||||
INSERT INTO t1 VALUES(0);
|
||||
INSERT INTO t2 VALUES(0);
|
||||
|
||||
--echo # Without fix, an error is reported.
|
||||
INSERT IGNORE INTO t2 VALUES(1);
|
||||
UPDATE IGNORE t2 SET fld2=20 WHERE fld2=0;
|
||||
UPDATE IGNORE t1 SET fld1=20 WHERE fld1=0;
|
||||
|
||||
--echo # Test for multi update.
|
||||
UPDATE IGNORE t1, t2 SET t2.fld2= t2.fld2 + 3;
|
||||
UPDATE IGNORE t1, t2 SET t1.fld1= t1.fld1 + 3;
|
||||
|
||||
--echo # Reports an error since IGNORE is not used.
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
INSERT INTO t2 VALUES(1);
|
||||
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
UPDATE t2 SET fld2=20 WHERE fld2=0;
|
||||
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
UPDATE t1 SET fld1=20 WHERE fld1=0;
|
||||
|
||||
--error ER_NO_REFERENCED_ROW_2
|
||||
UPDATE t1, t2 SET t2.fld2= t2.fld2 + 3;
|
||||
|
||||
--error ER_ROW_IS_REFERENCED_2
|
||||
UPDATE t1, t2 SET t1.fld1= t1.fld1 + 3;
|
||||
|
||||
DROP TABLE t2, t1;
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# 6619 SHOW PROCESSLIST returns empty result set after KILL QUERY
|
||||
# MDEV-6619 SHOW PROCESSLIST returns empty result set after KILL QUERY
|
||||
#
|
||||
--source include/not_embedded.inc
|
||||
--source include/have_debug_sync.inc
|
||||
|
|
|
|||
|
|
@ -55,6 +55,14 @@ SELECT DATE_FORMAT('2001-01-06', '%w %a %W');
|
|||
SELECT DATE_FORMAT('2001-01-07', '%w %a %W');
|
||||
--echo End of 5.4 tests
|
||||
|
||||
#
|
||||
# MDEV-9928 LC_TIME_NAMES=de_AT; unusual name for february
|
||||
#
|
||||
SET NAMES utf8;
|
||||
SET lc_time_names=de_AT;
|
||||
SELECT monthname('2001-01-01');
|
||||
SELECT monthname('2001-02-01');
|
||||
SELECT monthname('2001-03-01');
|
||||
|
||||
--echo #
|
||||
--echo # Start of 5.6 tests
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
--debug
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
|
||||
#
|
||||
# MDEV-6830 Server crashes in best_access_path after a sequence of SELECTs invollving a temptable view
|
||||
#
|
||||
--source include/have_debug.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2,t3;
|
||||
drop view if exists v2,v3;
|
||||
--enable_warnings
|
||||
set @@debug_dbug= 'd,opt';
|
||||
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=MyISAM;
|
||||
|
||||
CREATE TABLE t2 (
|
||||
|
|
|
|||
|
|
@ -125,12 +125,8 @@ SEND;
|
|||
UPDATE `t``\""e` SET a = 12 WHERE a = 0;
|
||||
--echo # default connection
|
||||
connection default;
|
||||
let $wait_timeout= 2;
|
||||
let $wait_condition= SELECT 1 FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE ID = $id_1 AND STATE = 'Searching rows for update';
|
||||
let $wait_condition= SELECT COUNT(*)=2 FROM INFORMATION_SCHEMA.INNODB_LOCKS;
|
||||
--source include/wait_condition.inc
|
||||
#--echo # tested wait condition $wait_condition_reps times
|
||||
# INNODB_LOCKS only exists in innodb_plugin
|
||||
--sorted_result
|
||||
SELECT lock_table, COUNT(*) FROM INFORMATION_SCHEMA.INNODB_LOCKS
|
||||
GROUP BY lock_table;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ create table t2 (a int);
|
|||
insert into t2 values (2), (3);
|
||||
|
||||
set session join_cache_level=3;
|
||||
set @@debug_dbug= 'd:t:O,/tmp/trace.out';
|
||||
set @@debug_dbug= 'd,opt';
|
||||
|
||||
explain select t1.b from t1,t2 where t1.b=t2.a;
|
||||
select t1.b from t1,t2 where t1.b=t2.a;
|
||||
|
|
|
|||
128
mysql-test/t/set_password_plugin-9835.test
Normal file
128
mysql-test/t/set_password_plugin-9835.test
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
#
|
||||
# MDEV-9835 Valid password is not working after server restart.
|
||||
#
|
||||
# Various combinations of SET PASSWORD and not-empty mysql.user.plugin field
|
||||
#
|
||||
--source include/not_embedded.inc
|
||||
|
||||
--enable_connect_log
|
||||
|
||||
# The hash (old and new) is for 'test'
|
||||
create user natauth@localhost identified via 'mysql_native_password' using '*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29';
|
||||
|
||||
create user newpass@localhost identified by password '*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29';
|
||||
|
||||
create user newpassnat@localhost identified via 'mysql_native_password';
|
||||
set password for newpassnat@localhost = '*94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29';
|
||||
|
||||
create user oldauth@localhost identified with 'mysql_old_password' using '378b243e220ca493';
|
||||
|
||||
create user oldpass@localhost identified by password '378b243e220ca493';
|
||||
|
||||
create user oldpassold@localhost identified with 'mysql_old_password';
|
||||
set password for oldpassold@localhost = '378b243e220ca493';
|
||||
|
||||
--sorted_result
|
||||
select user, host, password, plugin, authentication_string from mysql.user where user != 'root';
|
||||
|
||||
--connect(con,localhost,natauth,test,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,newpass,test,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,newpassnat,test,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,oldauth,test,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,oldpass,test,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,oldpassold,test,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
|
||||
--connection default
|
||||
|
||||
flush privileges;
|
||||
|
||||
--connect(con,localhost,natauth,test,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,newpass,test,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,newpassnat,test,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,oldauth,test,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,oldpass,test,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,oldpassold,test,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
|
||||
--connection default
|
||||
|
||||
# changing to the NEW password hash
|
||||
set password for natauth@localhost = PASSWORD('test2');
|
||||
set password for newpass@localhost = PASSWORD('test2');
|
||||
set password for newpassnat@localhost = PASSWORD('test2');
|
||||
set password for oldauth@localhost = PASSWORD('test2');
|
||||
set password for oldpass@localhost = PASSWORD('test2');
|
||||
set password for oldpassold@localhost = PASSWORD('test2');
|
||||
|
||||
--sorted_result
|
||||
select user, host, password, plugin, authentication_string from mysql.user where user != 'root';
|
||||
|
||||
--connect(con,localhost,natauth,test2,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,newpass,test2,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,newpassnat,test2,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,oldauth,test2,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,oldpass,test2,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,oldpassold,test2,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
|
||||
--connection default
|
||||
|
||||
flush privileges;
|
||||
|
||||
--connect(con,localhost,natauth,test2,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,newpass,test2,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,newpassnat,test2,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,oldauth,test2,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,oldpass,test2,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
--connect(con,localhost,oldpassold,test2,)
|
||||
select current_user();
|
||||
--disconnect con
|
||||
|
||||
--connection default
|
||||
drop user natauth@localhost, newpass@localhost, newpassnat@localhost;
|
||||
drop user oldauth@localhost, oldpass@localhost, oldpassold@localhost;
|
||||
|
||||
|
|
@ -77,12 +77,15 @@ call bug9486();
|
|||
connection con2root;
|
||||
lock tables t2 write;
|
||||
connection con1root;
|
||||
let $con1root_id=`SELECT CONNECTION_ID()`;
|
||||
send call bug9486();
|
||||
connection con2root;
|
||||
--sleep 2
|
||||
# There should be call statement in locked state.
|
||||
--replace_column 1 # 3 localhost 6 #
|
||||
show processlist;
|
||||
let $wait_condition=SELECT COUNT(*)=1 FROM information_schema.processlist WHERE
|
||||
id=$con1root_id AND state='Waiting for table metadata lock';
|
||||
--source include/wait_condition.inc
|
||||
--replace_result $con1root_id con1root_id
|
||||
eval SELECT state,info FROM information_schema.processlist WHERE id=$con1root_id;
|
||||
unlock tables;
|
||||
connection con1root;
|
||||
reap;
|
||||
|
|
|
|||
1
mysql-test/t/ssl_timeout-9836.opt
Normal file
1
mysql-test/t/ssl_timeout-9836.opt
Normal file
|
|
@ -0,0 +1 @@
|
|||
--loose-thread-handling=pool-of-threads
|
||||
11
mysql-test/t/ssl_timeout-9836.test
Normal file
11
mysql-test/t/ssl_timeout-9836.test
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#
|
||||
# MDEV-9836 Connection lost when using SSL
|
||||
#
|
||||
-- source include/have_ssl_communication.inc
|
||||
connect(con1,localhost,root,,,,,SSL);
|
||||
SET @@net_read_timeout=1;
|
||||
SELECT 1;
|
||||
# MDEV-9836 - YASSL bug - SSL connection lost if it has been idle, for longer than net_read_timeout
|
||||
-- sleep 2
|
||||
SELECT 1;
|
||||
disconnect con1;
|
||||
|
|
@ -385,6 +385,36 @@ select 1 from t1 as t1_0 inner join t1 as t2 on (t1_0.a <=> now()) join t1 on 1;
|
|||
select 1 from t1 as t1_0 inner join t1 as t2 on (t1_0.a <=> now()) join t1 on 1;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-9521 Least function returns 0000-00-00 for null date columns instead of null
|
||||
--echo #
|
||||
CREATE TABLE t1 (
|
||||
id BIGINT NOT NULL,
|
||||
date_debut DATE NOT NULL,
|
||||
date_fin DATE DEFAULT NULL);
|
||||
CREATE TABLE t2(
|
||||
id BIGINT NOT NULL,
|
||||
date_debut DATE NOT NULL,
|
||||
date_fin DATE DEFAULT NULL);
|
||||
INSERT INTO t1 VALUES (1,'2016-01-01','2016-01-31');
|
||||
INSERT INTO t1 VALUES (2,'2016-02-01',null);
|
||||
INSERT INTO t1 VALUES (3,'2016-03-01','2016-03-31');
|
||||
INSERT INTO t1 VALUES (4,'2016-04-01',null);
|
||||
|
||||
INSERT INTO t2 VALUES (1,'2016-01-01','2016-01-31');
|
||||
INSERT INTO t2 VALUES (2,'2016-02-01','2016-01-28');
|
||||
INSERT INTO t2 VALUES (3,'2016-03-01',null);
|
||||
INSERT INTO t2 VALUES (4,'2016-04-01',null);
|
||||
SELECT t1.id,
|
||||
GREATEST(t2.date_debut, t1.date_debut) AS date_debut,
|
||||
LEAST(IFNULL(t2.date_fin, IFNULL(t1.date_fin, NULL)),
|
||||
IFNULL(t1.date_fin, IFNULL(t2.date_fin, NULL))) AS date_fin
|
||||
FROM t1 LEFT JOIN t2 ON (t1.id=t2.id);
|
||||
DROP TABLE t1,t2;
|
||||
SELECT
|
||||
LEAST(COALESCE(DATE(NULL), DATE(NULL)), COALESCE(DATE(NULL), DATE(NULL))) AS d0,
|
||||
LEAST(IFNULL(DATE(NULL), DATE(NULL)), IFNULL(DATE(NULL), DATE(NULL))) AS d1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-9511 Valgrind warnings 'Invalid read' in Field_newdate::cmp and Field_newdate::val_str
|
||||
--echo #
|
||||
|
|
|
|||
|
|
@ -445,6 +445,14 @@ SELECT MAX(ts) = '2011-01-06 12:34:30' FROM t1;
|
|||
SELECT MAX(dt) = '2011-01-06 12:34:30' FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-9413 "datetime >= coalesce(c1(NULL))" doesn't return expected NULL
|
||||
--echo #
|
||||
CREATE TABLE t1(c1 TIMESTAMP(6) NULL DEFAULT NULL);
|
||||
INSERT INTO t1 VALUES(NULL);
|
||||
SELECT c1, '2016-06-13 20:00:00.000003' >= COALESCE( c1 ) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.5 tests
|
||||
|
||||
--echo #
|
||||
|
|
|
|||
16
mysql-test/t/wait_timeout_not_windows.test
Normal file
16
mysql-test/t/wait_timeout_not_windows.test
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
source include/not_embedded.inc;
|
||||
source include/not_windows.inc;
|
||||
|
||||
#
|
||||
# MDEV-7775 Wrong error message (Unknown error) when idle sessions are killed after wait_timeout
|
||||
#
|
||||
set global log_warnings=2;
|
||||
connect (foo,localhost,root);
|
||||
set @@wait_timeout=1;
|
||||
sleep 2;
|
||||
connection default;
|
||||
let SEARCH_FILE=$MYSQLTEST_VARDIR/log/mysqld.1.err;
|
||||
let SEARCH_RANGE= -50;
|
||||
let SEARCH_PATTERN= Aborted.*Got timeout reading communication packets;
|
||||
source include/search_pattern_in_file.inc;
|
||||
set global log_warnings=@@log_warnings;
|
||||
Loading…
Add table
Add a link
Reference in a new issue