22
#ifndef DRIZZLED_SQL_BASE_H
23
#define DRIZZLED_SQL_BASE_H
25
24
#include <drizzled/table.h>
25
#include <drizzled/table_list.h>
26
26
#include <drizzled/table/concurrent.h>
28
#include "drizzled/visibility.h"
33
class Name_resolution_context;
35
void table_cache_free(void);
36
bool table_cache_init(void);
37
uint32_t cached_open_tables(void);
38
uint32_t cached_table_definitions(void);
28
#include <drizzled/visibility.h>
32
void table_cache_free();
40
34
table::Cache &get_open_cache();
42
DRIZZLED_API void kill_drizzle(void);
36
DRIZZLED_API void kill_drizzle();
45
39
void set_item_name(Item *item,char *pos,uint32_t length);
46
bool add_field_to_list(Session *session, LEX_STRING *field_name, enum enum_field_types type,
47
char *length, char *decimal,
40
bool add_field_to_list(Session *session, lex_string_t *field_name, enum enum_field_types type,
41
const char *length, const char *decimal,
48
42
uint32_t type_modifier,
49
43
enum column_format_type column_format,
50
44
Item *default_value, Item *on_update_value,
52
char *change, List<String> *interval_list,
53
const CHARSET_INFO * const cs);
54
CreateField * new_create_field(Session *session, char *field_name, enum_field_types type,
55
char *length, char *decimals,
45
lex_string_t *comment,
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,
56
50
uint32_t type_modifier,
57
51
Item *default_value, Item *on_update_value,
58
LEX_STRING *comment, char *change,
59
List<String> *interval_list, CHARSET_INFO *cs);
60
bool push_new_name_resolution_context(Session *session,
52
lex_string_t *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);
63
55
void add_join_on(TableList *b,Item *expr);
64
56
void add_join_natural(TableList *a,TableList *b,List<String> *using_fields,
100
92
enum_resolution_type *resolution);
101
93
bool insert_fields(Session *session, Name_resolution_context *context,
102
94
const char *db_name, const char *table_name,
103
List_iterator<Item> *it, bool any_privileges);
95
List<Item>::iterator *it, bool any_privileges);
104
96
bool setup_tables(Session *session, Name_resolution_context *context,
105
97
List<TableList> *from_clause, TableList *tables,
106
98
TableList **leaves, bool select_insert);