~drizzle-trunk/drizzle/development

1999.6.1 by kalebral at gmail
update Copyright strings to a more common format to help with creating the master debian copyright file
1
/* Copyright (C) 2008 PrimeBase Technologies GmbH, Germany
1548.2.1 by Barry.Leslie at PrimeBase
Added the PBMS daemon plugin.
2
 *
3
 * PrimeBase Media Stream for MySQL
4
 *
5
 * This program is free software; you can redistribute it and/or modify
6
 * it under the terms of the GNU General Public License as published by
7
 * the Free Software Foundation; either version 2 of the License, or
8
 * (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
1802.10.2 by Monty Taylor
Update all of the copyright headers to include the correct address.
17
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
1548.2.1 by Barry.Leslie at PrimeBase
Added the PBMS daemon plugin.
18
 *
19
 * Original author: Paul McCullagh (H&G2JCtL)
20
 * Continued development: Barry Leslie
21
 *
22
 * 2007-07-04
23
 *
24
 * Global definitions.
25
 *
26
 */
27
28
#ifndef __DEFS_MS_H__
29
#define __DEFS_MS_H__
30
1548.2.2 by Barry.Leslie at PrimeBase
A lot of minor changes to clean up the code and to get it to build with Drizzle.
31
#include "cslib/CSDefs.h"
1548.2.1 by Barry.Leslie at PrimeBase
Added the PBMS daemon plugin.
32
33
#define MS_IDENTIFIER_CHAR_COUNT	64
34
35
#define MS_IDENTIFIER_NAME_SIZE		((MS_IDENTIFIER_CHAR_COUNT * 3) + 1)	// The identifier length as UTF-8
36
37
#define MS_TABLE_NAME_SIZE			MS_IDENTIFIER_NAME_SIZE					// The maximum length of a table name 
38
#define MS_DATABASE_NAME_SIZE		MS_IDENTIFIER_NAME_SIZE
39
40
#define MS_TABLE_URL_SIZE			(MS_DATABASE_NAME_SIZE + MS_TABLE_NAME_SIZE)
41
42
#define MS_CONNECTION_THREAD		1000
43
#define MS_TEMP_LOG_THREAD			1001
44
#define MS_COMPACTOR_THREAD			1002
45
46
#ifdef DEBUG
47
#define MS_DEFAULT_TEMP_LOG_WAIT	(200*60)
48
49
// Set MS_DEFAULT_TEMP_LOG_WAIT high to prevent 
50
// BLOBs from being deleted while walking through 
51
// the code in the debugger.
52
//#define MS_DEFAULT_TEMP_LOG_WAIT	(200*60) 
53
#else
54
#define MS_DEFAULT_TEMP_LOG_WAIT	(10*60)
55
#endif
56
57
/* Default compactor wait time in seconds! */
58
#define MS_COMPACTOR_POLLS
59
#ifdef MS_COMPACTOR_POLLS
60
#ifdef DEBUG
61
#define MS_COMPACTOR_POLL_FREQ		1000		// milli-seconds
62
#else
63
#define MS_COMPACTOR_POLL_FREQ		3000
64
#endif
65
#else
66
#ifdef DEBUG
67
#define MS_DEFAULT_COMPACTOR_WAIT	120
68
#else
69
#define MS_DEFAULT_COMPACTOR_WAIT	30
70
#endif
71
#endif
72
73
#ifdef DEBUG
74
//#define MS_DEFAULT_GARBAGE_LEVEL	1
75
#define MS_DEFAULT_GARBAGE_LEVEL	10
76
#else
77
#define MS_DEFAULT_GARBAGE_LEVEL	50
78
#endif
79
80
#ifdef DEBUG
81
#define MS_REPO_THRESHOLD_DEF		"20MB"
82
//#define MS_REPO_THRESHOLD_DEF		"32K"
83
#else
84
#define MS_REPO_THRESHOLD_DEF		"128MB"
85
#endif
86
87
#ifdef DEBUG
88
#define MS_TEMP_LOG_THRESHOLD_DEF	"32K"
89
#else
90
#define MS_TEMP_LOG_THRESHOLD_DEF	"32MB"
91
#endif
92
93
#define MS_HTTP_METADATA_HEADERS_DEF "Content-Type"
94
95
#ifdef DEBUG
96
#define MS_COMPACTOR_BUFFER_SIZE	(4*1024)
97
#else
98
#define MS_COMPACTOR_BUFFER_SIZE	(64*1024)
99
#endif
100
101
#define MS_BACKUP_BUFFER_SIZE MS_COMPACTOR_BUFFER_SIZE
102
103
/*
104
 * The time (in seconds) that a connection thread will stay alive, when it is idle:
105
 */
