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
00023 #include <plugin/catalog/module.h>
00024
00025 #include <drizzled/atomics.h>
00026 #include <drizzled/session.h>
00027
00028 using namespace std;
00029
00030 namespace plugin {
00031 namespace catalog {
00032 namespace tables {
00033
00034 Cache::Cache() :
00035 drizzled::plugin::TableFunction("DATA_DICTIONARY", "CATALOG_CACHE")
00036 {
00037 add_field("CATALOG_NAME", drizzled::plugin::TableFunction::STRING, MAXIMUM_IDENTIFIER_LENGTH, false);
00038 }
00039
00040 Cache::Generator::Generator(drizzled::Field **arg) :
00041 drizzled::plugin::TableFunction::Generator(arg)
00042 {
00043 }
00044
00045 bool Cache::Generator::populate()
00046 {
00047
00048 drizzled::catalog::Instance::shared_ptr tmp;
00049
00050 while ((tmp= catalog_generator))
00051 {
00052
00053 push(tmp->getName());
00054
00055 return true;
00056 }
00057
00058 return false;
00059 }
00060
00061 }
00062 }
00063 }