215
#define DECLARE_DRIZZLE_SYSVAR_BASIC(name, type) struct { \
216
DRIZZLE_PLUGIN_VAR_HEADER; \
221
#define DECLARE_MYSQL_SYSVAR_BASIC(name, type) struct { \
222
MYSQL_PLUGIN_VAR_HEADER; \
218
224
const type def_val; \
219
} DRIZZLE_SYSVAR_NAME(name)
225
} MYSQL_SYSVAR_NAME(name)
221
#define DECLARE_DRIZZLE_SYSVAR_SIMPLE(name, type) struct { \
222
DRIZZLE_PLUGIN_VAR_HEADER; \
227
#define DECLARE_MYSQL_SYSVAR_SIMPLE(name, type) struct { \
228
MYSQL_PLUGIN_VAR_HEADER; \
223
229
type *value; type def_val; \
224
230
type min_val; type max_val; \
226
} DRIZZLE_SYSVAR_NAME(name)
232
} MYSQL_SYSVAR_NAME(name)
228
#define DECLARE_DRIZZLE_SYSVAR_TYPELIB(name, type) struct { \
229
DRIZZLE_PLUGIN_VAR_HEADER; \
234
#define DECLARE_MYSQL_SYSVAR_TYPELIB(name, type) struct { \
235
MYSQL_PLUGIN_VAR_HEADER; \
230
236
type *value; type def_val; \
231
237
TYPELIB *typelib; \
232
} DRIZZLE_SYSVAR_NAME(name)
238
} MYSQL_SYSVAR_NAME(name)
234
240
#define DECLARE_THDVAR_FUNC(type) \
235
type *(*resolve)(DRIZZLE_THD thd, int offset)
241
type *(*resolve)(MYSQL_THD thd, int offset)
237
#define DECLARE_DRIZZLE_THDVAR_BASIC(name, type) struct { \
238
DRIZZLE_PLUGIN_VAR_HEADER; \
243
#define DECLARE_MYSQL_THDVAR_BASIC(name, type) struct { \
244
MYSQL_PLUGIN_VAR_HEADER; \
240
246
const type def_val; \
241
247
DECLARE_THDVAR_FUNC(type); \
242
} DRIZZLE_SYSVAR_NAME(name)
248
} MYSQL_SYSVAR_NAME(name)
244
#define DECLARE_DRIZZLE_THDVAR_SIMPLE(name, type) struct { \
245
DRIZZLE_PLUGIN_VAR_HEADER; \
250
#define DECLARE_MYSQL_THDVAR_SIMPLE(name, type) struct { \
251
MYSQL_PLUGIN_VAR_HEADER; \
247
253
type def_val; type min_val; \
248
254
type max_val; type blk_sz; \
249
255
DECLARE_THDVAR_FUNC(type); \
250
} DRIZZLE_SYSVAR_NAME(name)
256
} MYSQL_SYSVAR_NAME(name)
252
#define DECLARE_DRIZZLE_THDVAR_TYPELIB(name, type) struct { \
253
DRIZZLE_PLUGIN_VAR_HEADER; \
258
#define DECLARE_MYSQL_THDVAR_TYPELIB(name, type) struct { \
259
MYSQL_PLUGIN_VAR_HEADER; \
256
262
DECLARE_THDVAR_FUNC(type); \
257
263
TYPELIB *typelib; \
258
} DRIZZLE_SYSVAR_NAME(name)
264
} MYSQL_SYSVAR_NAME(name)
262
268
the following declarations are for use by plugin implementors
265
#define DRIZZLE_SYSVAR_BOOL(name, varname, opt, comment, check, update, def) \
266
DECLARE_DRIZZLE_SYSVAR_BASIC(name, bool) = { \
271
#define MYSQL_SYSVAR_BOOL(name, varname, opt, comment, check, update, def) \
272
DECLARE_MYSQL_SYSVAR_BASIC(name, char) = { \
267
273
PLUGIN_VAR_BOOL | ((opt) & PLUGIN_VAR_MASK), \
268
274
#name, comment, check, update, &varname, def}
270
#define DRIZZLE_SYSVAR_STR(name, varname, opt, comment, check, update, def) \
271
DECLARE_DRIZZLE_SYSVAR_BASIC(name, char *) = { \
276
#define MYSQL_SYSVAR_STR(name, varname, opt, comment, check, update, def) \
277
DECLARE_MYSQL_SYSVAR_BASIC(name, char *) = { \
272
278
PLUGIN_VAR_STR | ((opt) & PLUGIN_VAR_MASK), \
273
279
#name, comment, check, update, &varname, def}
275
#define DRIZZLE_SYSVAR_INT(name, varname, opt, comment, check, update, def, min, max, blk) \
276
DECLARE_DRIZZLE_SYSVAR_SIMPLE(name, int) = { \
281
#define MYSQL_SYSVAR_INT(name, varname, opt, comment, check, update, def, min, max, blk) \
282
DECLARE_MYSQL_SYSVAR_SIMPLE(name, int) = { \
277
283
PLUGIN_VAR_INT | ((opt) & PLUGIN_VAR_MASK), \
278
284
#name, comment, check, update, &varname, def, min, max, blk }
280
#define DRIZZLE_SYSVAR_UINT(name, varname, opt, comment, check, update, def, min, max, blk) \
281
DECLARE_DRIZZLE_SYSVAR_SIMPLE(name, unsigned int) = { \
286
#define MYSQL_SYSVAR_UINT(name, varname, opt, comment, check, update, def, min, max, blk) \
287
DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned int) = { \
282
288
PLUGIN_VAR_INT | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
283
289
#name, comment, check, update, &varname, def, min, max, blk }
285
#define DRIZZLE_SYSVAR_LONG(name, varname, opt, comment, check, update, def, min, max, blk) \
286
DECLARE_DRIZZLE_SYSVAR_SIMPLE(name, long) = { \
291
#define MYSQL_SYSVAR_LONG(name, varname, opt, comment, check, update, def, min, max, blk) \
292
DECLARE_MYSQL_SYSVAR_SIMPLE(name, long) = { \
287
293
PLUGIN_VAR_LONG | ((opt) & PLUGIN_VAR_MASK), \
288
294
#name, comment, check, update, &varname, def, min, max, blk }
290
#define DRIZZLE_SYSVAR_ULONG(name, varname, opt, comment, check, update, def, min, max, blk) \
291
DECLARE_DRIZZLE_SYSVAR_SIMPLE(name, unsigned long) = { \
296
#define MYSQL_SYSVAR_ULONG(name, varname, opt, comment, check, update, def, min, max, blk) \
297
DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned long) = { \
292
298
PLUGIN_VAR_LONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
293
299
#name, comment, check, update, &varname, def, min, max, blk }
295
#define DRIZZLE_SYSVAR_LONGLONG(name, varname, opt, comment, check, update, def, min, max, blk) \
296
DECLARE_DRIZZLE_SYSVAR_SIMPLE(name, int64_t) = { \
301
#define MYSQL_SYSVAR_LONGLONG(name, varname, opt, comment, check, update, def, min, max, blk) \
302
DECLARE_MYSQL_SYSVAR_SIMPLE(name, int64_t) = { \
297
303
PLUGIN_VAR_LONGLONG | ((opt) & PLUGIN_VAR_MASK), \
298
304
#name, comment, check, update, &varname, def, min, max, blk }
300
#define DRIZZLE_SYSVAR_ULONGLONG(name, varname, opt, comment, check, update, def, min, max, blk) \
301
DECLARE_DRIZZLE_SYSVAR_SIMPLE(name, uint64_t) = { \
306
#define MYSQL_SYSVAR_ULONGLONG(name, varname, opt, comment, check, update, def, min, max, blk) \
307
DECLARE_MYSQL_SYSVAR_SIMPLE(name, uint64_t) = { \
302
308
PLUGIN_VAR_LONGLONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
303
309
#name, comment, check, update, &varname, def, min, max, blk }
305
#define DRIZZLE_SYSVAR_ENUM(name, varname, opt, comment, check, update, def, typelib) \
306
DECLARE_DRIZZLE_SYSVAR_TYPELIB(name, unsigned long) = { \
311
#define MYSQL_SYSVAR_ENUM(name, varname, opt, comment, check, update, def, typelib) \
312
DECLARE_MYSQL_SYSVAR_TYPELIB(name, unsigned long) = { \
307
313
PLUGIN_VAR_ENUM | ((opt) & PLUGIN_VAR_MASK), \
308
314
#name, comment, check, update, &varname, def, typelib }
310
#define DRIZZLE_SYSVAR_SET(name, varname, opt, comment, check, update, def, typelib) \
311
DECLARE_DRIZZLE_SYSVAR_TYPELIB(name, uint64_t) = { \
316
#define MYSQL_SYSVAR_SET(name, varname, opt, comment, check, update, def, typelib) \
317
DECLARE_MYSQL_SYSVAR_TYPELIB(name, uint64_t) = { \
312
318
PLUGIN_VAR_SET | ((opt) & PLUGIN_VAR_MASK), \
313
319
#name, comment, check, update, &varname, def, typelib }
315
#define DRIZZLE_THDVAR_BOOL(name, opt, comment, check, update, def) \
316
DECLARE_DRIZZLE_THDVAR_BASIC(name, char) = { \
321
#define MYSQL_THDVAR_BOOL(name, opt, comment, check, update, def) \
322
DECLARE_MYSQL_THDVAR_BASIC(name, char) = { \
317
323
PLUGIN_VAR_BOOL | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
318
324
#name, comment, check, update, -1, def, NULL}
320
#define DRIZZLE_THDVAR_STR(name, opt, comment, check, update, def) \
321
DECLARE_DRIZZLE_THDVAR_BASIC(name, char *) = { \
326
#define MYSQL_THDVAR_STR(name, opt, comment, check, update, def) \
327
DECLARE_MYSQL_THDVAR_BASIC(name, char *) = { \
322
328
PLUGIN_VAR_STR | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
323
329
#name, comment, check, update, -1, def, NULL}
325
#define DRIZZLE_THDVAR_INT(name, opt, comment, check, update, def, min, max, blk) \
326
DECLARE_DRIZZLE_THDVAR_SIMPLE(name, int) = { \
331
#define MYSQL_THDVAR_INT(name, opt, comment, check, update, def, min, max, blk) \
332
DECLARE_MYSQL_THDVAR_SIMPLE(name, int) = { \
327
333
PLUGIN_VAR_INT | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
328
334
#name, comment, check, update, -1, def, min, max, blk, NULL }
330
#define DRIZZLE_THDVAR_UINT(name, opt, comment, check, update, def, min, max, blk) \
331
DECLARE_DRIZZLE_THDVAR_SIMPLE(name, unsigned int) = { \
336
#define MYSQL_THDVAR_UINT(name, opt, comment, check, update, def, min, max, blk) \
337
DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned int) = { \
332
338
PLUGIN_VAR_INT | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
333
339
#name, comment, check, update, -1, def, min, max, blk, NULL }
335
#define DRIZZLE_THDVAR_LONG(name, opt, comment, check, update, def, min, max, blk) \
336
DECLARE_DRIZZLE_THDVAR_SIMPLE(name, long) = { \
341
#define MYSQL_THDVAR_LONG(name, opt, comment, check, update, def, min, max, blk) \
342
DECLARE_MYSQL_THDVAR_SIMPLE(name, long) = { \
337
343
PLUGIN_VAR_LONG | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
338
344
#name, comment, check, update, -1, def, min, max, blk, NULL }
340
#define DRIZZLE_THDVAR_ULONG(name, opt, comment, check, update, def, min, max, blk) \
341
DECLARE_DRIZZLE_THDVAR_SIMPLE(name, unsigned long) = { \
346
#define MYSQL_THDVAR_ULONG(name, opt, comment, check, update, def, min, max, blk) \
347
DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned long) = { \
342
348
PLUGIN_VAR_LONG | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
343
349
#name, comment, check, update, -1, def, min, max, blk, NULL }
345
#define DRIZZLE_THDVAR_LONGLONG(name, opt, comment, check, update, def, min, max, blk) \
346
DECLARE_DRIZZLE_THDVAR_SIMPLE(name, int64_t) = { \
351
#define MYSQL_THDVAR_LONGLONG(name, opt, comment, check, update, def, min, max, blk) \
352
DECLARE_MYSQL_THDVAR_SIMPLE(name, int64_t) = { \
347
353
PLUGIN_VAR_LONGLONG | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
348
354
#name, comment, check, update, -1, def, min, max, blk, NULL }
350
#define DRIZZLE_THDVAR_ULONGLONG(name, opt, comment, check, update, def, min, max, blk) \
351
DECLARE_DRIZZLE_THDVAR_SIMPLE(name, uint64_t) = { \
356
#define MYSQL_THDVAR_ULONGLONG(name, opt, comment, check, update, def, min, max, blk) \
357
DECLARE_MYSQL_THDVAR_SIMPLE(name, uint64_t) = { \
352
358
PLUGIN_VAR_LONGLONG | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
353
359
#name, comment, check, update, -1, def, min, max, blk, NULL }
355
#define DRIZZLE_THDVAR_ENUM(name, opt, comment, check, update, def, typelib) \
356
DECLARE_DRIZZLE_THDVAR_TYPELIB(name, unsigned long) = { \
361
#define MYSQL_THDVAR_ENUM(name, opt, comment, check, update, def, typelib) \
362
DECLARE_MYSQL_THDVAR_TYPELIB(name, unsigned long) = { \
357
363
PLUGIN_VAR_ENUM | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
358
364
#name, comment, check, update, -1, def, NULL, typelib }
360
#define DRIZZLE_THDVAR_SET(name, opt, comment, check, update, def, typelib) \
361
DECLARE_DRIZZLE_THDVAR_TYPELIB(name, uint64_t) = { \
366
#define MYSQL_THDVAR_SET(name, opt, comment, check, update, def, typelib) \
367
DECLARE_MYSQL_THDVAR_TYPELIB(name, uint64_t) = { \
362
368
PLUGIN_VAR_SET | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
363
369
#name, comment, check, update, -1, def, NULL, typelib }
365
371
/* accessor macros */
367
373
#define SYSVAR(name) \
368
(*(DRIZZLE_SYSVAR_NAME(name).value))
374
(*(MYSQL_SYSVAR_NAME(name).value))
370
376
/* when thd == null, result points to global value */
371
377
#define THDVAR(thd, name) \
372
(*(DRIZZLE_SYSVAR_NAME(name).resolve(thd, DRIZZLE_SYSVAR_NAME(name).offset)))
378
(*(MYSQL_SYSVAR_NAME(name).resolve(thd, MYSQL_SYSVAR_NAME(name).offset)))