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/information_schema_dictionary/dictionary.h>
00023
00024 using namespace std;
00025 using namespace drizzled;
00026
00027 Schemata::Schemata() :
00028 InformationSchema("SCHEMATA")
00029 {
00030 add_field("CATALOG_NAME", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH, false);
00031 add_field("SCHEMA_NAME", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH, false);
00032 add_field("SCHEMA_OWNER", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH, true);
00033 add_field("DEFAULT_CHARACTER_SET_CATALOG", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH, true);
00034 add_field("DEFAULT_CHARACTER_SET_SCHEMA", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH, true);
00035 add_field("DEFAULT_CHARACTER_SET_NAME", plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH, true);
00036 }
00037
00038 Schemata::Generator::Generator(drizzled::Field **arg) :
00039 InformationSchema::Generator(arg),
00040 schema_generator(getSession())
00041 {
00042 }
00043
00044 bool Schemata::Generator::populate()
00045 {
00046 drizzled::message::schema::shared_ptr schema_ptr;
00047
00048 while ((schema_ptr= schema_generator))
00049 {
00050
00051 push(schema_ptr->catalog());
00052
00053
00054 push(schema_ptr->name());
00055
00056
00057 push();
00058
00059
00060 push();
00061
00062
00063 push();
00064
00065
00066 push();
00067
00068 return true;
00069 }
00070
00071 return false;
00072 }