00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <config.h>
00022 #include <plugin/schema_dictionary/dictionary.h>
00023
00024 using namespace std;
00025 using namespace drizzled;
00026
00027 SchemasTool::SchemasTool() :
00028 DataDictionary("SCHEMAS")
00029 {
00030 add_field("SCHEMA_NAME");
00031 add_field("DEFAULT_COLLATION_NAME");
00032 add_field("SCHEMA_CREATION_TIME");
00033 add_field("SCHEMA_UPDATE_TIME");
00034 add_field("SCHEMA_UUID", plugin::TableFunction::STRING, 36, true);
00035 add_field("SCHEMA_VERSION", plugin::TableFunction::NUMBER, 0, true);
00036 add_field("SCHEMA_USE_COUNT", plugin::TableFunction::NUMBER, 0, true);
00037 add_field("IS_REPLICATED", plugin::TableFunction::BOOLEAN, 0, false);
00038 }
00039
00040 SchemasTool::Generator::Generator(drizzled::Field **arg) :
00041 DataDictionary::Generator(arg),
00042 schema_generator(getSession())
00043 {
00044 }
00045
00046 bool SchemasTool::Generator::populate()
00047 {
00048 drizzled::message::schema::shared_ptr schema_ptr;
00049 while ((schema_ptr= schema_generator))
00050 {
00051
00052 push(schema_ptr->name());
00053
00054
00055 push(schema_ptr->collation());
00056
00057
00058 time_t time_arg= schema_ptr->creation_timestamp();
00059 char buffer[40];
00060 struct tm tm_buffer;
00061
00062 localtime_r(&time_arg, &tm_buffer);
00063 strftime(buffer, sizeof(buffer), "%a %b %d %H:%M:%S %Y", &tm_buffer);
00064 push(buffer);
00065
00066
00067 time_arg= schema_ptr->update_timestamp();
00068 localtime_r(&time_arg, &tm_buffer);
00069 strftime(buffer, sizeof(buffer), "%a %b %d %H:%M:%S %Y", &tm_buffer);
00070 push(buffer);
00071
00072
00073 push(schema_ptr->uuid());
00074
00075
00076 push(schema_ptr->version());
00077
00078
00079 push(schema_ptr->version());
00080
00081
00082 push(message::is_replicated(*schema_ptr));
00083
00084 return true;
00085 }
00086
00087 return false;
00088 }