Commit 56e8814b authored by unknown's avatar unknown

Fix to remove engine dependency from handler.cc file, the last one for functions.


sql/ha_innodb.cc:
  Added new function to handlerton.
sql/handler.cc:
  Removed Innodb dependency (last remaining function call).
sql/handler.h:
  Added additional function for engines who need to know about client communication.
parent 89822edb
......@@ -237,7 +237,8 @@ handlerton innobase_hton = {
NULL, /* Fill FILES table */
HTON_NO_FLAGS,
NULL, /* binlog_func */
NULL /* binlog_log_query */
NULL, /* binlog_log_query */
innobase_release_temporary_latches
};
......
......@@ -1179,11 +1179,23 @@ bool mysql_xa_recover(THD *thd)
return value: always 0
*/
static my_bool release_temporary_latches(THD *thd, st_plugin_int *plugin,
void *unused)
{
handlerton *hton= (handlerton *) plugin->plugin->info;
if (hton->state == SHOW_OPTION_YES && hton->release_temporary_latches)
hton->release_temporary_latches(thd);
return FALSE;
}
int ha_release_temporary_latches(THD *thd)
{
#ifdef WITH_INNOBASE_STORAGE_ENGINE
innobase_release_temporary_latches(thd);
#endif
plugin_foreach(thd, release_temporary_latches, MYSQL_STORAGE_ENGINE_PLUGIN,
NULL);
return 0;
}
......@@ -3264,6 +3276,8 @@ int handler::ha_external_lock(THD *thd, int lock_type)
case SQLCOM_TRUNCATE:
case SQLCOM_ALTER_TABLE:
DBUG_RETURN(0);
default:
break;
}
/*
......
......@@ -580,6 +580,7 @@ typedef struct
void (*binlog_log_query)(THD *thd, enum_binlog_command binlog_command,
const char *query, uint query_length,
const char *db, const char *table_name);
int (*release_temporary_latches)(THD *thd);
} handlerton;
extern const handlerton default_hton;
......
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