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
27
#include "drizzled/plugin/logging.h"
29
#include "drizzled/plugin/storage_engine.h"
46
44
* Presumably, RESET and binlog writing doesn't require synchronization
48
write_bin_log(getSession(), *getSession()->getQueryString());
49
getSession()->my_ok();
46
write_bin_log(session, *session->getQueryString());
71
69
if (flush_tables || flush_tables_with_read_lock)
73
if (getSession() && flush_tables_with_read_lock)
71
if (session && flush_tables_with_read_lock)
75
if (getSession()->lockGlobalReadLock())
73
if (session->lockGlobalReadLock())
77
75
return true; /* Killed */
79
result= getSession()->close_cached_tables(tables, true, true);
77
result= session->close_cached_tables(tables, true, true);
81
if (getSession()->makeGlobalReadLockBlockCommit()) /* Killed */
79
if (session->makeGlobalReadLockBlockCommit()) /* Killed */
83
81
/* Don't leave things in a half-locked state */
84
getSession()->unlockGlobalReadLock();
82
session->unlockGlobalReadLock();
90
result= getSession()->close_cached_tables(tables, true, false);
88
result= session->close_cached_tables(tables, true, false);
94
if (getSession() && flush_status)
92
if (session && flush_status)
96
getSession()->refresh_status();
94
session->refresh_status();
99
if (getSession() && flush_global_status)
97
if (session && flush_global_status)
101
99
memset(¤t_global_counters, 0, sizeof(current_global_counters));
102
plugin::Logging::resetStats(getSession());
103
getSession()->refresh_status();
100
plugin::Logging::resetStats(session);
101
session->refresh_status();