1
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
2
* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
4
* Copyright (C) 2009 Sun Microsystems, Inc.
4
* Copyright (C) 2009 Sun Microsystems
6
6
* This program is free software; you can redistribute it and/or modify
7
7
* it under the terms of the GNU General Public License as published by
21
21
#include "config.h"
23
22
#include <drizzled/show.h>
24
23
#include <drizzled/session.h>
25
24
#include <drizzled/lock.h>
26
25
#include <drizzled/statement/flush.h>
27
26
#include "drizzled/sql_table.h"
28
#include "drizzled/plugin/logging.h"
29
#include "drizzled/plugin/storage_engine.h"
46
43
* Presumably, RESET and binlog writing doesn't require synchronization
48
write_bin_log(getSession(), *getSession()->getQueryString());
49
getSession()->my_ok();
45
write_bin_log(session, session->query.c_str());
71
68
if (flush_tables || flush_tables_with_read_lock)
73
if (getSession() && flush_tables_with_read_lock)
70
if (session && flush_tables_with_read_lock)
75
if (getSession()->lockGlobalReadLock())
72
if (lock_global_read_lock(session))
77
74
return true; /* Killed */
79
result= getSession()->close_cached_tables(tables, true, true);
76
result= session->close_cached_tables(tables, true, true);
81
if (getSession()->makeGlobalReadLockBlockCommit()) /* Killed */
78
if (make_global_read_lock_block_commit(session)) /* Killed */
83
80
/* Don't leave things in a half-locked state */
84
getSession()->unlockGlobalReadLock();
81
unlock_global_read_lock(session);
90
result= getSession()->close_cached_tables(tables, true, false);
87
result= session->close_cached_tables(tables, true, false);
94
if (getSession() && flush_status)
96
getSession()->refresh_status();
99
if (getSession() && flush_global_status)
101
memset(¤t_global_counters, 0, sizeof(current_global_counters));
102
plugin::Logging::resetStats(getSession());
103
getSession()->refresh_status();
91
if (session && flush_status)
93
session->refresh_status();