List:Commits« Previous MessageNext Message »
From:Mats Kindahl Date:August 26 2010 1:34pm
Subject:Re: bzr commit into mysql-5.5-bugfixing branch (svoj:3186) Bug#52821
View as plain text  
Hi Sergey,

Patch is approved, but I think the comments are very terse and it would
help others if the comments were a little more elaborate.

Just my few cents,
Mats Kindahl

On 08/20/2010 01:37 PM, Sergey Vojtovich wrote:
> #At file:///home/svoj/mysql/server/mysql-5.5-bugfixing-bug52821/ based on
> revid:alik@stripped
>
>  3186 Sergey Vojtovich	2010-08-20
>       BUG#52821 - plugin_ftparser.h and plugin_audit.h are
>                   not tested by ABI check
>       
>       plugin_audit.h and plugin_ftparser.h are now subject
>       for ABI check. plugin.h is now tested implicitly.
>       
>       Also fixed broken ABI check cmake rules.
>      @ Makefile.am
>         plugin_audit.h and plugin_ftparser.h are now subject
>         for ABI check. plugin.h is now tested implicitly.
>      @ cmake/abi_check.cmake
>         plugin_audit.h and plugin_ftparser.h are now subject
>         for ABI check. plugin.h is now tested implicitly.
>         
>         Also fixed broken ABI check rules.
>   

How is the rule fixed? What was wrong?

>      @ cmake/do_abi_check.cmake
>         Inform sources that we do ABI check.
>      @ include/mysql/plugin.h.pp
>         plugin.h is now tested implicitly.
>      @ include/mysql/plugin_audit.h.pp
>         plugin_audit.h is now subject for ABI check.
>      @ include/mysql/plugin_ftparser.h.pp
>         plugin_ftparser.h is now subject for ABI check.
>
>     removed:
>       include/mysql/plugin.h.pp
>     added:
>       include/mysql/plugin_audit.h.pp
>       include/mysql/plugin_ftparser.h.pp
>     modified:
>       Makefile.am
>       cmake/abi_check.cmake
>       cmake/do_abi_check.cmake
> === modified file 'Makefile.am'
> --- a/Makefile.am	2010-07-29 12:32:11 +0000
> +++ b/Makefile.am	2010-08-20 11:37:38 +0000
> @@ -264,7 +264,8 @@ test-full-qa:
>  # Headers which need to be checked for abi/api compatibility.
>  #
>  
> -API_PREPROCESSOR_HEADER = $(top_srcdir)/include/mysql/plugin.h \
> +API_PREPROCESSOR_HEADER = $(top_srcdir)/include/mysql/plugin_audit.h \
> +			$(top_srcdir)/include/mysql/plugin_ftparser.h \
>   

Even though plugin.h is checked implicitly *now* it does not mean that
it will be that way forever. I suggest that you either keep plugin.h in
the list (which mean that any changes to plugin.h requires updating
three files) or add a comment to the Makefile.am that plugin.h is
checked implicitly so that anybody making changes there sees that it
might be necessary to add plugin.h to the list.

