mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge gleb.loc:/home/uchum/work/bk/5.1
into gleb.loc:/home/uchum/work/bk/5.1-opt sql/sql_base.cc: Auto merged
This commit is contained in:
@ -939,6 +939,36 @@ alter table t1 add index(a(1024));
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #28570: handler::index_read() is called with different find_flag when
|
||||
# ORDER BY is used
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (
|
||||
a INT,
|
||||
b INT,
|
||||
KEY (b)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
INSERT INTO t1 VALUES (1,10), (2,10), (2,20), (3,30);
|
||||
|
||||
START TRANSACTION;
|
||||
SELECT * FROM t1 WHERE b=20 FOR UPDATE;
|
||||
|
||||
--connect (conn2, localhost, root,,test)
|
||||
|
||||
# This statement gives a "failed: 1205: Lock wait timeout exceeded; try
|
||||
# restarting transaction" message when the bug is present.
|
||||
START TRANSACTION;
|
||||
SELECT * FROM t1 WHERE b=10 ORDER BY A FOR UPDATE;
|
||||
ROLLBACK;
|
||||
|
||||
--disconnect conn2
|
||||
--connection default
|
||||
|
||||
ROLLBACK;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
# Fix for BUG#19243 "wrong LAST_INSERT_ID() after ON DUPLICATE KEY
|
||||
|
@ -1123,6 +1123,24 @@ t1 CREATE TABLE `t1` (
|
||||
KEY `a` (`a`(255))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
a INT,
|
||||
b INT,
|
||||
KEY (b)
|
||||
) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1,10), (2,10), (2,20), (3,30);
|
||||
START TRANSACTION;
|
||||
SELECT * FROM t1 WHERE b=20 FOR UPDATE;
|
||||
a b
|
||||
2 20
|
||||
START TRANSACTION;
|
||||
SELECT * FROM t1 WHERE b=10 ORDER BY A FOR UPDATE;
|
||||
a b
|
||||
1 10
|
||||
2 10
|
||||
ROLLBACK;
|
||||
ROLLBACK;
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
CREATE TABLE `t2` (
|
||||
`k` int(11) NOT NULL auto_increment,
|
||||
|
@ -3990,4 +3990,61 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
EXPLAIN SELECT c1 FROM t1 WHERE (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT (SELECT COUNT(c2))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) > 0;
|
||||
ERROR HY000: Too high level of nesting for select
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 int(11) NOT NULL AUTO_INCREMENT,
|
||||
c2 varchar(1000) DEFAULT NULL,
|
||||
c3 bigint(20) DEFAULT NULL,
|
||||
c4 bigint(20) DEFAULT NULL,
|
||||
PRIMARY KEY (c1)
|
||||
);
|
||||
EXPLAIN EXTENDED
|
||||
SELECT join_2.c1
|
||||
FROM
|
||||
t1 AS join_0,
|
||||
t1 AS join_1,
|
||||
t1 AS join_2,
|
||||
t1 AS join_3,
|
||||
t1 AS join_4,
|
||||
t1 AS join_5,
|
||||
t1 AS join_6,
|
||||
t1 AS join_7
|
||||
WHERE
|
||||
join_0.c1=join_1.c1 AND
|
||||
join_1.c1=join_2.c1 AND
|
||||
join_2.c1=join_3.c1 AND
|
||||
join_3.c1=join_4.c1 AND
|
||||
join_4.c1=join_5.c1 AND
|
||||
join_5.c1=join_6.c1 AND
|
||||
join_6.c1=join_7.c1
|
||||
OR
|
||||
join_0.c2 < '?' AND
|
||||
join_1.c2 < '?' AND
|
||||
join_2.c2 > '?' AND
|
||||
join_2.c2 < '!' AND
|
||||
join_3.c2 > '?' AND
|
||||
join_4.c2 = '?' AND
|
||||
join_5.c2 <> '?' AND
|
||||
join_6.c2 <> '?' AND
|
||||
join_7.c2 >= '?' AND
|
||||
join_0.c1=join_1.c1 AND
|
||||
join_1.c1=join_2.c1 AND
|
||||
join_2.c1=join_3.c1 AND
|
||||
join_3.c1=join_4.c1 AND
|
||||
join_4.c1=join_5.c1 AND
|
||||
join_5.c1=join_6.c1 AND
|
||||
join_6.c1=join_7.c1
|
||||
GROUP BY
|
||||
join_3.c1,
|
||||
join_2.c1,
|
||||
join_7.c1,
|
||||
join_1.c1,
|
||||
join_0.c1;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
Warnings:
|
||||
Note 1003 select '0' AS `c1` from `test`.`t1` `join_0` join `test`.`t1` `join_1` join `test`.`t1` `join_2` join `test`.`t1` `join_3` join `test`.`t1` `join_4` join `test`.`t1` `join_5` join `test`.`t1` `join_6` join `test`.`t1` `join_7` where 0 group by '0','0','0','0','0'
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Note 1003 select '0' AS `c1` from `test`.`t1` `join_0` join `test`.`t1` `join_1` join `test`.`t1` `join_2` join `test`.`t1` `join_3` join `test`.`t1` `join_4` join `test`.`t1` `join_5` join `test`.`t1` `join_6` join `test`.`t1` `join_7` where 0 group by '0','0','0','0','0'
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
|
@ -3389,4 +3389,64 @@ eval EXPLAIN SELECT c1 FROM t1 WHERE $q > 0;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #30396: crash for a join with equalities and sargable predicates
|
||||
# in disjunctive parts of the WHERE condition
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (
|
||||
c1 int(11) NOT NULL AUTO_INCREMENT,
|
||||
c2 varchar(1000) DEFAULT NULL,
|
||||
c3 bigint(20) DEFAULT NULL,
|
||||
c4 bigint(20) DEFAULT NULL,
|
||||
PRIMARY KEY (c1)
|
||||
);
|
||||
|
||||
EXPLAIN EXTENDED
|
||||
SELECT join_2.c1
|
||||
FROM
|
||||
t1 AS join_0,
|
||||
t1 AS join_1,
|
||||
t1 AS join_2,
|
||||
t1 AS join_3,
|
||||
t1 AS join_4,
|
||||
t1 AS join_5,
|
||||
t1 AS join_6,
|
||||
t1 AS join_7
|
||||
WHERE
|
||||
join_0.c1=join_1.c1 AND
|
||||
join_1.c1=join_2.c1 AND
|
||||
join_2.c1=join_3.c1 AND
|
||||
join_3.c1=join_4.c1 AND
|
||||
join_4.c1=join_5.c1 AND
|
||||
join_5.c1=join_6.c1 AND
|
||||
join_6.c1=join_7.c1
|
||||
OR
|
||||
join_0.c2 < '?' AND
|
||||
join_1.c2 < '?' AND
|
||||
join_2.c2 > '?' AND
|
||||
join_2.c2 < '!' AND
|
||||
join_3.c2 > '?' AND
|
||||
join_4.c2 = '?' AND
|
||||
join_5.c2 <> '?' AND
|
||||
join_6.c2 <> '?' AND
|
||||
join_7.c2 >= '?' AND
|
||||
join_0.c1=join_1.c1 AND
|
||||
join_1.c1=join_2.c1 AND
|
||||
join_2.c1=join_3.c1 AND
|
||||
join_3.c1=join_4.c1 AND
|
||||
join_4.c1=join_5.c1 AND
|
||||
join_5.c1=join_6.c1 AND
|
||||
join_6.c1=join_7.c1
|
||||
GROUP BY
|
||||
join_3.c1,
|
||||
join_2.c1,
|
||||
join_7.c1,
|
||||
join_1.c1,
|
||||
join_0.c1;
|
||||
|
||||
SHOW WARNINGS;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
Reference in New Issue
Block a user