Merge gleb.loc:/home/uchum/work/bk/5.0-opt-29095
into gleb.loc:/home/uchum/work/bk/5.0-opt
This commit is contained in:
commit
e5798d0466
@ -688,7 +688,16 @@ ERROR 42S22: Unknown column 't2.x' in 'field list'
|
|||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
CREATE TABLE t1 (a int PRIMARY KEY);
|
CREATE TABLE t1 (a int PRIMARY KEY);
|
||||||
INSERT INTO t1 values (1), (2);
|
INSERT INTO t1 values (1), (2);
|
||||||
|
flush status;
|
||||||
INSERT INTO t1 SELECT a + 2 FROM t1 LIMIT 1;
|
INSERT INTO t1 SELECT a + 2 FROM t1 LIMIT 1;
|
||||||
|
show status like 'Handler_read%';
|
||||||
|
Variable_name Value
|
||||||
|
Handler_read_first 1
|
||||||
|
Handler_read_key 0
|
||||||
|
Handler_read_next 0
|
||||||
|
Handler_read_prev 0
|
||||||
|
Handler_read_rnd 0
|
||||||
|
Handler_read_rnd_next 1
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (x int, y int);
|
CREATE TABLE t1 (x int, y int);
|
||||||
CREATE TABLE t2 (z int, y int);
|
CREATE TABLE t2 (z int, y int);
|
||||||
@ -773,3 +782,25 @@ d
|
|||||||
20
|
20
|
||||||
20
|
20
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
prev_id INT,
|
||||||
|
join_id INT DEFAULT 0);
|
||||||
|
INSERT INTO t1 (prev_id) VALUES (NULL), (1), (2);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
id prev_id join_id
|
||||||
|
1 NULL 0
|
||||||
|
2 1 0
|
||||||
|
3 2 0
|
||||||
|
CREATE TABLE t2 (join_id INT);
|
||||||
|
INSERT INTO t2 (join_id) VALUES (0);
|
||||||
|
INSERT INTO t1 (prev_id) SELECT id
|
||||||
|
FROM t2 LEFT JOIN t1 ON t1.join_id = t2.join_id
|
||||||
|
ORDER BY id DESC LIMIT 1;
|
||||||
|
SELECT * FROM t1;
|
||||||
|
id prev_id join_id
|
||||||
|
1 NULL 0
|
||||||
|
2 1 0
|
||||||
|
3 2 0
|
||||||
|
4 3 0
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
@ -233,7 +233,9 @@ drop table t1,t2;
|
|||||||
CREATE TABLE t1 (a int PRIMARY KEY);
|
CREATE TABLE t1 (a int PRIMARY KEY);
|
||||||
INSERT INTO t1 values (1), (2);
|
INSERT INTO t1 values (1), (2);
|
||||||
|
|
||||||
|
flush status;
|
||||||
INSERT INTO t1 SELECT a + 2 FROM t1 LIMIT 1;
|
INSERT INTO t1 SELECT a + 2 FROM t1 LIMIT 1;
|
||||||
|
show status like 'Handler_read%';
|
||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
@ -332,3 +334,26 @@ INSERT INTO t2 (d)
|
|||||||
|
|
||||||
SELECT * FROM t2;
|
SELECT * FROM t2;
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #29095: incorrect pushing of LIMIT into the temporary
|
||||||
|
# table ignoring ORDER BY clause
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
prev_id INT,
|
||||||
|
join_id INT DEFAULT 0);
|
||||||
|
|
||||||
|
INSERT INTO t1 (prev_id) VALUES (NULL), (1), (2);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
|
||||||
|
CREATE TABLE t2 (join_id INT);
|
||||||
|
INSERT INTO t2 (join_id) VALUES (0);
|
||||||
|
|
||||||
|
INSERT INTO t1 (prev_id) SELECT id
|
||||||
|
FROM t2 LEFT JOIN t1 ON t1.join_id = t2.join_id
|
||||||
|
ORDER BY id DESC LIMIT 1;
|
||||||
|
SELECT * FROM t1;
|
||||||
|
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
@ -1347,8 +1347,7 @@ JOIN::optimize()
|
|||||||
there are aggregate functions, because in all these cases we need
|
there are aggregate functions, because in all these cases we need
|
||||||
all result rows.
|
all result rows.
|
||||||
*/
|
*/
|
||||||
ha_rows tmp_rows_limit= ((order == 0 || skip_sort_order ||
|
ha_rows tmp_rows_limit= ((order == 0 || skip_sort_order) &&
|
||||||
test(select_options & OPTION_BUFFER_RESULT)) &&
|
|
||||||
!tmp_group &&
|
!tmp_group &&
|
||||||
!thd->lex->current_select->with_sum_func) ?
|
!thd->lex->current_select->with_sum_func) ?
|
||||||
select_limit : HA_POS_ERROR;
|
select_limit : HA_POS_ERROR;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user