24 #include <drizzled/table.h>
25 #include <drizzled/table_list.h>
26 #include <drizzled/table/concurrent.h>
32 void table_cache_free();
34 table::Cache &get_open_cache();
39 void set_item_name(Item *item,
char *pos,uint32_t length);
41 const char *length,
const char *decimal,
42 uint32_t type_modifier,
43 enum column_format_type column_format,
44 Item *default_value, Item *on_update_value,
46 const char *change, List<String> *interval_list,
47 const charset_info_st *
const cs);
48 CreateField * new_create_field(Session *session,
const char *field_name, enum_field_types type,
49 const char *length,
const char *decimals,
50 uint32_t type_modifier,
51 Item *default_value, Item *on_update_value,
52 str_ref comment,
const char *change,
53 List<String> *interval_list, charset_info_st *cs);
54 void push_new_name_resolution_context(Session&, TableList& left_op, TableList& right_op);
55 void add_join_on(TableList *b,Item *expr);
58 extern Item **not_found_item;
66 NON_AGG_FIELD_USED= 0,
84 RESOLVED_IGNORING_ALIAS,
85 RESOLVED_BEHIND_ALIAS,
86 RESOLVED_WITH_NO_ALIAS,
87 RESOLVED_AGAINST_ALIAS
89 Item ** find_item_in_list(Session *session,
90 Item *item, List<Item> &items, uint32_t *counter,
91 find_item_error_report_type report_error,
93 bool insert_fields(Session *session, Name_resolution_context *context,
94 const char *db_name,
const char *table_name,
95 List<Item>::iterator *it,
bool any_privileges);
96 bool setup_tables(Session *session, Name_resolution_context *context,
97 List<TableList> *from_clause, TableList *tables,
98 TableList **leaves,
bool select_insert);
99 bool setup_tables_and_check_access(Session *session,
100 Name_resolution_context *context,
101 List<TableList> *from_clause,
105 int setup_wild(Session *session, List<Item> &fields,
106 List<Item> *sum_func_list,
108 bool setup_fields(Session *session, Item** ref_pointer_array,
109 List<Item> &item, enum_mark_columns mark_used_columns,
110 List<Item> *sum_func_list,
bool allow_sum_func);
111 inline bool setup_fields_with_no_wrap(Session *session, Item **ref_pointer_array,
113 enum_mark_columns mark_used_columns,
114 List<Item> *sum_func_list,
118 res= setup_fields(session, ref_pointer_array, item, mark_used_columns, sum_func_list,
122 int setup_conds(Session *session, TableList *leaves, COND **conds);
124 TableList *find_table_in_list(TableList *table,
125 TableList *TableList::*link,
127 const char *table_name);
128 TableList *unique_table(TableList *table, TableList *table_list,
129 bool check_alias=
false);
132 #define RTFC_NO_FLAG 0x0000
133 #define RTFC_OWNED_BY_Session_FLAG 0x0001
134 #define RTFC_WAIT_OTHER_THREAD_FLAG 0x0002
135 #define RTFC_CHECK_KILLED_FLAG 0x0004
137 void mem_alloc_error(
size_t size);
139 bool fill_record(Session* session, List<Item> &fields, List<Item> &values,
bool ignore_errors=
false);
140 bool fill_record(Session *session, Field **field, List<Item> &values,
bool ignore_errors=
false);
141 inline TableList *find_table_in_global_list(TableList *table,
143 const char *table_name)
146 db_name, table_name);
149 void drizzle_rm_tmp_tables();
TODO: Rename this file - func.h is stupid.
bool add_field_to_list(Session *session, str_ref field_name, enum enum_field_types type, const char *length, const char *decimal, uint32_t type_modifier, enum column_format_type column_format, Item *default_value, Item *on_update_value, str_ref comment, const char *change, List< String > *interval_list, const charset_info_st *const cs)
void add_join_natural(TableList *a, TableList *b, List< String > *using_fields, Select_Lex *lex)
Visibility Control Macros.