summaryrefslogtreecommitdiffstats
path: root/sql/session_tracker.cc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sql/session_tracker.cc15
1 files changed, 13 insertions, 2 deletions
diff --git a/sql/session_tracker.cc b/sql/session_tracker.cc
index 14cb78e8..74208b68 100644
--- a/sql/session_tracker.cc
+++ b/sql/session_tracker.cc
@@ -60,6 +60,16 @@ void Session_sysvars_tracker::vars_list::copy(vars_list* from, THD *thd)
from->init();
}
+Session_sysvars_tracker::
+sysvar_node_st *Session_sysvars_tracker::vars_list::search(const sys_var *svar)
+{
+ return reinterpret_cast<sysvar_node_st*>(
+ my_hash_search(&m_registered_sysvars,
+ reinterpret_cast<const uchar*>(&svar->offset),
+ sizeof(svar->offset)));
+}
+
+
/**
Inserts the variable to be tracked into m_registered_sysvars hash.
@@ -559,8 +569,9 @@ uchar *Session_sysvars_tracker::sysvars_get_key(const char *entry,
size_t *length,
my_bool not_used __attribute__((unused)))
{
- *length= sizeof(sys_var *);
- return (uchar *) &(((sysvar_node_st *) entry)->m_svar);
+ auto key=&(((sysvar_node_st *) entry)->m_svar->offset);
+ *length= sizeof(*key);
+ return (uchar *) key;
}