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 ShowColumns : public show_dictionary::Show
00024 {
00025 public:
00026 ShowColumns();
00027
00028 bool visible() const { return false; }
00029
00030 class Generator : public show_dictionary::Show::Generator
00031 {
00032 bool is_tables_primed;
00033 bool is_columns_primed;
00034
00035 int32_t column_iterator;
00036 drizzled::message::table::shared_ptr table_proto;
00037 drizzled::message::Table::Field column;
00038
00039 bool nextColumnCore();
00040 bool nextColumn();
00041
00042 std::string table_name;
00043
00044 drizzled::message::table::shared_ptr getTableProto()
00045 {
00046 return table_proto;
00047 }
00048
00049 bool isTablesPrimed()
00050 {
00051 return is_tables_primed;
00052 }
00053
00054 const std::string &getTableName()
00055 {
00056 return table_name;
00057 }
00058
00059 void pushType(drizzled::message::Table::Field::FieldType type, const std::string collation);
00060
00061 void fill();
00062
00063 public:
00064 Generator(drizzled::Field **arg);
00065 bool populate();
00066
00067 };
00068
00069 Generator *generator(drizzled::Field **arg)
00070 {
00071 return new Generator(arg);
00072 }
00073 };
00074