17
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
#ifndef DRIZZLED_OPEN_TABLES_STATE_H
22
#define DRIZZLED_OPEN_TABLES_STATE_H
24
#include "drizzled/lock.h"
25
#include "drizzled/query_id.h"
30
class CachedDirectory;
22
#include <drizzled/common_fwd.h>
23
#include <drizzled/lock.h>
27
extern uint64_t g_refresh_version;
33
30
Class that holds information about tables which were opened and locked
34
by the thread. It is also used to save/restore this information in
35
push_open_tables_state()/pop_open_tables_state().
38
34
class Open_tables_state
71
64
is not reset until the HANDLER is closed.
73
66
void mark_temp_tables_as_free_for_reuse();
76
67
void close_temporary_tables();
79
void close_temporary_table(Table *table);
82
// The method below just handles the de-allocation of the table. In
83
// a better memory type world, this would not be needed.
84
void nukeTable(Table *table);
68
void close_temporary_table(Table*);
69
void nukeTable(Table*);
70
void close_open_tables();
71
bool free_cached_table();
87
73
/* Work with temporary tables */
88
74
Table *find_temporary_table(const identifier::Table &identifier);
90
76
void dumpTemporaryTableNames(const char *id);
91
int drop_temporary_table(const drizzled::identifier::Table &identifier);
92
bool rm_temporary_table(plugin::StorageEngine *base, const identifier::Table &identifier);
93
bool rm_temporary_table(const drizzled::identifier::Table &identifier, bool best_effort= false);
94
Table *open_temporary_table(const drizzled::identifier::Table &identifier,
95
bool link_in_list= true);
97
virtual query_id_t getQueryId() const= 0;
77
int drop_temporary_table(const identifier::Table&);
78
bool rm_temporary_table(plugin::StorageEngine&, const identifier::Table&);
79
bool rm_temporary_table(const identifier::Table &identifier, bool best_effort= false);
100
82
Table *derived_tables;
142
123
uint64_t version;
143
124
uint32_t current_tablenr;
146
This constructor serves for creation of Open_tables_state instances
147
which are used as backup storage.
149
Open_tables_state() :
158
virtual ~Open_tables_state() {}
160
void doGetTableNames(CachedDirectory &directory,
161
const identifier::Schema &schema_identifier,
162
std::set<std::string>& set_of_names);
163
void doGetTableNames(const identifier::Schema &schema_identifier,
164
std::set<std::string>& set_of_names);
166
void doGetTableIdentifiers(CachedDirectory &directory,
167
const identifier::Schema &schema_identifier,
168
identifier::Table::vector &set_of_identifiers);
169
void doGetTableIdentifiers(const identifier::Schema &schema_identifier,
170
identifier::Table::vector &set_of_identifiers);
172
int doGetTableDefinition(const drizzled::identifier::Table &identifier,
173
message::Table &table_proto);
174
bool doDoesTableExist(const drizzled::identifier::Table &identifier);
177
Open_tables_state(uint64_t version_arg);
126
Open_tables_state(Session&, uint64_t version_arg);
127
void doGetTableNames(CachedDirectory&, const identifier::Schema&, std::set<std::string>&);
128
void doGetTableNames(const identifier::Schema&, std::set<std::string>&);
129
void doGetTableIdentifiers(CachedDirectory&, const identifier::Schema&, identifier::table::vector&);
130
void doGetTableIdentifiers(const identifier::Schema&, identifier::table::vector&);
131
int doGetTableDefinition(const drizzled::identifier::Table&, message::Table&);
132
bool doDoesTableExist(const drizzled::identifier::Table&);
180
137
} /* namespace drizzled */
182
#endif /* DRIZZLED_OPEN_TABLES_STATE_H */