mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
MDEV-5446: Assertion `!table || (!table->read_set || bitmap_is_set(table->read_set, field_index))' fails on EXPLAIN EXTENDED with VALUES function
field_index should be set correctly for null field created by Item_insert_value::fix_fields().
This commit is contained in:
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user