00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #pragma once
00031
00032 #include <drizzled/plugin/table_function.h>
00033 #include <drizzled/field.h>
00034
00035 namespace drizzled
00036 {
00037 class QueryCacheService;
00038
00039 class QueryCacheTool : public drizzled::plugin::TableFunction
00040 {
00041 public:
00042
00043 QueryCacheTool();
00044
00045 class Generator : public drizzled::plugin::TableFunction::Generator
00046 {
00047 public:
00048 Generator(drizzled::Field **arg);
00049 bool populate();
00050 private:
00051 QueryCacheService::CacheEntries::iterator it;
00052 QueryCacheService::CacheEntries::iterator end;
00053 };
00054
00055 Generator *generator(drizzled::Field **arg)
00056 {
00057 return new Generator(arg);
00058 }
00059 };
00060
00061 class CachedTables : public drizzled::plugin::TableFunction
00062 {
00063 public:
00064
00065 CachedTables();
00066
00067 class Generator : public drizzled::plugin::TableFunction::Generator
00068 {
00069 public:
00070 Generator(drizzled::Field **arg);
00071 bool populate();
00072 private:
00073 QueryCacheService::CachedTablesEntries::iterator it;
00074 QueryCacheService::CachedTablesEntries::iterator end;
00075 };
00076
00077 Generator *generator(drizzled::Field **arg)
00078 {
00079 return new Generator(arg);
00080 }
00081 };
00082
00083 class QueryCacheStatusTool : public drizzled::plugin::TableFunction
00084 {
00085 public:
00086 QueryCacheStatusTool() :
00087 plugin::TableFunction("DATA_DICTIONARY", "QUERY_CACHE_STATUS")
00088 {
00089 add_field("VARIABLE_NAME");
00090 add_field("VARIABLE_VALUE");
00091 }
00092
00093 class Generator : public drizzled::plugin::TableFunction::Generator
00094 {
00095 drizzled::drizzle_sys_var **status_var_ptr;
00096
00097 public:
00098 Generator(drizzled::Field **fields);
00099
00100 bool populate();
00101 };
00102
00103 Generator *generator(drizzled::Field **arg)
00104 {
00105 return new Generator(arg);
00106 }
00107 };
00108 }