106
#ifdef DEBUG
107
#define MS_IDLE_THREAD_TIMEOUT		(10)
108
#else
109
#define MS_IDLE_THREAD_TIMEOUT		(40)
110
#endif
111
112
/*
113
 * The timeout, in milli-seconds, before the HTTP server will close an inactive HTTP connection.
114
*/
115
#define MS_DEFAULT_KEEP_ALIVE		(10) 
116
117
#ifdef DRIZZLED
1841.1.3 by Barry.Leslie at PrimeBase
Merged changes from lp:pbms. These changes should remove any danger
118
#include <boost/dynamic_bitset.hpp>
1548.2.1 by Barry.Leslie at PrimeBase
Added the PBMS daemon plugin.
119
/* Drizzle is stuck at this level: */
120
#define MYSQL_VERSION_ID					60005
121
122
#define TABLE_LIST							TableList
1548.2.2 by Barry.Leslie at PrimeBase
A lot of minor changes to clean up the code and to get it to build with Drizzle.
123
#define TABLE								drizzled::Table
124
#define Field								drizzled::Field
125
//#define enum_field_types					drizzled::enum_field_types
126
127
#define my_charset_bin						drizzled::my_charset_bin
128
#define THR_LOCK							drizzled::THR_LOCK
129
1548.2.1 by Barry.Leslie at PrimeBase
Added the PBMS daemon plugin.
130
#define TABLE_SHARE							TableShare
1548.2.2 by Barry.Leslie at PrimeBase
A lot of minor changes to clean up the code and to get it to build with Drizzle.
131
#define THD									drizzled::Session
1548.2.1 by Barry.Leslie at PrimeBase
Added the PBMS daemon plugin.
132
#define MYSQL_THD							Session *
133
#define THR_THD								THR_Session
134
#define STRUCT_TABLE						class Table
1802.16.13 by Padraig O'Sullivan
Fixes for pbms compile errors after removing MyBitmap.
135
#define MY_BITMAP							boost::dynamic_bitset<>
1548.2.1 by Barry.Leslie at PrimeBase
Added the PBMS daemon plugin.
136
137
#define MYSQL_TYPE_TIMESTAMP				DRIZZLE_TYPE_TIMESTAMP
138
#define MYSQL_TYPE_LONG						DRIZZLE_TYPE_LONG
139
#define MYSQL_TYPE_SHORT					DRIZZLE_TYPE_LONG
140
#define MYSQL_TYPE_STRING					DRIZZLE_TYPE_VARCHAR
141
#define MYSQL_TYPE_VARCHAR					DRIZZLE_TYPE_VARCHAR
142
#define MYSQL_TYPE_LONGLONG					DRIZZLE_TYPE_LONGLONG
143
#define MYSQL_TYPE_BLOB						DRIZZLE_TYPE_BLOB
144
#define MYSQL_TYPE_LONG_BLOB				DRIZZLE_TYPE_BLOB
145
#define MYSQL_TYPE_ENUM						DRIZZLE_TYPE_ENUM
146
#define MYSQL_PLUGIN_VAR_HEADER				DRIZZLE_PLUGIN_VAR_HEADER
147
#define MYSQL_STORAGE_ENGINE_PLUGIN			DRIZZLE_STORAGE_ENGINE_PLUGIN
148
#define MYSQL_INFORMATION_SCHEMA_PLUGIN		DRIZZLE_INFORMATION_SCHEMA_PLUGIN
149
#define memcpy_fixed						memcpy
150
#define bfill(m, len, ch)					memset(m, ch, len)
151
152
#define mx_tmp_use_all_columns(x, y)		(x)->use_all_columns(y)
153
#define mx_tmp_restore_column_map(x, y)		(x)->restore_column_map(y)
154
155
#define MX_TABLE_TYPES_T					handler::Table_flags
156
#define MX_UINT8_T							uint8_t
157
#define MX_ULONG_T							uint32_t
158
#define MX_ULONGLONG_T						uint64_t
159
#define MX_LONGLONG_T						uint64_t
160
#define MX_CHARSET_INFO						struct charset_info_st
161
#define MX_CONST_CHARSET_INFO				const struct charset_info_st			
162
#define MX_CONST							const
163
#define my_bool								bool
164
#define int16								int16_t
165
#define int32								int32_t
166
#define uint16								uint16_t
167
#define uint32								uint32_t
168
#define uchar								unsigned char
169
#define longlong							int64_t
170
#define ulonglong							uint64_t
171
172
#define HAVE_LONG_LONG
173
174
#define my_malloc(x, y)						malloc(x)
175
#define my_free(x, y)						free(x)
176
177
#define HA_CAN_SQL_HANDLER					0
178
#define HA_CAN_INSERT_DELAYED				0
179
#define HA_BINLOG_ROW_CAPABLE				0
180
181
#define max									cmax
182
#define min									cmin
183
184
#define NullS								NULL
185
186
#define current_thd							current_session
187
#define thd_charset							session_charset
188
#define thd_query							session_query
189
#define thd_slave_thread					session_slave_thread
190
#define thd_non_transactional_update		session_non_transactional_update
191
#define thd_binlog_format					session_binlog_format
192
#define thd_mark_transaction_to_rollback	session_mark_transaction_to_rollback
193
#define current_thd							current_session
194
#define thd_sql_command						session_sql_command
195
#define thd_test_options					session_test_options
196
#define thd_killed							session_killed
197
#define thd_tx_isolation					session_tx_isolation
198
#define thd_in_lock_tables					session_in_lock_tables
199
#define thd_tablespace_op					session_tablespace_op
200
#define thd_alloc							session_alloc
201
#define thd_make_lex_string					session_make_lex_string
202
203
#define my_pthread_setspecific_ptr(T, V)	pthread_setspecific(T, (void*) (V))
204
205
#define mysql_real_data_home				drizzle_real_data_home
206
1548.2.2 by Barry.Leslie at PrimeBase
A lot of minor changes to clean up the code and to get it to build with Drizzle.
207
#define mi_int4store(T,A)   { uint32_t def_temp= (uint32_t) (A);\
208
                              ((unsigned char*) (T))[3]= (unsigned char) (def_temp);\
