18
18
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
#ifndef PLUGIN_SCHEMA_DICTIONARY_TABLES_H
22
#define PLUGIN_SCHEMA_DICTIONARY_TABLES_H
21
#ifndef PLUGIN_DATA_ENGINE_TABLES_H
22
#define PLUGIN_DATA_ENGINE_TABLES_H
24
class TablesTool : public drizzled::plugin::TableFunction
24
class TablesTool : public SchemasTool
30
30
TablesTool(const char *schema_arg, const char *table_arg) :
31
drizzled::plugin::TableFunction(schema_arg, table_arg)
31
SchemasTool(schema_arg, table_arg)
34
34
TablesTool(const char *table_arg) :
35
drizzled::plugin::TableFunction("DATA_DICTIONARY", table_arg)
35
SchemasTool(table_arg)
38
class Generator : public drizzled::plugin::TableFunction::Generator
38
class Generator : public SchemasTool::Generator
40
drizzled::generator::AllTables all_tables_generator;
41
drizzled::message::Table table_message;
40
drizzled::message::Table table_proto;
41
std::set<std::string> table_names;
42
std::set<std::string>::iterator table_iterator;
43
bool is_tables_primed;
43
45
virtual void fill();
46
49
Generator(drizzled::Field **arg);
51
void pushRow(drizzled::message::Table::TableOptions::RowType type);
50
53
const std::string &table_name()
52
return table_message.name();
55
return (*table_iterator);
55
58
const drizzled::message::Table& getTableProto()
60
const drizzled::message::Table& getTableMessage()
65
63
bool isTablesPrimed()
65
return is_tables_primed;
73
Generator *generator(drizzled::Field **arg)
75
return new Generator(arg);
80
#endif /* PLUGIN_SCHEMA_DICTIONARY_TABLES_H */
70
bool checkTableName();
73
Generator *generator(drizzled::Field **arg)
75
return new Generator(arg);
80
class TableNames : public TablesTool
83
TableNames(const char *table_arg) :
88
TablesTool("LOCAL_TABLE_NAMES")
90
add_field("TABLE_NAME");
93
class Generator : public TablesTool::Generator
104
Generator(drizzled::Field **arg) :
105
TablesTool::Generator(arg)
109
Generator *generator(drizzled::Field **arg)
111
return new Generator(arg);
115
class TableStatus : public TableNames
119
TableNames("LOCAL_TABLE_STATUS")
123
add_field("Version");
124
add_field("Row_format");
126
add_field("Avg_row_length");
127
add_field("Data_length");
128
add_field("Max_data_length");
129
add_field("Index_length");
130
add_field("Data_free");
131
add_field("Auto_increment");
132
add_field("Create_time");
133
add_field("Update_time");
134
add_field("Check_time");
135
add_field("Collation");
136
add_field("Checksum");
137
add_field("Create_options");
138
add_field("Comment");
141
class Generator : public TableNames::Generator
149
push(getTableProto().engine().name());
155
pushRow(getTableProto().options().row_type());
166
/* Max_data_length */
182
push(getTableProto().options().collation());
191
push(getTableProto().options().comment());
195
Generator(drizzled::Field **arg) :
196
TableNames::Generator(arg)
200
Generator *generator(drizzled::Field **arg)
202
return new Generator(arg);
206
#endif // PLUGIN_DATA_ENGINE_TABLES_H