>  			$(top_srcdir)/include/mysql.h \
>  			$(top_srcdir)/include/mysql/psi/psi_abi_v1.h \
>  			$(top_srcdir)/include/mysql/psi/psi_abi_v2.h
>
> === modified file 'cmake/abi_check.cmake'
> --- a/cmake/abi_check.cmake	2010-07-20 19:53:39 +0000
> +++ b/cmake/abi_check.cmake	2010-08-20 11:37:38 +0000
> @@ -27,7 +27,8 @@ IF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_SYS
>      SET(COMPILER ${CMAKE_C_COMPILER})
>    ENDIF()
>    SET(API_PREPROCESSOR_HEADER 
> -    ${CMAKE_SOURCE_DIR}/include/mysql/plugin.h
> +    ${CMAKE_SOURCE_DIR}/include/mysql/plugin_audit.h
> +    ${CMAKE_SOURCE_DIR}/include/mysql/plugin_ftparser.h
>   

Same here.

>      ${CMAKE_SOURCE_DIR}/include/mysql.h
>      ${CMAKE_SOURCE_DIR}/include/mysql/psi/psi_abi_v1.h 
>      ${CMAKE_SOURCE_DIR}/include/mysql/psi/psi_abi_v2.h
> @@ -38,18 +39,18 @@ IF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_SYS
>      -DCOMPILER=${COMPILER}
>      -DSOURCE_DIR=${CMAKE_SOURCE_DIR}
>      -DBINARY_DIR=${CMAKE_BINARY_DIR}
> -    "-DDMYSQL_ABI_CHECK -DABI_HEADERS=${API_PREPROCESSOR_HEADER}"
> +    "-DABI_HEADERS=${API_PREPROCESSOR_HEADER}"
>   

What does this fix? Removing the extra D?

>      -P ${CMAKE_SOURCE_DIR}/cmake/do_abi_check.cmake
>      VERBATIM
>    )
>  
>    ADD_CUSTOM_TARGET(abi_check_all
>    COMMAND ${CMAKE_COMMAND} 
> -    -DCMAKE_C_COMPILER=${COMPILER} 
> -    -DCMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR}
> -    -DCMAKE_BINARY_DIR=${CMAKE_BINARY_DIR}
> -    "-DMYSQL_ABI_CHECK -DABI_HEADERS=${API_PREPROCESSOR_HEADER}"
> -    -P ${CMAKE_SOURCE_DIR}/cmake/scripts/do_abi_check.cmake
> +    -DCOMPILER=${COMPILER} 
> +    -DSOURCE_DIR=${CMAKE_SOURCE_DIR}
> +    -DBINARY_DIR=${CMAKE_BINARY_DIR}
> +    "-DABI_HEADERS=${API_PREPROCESSOR_HEADER}"
> +    -P ${CMAKE_SOURCE_DIR}/cmake/do_abi_check.cmake
>      VERBATIM
>    )
>  ENDIF()
>
> === modified file 'cmake/do_abi_check.cmake'
> --- a/cmake/do_abi_check.cmake	2009-11-09 11:32:48 +0000
> +++ b/cmake/do_abi_check.cmake	2010-08-20 11:37:38 +0000
> @@ -56,8 +56,9 @@ FOREACH(file ${ABI_HEADERS})
>    SET(tmpfile ${file}.pp.tmp)
>      EXECUTE_PROCESS(
>       COMMAND ${COMPILER} 
> -       -E -nostdinc -dI -I${SOURCE_DIR}/include -I${BINARY_DIR}/include 
> -       -I${SOURCE_DIR}/include/mysql  -I${SOURCE_DIR}/sql  ${file} 
> +       -E -nostdinc -dI -DMYSQL_ABI_CHECK -I${SOURCE_DIR}/include
> +       -I${BINARY_DIR}/include -I${SOURCE_DIR}/include/mysql -I${SOURCE_DIR}/sql
> +       ${file}
>  
>         ERROR_QUIET OUTPUT_FILE ${tmpfile})
>      EXECUTE_PROCESS(
>        COMMAND sed -e 
>
> === removed file 'include/mysql/plugin.h.pp'
> --- a/include/mysql/plugin.h.pp	2010-08-18 07:14:06 +0000
> +++ b/include/mysql/plugin.h.pp	1970-01-01 00:00:00 +0000
> @@ -1,168 +0,0 @@
> -#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>
> -struct st_mysql_lex_string
> -{
> -  char *str;
> -  size_t length;
> -};
> -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);
> -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
> -};
> -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;
> -};
> -#include "plugin_ftparser.h"
> -#include "plugin.h"
> -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);
> -};
> -struct st_mysql_daemon
> -{
> -  int interface_version;
> -};
> -struct st_mysql_information_schema
> -{
> -  int interface_version;
> -};
> -struct st_mysql_storage_engine
> -{
> -  int interface_version;
> -};
> -struct handlerton;
> - struct Mysql_replication {
> -   int interface_version;
> - };
> -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);
> -  int (*is_unsigned)(struct st_mysql_value *);
> -};
> -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);
> -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);
> -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);
>
> === added file 'include/mysql/plugin_audit.h.pp'
> --- a/include/mysql/plugin_audit.h.pp	1970-01-01 00:00:00 +0000
> +++ b/include/mysql/plugin_audit.h.pp	2010-08-20 11:37:38 +0000
> @@ -0,0 +1,196 @@
> +#include "plugin.h"
> +#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>
> +struct st_mysql_lex_string
> +{
> +  char *str;
> +  size_t length;
> +};
> +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);
> +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
> +};
> +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;
> +};
> +#include "plugin_ftparser.h"
> +#include "plugin.h"
> +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);
> +};
> +struct st_mysql_daemon
> +{
> +  int interface_version;
> +};
> +struct st_mysql_information_schema
> +{
> +  int interface_version;
> +};
> +struct st_mysql_storage_engine
> +{
> +  int interface_version;
> +};
> +struct handlerton;
> + struct Mysql_replication {
> +   int interface_version;
> + };
> +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);
> +  int (*is_unsigned)(struct st_mysql_value *);
> +};
> +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);
> +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);
> +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);
> +struct mysql_event
> +{
> +  unsigned int event_class;
> +};
> +struct mysql_event_general
> +{
> +  unsigned int event_class;
> +  unsigned int event_subclass;
> +  int general_error_code;
> +  unsigned long general_thread_id;
> +  const char *general_user;
> +  unsigned int general_user_length;
> +  const char *general_command;
> +  unsigned int general_command_length;
> +  const char *general_query;
> +  unsigned int general_query_length;
> +  struct charset_info_st *general_charset;
> +  unsigned long long general_time;
> +  unsigned long long general_rows;
> +};
> +struct st_mysql_audit
> +{
> +  int interface_version;
> +  void (*release_thd)(void*);
> +  void (*event_notify)(void*, const struct mysql_event *);
> +  unsigned long class_mask[1];
> +};
>
> === added file 'include/mysql/plugin_ftparser.h.pp'
> --- a/include/mysql/plugin_ftparser.h.pp	1970-01-01 00:00:00 +0000
> +++ b/include/mysql/plugin_ftparser.h.pp	2010-08-20 11:37:38 +0000
> @@ -0,0 +1,168 @@
> +#include "plugin.h"
> +#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>
> +struct st_mysql_lex_string
> +{
> +  char *str;
> +  size_t length;
> +};
> +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);
> +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
> +};
> +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;
> +};
> +#include "plugin_ftparser.h"
> +struct st_mysql_daemon
> +{
> +  int interface_version;
> +};
> +struct st_mysql_information_schema
> +{
> +  int interface_version;
> +};
> +struct st_mysql_storage_engine
> +{
> +  int interface_version;
> +};
> +struct handlerton;
> + struct Mysql_replication {
> +   int interface_version;
> + };
> +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);
> +  int (*is_unsigned)(struct st_mysql_value *);
> +};
> +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);
> +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);
> +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);
> +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);
> +};
>
>   
>
>
>
>   


-- 
Mats Kindahl
Lead Software Developer
MySQL Replication, Oracle

Thread
bzr commit into mysql-5.5-bugfixing branch (svoj:3186) Bug#52821Sergey Vojtovich20 Aug
  • Re: bzr commit into mysql-5.5-bugfixing branch (svoj:3186) Bug#52821Mats Kindahl26 Aug
    • Re: bzr commit into mysql-5.5-bugfixing branch (svoj:3186) Bug#52821Sergey Vojtovich27 Aug