209
                              ((unsigned char*) (T))[2]= (unsigned char) (def_temp >> 8);\
210
                              ((unsigned char*) (T))[1]= (unsigned char) (def_temp >> 16);\
211
                              ((unsigned char*) (T))[0]= (unsigned char) (def_temp >> 24); }
212
213
#define mi_uint4korr(A) ((uint32_t) (((uint32_t) (((const unsigned char*) (A))[3])) +\
214
                                   (((uint32_t) (((const unsigned char*) (A))[2])) << 8) +\
215
                                   (((uint32_t) (((const unsigned char*) (A))[1])) << 16) +\
216
                                   (((uint32_t) (((const unsigned char*) (A))[0])) << 24)))
217
								   
218
#define mi_int8store(T,A)   { uint64_t def_temp= (uint64_t) (A);\
219
                              ((unsigned char*) (T))[7]= (unsigned char) (def_temp);\
220
                              ((unsigned char*) (T))[6]= (unsigned char) (def_temp >> 8);\
221
                              ((unsigned char*) (T))[5]= (unsigned char) (def_temp >> 16);\
222
                              ((unsigned char*) (T))[4]= (unsigned char) (def_temp >> 24);\
223
                              ((unsigned char*) (T))[3]= (unsigned char) (def_temp >> 32);\
224
                              ((unsigned char*) (T))[2]= (unsigned char) (def_temp >> 40);\
225
                              ((unsigned char*) (T))[1]= (unsigned char) (def_temp >> 48);\
226
                              ((unsigned char*) (T))[0]= (unsigned char) (def_temp >> 56); }
227
228
#define mi_uint8korr(A) ((uint64_t) (((uint64_t) (((const unsigned char*) (A))[7])) +\
229
                                   (((uint64_t) (((const unsigned char*) (A))[6])) << 8) +\
230
                                   (((uint64_t) (((const unsigned char*) (A))[5])) << 16) +\
231
                                   (((uint64_t) (((const unsigned char*) (A))[4])) << 24) +\
232
                                   (((uint64_t) (((const unsigned char*) (A))[3])) << 32) +\
233
                                   (((uint64_t) (((const unsigned char*) (A))[2])) << 40) +\
234
                                   (((uint64_t) (((const unsigned char*) (A))[1])) << 48) +\
235
                                   (((uint64_t) (((const unsigned char*) (A))[0])) << 56)))
236
								   
1548.2.1 by Barry.Leslie at PrimeBase
Added the PBMS daemon plugin.
237
#else // DRIZZLED
238
/* The MySQL case: */
239
#define STRUCT_TABLE						struct st_table
240
241
#define mx_tmp_use_all_columns				dbug_tmp_use_all_columns
242
#define mx_tmp_restore_column_map(x, y)		dbug_tmp_restore_column_map((x)->read_set, y)
243
244
#define MX_TABLE_TYPES_T					ulonglong
245
#define MX_UINT8_T							uint8
246
#define MX_ULONG_T							ulong
247
#define MX_ULONGLONG_T						ulonglong
248
#define MX_LONGLONG_T						longlong
249
#define MX_CHARSET_INFO						CHARSET_INFO
250
#define MX_CONST_CHARSET_INFO				struct charset_info_st			
251
#define MX_CONST							
252
253
#endif // DRIZZLED
254
255
#endif