My Project
|
00001 #ifndef SQL_TMP_TABLE_INCLUDED 00002 #define SQL_TMP_TABLE_INCLUDED 00003 00004 /* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. 00005 00006 This program is free software; you can redistribute it and/or modify 00007 it under the terms of the GNU General Public License as published by 00008 the Free Software Foundation; version 2 of the License. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program; if not, write to the Free Software 00017 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ 00018 00019 00027 #include "sql_list.h" 00028 #include "sql_class.h" 00029 #include "my_base.h" 00030 #include "field.h" 00031 #include "item.h" 00032 00033 class SJ_TMP_TABLE; 00034 struct TABLE; 00035 class THD; 00036 class TMP_TABLE_PARAM; 00037 typedef struct st_order ORDER; 00038 typedef struct st_columndef MI_COLUMNDEF; 00039 00040 TABLE * 00041 create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields, 00042 ORDER *group, bool distinct, bool save_sum_fields, 00043 ulonglong select_options, ha_rows rows_limit, 00044 const char *table_alias); 00053 TABLE *create_virtual_tmp_table(THD *thd, List<Create_field> &field_list); 00054 bool create_myisam_from_heap(THD *thd, TABLE *table, 00055 MI_COLUMNDEF *start_recinfo, 00056 MI_COLUMNDEF **recinfo, 00057 int error, bool ignore_last_dup, 00058 bool *is_duplicate); 00059 void free_tmp_table(THD *thd, TABLE *entry); 00060 TABLE *create_duplicate_weedout_tmp_table(THD *thd, 00061 uint uniq_tuple_length_arg, 00062 SJ_TMP_TABLE *sjtbl); 00063 bool instantiate_tmp_table(TABLE *table, KEY *keyinfo, 00064 MI_COLUMNDEF *start_recinfo, 00065 MI_COLUMNDEF **recinfo, 00066 ulonglong options, my_bool big_tables, 00067 Opt_trace_context *trace); 00068 Field *create_tmp_field(THD *thd, TABLE *table,Item *item, Item::Type type, 00069 Item ***copy_func, Field **from_field, 00070 Field **default_field, 00071 bool group, bool modify_item, 00072 bool table_cant_handle_bit_fields, 00073 bool make_copy_field); 00074 Field* create_tmp_field_from_field(THD *thd, Field* org_field, 00075 const char *name, TABLE *table, 00076 Item_field *item); 00077 00078 00079 #endif /* SQL_TMP_TABLE_INCLUDED */ 00080