Commit 56e8814b authored by unknown's avatar unknown
Browse files

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
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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
};


+17 −3
Original line number Diff line number Diff line
@@ -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;
  }

  /*
+1 −0
Original line number Diff line number Diff line
@@ -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;