00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #pragma once
00024
00025 namespace drizzled {
00026 namespace table {
00027
00028 class Singular : public Table
00029 {
00030 TableShare _share;
00031 bool _has_variable_width;
00032
00033 public:
00034 Singular() :
00035 _share(message::Table::INTERNAL),
00036 _has_variable_width(false)
00037 {
00038 }
00039
00040 Singular(Session *session, std::list<CreateField>&);
00041
00042 TableShare *getMutableShare()
00043 {
00044 return &_share;
00045 }
00046
00047 void setShare(TableShare *)
00048 {
00049 assert(0);
00050 }
00051
00052 const TableShare *getShare() const
00053 {
00054 return &_share;
00055 }
00056
00057 bool hasShare() const { return true; }
00058
00059 void release() {};
00060
00061 bool hasVariableWidth() const
00062 {
00063 return _has_variable_width;
00064 }
00065
00066 bool create_myisam_tmp_table(KeyInfo *keyinfo,
00067 MI_COLUMNDEF *start_recinfo,
00068 MI_COLUMNDEF **recinfo,
00069 uint64_t options);
00070 void setup_tmp_table_column_bitmaps();
00071 bool open_tmp_table();
00072
00073 void setVariableWidth()
00074 {
00075 _has_variable_width= true;
00076 }
00077
00078 ~Singular();
00079 };
00080
00081 }
00082 }
00083