Commit 76c0154e authored by bell@sanja.is.com.ua's avatar bell@sanja.is.com.ua

privent crash on temporary table during indexes lookup (BUG#4677)

parent ed32dbba
......@@ -977,3 +977,9 @@ ERROR HY000: View 'test.v1' references invalid table(s) or column(s)
drop view v1;
create view v1 (a,a) as select 'a','a';
ERROR 42S21: Duplicate column name 'a'
create table t1 (a int, b int);
create view v1 as select a, sum(b) from t1 group by a;
select b from v1 use index (some_index) where b=1;
ERROR 42000: Key column 'some_index' doesn't exist in table
drop view v1;
drop table t1;
......@@ -900,3 +900,13 @@ drop view v1;
#
-- error 1060
create view v1 (a,a) as select 'a','a';
#
# check 'use index' on view with temporary table
#
create table t1 (a int, b int);
create view v1 as select a, sum(b) from t1 group by a;
-- error 1072
select b from v1 use index (some_index) where b=1;
drop view v1;
drop table t1;
......@@ -2555,8 +2555,9 @@ bool get_key_map_from_key_list(key_map *map, TABLE *table,
map->clear_all();
while ((name=it++))
{
if ((pos= find_type(&table->keynames, name->ptr(), name->length(), 1)) <=
0)
if (table->keynames.type_names == 0 ||
(pos= find_type(&table->keynames, name->ptr(), name->length(), 1)) <=
0)
{
my_error(ER_KEY_COLUMN_DOES_NOT_EXITS, MYF(0), name->c_ptr(),
table->real_name);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment