00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #pragma once
00022
00023 class ShowIndexes : public show_dictionary::Show
00024 {
00025 public:
00026 ShowIndexes();
00027
00028 class Generator : public show_dictionary::Show::Generator
00029 {
00030 bool is_tables_primed;
00031 bool is_index_primed;
00032 bool is_index_part_primed;
00033
00034 int32_t index_iterator;
00035 int32_t index_part_iterator;
00036
00037 drizzled::message::table::shared_ptr table_proto;
00038 drizzled::message::Table::Index index;
00039 drizzled::message::Table::Index::IndexPart index_part;
00040
00041 std::string table_name;
00042
00043 const drizzled::message::Table& getTableProto()
00044 {
00045 return *table_proto;
00046 }
00047
00048 const drizzled::message::Table::Index& getIndex()
00049 {
00050 return index;
00051 }
00052
00053 const drizzled::message::Table::Index::IndexPart& getIndexPart()
00054 {
00055 return index_part;
00056 }
00057
00058 bool isTablesPrimed()
00059 {
00060 return is_tables_primed;
00061 }
00062
00063 bool isIndexesPrimed()
00064 {
00065 return is_index_primed;
00066 }
00067
00068 bool nextIndex();
00069 bool nextIndexCore();
00070 bool nextIndexParts();
00071 bool nextIndexPartsCore();
00072
00073 const std::string &getTableName()
00074 {
00075 return table_name;
00076 }
00077
00078 void fill();
00079
00080 public:
00081 Generator(drizzled::Field **arg);
00082 bool populate();
00083
00084 };
00085
00086 Generator *generator(drizzled::Field **arg)
00087 {
00088 return new Generator(arg);
00089 }
00090 };
00091