Loading mysql-test/r/innodb.result +7 −2 Original line number Diff line number Diff line Loading @@ -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; mysql-test/t/innodb.test +7 −2 Original line number Diff line number Diff line Loading @@ -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; sql/mysql_priv.h +1 −1 Original line number Diff line number Diff line Loading @@ -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); Loading sql/sql_handler.cc +4 −3 Original line number Diff line number Diff line Loading @@ -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; } Loading @@ -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); Loading @@ -75,7 +76,7 @@ int mysql_ha_close(THD *thd, TABLE_LIST *tables) close_thread_table(thd, ptr); VOID(pthread_mutex_unlock(&LOCK_open)); } if (!dont_send_ok) send_ok(&thd->net); return 0; } Loading Loading
mysql-test/r/innodb.result +7 −2 Original line number Diff line number Diff line Loading @@ -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;
mysql-test/t/innodb.test +7 −2 Original line number Diff line number Diff line Loading @@ -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;
sql/mysql_priv.h +1 −1 Original line number Diff line number Diff line Loading @@ -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); Loading
sql/sql_handler.cc +4 −3 Original line number Diff line number Diff line Loading @@ -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; } Loading @@ -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); Loading @@ -75,7 +76,7 @@ int mysql_ha_close(THD *thd, TABLE_LIST *tables) close_thread_table(thd, ptr); VOID(pthread_mutex_unlock(&LOCK_open)); } if (!dont_send_ok) send_ok(&thd->net); return 0; } Loading