Skip to content

Commit

Permalink
MDEV-6814: Server crashes in calculate_key_len on query with ORDER BY
Browse files Browse the repository at this point in the history
- if test_if_skip_sort_order() decides to switch to using an index, or
  switch from using ref to using quick select, it should set all
  members accordingly.
  • Loading branch information
spetrunia committed Sep 30, 2014
1 parent 0b15557 commit 605b48d
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 0 deletions.
8 changes: 8 additions & 0 deletions mysql-test/r/order_by_optimizer_innodb.result
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,14 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 range PRIMARY,ux_pk1_fd5 ux_pk1_fd5 13 NULL 137 Using where
drop table t0,t1, t2;
#
# MDEV-6814: Server crashes in calculate_key_len on query with ORDER BY
#
CREATE TABLE t1 (f1 INT, f2 INT, f3 INT, KEY(f2),KEY(f2,f1)) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1,5,0),(2,6,0);
SELECT * FROM t1 WHERE f1 < 3 AND f2 IS NULL ORDER BY f1;
f1 f2 f3
DROP TABLE t1;
#
# MDEV-6796: Unable to skip filesort when using implicit extended key
#
CREATE TABLE t1 (
Expand Down
8 changes: 8 additions & 0 deletions mysql-test/t/order_by_optimizer_innodb.test
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,14 @@ EXPLAIN SELECT * FROM t2 WHERE pk1=9 AND fd5 < 500 ORDER B

drop table t0,t1, t2;

--echo #
--echo # MDEV-6814: Server crashes in calculate_key_len on query with ORDER BY
--echo #
CREATE TABLE t1 (f1 INT, f2 INT, f3 INT, KEY(f2),KEY(f2,f1)) ENGINE=MyISAM;
INSERT INTO t1 VALUES (1,5,0),(2,6,0);
SELECT * FROM t1 WHERE f1 < 3 AND f2 IS NULL ORDER BY f1;
DROP TABLE t1;

--echo #
--echo # MDEV-6796: Unable to skip filesort when using implicit extended key
--echo #
Expand Down
1 change: 1 addition & 0 deletions sql/sql_select.cc
Original file line number Diff line number Diff line change
Expand Up @@ -20177,6 +20177,7 @@ test_if_skip_sort_order(JOIN_TAB *tab,ORDER *order,ha_rows select_limit,
tab->ref.key= -1;
tab->ref.key_parts= 0;
tab->use_quick= 1;
best_key= new_ref_key;
/*
We don't restore select->cond as we want to use the
original condition as index condition pushdown is not
Expand Down

0 comments on commit 605b48d

Please sign in to comment.