mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-6814: Server crashes in calculate_key_len on query with ORDER BY
- 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.
This commit is contained in:
@ -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 (
|
||||
|
@ -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 #
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user