1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

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

mysql-test/r/view.result:
  check 'use index' on view with temporary table
mysql-test/t/view.test:
  check 'use index' on view with temporary table
sql/sql_base.cc:
  privent crash on temporary table
This commit is contained in:
unknown
2004-07-22 14:05:00 +03:00
parent d3558dc3fd
commit 1159996ee5
3 changed files with 19 additions and 2 deletions

View File

@ -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;

View File

@ -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;

View File

@ -2555,7 +2555,8 @@ 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)) <=
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(),