~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to include/mysql/plugin.h

MergingĀ fromĀ Mark.

Show diffs side-by-side

added added

removed removed

Lines of Context:
57
57
  Plugin API. Common for all plugin types.
58
58
*/
59
59
 
60
 
#define MYSQL_PLUGIN_INTERFACE_VERSION 0x0100
61
 
 
62
60
/*
63
61
  The allowable types of plugins
64
62
*/
89
87
 
90
88
 
91
89
#ifndef MYSQL_DYNAMIC_PLUGIN
92
 
#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS)                   \
93
 
int VERSION= MYSQL_PLUGIN_INTERFACE_VERSION;                                  \
94
 
int PSIZE= sizeof(struct st_mysql_plugin);                                    \
 
90
#define __MYSQL_DECLARE_PLUGIN(NAME, DECLS) \
95
91
struct st_mysql_plugin DECLS[]= {
96
92
#else
97
 
#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS)                   \
98
 
int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTERFACE_VERSION;         \
99
 
int _mysql_sizeof_struct_st_plugin_= sizeof(struct st_mysql_plugin);          \
 
93
#define __MYSQL_DECLARE_PLUGIN(NAME, DECLS) \
100
94
struct st_mysql_plugin _mysql_plugin_declarations_[]= {
101
95
#endif
102
96
 
103
97
#define mysql_declare_plugin(NAME) \
104
98
__MYSQL_DECLARE_PLUGIN(NAME, \
105
 
                 builtin_ ## NAME ## _plugin_interface_version, \
106
 
                 builtin_ ## NAME ## _sizeof_struct_st_plugin, \
107
99
                 builtin_ ## NAME ## _plugin)
108
100
 
109
 
#define mysql_declare_plugin_end ,{0,0,0,0,0,0,0,0,0,0,0,0}}
 
101
#define mysql_declare_plugin_end ,{0,0,0,0,0,0,0,0,0,0,0}}
110
102
 
111
103
/*
112
104
  declarations for SHOW STATUS support in plugins
392
384
struct st_mysql_plugin
393
385
{
394
386
  int type;             /* the plugin type (a MYSQL_XXX_PLUGIN value)   */
395
 
  void *info;           /* pointer to type-specific plugin descriptor   */
396
 
  const char *name;     /* plugin name                                  */
 
387
  const char *name;     /* plugin name (for SHOW PLUGINS)               */
 
388
  const char *version;  /* plugin version (for SHOW PLUGINS)            */
397
389
  const char *author;   /* plugin author (for SHOW PLUGINS)             */
398
390
  const char *descr;    /* general descriptive text (for SHOW PLUGINS ) */
399
391
  int license;          /* the plugin license (PLUGIN_LICENSE_XXX)      */
400
392
  int (*init)(void *);  /* the function to invoke when plugin is loaded */
401
393
  int (*deinit)(void *);/* the function to invoke when plugin is unloaded */
402
 
  unsigned int version; /* plugin version (for SHOW PLUGINS)            */
403
394
  struct st_mysql_show_var *status_vars;
404
395
  struct st_mysql_sys_var **system_vars;
405
396
  void * __reserved1;   /* reserved for dependency checking             */
406
397
};
407
398
 
408
 
/*************************************************************************
409
 
  API for Daemon plugin. (MYSQL_DAEMON_PLUGIN)
410
 
*/
411
 
 
412
 
/* handlertons of different MySQL releases are incompatible */
413
 
#define MYSQL_DAEMON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
414
 
 
415
 
/*
416
 
  Here we define only the descriptor structure, that is referred from
417
 
  st_mysql_plugin.
418
 
*/
419
 
 
420
 
struct st_mysql_daemon
421
 
{
422
 
  int interface_version;
423
 
};
424
 
 
425
 
 
426
 
/*************************************************************************
427
 
  API for UDF plugin. (MYSQL_UDF_PLUGIN)
428
 
*/
429
 
 
430
 
/* handlertons of different MySQL releases are incompatible */
431
 
#define MYSQL_UDF_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
432
 
 
433
 
/*
434
 
  Here we define only the descriptor structure, that is referred from
435
 
  st_mysql_plugin.
436
 
*/
437
 
 
438
 
struct st_mysql_udf
439
 
{
440
 
  int interface_version;
441
 
};
442
 
 
443
 
 
444
 
/*************************************************************************
445
 
  API for UDA plugin. (MYSQL_UDA_PLUGIN)
446
 
*/
447
 
 
448
 
/* handlertons of different MySQL releases are incompatible */
449
 
#define MYSQL_UDA_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
450
 
 
451
 
/*
452
 
  Here we define only the descriptor structure, that is referred from
453
 
  st_mysql_plugin.
454
 
*/
455
 
 
456
 
struct st_mysql_uda
457
 
{
458
 
  int interface_version;
459
 
};
460
 
 
461
 
 
462
 
/*************************************************************************
463
 
  API for I_S plugin. (MYSQL_INFORMATION_SCHEMA_PLUGIN)
464
 
*/
465
 
 
466
 
/* handlertons of different MySQL releases are incompatible */
467
 
#define MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
468
 
 
469
 
/*
470
 
  Here we define only the descriptor structure, that is referred from
471
 
  st_mysql_plugin.
472
 
*/
473
 
 
474
 
struct st_mysql_information_schema
475
 
{
476
 
  int interface_version;
477
 
};
478
 
 
479
 
 
480
 
/*************************************************************************
481
 
  API for Log plugin. (MYSQL_LOG_PLUGIN)
482
 
*/
483
 
 
484
 
/* handlertons of different MySQL releases are incompatible */
485
 
#define MYSQL_LOG_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
486
 
 
487
 
/*
488
 
  Here we define only the descriptor structure, that is referred from
489
 
  st_mysql_plugin.
490
 
*/
491
 
 
492
 
struct st_mysql_log
493
 
{
494
 
  int interface_version;
495
 
};
496
 
 
497
 
 
498
 
/*************************************************************************
499
 
  API for Auth plugin. (MYSQL_AUTH_PLUGIN)
500
 
*/
501
 
 
502
 
/* handlertons of different MySQL releases are incompatible */
503
 
#define MYSQL_AUTH_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
504
 
 
505
 
/*
506
 
  Here we define only the descriptor structure, that is referred from
507
 
  st_mysql_plugin.
508
 
*/
509
 
 
510
 
struct st_auth_schema
511
 
{
512
 
  int interface_version;
513
 
};
514
 
 
515
 
 
516
 
/*************************************************************************
517
 
  API for Storage Engine plugin. (MYSQL_STORAGE_ENGINE_PLUGIN)
518
 
*/
519
 
 
520
 
/* handlertons of different MySQL releases are incompatible */
521
 
#define MYSQL_HANDLERTON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
522
 
 
523
 
/*
524
 
  The real API is in the sql/handler.h
525
 
  Here we define only the descriptor structure, that is referred from
526
 
  st_mysql_plugin.
527
 
*/
528
 
 
529
 
struct st_mysql_storage_engine
530
 
{
531
 
  int interface_version;
532
 
};
533
 
 
534
399
struct handlerton;
535
400
 
536
401