mariadb/include/mysql/plugin.h.pp

169 lines
5.5 KiB
ObjectPascal
Raw Normal View History

#include <mysql/services.h>
#include <mysql/service_my_snprintf.h>
extern struct my_snprintf_service_st {
size_t (*my_snprintf_type)(char*, size_t, const char*, ...);
size_t (*my_vsnprintf_type)(char *, size_t, const char*, va_list);
} *my_snprintf_service;
size_t my_snprintf(char* to, size_t n, const char* fmt, ...);
size_t my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap);
#include <mysql/service_thd_alloc.h>
WL#4380 added a rule that use gcc to generate preprocessor output (gcc -E) that can be then compared to a already generated output using the diff utility. Ran make test on the repository to verify changes. Makefile.am: Added a rule for checking that the abi/api has not changed. The following steps are followed in the rule in makefile.am 1) Generate preprocessor output for the files that need to be tested for abi/api changes. use -nostdinc to prevent generation of preprocessor output for system headers. This results in messages in stderr saying that these headers were not found. Redirect the stderr output to /dev/null to prevent seeing these messages. 2) sed the output to remove blank lines and lines that begin with # (The header information is retained to enable easy analysis of abi diffs at a later stage). 3) diff the generated file and the canons (.pp files already in the repository). 4) delete the .out file that is generated. If the diff fails, the generated file is not removed. This will be useful for analysis of ABI differences (e.g. using a visual diff tool). A ABI change that causes a build to fail will always be accompanied by new canons (.out files). The .out files that are not removed will be replaced as the new .pp files. e.g. If include/mysql/plugin.h has an ABI change then this rule would leave a include/mysql/plugin.out file. A developer with a justified API change will then do a mv include/mysql/plugin.out include/mysql/plugin.pp to replace the old canons with the new ones. configure.in: 1) Removed the part of the file that was icheck related. 2) Added an entry for the configure variable DIFF include/mysql.h.pp: The pre-processor output canon file for include/mysql.h include/mysql/plugin.h.pp: The pre-processor output canon file for include/mysql/plugin.h include/mysql_h.ic: since the icheck target has been removed, this file need no longer be present in the repository sql/mysql_priv.h.pp: The pre-processor output canon file for sql/mysql_priv.h
2008-06-17 14:27:04 +02:00
struct st_mysql_lex_string
{
char *str;
size_t length;
WL#4380 added a rule that use gcc to generate preprocessor output (gcc -E) that can be then compared to a already generated output using the diff utility. Ran make test on the repository to verify changes. Makefile.am: Added a rule for checking that the abi/api has not changed. The following steps are followed in the rule in makefile.am 1) Generate preprocessor output for the files that need to be tested for abi/api changes. use -nostdinc to prevent generation of preprocessor output for system headers. This results in messages in stderr saying that these headers were not found. Redirect the stderr output to /dev/null to prevent seeing these messages. 2) sed the output to remove blank lines and lines that begin with # (The header information is retained to enable easy analysis of abi diffs at a later stage). 3) diff the generated file and the canons (.pp files already in the repository). 4) delete the .out file that is generated. If the diff fails, the generated file is not removed. This will be useful for analysis of ABI differences (e.g. using a visual diff tool). A ABI change that causes a build to fail will always be accompanied by new canons (.out files). The .out files that are not removed will be replaced as the new .pp files. e.g. If include/mysql/plugin.h has an ABI change then this rule would leave a include/mysql/plugin.out file. A developer with a justified API change will then do a mv include/mysql/plugin.out include/mysql/plugin.pp to replace the old canons with the new ones. configure.in: 1) Removed the part of the file that was icheck related. 2) Added an entry for the configure variable DIFF include/mysql.h.pp: The pre-processor output canon file for include/mysql.h include/mysql/plugin.h.pp: The pre-processor output canon file for include/mysql/plugin.h include/mysql_h.ic: since the icheck target has been removed, this file need no longer be present in the repository sql/mysql_priv.h.pp: The pre-processor output canon file for sql/mysql_priv.h
2008-06-17 14:27:04 +02:00
};
typedef struct st_mysql_lex_string MYSQL_LEX_STRING;
extern struct thd_alloc_service_st {
void *(*thd_alloc_func)(void*, unsigned int);
void *(*thd_calloc_func)(void*, unsigned int);
char *(*thd_strdup_func)(void*, const char *);
char *(*thd_strmake_func)(void*, const char *, unsigned int);
void *(*thd_memdup_func)(void*, const void*, unsigned int);
MYSQL_LEX_STRING *(*thd_make_lex_string_func)(void*, MYSQL_LEX_STRING *,
const char *, unsigned int, int);
} *thd_alloc_service;
void *thd_alloc(void* thd, unsigned int size);
void *thd_calloc(void* thd, unsigned int size);
char *thd_strdup(void* thd, const char *str);
char *thd_strmake(void* thd, const char *str, unsigned int size);
void *thd_memdup(void* thd, const void* str, unsigned int size);
MYSQL_LEX_STRING *thd_make_lex_string(void* thd, MYSQL_LEX_STRING *lex_str,
const char *str, unsigned int size,
int allocate_lex_string);
WL#4380 added a rule that use gcc to generate preprocessor output (gcc -E) that can be then compared to a already generated output using the diff utility. Ran make test on the repository to verify changes. Makefile.am: Added a rule for checking that the abi/api has not changed. The following steps are followed in the rule in makefile.am 1) Generate preprocessor output for the files that need to be tested for abi/api changes. use -nostdinc to prevent generation of preprocessor output for system headers. This results in messages in stderr saying that these headers were not found. Redirect the stderr output to /dev/null to prevent seeing these messages. 2) sed the output to remove blank lines and lines that begin with # (The header information is retained to enable easy analysis of abi diffs at a later stage). 3) diff the generated file and the canons (.pp files already in the repository). 4) delete the .out file that is generated. If the diff fails, the generated file is not removed. This will be useful for analysis of ABI differences (e.g. using a visual diff tool). A ABI change that causes a build to fail will always be accompanied by new canons (.out files). The .out files that are not removed will be replaced as the new .pp files. e.g. If include/mysql/plugin.h has an ABI change then this rule would leave a include/mysql/plugin.out file. A developer with a justified API change will then do a mv include/mysql/plugin.out include/mysql/plugin.pp to replace the old canons with the new ones. configure.in: 1) Removed the part of the file that was icheck related. 2) Added an entry for the configure variable DIFF include/mysql.h.pp: The pre-processor output canon file for include/mysql.h include/mysql/plugin.h.pp: The pre-processor output canon file for include/mysql/plugin.h include/mysql_h.ic: since the icheck target has been removed, this file need no longer be present in the repository sql/mysql_priv.h.pp: The pre-processor output canon file for sql/mysql_priv.h
2008-06-17 14:27:04 +02:00
struct st_mysql_xid {
long formatID;
long gtrid_length;
long bqual_length;
char data[128];
};
typedef struct st_mysql_xid MYSQL_XID;
enum enum_mysql_show_type
{
SHOW_UNDEF, SHOW_BOOL, SHOW_INT, SHOW_LONG,
SHOW_LONGLONG, SHOW_CHAR, SHOW_CHAR_PTR,
SHOW_ARRAY, SHOW_FUNC, SHOW_DOUBLE,
SHOW_always_last
WL#4380 added a rule that use gcc to generate preprocessor output (gcc -E) that can be then compared to a already generated output using the diff utility. Ran make test on the repository to verify changes. Makefile.am: Added a rule for checking that the abi/api has not changed. The following steps are followed in the rule in makefile.am 1) Generate preprocessor output for the files that need to be tested for abi/api changes. use -nostdinc to prevent generation of preprocessor output for system headers. This results in messages in stderr saying that these headers were not found. Redirect the stderr output to /dev/null to prevent seeing these messages. 2) sed the output to remove blank lines and lines that begin with # (The header information is retained to enable easy analysis of abi diffs at a later stage). 3) diff the generated file and the canons (.pp files already in the repository). 4) delete the .out file that is generated. If the diff fails, the generated file is not removed. This will be useful for analysis of ABI differences (e.g. using a visual diff tool). A ABI change that causes a build to fail will always be accompanied by new canons (.out files). The .out files that are not removed will be replaced as the new .pp files. e.g. If include/mysql/plugin.h has an ABI change then this rule would leave a include/mysql/plugin.out file. A developer with a justified API change will then do a mv include/mysql/plugin.out include/mysql/plugin.pp to replace the old canons with the new ones. configure.in: 1) Removed the part of the file that was icheck related. 2) Added an entry for the configure variable DIFF include/mysql.h.pp: The pre-processor output canon file for include/mysql.h include/mysql/plugin.h.pp: The pre-processor output canon file for include/mysql/plugin.h include/mysql_h.ic: since the icheck target has been removed, this file need no longer be present in the repository sql/mysql_priv.h.pp: The pre-processor output canon file for sql/mysql_priv.h
2008-06-17 14:27:04 +02:00
};
struct st_mysql_show_var {
const char *name;
char *value;
enum enum_mysql_show_type type;
};
typedef int (*mysql_show_var_func)(void*, struct st_mysql_show_var*, char *);
struct st_mysql_sys_var;
struct st_mysql_value;
typedef int (*mysql_var_check_func)(void* thd,
struct st_mysql_sys_var *var,
void *save, struct st_mysql_value *value);
typedef void (*mysql_var_update_func)(void* thd,
struct st_mysql_sys_var *var,
void *var_ptr, const void *save);
struct st_mysql_plugin
{
int type;
void *info;
const char *name;
const char *author;
const char *descr;
int license;
int (*init)(void *);
int (*deinit)(void *);
unsigned int version;
struct st_mysql_show_var *status_vars;
struct st_mysql_sys_var **system_vars;
void * __reserved1;
};
Backport from 6.0-codebase. WL#3771 "Audit Plugin Interface" Implement new plug-in type - AUDIT New plug-in: audit_null simply increments counter for how many times it was called. include/Makefile.am: wl3771 add new headers to distribution include/mysql/plugin.h: wl3771 define new AUDIT plugin type Split out fulltext plugin type into its own header include/mysql/plugin.h.pp: wl3771 no real API change, just re-arranged some code include/mysql/plugin_audit.h: wl3771 pluggable audit interface include/mysql/plugin_ftparser.h: wl3771 Split out fulltext plugin type into its own header libmysqld/CMakeLists.txt: wl3771 add sql_audit.cc to build libmysqld/Makefile.am: wl3771 add sql_audit.cc to build plugin/audit_null: wl3771 an example plugin for testing pluggable audit interface plugin/audit_null/Makefile.am: wl3771 an example plugin for testing pluggable audit interface plugin/audit_null/audit_null.c: wl3771 an example plugin for testing pluggable audit interface plugin/audit_null/plug.in: wl3771 an example plugin for testing pluggable audit interface sql/CMakeLists.txt: wl3771 add sql_audit.cc to build sql/Makefile.am: wl3771 add sql_audit.cc to build sql/event_queue.cc: wl3771 release audit resources before waiting sql/log.cc: wl3771 add general audit call for log sql/mysqld.cc: wl3771 add audit initialize/finalize add general audit call for error sql/sql_audit.cc: wl3771 pluggable audit interface implementation sql/sql_audit.h: wl3771 pluggable audit interface implementation sql/sql_class.cc: wl3771 add thd audit init/deinit calls sql/sql_class.h: wl3771 add required data structures for audit to THD sql/sql_connect.cc: wl3771 release audit resources before waiting sql/sql_insert.cc: wl3771 release audit plugins before waiting sql/sql_parse.cc: wl3771 add general audit call for results sql/sql_plugin.cc: wl3771 add declarations for audit plugin type
2009-12-15 20:52:47 +01:00
#include "plugin_ftparser.h"
#include "plugin.h"
WL#4380 added a rule that use gcc to generate preprocessor output (gcc -E) that can be then compared to a already generated output using the diff utility. Ran make test on the repository to verify changes. Makefile.am: Added a rule for checking that the abi/api has not changed. The following steps are followed in the rule in makefile.am 1) Generate preprocessor output for the files that need to be tested for abi/api changes. use -nostdinc to prevent generation of preprocessor output for system headers. This results in messages in stderr saying that these headers were not found. Redirect the stderr output to /dev/null to prevent seeing these messages. 2) sed the output to remove blank lines and lines that begin with # (The header information is retained to enable easy analysis of abi diffs at a later stage). 3) diff the generated file and the canons (.pp files already in the repository). 4) delete the .out file that is generated. If the diff fails, the generated file is not removed. This will be useful for analysis of ABI differences (e.g. using a visual diff tool). A ABI change that causes a build to fail will always be accompanied by new canons (.out files). The .out files that are not removed will be replaced as the new .pp files. e.g. If include/mysql/plugin.h has an ABI change then this rule would leave a include/mysql/plugin.out file. A developer with a justified API change will then do a mv include/mysql/plugin.out include/mysql/plugin.pp to replace the old canons with the new ones. configure.in: 1) Removed the part of the file that was icheck related. 2) Added an entry for the configure variable DIFF include/mysql.h.pp: The pre-processor output canon file for include/mysql.h include/mysql/plugin.h.pp: The pre-processor output canon file for include/mysql/plugin.h include/mysql_h.ic: since the icheck target has been removed, this file need no longer be present in the repository sql/mysql_priv.h.pp: The pre-processor output canon file for sql/mysql_priv.h
2008-06-17 14:27:04 +02:00
enum enum_ftparser_mode
{
MYSQL_FTPARSER_SIMPLE_MODE= 0,
MYSQL_FTPARSER_WITH_STOPWORDS= 1,
MYSQL_FTPARSER_FULL_BOOLEAN_INFO= 2
};
enum enum_ft_token_type
{
FT_TOKEN_EOF= 0,
FT_TOKEN_WORD= 1,
FT_TOKEN_LEFT_PAREN= 2,
FT_TOKEN_RIGHT_PAREN= 3,
FT_TOKEN_STOPWORD= 4
};
typedef struct st_mysql_ftparser_boolean_info
{
enum enum_ft_token_type type;
int yesno;
int weight_adjust;
char wasign;
char trunc;
char prev;
char *quot;
} MYSQL_FTPARSER_BOOLEAN_INFO;
typedef struct st_mysql_ftparser_param
{
int (*mysql_parse)(struct st_mysql_ftparser_param *,
char *doc, int doc_len);
int (*mysql_add_word)(struct st_mysql_ftparser_param *,
char *word, int word_len,
MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info);
void *ftparser_state;
void *mysql_ftparam;
struct charset_info_st *cs;
char *doc;
int length;
int flags;
enum enum_ftparser_mode mode;
} MYSQL_FTPARSER_PARAM;
struct st_mysql_ftparser
{
int interface_version;
int (*parse)(MYSQL_FTPARSER_PARAM *param);
int (*init)(MYSQL_FTPARSER_PARAM *param);
int (*deinit)(MYSQL_FTPARSER_PARAM *param);
};
Backport from 6.0-codebase. WL#3771 "Audit Plugin Interface" Implement new plug-in type - AUDIT New plug-in: audit_null simply increments counter for how many times it was called. include/Makefile.am: wl3771 add new headers to distribution include/mysql/plugin.h: wl3771 define new AUDIT plugin type Split out fulltext plugin type into its own header include/mysql/plugin.h.pp: wl3771 no real API change, just re-arranged some code include/mysql/plugin_audit.h: wl3771 pluggable audit interface include/mysql/plugin_ftparser.h: wl3771 Split out fulltext plugin type into its own header libmysqld/CMakeLists.txt: wl3771 add sql_audit.cc to build libmysqld/Makefile.am: wl3771 add sql_audit.cc to build plugin/audit_null: wl3771 an example plugin for testing pluggable audit interface plugin/audit_null/Makefile.am: wl3771 an example plugin for testing pluggable audit interface plugin/audit_null/audit_null.c: wl3771 an example plugin for testing pluggable audit interface plugin/audit_null/plug.in: wl3771 an example plugin for testing pluggable audit interface sql/CMakeLists.txt: wl3771 add sql_audit.cc to build sql/Makefile.am: wl3771 add sql_audit.cc to build sql/event_queue.cc: wl3771 release audit resources before waiting sql/log.cc: wl3771 add general audit call for log sql/mysqld.cc: wl3771 add audit initialize/finalize add general audit call for error sql/sql_audit.cc: wl3771 pluggable audit interface implementation sql/sql_audit.h: wl3771 pluggable audit interface implementation sql/sql_class.cc: wl3771 add thd audit init/deinit calls sql/sql_class.h: wl3771 add required data structures for audit to THD sql/sql_connect.cc: wl3771 release audit resources before waiting sql/sql_insert.cc: wl3771 release audit plugins before waiting sql/sql_parse.cc: wl3771 add general audit call for results sql/sql_plugin.cc: wl3771 add declarations for audit plugin type
2009-12-15 20:52:47 +01:00
struct st_mysql_daemon
WL#4380 added a rule that use gcc to generate preprocessor output (gcc -E) that can be then compared to a already generated output using the diff utility. Ran make test on the repository to verify changes. Makefile.am: Added a rule for checking that the abi/api has not changed. The following steps are followed in the rule in makefile.am 1) Generate preprocessor output for the files that need to be tested for abi/api changes. use -nostdinc to prevent generation of preprocessor output for system headers. This results in messages in stderr saying that these headers were not found. Redirect the stderr output to /dev/null to prevent seeing these messages. 2) sed the output to remove blank lines and lines that begin with # (The header information is retained to enable easy analysis of abi diffs at a later stage). 3) diff the generated file and the canons (.pp files already in the repository). 4) delete the .out file that is generated. If the diff fails, the generated file is not removed. This will be useful for analysis of ABI differences (e.g. using a visual diff tool). A ABI change that causes a build to fail will always be accompanied by new canons (.out files). The .out files that are not removed will be replaced as the new .pp files. e.g. If include/mysql/plugin.h has an ABI change then this rule would leave a include/mysql/plugin.out file. A developer with a justified API change will then do a mv include/mysql/plugin.out include/mysql/plugin.pp to replace the old canons with the new ones. configure.in: 1) Removed the part of the file that was icheck related. 2) Added an entry for the configure variable DIFF include/mysql.h.pp: The pre-processor output canon file for include/mysql.h include/mysql/plugin.h.pp: The pre-processor output canon file for include/mysql/plugin.h include/mysql_h.ic: since the icheck target has been removed, this file need no longer be present in the repository sql/mysql_priv.h.pp: The pre-processor output canon file for sql/mysql_priv.h
2008-06-17 14:27:04 +02:00
{
int interface_version;
};
Backport from 6.0-codebase. WL#3771 "Audit Plugin Interface" Implement new plug-in type - AUDIT New plug-in: audit_null simply increments counter for how many times it was called. include/Makefile.am: wl3771 add new headers to distribution include/mysql/plugin.h: wl3771 define new AUDIT plugin type Split out fulltext plugin type into its own header include/mysql/plugin.h.pp: wl3771 no real API change, just re-arranged some code include/mysql/plugin_audit.h: wl3771 pluggable audit interface include/mysql/plugin_ftparser.h: wl3771 Split out fulltext plugin type into its own header libmysqld/CMakeLists.txt: wl3771 add sql_audit.cc to build libmysqld/Makefile.am: wl3771 add sql_audit.cc to build plugin/audit_null: wl3771 an example plugin for testing pluggable audit interface plugin/audit_null/Makefile.am: wl3771 an example plugin for testing pluggable audit interface plugin/audit_null/audit_null.c: wl3771 an example plugin for testing pluggable audit interface plugin/audit_null/plug.in: wl3771 an example plugin for testing pluggable audit interface sql/CMakeLists.txt: wl3771 add sql_audit.cc to build sql/Makefile.am: wl3771 add sql_audit.cc to build sql/event_queue.cc: wl3771 release audit resources before waiting sql/log.cc: wl3771 add general audit call for log sql/mysqld.cc: wl3771 add audit initialize/finalize add general audit call for error sql/sql_audit.cc: wl3771 pluggable audit interface implementation sql/sql_audit.h: wl3771 pluggable audit interface implementation sql/sql_class.cc: wl3771 add thd audit init/deinit calls sql/sql_class.h: wl3771 add required data structures for audit to THD sql/sql_connect.cc: wl3771 release audit resources before waiting sql/sql_insert.cc: wl3771 release audit plugins before waiting sql/sql_parse.cc: wl3771 add general audit call for results sql/sql_plugin.cc: wl3771 add declarations for audit plugin type
2009-12-15 20:52:47 +01:00
struct st_mysql_information_schema
WL#4380 added a rule that use gcc to generate preprocessor output (gcc -E) that can be then compared to a already generated output using the diff utility. Ran make test on the repository to verify changes. Makefile.am: Added a rule for checking that the abi/api has not changed. The following steps are followed in the rule in makefile.am 1) Generate preprocessor output for the files that need to be tested for abi/api changes. use -nostdinc to prevent generation of preprocessor output for system headers. This results in messages in stderr saying that these headers were not found. Redirect the stderr output to /dev/null to prevent seeing these messages. 2) sed the output to remove blank lines and lines that begin with # (The header information is retained to enable easy analysis of abi diffs at a later stage). 3) diff the generated file and the canons (.pp files already in the repository). 4) delete the .out file that is generated. If the diff fails, the generated file is not removed. This will be useful for analysis of ABI differences (e.g. using a visual diff tool). A ABI change that causes a build to fail will always be accompanied by new canons (.out files). The .out files that are not removed will be replaced as the new .pp files. e.g. If include/mysql/plugin.h has an ABI change then this rule would leave a include/mysql/plugin.out file. A developer with a justified API change will then do a mv include/mysql/plugin.out include/mysql/plugin.pp to replace the old canons with the new ones. configure.in: 1) Removed the part of the file that was icheck related. 2) Added an entry for the configure variable DIFF include/mysql.h.pp: The pre-processor output canon file for include/mysql.h include/mysql/plugin.h.pp: The pre-processor output canon file for include/mysql/plugin.h include/mysql_h.ic: since the icheck target has been removed, this file need no longer be present in the repository sql/mysql_priv.h.pp: The pre-processor output canon file for sql/mysql_priv.h
2008-06-17 14:27:04 +02:00
{
int interface_version;
};
Backport from 6.0-codebase. WL#3771 "Audit Plugin Interface" Implement new plug-in type - AUDIT New plug-in: audit_null simply increments counter for how many times it was called. include/Makefile.am: wl3771 add new headers to distribution include/mysql/plugin.h: wl3771 define new AUDIT plugin type Split out fulltext plugin type into its own header include/mysql/plugin.h.pp: wl3771 no real API change, just re-arranged some code include/mysql/plugin_audit.h: wl3771 pluggable audit interface include/mysql/plugin_ftparser.h: wl3771 Split out fulltext plugin type into its own header libmysqld/CMakeLists.txt: wl3771 add sql_audit.cc to build libmysqld/Makefile.am: wl3771 add sql_audit.cc to build plugin/audit_null: wl3771 an example plugin for testing pluggable audit interface plugin/audit_null/Makefile.am: wl3771 an example plugin for testing pluggable audit interface plugin/audit_null/audit_null.c: wl3771 an example plugin for testing pluggable audit interface plugin/audit_null/plug.in: wl3771 an example plugin for testing pluggable audit interface sql/CMakeLists.txt: wl3771 add sql_audit.cc to build sql/Makefile.am: wl3771 add sql_audit.cc to build sql/event_queue.cc: wl3771 release audit resources before waiting sql/log.cc: wl3771 add general audit call for log sql/mysqld.cc: wl3771 add audit initialize/finalize add general audit call for error sql/sql_audit.cc: wl3771 pluggable audit interface implementation sql/sql_audit.h: wl3771 pluggable audit interface implementation sql/sql_class.cc: wl3771 add thd audit init/deinit calls sql/sql_class.h: wl3771 add required data structures for audit to THD sql/sql_connect.cc: wl3771 release audit resources before waiting sql/sql_insert.cc: wl3771 release audit plugins before waiting sql/sql_parse.cc: wl3771 add general audit call for results sql/sql_plugin.cc: wl3771 add declarations for audit plugin type
2009-12-15 20:52:47 +01:00
struct st_mysql_storage_engine
WL#4380 added a rule that use gcc to generate preprocessor output (gcc -E) that can be then compared to a already generated output using the diff utility. Ran make test on the repository to verify changes. Makefile.am: Added a rule for checking that the abi/api has not changed. The following steps are followed in the rule in makefile.am 1) Generate preprocessor output for the files that need to be tested for abi/api changes. use -nostdinc to prevent generation of preprocessor output for system headers. This results in messages in stderr saying that these headers were not found. Redirect the stderr output to /dev/null to prevent seeing these messages. 2) sed the output to remove blank lines and lines that begin with # (The header information is retained to enable easy analysis of abi diffs at a later stage). 3) diff the generated file and the canons (.pp files already in the repository). 4) delete the .out file that is generated. If the diff fails, the generated file is not removed. This will be useful for analysis of ABI differences (e.g. using a visual diff tool). A ABI change that causes a build to fail will always be accompanied by new canons (.out files). The .out files that are not removed will be replaced as the new .pp files. e.g. If include/mysql/plugin.h has an ABI change then this rule would leave a include/mysql/plugin.out file. A developer with a justified API change will then do a mv include/mysql/plugin.out include/mysql/plugin.pp to replace the old canons with the new ones. configure.in: 1) Removed the part of the file that was icheck related. 2) Added an entry for the configure variable DIFF include/mysql.h.pp: The pre-processor output canon file for include/mysql.h include/mysql/plugin.h.pp: The pre-processor output canon file for include/mysql/plugin.h include/mysql_h.ic: since the icheck target has been removed, this file need no longer be present in the repository sql/mysql_priv.h.pp: The pre-processor output canon file for sql/mysql_priv.h
2008-06-17 14:27:04 +02:00
{
int interface_version;
};
Backport from 6.0-codebase. WL#3771 "Audit Plugin Interface" Implement new plug-in type - AUDIT New plug-in: audit_null simply increments counter for how many times it was called. include/Makefile.am: wl3771 add new headers to distribution include/mysql/plugin.h: wl3771 define new AUDIT plugin type Split out fulltext plugin type into its own header include/mysql/plugin.h.pp: wl3771 no real API change, just re-arranged some code include/mysql/plugin_audit.h: wl3771 pluggable audit interface include/mysql/plugin_ftparser.h: wl3771 Split out fulltext plugin type into its own header libmysqld/CMakeLists.txt: wl3771 add sql_audit.cc to build libmysqld/Makefile.am: wl3771 add sql_audit.cc to build plugin/audit_null: wl3771 an example plugin for testing pluggable audit interface plugin/audit_null/Makefile.am: wl3771 an example plugin for testing pluggable audit interface plugin/audit_null/audit_null.c: wl3771 an example plugin for testing pluggable audit interface plugin/audit_null/plug.in: wl3771 an example plugin for testing pluggable audit interface sql/CMakeLists.txt: wl3771 add sql_audit.cc to build sql/Makefile.am: wl3771 add sql_audit.cc to build sql/event_queue.cc: wl3771 release audit resources before waiting sql/log.cc: wl3771 add general audit call for log sql/mysqld.cc: wl3771 add audit initialize/finalize add general audit call for error sql/sql_audit.cc: wl3771 pluggable audit interface implementation sql/sql_audit.h: wl3771 pluggable audit interface implementation sql/sql_class.cc: wl3771 add thd audit init/deinit calls sql/sql_class.h: wl3771 add required data structures for audit to THD sql/sql_connect.cc: wl3771 release audit resources before waiting sql/sql_insert.cc: wl3771 release audit plugins before waiting sql/sql_parse.cc: wl3771 add general audit call for results sql/sql_plugin.cc: wl3771 add declarations for audit plugin type
2009-12-15 20:52:47 +01:00
struct handlerton;
struct Mysql_replication {
int interface_version;
};
WL#4380 added a rule that use gcc to generate preprocessor output (gcc -E) that can be then compared to a already generated output using the diff utility. Ran make test on the repository to verify changes. Makefile.am: Added a rule for checking that the abi/api has not changed. The following steps are followed in the rule in makefile.am 1) Generate preprocessor output for the files that need to be tested for abi/api changes. use -nostdinc to prevent generation of preprocessor output for system headers. This results in messages in stderr saying that these headers were not found. Redirect the stderr output to /dev/null to prevent seeing these messages. 2) sed the output to remove blank lines and lines that begin with # (The header information is retained to enable easy analysis of abi diffs at a later stage). 3) diff the generated file and the canons (.pp files already in the repository). 4) delete the .out file that is generated. If the diff fails, the generated file is not removed. This will be useful for analysis of ABI differences (e.g. using a visual diff tool). A ABI change that causes a build to fail will always be accompanied by new canons (.out files). The .out files that are not removed will be replaced as the new .pp files. e.g. If include/mysql/plugin.h has an ABI change then this rule would leave a include/mysql/plugin.out file. A developer with a justified API change will then do a mv include/mysql/plugin.out include/mysql/plugin.pp to replace the old canons with the new ones. configure.in: 1) Removed the part of the file that was icheck related. 2) Added an entry for the configure variable DIFF include/mysql.h.pp: The pre-processor output canon file for include/mysql.h include/mysql/plugin.h.pp: The pre-processor output canon file for include/mysql/plugin.h include/mysql_h.ic: since the icheck target has been removed, this file need no longer be present in the repository sql/mysql_priv.h.pp: The pre-processor output canon file for sql/mysql_priv.h
2008-06-17 14:27:04 +02:00
struct st_mysql_value
{
int (*value_type)(struct st_mysql_value *);
const char *(*val_str)(struct st_mysql_value *, char *buffer, int *length);
int (*val_real)(struct st_mysql_value *, double *realbuf);
int (*val_int)(struct st_mysql_value *, long long *intbuf);
WL#4738 streamline/simplify @@variable creation process Bug#16565 mysqld --help --verbose does not order variablesBug#20413 sql_slave_skip_counter is not shown in show variables Bug#20415 Output of mysqld --help --verbose is incomplete Bug#25430 variable not found in SELECT @@global.ft_max_word_len; Bug#32902 plugin variables don't know their names Bug#34599 MySQLD Option and Variable Reference need to be consistent in formatting! Bug#34829 No default value for variable and setting default does not raise error Bug#34834 ? Is accepted as a valid sql mode Bug#34878 Few variables have default value according to documentation but error occurs Bug#34883 ft_boolean_syntax cant be assigned from user variable to global var. Bug#37187 `INFORMATION_SCHEMA`.`GLOBAL_VARIABLES`: inconsistent status Bug#40988 log_output_basic.test succeeded though syntactically false. Bug#41010 enum-style command-line options are not honoured (maria.maria-recover fails) Bug#42103 Setting key_buffer_size to a negative value may lead to very large allocations Bug#44691 Some plugins configured as MYSQL_PLUGIN_MANDATORY in can be disabled Bug#44797 plugins w/o command-line options have no disabling option in --help Bug#46314 string system variables don't support expressions Bug#46470 sys_vars.max_binlog_cache_size_basic_32 is broken Bug#46586 When using the plugin interface the type "set" for options caused a crash. Bug#47212 Crash in DBUG_PRINT in mysqltest.cc when trying to print octal number Bug#48758 mysqltest crashes on sys_vars.collation_server_basic in gcov builds Bug#49417 some complaints about mysqld --help --verbose output Bug#49540 DEFAULT value of binlog_format isn't the default value Bug#49640 ambiguous option '--skip-skip-myisam' (double skip prefix) Bug#49644 init_connect and \0 Bug#49645 init_slave and multi-byte characters Bug#49646 mysql --show-warnings crashes when server dies CMakeLists.txt: Bug#44691 Some plugins configured as MYSQL_PLUGIN_MANDATORY in can be disabled client/mysql.cc: don't crash with --show-warnings when mysqld dies config/ac-macros/plugins.m4: Bug#44691 Some plugins configured as MYSQL_PLUGIN_MANDATORY in can be disabled include/my_getopt.h: comments include/my_pthread.h: fix double #define mysql-test/mysql-test-run.pl: run sys_vars suite by default properly recognize envirinment variables (e.g. MTR_MAX_SAVE_CORE) set to 0 escape gdb command line arguments mysql-test/suite/sys_vars/r/rpl_init_slave_func.result: init_slave+utf8 bug mysql-test/suite/sys_vars/t/rpl_init_slave_func.test: init_slave+utf8 bug mysys/my_getopt.c: Bug#34599 MySQLD Option and Variable Reference need to be consistent in formatting! Bug#46586 When using the plugin interface the type "set" for options caused a crash. Bug#49640 ambiguous option '--skip-skip-myisam' (double skip prefix) mysys/typelib.c: support for flagset sql/ha_ndbcluster.cc: backport from telco tree sql/item_func.cc: Bug#49644 init_connect and \0 Bug#49645 init_slave and multi-byte characters sql/sql_builtin.cc.in: Bug#44691 Some plugins configured as MYSQL_PLUGIN_MANDATORY in can be disabled sql/sql_plugin.cc: Bug#44691 Some plugins configured as MYSQL_PLUGIN_MANDATORY in can be disabled Bug#32902 plugin variables don't know their names Bug#44797 plugins w/o command-line options have no disabling option in --help sql/sys_vars.cc: all server variables are defined here storage/myisam/ft_parser.c: remove unnecessary updates of param->quot storage/myisam/ha_myisam.cc: myisam_* variables belong here strings/my_vsnprintf.c: %o and %llx unittest/mysys/my_vsnprintf-t.c: %o and %llx tests vio/viosocket.c: bugfix: fix @@wait_timeout to work with socket timeouts (vs. alarm thread)
2009-12-22 10:35:56 +01:00
int (*is_unsigned)(struct st_mysql_value *);
WL#4380 added a rule that use gcc to generate preprocessor output (gcc -E) that can be then compared to a already generated output using the diff utility. Ran make test on the repository to verify changes. Makefile.am: Added a rule for checking that the abi/api has not changed. The following steps are followed in the rule in makefile.am 1) Generate preprocessor output for the files that need to be tested for abi/api changes. use -nostdinc to prevent generation of preprocessor output for system headers. This results in messages in stderr saying that these headers were not found. Redirect the stderr output to /dev/null to prevent seeing these messages. 2) sed the output to remove blank lines and lines that begin with # (The header information is retained to enable easy analysis of abi diffs at a later stage). 3) diff the generated file and the canons (.pp files already in the repository). 4) delete the .out file that is generated. If the diff fails, the generated file is not removed. This will be useful for analysis of ABI differences (e.g. using a visual diff tool). A ABI change that causes a build to fail will always be accompanied by new canons (.out files). The .out files that are not removed will be replaced as the new .pp files. e.g. If include/mysql/plugin.h has an ABI change then this rule would leave a include/mysql/plugin.out file. A developer with a justified API change will then do a mv include/mysql/plugin.out include/mysql/plugin.pp to replace the old canons with the new ones. configure.in: 1) Removed the part of the file that was icheck related. 2) Added an entry for the configure variable DIFF include/mysql.h.pp: The pre-processor output canon file for include/mysql.h include/mysql/plugin.h.pp: The pre-processor output canon file for include/mysql/plugin.h include/mysql_h.ic: since the icheck target has been removed, this file need no longer be present in the repository sql/mysql_priv.h.pp: The pre-processor output canon file for sql/mysql_priv.h
2008-06-17 14:27:04 +02:00
};
int thd_in_lock_tables(const void* thd);
int thd_tablespace_op(const void* thd);
long long thd_test_options(const void* thd, long long test_options);
int thd_sql_command(const void* thd);
const char *thd_proc_info(void* thd, const char *info);
void **thd_ha_data(const void* thd, const struct handlerton *hton);
void thd_storage_lock_wait(void* thd, long long value);
WL#4380 added a rule that use gcc to generate preprocessor output (gcc -E) that can be then compared to a already generated output using the diff utility. Ran make test on the repository to verify changes. Makefile.am: Added a rule for checking that the abi/api has not changed. The following steps are followed in the rule in makefile.am 1) Generate preprocessor output for the files that need to be tested for abi/api changes. use -nostdinc to prevent generation of preprocessor output for system headers. This results in messages in stderr saying that these headers were not found. Redirect the stderr output to /dev/null to prevent seeing these messages. 2) sed the output to remove blank lines and lines that begin with # (The header information is retained to enable easy analysis of abi diffs at a later stage). 3) diff the generated file and the canons (.pp files already in the repository). 4) delete the .out file that is generated. If the diff fails, the generated file is not removed. This will be useful for analysis of ABI differences (e.g. using a visual diff tool). A ABI change that causes a build to fail will always be accompanied by new canons (.out files). The .out files that are not removed will be replaced as the new .pp files. e.g. If include/mysql/plugin.h has an ABI change then this rule would leave a include/mysql/plugin.out file. A developer with a justified API change will then do a mv include/mysql/plugin.out include/mysql/plugin.pp to replace the old canons with the new ones. configure.in: 1) Removed the part of the file that was icheck related. 2) Added an entry for the configure variable DIFF include/mysql.h.pp: The pre-processor output canon file for include/mysql.h include/mysql/plugin.h.pp: The pre-processor output canon file for include/mysql/plugin.h include/mysql_h.ic: since the icheck target has been removed, this file need no longer be present in the repository sql/mysql_priv.h.pp: The pre-processor output canon file for sql/mysql_priv.h
2008-06-17 14:27:04 +02:00
int thd_tx_isolation(const void* thd);
char *thd_security_context(void* thd, char *buffer, unsigned int length,
unsigned int max_query_len);
void thd_inc_row_count(void* thd);
int mysql_tmpfile(const char *prefix);
int thd_killed(const void* thd);
unsigned long thd_get_thread_id(const void* thd);
void thd_get_xid(const void* thd, MYSQL_XID *xid);
void mysql_query_cache_invalidate4(void* thd,
const char *key, unsigned int key_length,
int using_trx);
BUG#39053 - UNISTALL PLUGIN does not allow the storage engine to cleanup open connections It was possible to UNINSTALL storage engine plugin when binding between THD object and storage engine is still active (e.g. in the middle of transaction). To avoid unclean deactivation (uninstall) of storage engine plugin in the middle of transaction, additional storage engine plugin lock is acquired by thd_set_ha_data(). If ha_data is not null and storage engine plugin was not locked by thd_set_ha_data() in this connection before, storage engine plugin gets locked. If ha_data is null and storage engine plugin was locked by thd_set_ha_data() in this connection before, storage engine plugin lock gets released. If handlerton::close_connection() didn't reset ha_data, server does it immediately after calling handlerton::close_connection(). Note that this is just a framework fix, storage engines must switch to thd_set_ha_data() from thd_ha_data() if they want to see fit. include/mysql/plugin.h: As thd_{get|set}_ha_data() have some extra logic now, they must be implemented on server side. include/mysql/plugin.h.pp: As thd_{get|set}_ha_data() have some extra logic now, they must be implemented on server side. sql/handler.cc: Make sure ha_data is reset and ha_data lock is released. sql/handler.h: hton is not supposed to be updated by ha_lock_engine(), make it const. sql/sql_class.cc: As thd_{get|set}_ha_data() have some extra logic now, they must be implemented on server side. sql/sql_class.h: Added ha_data lock.
2010-04-14 11:53:59 +02:00
void *thd_get_ha_data(const void* thd, const struct handlerton *hton);
void thd_set_ha_data(void* thd, const struct handlerton *hton,
const void *ha_data);