diff --git a/mysql-test/r/func_misc.result b/mysql-test/r/func_misc.result index 56d27ff78be..83513446edf 100644 --- a/mysql-test/r/func_misc.result +++ b/mysql-test/r/func_misc.result @@ -272,3 +272,19 @@ ERROR HY000: Incorrect arguments to NAME_CONST SELECT NAME_CONST('a', -(1)) OR 1; NAME_CONST('a', -(1)) OR 1 1 +# +#MDEV-5446: Assertion `!table || (!table->read_set || +#bitmap_is_set(table->read_set, field_index))' fails on +#EXPLAIN EXTENDED with VALUES function +# +CREATE TABLE t1 (a INT, b INT) ENGINE=MyISAM; +INSERT INTO t1 VALUES (1,10); +CREATE VIEW v1 AS SELECT * FROM t1; +EXPLAIN EXTENDED SELECT VALUES(b) FROM v1; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00 +Warnings: +Note 1003 select values(10) AS `VALUES(b)` from `test`.`t1` +drop view v1; +drop table t1; +End of 5.3 tests diff --git a/mysql-test/t/func_misc.test b/mysql-test/t/func_misc.test index c4cc7734186..5cf316587b3 100644 --- a/mysql-test/t/func_misc.test +++ b/mysql-test/t/func_misc.test @@ -310,3 +310,18 @@ SELECT NAME_CONST('a', -(1 OR 2)) OR 1; SELECT NAME_CONST('a', -(1 AND 2)) AND 1; SELECT NAME_CONST('a', -(1)) OR 1; +--echo # +--echo #MDEV-5446: Assertion `!table || (!table->read_set || +--echo #bitmap_is_set(table->read_set, field_index))' fails on +--echo #EXPLAIN EXTENDED with VALUES function +--echo # +CREATE TABLE t1 (a INT, b INT) ENGINE=MyISAM; +INSERT INTO t1 VALUES (1,10); +CREATE VIEW v1 AS SELECT * FROM t1; + +EXPLAIN EXTENDED SELECT VALUES(b) FROM v1; + +drop view v1; +drop table t1; + +--echo End of 5.3 tests diff --git a/sql/item.cc b/sql/item.cc index 6a8573068fc..88489a343fb 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -7897,6 +7897,8 @@ bool Item_insert_value::fix_fields(THD *thd, Item **items) { tmp_field->init(field_arg->field->table); set_field(tmp_field); + // the index is important when read bits set + tmp_field->field_index= field_arg->field->field_index; } } return FALSE;