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 #include <plugin/myisam/myisam.h>
00024
00025 namespace drizzled
00026 {
00027
00028 class CopyField;
00029
00030
00031
00032
00033
00034
00035
00036 class Tmp_Table_Param :public memory::SqlAlloc
00037 {
00038 private:
00039
00040 Tmp_Table_Param(const Tmp_Table_Param &);
00041 void operator=(Tmp_Table_Param &);
00042
00043 public:
00044 KeyInfo *keyinfo;
00045 List<Item> copy_funcs;
00046 List<Item> save_copy_funcs;
00047 CopyField *copy_field, *copy_field_end;
00048 CopyField *save_copy_field, *save_copy_field_end;
00049 unsigned char *group_buff;
00050 Item **items_to_copy;
00051 MI_COLUMNDEF *recinfo,*start_recinfo;
00052 ha_rows end_write_records;
00053 uint32_t field_count;
00054 uint32_t sum_func_count;
00055 uint32_t func_count;
00056 uint32_t hidden_field_count;
00057 uint32_t group_parts,group_length,group_null_parts;
00058 uint32_t quick_group;
00059 bool using_indirect_summary_function;
00060 bool schema_table;
00061
00062
00063
00064
00065
00066
00067
00068 bool precomputed_group_by;
00069
00070 bool force_copy_fields;
00071
00072
00073 uint32_t convert_blob_length;
00074
00075 const CHARSET_INFO *table_charset;
00076
00077 Tmp_Table_Param() :
00078 keyinfo(0),
00079 copy_funcs(),
00080 save_copy_funcs(),
00081 copy_field(0),
00082 copy_field_end(0),
00083 save_copy_field(0),
00084 save_copy_field_end(0),
00085 group_buff(0),
00086 items_to_copy(0),
00087 recinfo(0),
00088 start_recinfo(0),
00089 end_write_records(0),
00090 field_count(0),
00091 sum_func_count(0),
00092 func_count(0),
00093 hidden_field_count(0),
00094 group_parts(0),
00095 group_length(0),
00096 group_null_parts(0),
00097 quick_group(0),
00098 using_indirect_summary_function(false),
00099 schema_table(false),
00100 precomputed_group_by(false),
00101 force_copy_fields(false),
00102 convert_blob_length(0),
00103 table_charset(0)
00104 {}
00105
00106 ~Tmp_Table_Param()
00107 {
00108 cleanup();
00109 }
00110 void init(void);
00111 void cleanup(void);
00112 };
00113
00114 }
00115