~drizzle-trunk/drizzle/development

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
/*
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
 *
 *  Copyright (C) 2008 Sun Microsystems
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; version 2 of the License.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */

/**
 * @file
 *
 * Various server-wide declarations and variables.
 */

#ifndef DRIZZLED_SERVER_INCLUDES_H
#define DRIZZLED_SERVER_INCLUDES_H

/* Cross-platform portability code and standard includes */
#include "config.h"
/* Contains system-wide constants and #defines */
#include <drizzled/definitions.h>

/* Lots of system-wide struct definitions like IO_CACHE,
   prototypes for all my_* functions */
#include <mysys/my_sys.h>
/* Custom C string functions */
#include <mystrings/m_string.h>
#include <drizzled/sql_string.h>

/* Routines for dropping, repairing, checking schema tables */
#include <drizzled/sql_table.h>

/* for List */
#include <drizzled/sql_list.h>

/* Routines for printing error messages */
#include <drizzled/errmsg_print.h>

#include "drizzled/global_charset_info.h"

#include <cstdlib>
#include <string>
#include <vector>
#include <sstream>
#include <bitset>

typedef struct drizzle_lex_string LEX_STRING;
typedef struct st_typelib TYPELIB;


/* information schema */
extern const std::string INFORMATION_SCHEMA_NAME;

class Session;
class Table;

extern char *drizzle_tmpdir;
extern const LEX_STRING command_name[];
extern const char *first_keyword;
extern const char *binary_keyword;
extern const char *in_left_expr_name;
extern const char *in_additional_cond;
extern const char *in_having_cond;
extern char language[FN_REFLEN];
extern char glob_hostname[FN_REFLEN];
extern char drizzle_home[FN_REFLEN];
extern char pidfile_name[FN_REFLEN];
extern char system_time_zone[30];
extern char *opt_tc_log_file;
extern const double log_10[309];
extern uint64_t session_startup_options;
extern uint32_t global_thread_id;
extern uint64_t aborted_threads;
extern uint64_t aborted_connects;
extern uint64_t table_cache_size;
extern size_t table_def_size;
extern uint64_t max_connect_errors;
extern uint32_t back_log;
extern pid_t current_pid;
extern std::bitset<12> test_flags;
extern uint32_t ha_open_options;
extern char *drizzled_bind_host;
extern uint32_t drizzled_bind_timeout;
extern uint32_t dropping_tables;
extern bool opt_endinfo;
extern bool locked_in_memory;
extern bool volatile abort_loop;
extern bool volatile shutdown_in_progress;
extern uint32_t volatile thread_running;
extern uint32_t volatile global_read_lock;
extern bool opt_readonly;
extern char* opt_secure_file_priv;
extern char *default_tz_name;

extern FILE *stderror_file;
extern pthread_mutex_t LOCK_create_db;
extern pthread_mutex_t LOCK_open;
extern pthread_mutex_t LOCK_thread_count;
extern pthread_mutex_t LOCK_status;
extern pthread_mutex_t LOCK_global_read_lock;
extern pthread_mutex_t LOCK_global_system_variables;

extern pthread_rwlock_t LOCK_system_variables_hash;
extern pthread_cond_t COND_refresh;
extern pthread_cond_t COND_thread_count;
extern pthread_cond_t COND_global_read_lock;
extern pthread_attr_t connection_attrib;
extern std::vector<Session *> session_list;
extern struct system_variables max_system_variables;
extern struct system_status_var global_status_var;

extern Table *unused_tables;
extern struct my_option my_long_options[];
extern std::bitset<5> sql_command_flags[];

namespace drizzled { namespace plugin { class StorageEngine; } }
class TableList;
class TableShare;
class DRIZZLE_ERROR;

extern drizzled::plugin::StorageEngine *myisam_engine;
extern drizzled::plugin::StorageEngine *heap_engine;

extern SHOW_COMP_OPTION have_symlink;

extern pthread_t signal_thread;



int rename_file_ext(const char * from,const char * to,const char * ext);
bool check_column_name(const char *name);
bool check_table_name(const char *name, uint32_t length);



#endif /* DRIZZLED_SERVER_INCLUDES_H */