Fix for error message when using HANDLER OPEN on InnoDB tables.
This commit is contained in:
parent
9e9e765fbd
commit
3eda53fb34
@ -900,8 +900,13 @@ explain select a,b,c from t1;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
t1 ALL NULL NULL NULL NULL 4
|
||||
drop table t1;
|
||||
create table t1 (testint int not null default 1) type=innodb;
|
||||
create table t1 (t int not null default 1, key (t)) type=innodb;
|
||||
desc t1;
|
||||
Field Type Null Key Default Extra
|
||||
testint int(11) 1
|
||||
t int(11) MUL 1
|
||||
handler t1 open t1;
|
||||
Table handler for 't1' doesn't have this option
|
||||
handler t1 read t first;
|
||||
Unknown table 't1' in HANDLER
|
||||
handler t1 close;
|
||||
drop table t1;
|
||||
|
@ -565,9 +565,14 @@ explain select a,b,c from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Check describe
|
||||
# Check describe & handler
|
||||
#
|
||||
|
||||
create table t1 (testint int not null default 1) type=innodb;
|
||||
create table t1 (t int not null default 1, key (t)) type=innodb;
|
||||
desc t1;
|
||||
--error 1031
|
||||
handler t1 open t1;
|
||||
--error 1109
|
||||
handler t1 read t first;
|
||||
handler t1 close;
|
||||
drop table t1;
|
||||
|
@ -436,7 +436,7 @@ int mysqld_show(THD *thd, const char *wild, show_var_st *variables);
|
||||
|
||||
/* sql_handler.cc */
|
||||
int mysql_ha_open(THD *thd, TABLE_LIST *tables);
|
||||
int mysql_ha_close(THD *thd, TABLE_LIST *tables);
|
||||
int mysql_ha_close(THD *thd, TABLE_LIST *tables, bool dont_send_ok=0);
|
||||
int mysql_ha_read(THD *, TABLE_LIST *,enum enum_ha_read_modes,char *,
|
||||
List<Item> *,enum ha_rkey_function,Item *,ha_rows,ha_rows);
|
||||
|
||||
|
@ -58,6 +58,7 @@ int mysql_ha_open(THD *thd, TABLE_LIST *tables)
|
||||
if (!(tables->table->file->option_flag() & HA_CAN_SQL_HANDLER))
|
||||
{
|
||||
my_printf_error(ER_ILLEGAL_HA,ER(ER_ILLEGAL_HA),MYF(0), tables->name);
|
||||
mysql_ha_close(thd, tables,1);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -65,7 +66,7 @@ int mysql_ha_open(THD *thd, TABLE_LIST *tables)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mysql_ha_close(THD *thd, TABLE_LIST *tables)
|
||||
int mysql_ha_close(THD *thd, TABLE_LIST *tables, bool dont_send_ok)
|
||||
{
|
||||
TABLE **ptr=find_table_ptr_by_name(thd, tables->db, tables->name);
|
||||
|
||||
@ -75,8 +76,8 @@ int mysql_ha_close(THD *thd, TABLE_LIST *tables)
|
||||
close_thread_table(thd, ptr);
|
||||
VOID(pthread_mutex_unlock(&LOCK_open));
|
||||
}
|
||||
|
||||
send_ok(&thd->net);
|
||||
if (!dont_send_ok)
|
||||
send_ok(&thd->net);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user