Commit 83062698 authored by unknown's avatar unknown
Browse files

Change Last_query_cost status variable from global to thread-local.


sql/mysql_priv.h:
  Changed last_query_cost status variable from global to thread-local.
sql/mysqld.cc:
  Changed last_query_cost status variable from global to thread-local.
sql/sql_class.cc:
  Changed last_query_cost status variable from global to thread-local.
sql/sql_class.h:
  Changed last_query_cost status variable from global to thread-local.
sql/sql_select.cc:
  Changed last_query_cost status variable from global to thread-local.
sql/sql_show.cc:
  All SHOW_DOUBLE-type status variables are now assumed to be thread-local (there is 
  only one currently, last_query_cost, and this cset makes it thread-local)
parent af38185d
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -1048,7 +1048,6 @@ extern char language[FN_REFLEN], reg_ext[FN_EXTLEN];
extern char glob_hostname[FN_REFLEN], mysql_home[FN_REFLEN];
extern char pidfile_name[FN_REFLEN], system_time_zone[30], *opt_init_file;
extern char log_error_file[FN_REFLEN], *opt_tc_log_file;
extern double last_query_cost;
extern double log_10[32];
extern ulonglong log_10_int[20];
extern ulonglong keybuff_size;
+1 −2
Original line number Diff line number Diff line
@@ -345,7 +345,6 @@ ulong expire_logs_days = 0;
ulong rpl_recovery_rank=0;
ulong my_bind_addr;			/* the address we bind to */
volatile ulong cached_thread_count= 0;
double last_query_cost= -1; /* -1 denotes that no query was compiled yet */

double log_10[32];			/* 10 potences */
time_t start_time;
@@ -5714,7 +5713,7 @@ struct show_var_st status_vars[]= {
  {"Key_reads",                (char*) &dflt_key_cache_var.global_cache_read, SHOW_KEY_CACHE_LONG},
  {"Key_write_requests",       (char*) &dflt_key_cache_var.global_cache_w_requests, SHOW_KEY_CACHE_LONG},
  {"Key_writes",               (char*) &dflt_key_cache_var.global_cache_write, SHOW_KEY_CACHE_LONG},
  {"Last_query_cost",          (char*) &last_query_cost,        SHOW_DOUBLE},
  {"Last_query_cost",          (char*) offsetof(STATUS_VAR, last_query_cost), SHOW_DOUBLE},
  {"Max_used_connections",     (char*) &max_used_connections,  SHOW_LONG},
#ifdef HAVE_NDBCLUSTER_DB
  {"Ndb_",                     (char*) &ndb_status_variables,   SHOW_VARS},
+1 −0
Original line number Diff line number Diff line
@@ -444,6 +444,7 @@ void add_to_status(STATUS_VAR *to_var, STATUS_VAR *from_var)

  while (to != end)
    *(to++)+= *(from++);
  /* it doesn't make sense to add last_query_cost values */
}


+2 −0
Original line number Diff line number Diff line
@@ -635,6 +635,8 @@ typedef struct system_status_var
  ulong filesort_range_count;
  ulong filesort_rows;
  ulong filesort_scan_count;

  double last_query_cost;
} STATUS_VAR;

/*
+1 −2
Original line number Diff line number Diff line
@@ -3739,8 +3739,7 @@ choose_plan(JOIN *join, table_map join_tables)
    Don't update last_query_cost for 'show status' command
  */
  if (join->thd->lex->orig_sql_command != SQLCOM_SHOW_STATUS)
    last_query_cost= join->best_read;

    join->thd->status_var.last_query_cost= join->best_read;
  DBUG_VOID_RETURN;
}

Loading