Merge branch '5.5' into 10.0

This commit is contained in:
Vicențiu Ciorbaru 2018-03-14 12:10:31 +02:00
commit 3d5dff6cae
4 changed files with 33 additions and 3 deletions

4
debian/control vendored
View File

@ -24,8 +24,8 @@ Build-Depends: bison,
${LIBREADLINE_DEV} ${LIBREADLINE_DEV}
Standards-Version: 3.8.3 Standards-Version: 3.8.3
Homepage: http://mariadb.org/ Homepage: http://mariadb.org/
Vcs-Browser: http://bazaar.launchpad.net/~maria-captains/maria/10.0/files Vcs-Browser: https://github.com/MariaDB/server/
Vcs-Bzr: bzr://lp:maria Vcs-Git: https://github.com/MariaDB/server.git
Package: libmariadbclient18 Package: libmariadbclient18
Section: libs Section: libs

View File

@ -2714,3 +2714,18 @@ a b sq
4 4 1 4 4 1
4 2 1 4 2 1
drop table t1, t2; drop table t1, t2;
#
# MDEV-15235: Assertion `length > 0' failed in create_ref_for_key
#
CREATE TABLE t1 (i INT);
INSERT INTO t1 VALUES (1),(2);
CREATE TABLE t2 (f CHAR(1));
INSERT INTO t2 VALUES ('a'),('b');
explain
SELECT * FROM t2 WHERE f IN ( SELECT LEFT('foo',0) FROM t1 ORDER BY 1 );
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t2 WHERE f IN ( SELECT LEFT('foo',0) FROM t1 ORDER BY 1 );
f
DROP TABLE t1, t2;

View File

@ -254,3 +254,16 @@ SELECT a, b, (a, b) NOT IN (SELECT a, b FROM t2) as sq
FROM t1; FROM t1;
drop table t1, t2; drop table t1, t2;
--echo #
--echo # MDEV-15235: Assertion `length > 0' failed in create_ref_for_key
--echo #
CREATE TABLE t1 (i INT);
INSERT INTO t1 VALUES (1),(2);
CREATE TABLE t2 (f CHAR(1));
INSERT INTO t2 VALUES ('a'),('b');
explain
SELECT * FROM t2 WHERE f IN ( SELECT LEFT('foo',0) FROM t1 ORDER BY 1 );
SELECT * FROM t2 WHERE f IN ( SELECT LEFT('foo',0) FROM t1 ORDER BY 1 );
DROP TABLE t1, t2;

View File

@ -873,8 +873,10 @@ bool subquery_types_allow_materialization(Item_in_subselect *in_subs)
Make sure that create_tmp_table will not fail due to too long keys. Make sure that create_tmp_table will not fail due to too long keys.
See MDEV-7122. This check is performed inside create_tmp_table also and See MDEV-7122. This check is performed inside create_tmp_table also and
we must do it so that we know the table has keys created. we must do it so that we know the table has keys created.
Make sure that the length of the key for the temp_table is atleast
greater than 0.
*/ */
if (total_key_length > tmp_table_max_key_length() || if (!total_key_length || total_key_length > tmp_table_max_key_length() ||
elements > tmp_table_max_key_parts()) elements > tmp_table_max_key_parts())
DBUG_RETURN(FALSE); DBUG_RETURN(FALSE);