summaryrefslogtreecommitdiff
path: root/sql/sql_class.cc
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2018-03-09 14:39:40 +0100
committerOleksandr Byelkin <sanja@mariadb.com>2018-06-25 19:01:41 +0200
commit517d7182013b212db4680a22da2c91314c41f51b (patch)
tree79e876c6889f7fd69735771fd0c4627564a131f5 /sql/sql_class.cc
parent73de63e898bd67f708c6df8d154a76b7ddd0d5d7 (diff)
downloadmariadb-git-517d7182013b212db4680a22da2c91314c41f51b.tar.gz
MDEV-15477: SESSION_SYSVARS_TRACKER does not track last_gtid
register changes of last_gtid
Diffstat (limited to 'sql/sql_class.cc')
-rw-r--r--sql/sql_class.cc17
1 files changed, 16 insertions, 1 deletions
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index 8590a0fe179..a1010fb4c35 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -1190,7 +1190,7 @@ void THD::init(void)
bzero((char *) &org_status_var, sizeof(org_status_var));
status_in_global= 0;
start_bytes_received= 0;
- last_commit_gtid.seq_no= 0;
+ m_last_commit_gtid.seq_no= 0;
last_stmt= NULL;
/* Reset status of last insert id */
arg_of_last_insert_id_function= FALSE;
@@ -6972,6 +6972,21 @@ THD::signal_wakeup_ready()
mysql_cond_signal(&COND_wakeup_ready);
}
+void THD::set_last_commit_gtid(rpl_gtid &gtid)
+{
+#ifndef EMBEDDED_LIBRARY
+ bool changed_gtid= (m_last_commit_gtid.seq_no != gtid.seq_no);
+#endif
+ m_last_commit_gtid= gtid;
+#ifndef EMBEDDED_LIBRARY
+ if (changed_gtid &&
+ session_tracker.get_tracker(SESSION_SYSVARS_TRACKER)->is_enabled())
+ {
+ session_tracker.get_tracker(SESSION_SYSVARS_TRACKER)->
+ mark_as_changed(this, (LEX_CSTRING*)Sys_last_gtid_ptr);
+ }
+#endif
+}
void
wait_for_commit::reinit()