keycache.h   keycache.h 
/* Copyright (C) 2003 MySQL AB /* Copyright (C) 2003 MySQL AB, 2009 Sun Microsystems, Inc
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License. the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
skipping to change at line 70 skipping to change at line 70
ulong blocks_unused; /* number of currently unused blocks */ ulong blocks_unused; /* number of currently unused blocks */
ulong blocks_changed; /* number of currently dirty blocks */ ulong blocks_changed; /* number of currently dirty blocks */
ulong warm_blocks; /* number of blocks in warm sub-chain */ ulong warm_blocks; /* number of blocks in warm sub-chain */
ulong cnt_for_resize_op; /* counter to block resize operation */ ulong cnt_for_resize_op; /* counter to block resize operation */
long blocks_available; /* number of blocks available in the LRU chai n */ long blocks_available; /* number of blocks available in the LRU chai n */
HASH_LINK **hash_root; /* arr. of entries into hash table buckets */ HASH_LINK **hash_root; /* arr. of entries into hash table buckets */
HASH_LINK *hash_link_root; /* memory for hash table links */ HASH_LINK *hash_link_root; /* memory for hash table links */
HASH_LINK *free_hash_list; /* list of free hash links */ HASH_LINK *free_hash_list; /* list of free hash links */
BLOCK_LINK *free_block_list; /* list of free blocks */ BLOCK_LINK *free_block_list; /* list of free blocks */
BLOCK_LINK *block_root; /* memory for block links */ BLOCK_LINK *block_root; /* memory for block links */
uchar HUGE_PTR *block_mem; /* memory for block buffers */ uchar *block_mem; /* memory for block buffers */
BLOCK_LINK *used_last; /* ptr to the last block of the LRU chain */ BLOCK_LINK *used_last; /* ptr to the last block of the LRU chain */
BLOCK_LINK *used_ins; /* ptr to the insertion block in LRU chain */ BLOCK_LINK *used_ins; /* ptr to the insertion block in LRU chain */
pthread_mutex_t cache_lock; /* to lock access to the cache structure */ mysql_mutex_t cache_lock; /* to lock access to the cache structure */
KEYCACHE_WQUEUE resize_queue; /* threads waiting during resize operation */ KEYCACHE_WQUEUE resize_queue; /* threads waiting during resize operation */
/* /*
Waiting for a zero resize count. Using a queue for symmetry though Waiting for a zero resize count. Using a queue for symmetry though
only one thread can wait here. only one thread can wait here.
*/ */
KEYCACHE_WQUEUE waiting_for_resize_cnt; KEYCACHE_WQUEUE waiting_for_resize_cnt;
KEYCACHE_WQUEUE waiting_for_hash_link; /* waiting for a free hash link */ KEYCACHE_WQUEUE waiting_for_hash_link; /* waiting for a free hash link */
KEYCACHE_WQUEUE waiting_for_block; /* requests waiting for a free bloc k */ KEYCACHE_WQUEUE waiting_for_block; /* requests waiting for a free bloc k */
BLOCK_LINK *changed_blocks[CHANGED_BLOCKS_HASH]; /* hash for dirty file b l.*/ BLOCK_LINK *changed_blocks[CHANGED_BLOCKS_HASH]; /* hash for dirty file b l.*/
BLOCK_LINK *file_blocks[CHANGED_BLOCKS_HASH]; /* hash for other file b l.*/ BLOCK_LINK *file_blocks[CHANGED_BLOCKS_HASH]; /* hash for other file b l.*/
/* /*
The following variables are and variables used to hold parameters for The following variables are and variables used to hold parameters for
initializing the key cache. initializing the key cache.
*/ */
ulonglong param_buff_size; /* size the memory allocated for the cache ulonglong param_buff_size; /* size the memory allocated for the cach
*/ e */
ulong param_block_size; /* size of the blocks in the key cache ulonglong param_block_size; /* size of the blocks in the key cache
*/ */
ulong param_division_limit; /* min. percentage of warm blocks ulonglong param_division_limit; /* min. percentage of warm blocks
*/ */
ulong param_age_threshold; /* determines when hot block is downgraded ulonglong param_age_threshold; /* determines when hot block is downgrade
*/ d */
/* Statistics variables. These are reset in reset_key_cache_counters(). * / /* Statistics variables. These are reset in reset_key_cache_counters(). * /
ulong global_blocks_changed; /* number of currently dirty blocks */ ulong global_blocks_changed; /* number of currently dirty blocks */
ulonglong global_cache_w_requests;/* number of write requests (write hits ) */ ulonglong global_cache_w_requests;/* number of write requests (write hits ) */
ulonglong global_cache_write; /* number of writes from cache to files */ ulonglong global_cache_write; /* number of writes from cache to files */
ulonglong global_cache_r_requests;/* number of read requests (read hits) */ ulonglong global_cache_r_requests;/* number of read requests (read hits) */
ulonglong global_cache_read; /* number of reads from files to cache */ ulonglong global_cache_read; /* number of reads from files to cache */
int blocks; /* max number of blocks in the cache */ int blocks; /* max number of blocks in the cache */
my_bool in_init; /* Set to 1 in MySQL during init/resize */ my_bool in_init; /* Set to 1 in MySQL during init/resize */
 End of changes. 4 change blocks. 
11 lines changed or deleted 11 lines changed or added


 m_ctype.h   m_ctype.h 
skipping to change at line 41 skipping to change at line 41
#define MY_CS_CTYPE_TABLE_SIZE 257 #define MY_CS_CTYPE_TABLE_SIZE 257
#define MY_CS_TO_LOWER_TABLE_SIZE 256 #define MY_CS_TO_LOWER_TABLE_SIZE 256
#define MY_CS_TO_UPPER_TABLE_SIZE 256 #define MY_CS_TO_UPPER_TABLE_SIZE 256
#define MY_CS_SORT_ORDER_TABLE_SIZE 256 #define MY_CS_SORT_ORDER_TABLE_SIZE 256
#define MY_CS_TO_UNI_TABLE_SIZE 256 #define MY_CS_TO_UNI_TABLE_SIZE 256
#define CHARSET_DIR "charsets/" #define CHARSET_DIR "charsets/"
#define my_wc_t ulong #define my_wc_t ulong
#define MY_CS_REPLACEMENT_CHARACTER 0xFFFD
/*
On i386 we store Unicode->CS conversion tables for
some character sets using Big-endian order,
to copy two bytes at onces.
This gives some performance improvement.
*/
#ifdef __i386__
#define MB2(x) (((x) >> 8) + (((x) & 0xFF) << 8))
#define MY_PUT_MB2(s, code) { *((uint16*)(s))= (code); }
#else
#define MB2(x) (x)
#define MY_PUT_MB2(s, code) { (s)[0]= code >> 8; (s)[1]= code & 0xFF; }
#endif
typedef struct unicase_info_st typedef struct unicase_info_st
{ {
uint16 toupper; uint32 toupper;
uint16 tolower; uint32 tolower;
uint16 sort; uint32 sort;
} MY_UNICASE_INFO; } MY_UNICASE_INFO;
extern MY_UNICASE_INFO *my_unicase_default[256]; extern MY_UNICASE_INFO *my_unicase_default[256];
extern MY_UNICASE_INFO *my_unicase_turkish[256]; extern MY_UNICASE_INFO *my_unicase_turkish[256];
typedef struct uni_ctype_st typedef struct uni_ctype_st
{ {
uchar pctype; uchar pctype;
uchar *ctype; uchar *ctype;
} MY_UNI_CTYPE; } MY_UNI_CTYPE;
skipping to change at line 83 skipping to change at line 99
#define MY_SEQ_SPACES 2 #define MY_SEQ_SPACES 2
/* My charsets_list flags */ /* My charsets_list flags */
#define MY_CS_COMPILED 1 /* compiled-in sets */ #define MY_CS_COMPILED 1 /* compiled-in sets */
#define MY_CS_CONFIG 2 /* sets that have a *.conf file */ #define MY_CS_CONFIG 2 /* sets that have a *.conf file */
#define MY_CS_INDEX 4 /* sets listed in the Index file */ #define MY_CS_INDEX 4 /* sets listed in the Index file */
#define MY_CS_LOADED 8 /* sets that are currently loaded */ #define MY_CS_LOADED 8 /* sets that are currently loaded */
#define MY_CS_BINSORT 16 /* if binary sort order */ #define MY_CS_BINSORT 16 /* if binary sort order */
#define MY_CS_PRIMARY 32 /* if primary collation */ #define MY_CS_PRIMARY 32 /* if primary collation */
#define MY_CS_STRNXFRM 64 /* if strnxfrm is used for sort */ #define MY_CS_STRNXFRM 64 /* if strnxfrm is used for sort */
#define MY_CS_UNICODE 128 /* is a charset is full unicode */ #define MY_CS_UNICODE 128 /* is a charset is BMP Unicode */
#define MY_CS_READY 256 /* if a charset is initialized */ #define MY_CS_READY 256 /* if a charset is initialized */
#define MY_CS_AVAILABLE 512 /* If either compiled-in or loaded*/ #define MY_CS_AVAILABLE 512 /* If either compiled-in or loaded*/
#define MY_CS_CSSORT 1024 /* if case sensitive sort order */ #define MY_CS_CSSORT 1024 /* if case sensitive sort order */
#define MY_CS_HIDDEN 2048 /* don't display in SHOW */ #define MY_CS_HIDDEN 2048 /* don't display in SHOW */
#define MY_CS_PUREASCII 4096 /* if a charset is pure ascii */ #define MY_CS_PUREASCII 4096 /* if a charset is pure ascii */
#define MY_CS_NONASCII 8192 /* if not ASCII-compatible */ #define MY_CS_NONASCII 8192 /* if not ASCII-compatible */
#define MY_CS_UNICODE_SUPPLEMENT 16384 /* Non-BMP Unicode characters */
#define MY_CHARSET_UNDEFINED 0 #define MY_CHARSET_UNDEFINED 0
/* Character repertoire flags */ /* Character repertoire flags */
#define MY_REPERTOIRE_ASCII 1 /* Pure ASCII U+0000..U+007F */ #define MY_REPERTOIRE_ASCII 1 /* Pure ASCII U+0000..U+007F */
#define MY_REPERTOIRE_EXTENDED 2 /* Extended characters: U+0080..U+FFFF */ #define MY_REPERTOIRE_EXTENDED 2 /* Extended characters: U+0080..U+FFFF */
#define MY_REPERTOIRE_UNICODE30 3 /* ASCII | EXTENDED: U+0000..U+FFFF */ #define MY_REPERTOIRE_UNICODE30 3 /* ASCII | EXTENDED: U+0000..U+FFFF */
typedef struct my_uni_idx_st typedef struct my_uni_idx_st
{ {
uint16 from; uint16 from;
skipping to change at line 284 skipping to change at line 301
uchar pad_char; uchar pad_char;
my_bool escape_with_backslash_is_dangerous; my_bool escape_with_backslash_is_dangerous;
MY_CHARSET_HANDLER *cset; MY_CHARSET_HANDLER *cset;
MY_COLLATION_HANDLER *coll; MY_COLLATION_HANDLER *coll;
} CHARSET_INFO; } CHARSET_INFO;
#define ILLEGAL_CHARSET_INFO_NUMBER (~0U) #define ILLEGAL_CHARSET_INFO_NUMBER (~0U)
extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_bin; extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_bin;
extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_latin1;
extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_filename;
extern CHARSET_INFO my_charset_big5_chinese_ci; extern CHARSET_INFO my_charset_big5_chinese_ci;
extern CHARSET_INFO my_charset_big5_bin; extern CHARSET_INFO my_charset_big5_bin;
extern CHARSET_INFO my_charset_cp932_japanese_ci; extern CHARSET_INFO my_charset_cp932_japanese_ci;
extern CHARSET_INFO my_charset_cp932_bin; extern CHARSET_INFO my_charset_cp932_bin;
extern CHARSET_INFO my_charset_cp1250_czech_ci;
extern CHARSET_INFO my_charset_eucjpms_japanese_ci; extern CHARSET_INFO my_charset_eucjpms_japanese_ci;
extern CHARSET_INFO my_charset_eucjpms_bin; extern CHARSET_INFO my_charset_eucjpms_bin;
extern CHARSET_INFO my_charset_euckr_korean_ci; extern CHARSET_INFO my_charset_euckr_korean_ci;
extern CHARSET_INFO my_charset_euckr_bin; extern CHARSET_INFO my_charset_euckr_bin;
extern CHARSET_INFO my_charset_gb2312_chinese_ci; extern CHARSET_INFO my_charset_gb2312_chinese_ci;
extern CHARSET_INFO my_charset_gb2312_bin; extern CHARSET_INFO my_charset_gb2312_bin;
extern CHARSET_INFO my_charset_gbk_chinese_ci; extern CHARSET_INFO my_charset_gbk_chinese_ci;
extern CHARSET_INFO my_charset_gbk_bin; extern CHARSET_INFO my_charset_gbk_bin;
extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_latin1;
extern CHARSET_INFO my_charset_latin1_german2_ci; extern CHARSET_INFO my_charset_latin1_german2_ci;
extern CHARSET_INFO my_charset_latin1_bin; extern CHARSET_INFO my_charset_latin1_bin;
extern CHARSET_INFO my_charset_latin2_czech_ci; extern CHARSET_INFO my_charset_latin2_czech_ci;
extern CHARSET_INFO my_charset_sjis_japanese_ci; extern CHARSET_INFO my_charset_sjis_japanese_ci;
extern CHARSET_INFO my_charset_sjis_bin; extern CHARSET_INFO my_charset_sjis_bin;
extern CHARSET_INFO my_charset_tis620_thai_ci; extern CHARSET_INFO my_charset_tis620_thai_ci;
extern CHARSET_INFO my_charset_tis620_bin; extern CHARSET_INFO my_charset_tis620_bin;
extern CHARSET_INFO my_charset_ucs2_general_ci; extern CHARSET_INFO my_charset_ucs2_general_ci;
extern CHARSET_INFO my_charset_ucs2_bin; extern CHARSET_INFO my_charset_ucs2_bin;
extern CHARSET_INFO my_charset_ucs2_unicode_ci; extern CHARSET_INFO my_charset_ucs2_unicode_ci;
extern CHARSET_INFO my_charset_ujis_japanese_ci; extern CHARSET_INFO my_charset_ujis_japanese_ci;
extern CHARSET_INFO my_charset_ujis_bin; extern CHARSET_INFO my_charset_ujis_bin;
extern CHARSET_INFO my_charset_utf16_bin;
extern CHARSET_INFO my_charset_utf16_general_ci;
extern CHARSET_INFO my_charset_utf16_unicode_ci;
extern CHARSET_INFO my_charset_utf32_bin;
extern CHARSET_INFO my_charset_utf32_general_ci;
extern CHARSET_INFO my_charset_utf32_unicode_ci;
extern CHARSET_INFO my_charset_utf8_general_ci; extern CHARSET_INFO my_charset_utf8_general_ci;
extern CHARSET_INFO my_charset_utf8_unicode_ci; extern CHARSET_INFO my_charset_utf8_unicode_ci;
extern CHARSET_INFO my_charset_utf8_bin; extern CHARSET_INFO my_charset_utf8_bin;
extern CHARSET_INFO my_charset_cp1250_czech_ci; extern CHARSET_INFO my_charset_utf8mb4_bin;
extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_filename; extern CHARSET_INFO my_charset_utf8mb4_general_ci;
extern CHARSET_INFO my_charset_utf8mb4_unicode_ci;
#define MY_UTF8MB3 "utf8"
#define MY_UTF8MB4 "utf8mb4"
/* declarations for simple charsets */ /* declarations for simple charsets */
extern size_t my_strnxfrm_simple(CHARSET_INFO *, uchar *, size_t, extern size_t my_strnxfrm_simple(CHARSET_INFO *, uchar *, size_t,
const uchar *, size_t); const uchar *, size_t);
size_t my_strnxfrmlen_simple(CHARSET_INFO *, size_t); size_t my_strnxfrmlen_simple(CHARSET_INFO *, size_t);
extern int my_strnncoll_simple(CHARSET_INFO *, const uchar *, size_t, extern int my_strnncoll_simple(CHARSET_INFO *, const uchar *, size_t,
const uchar *, size_t, my_bool); const uchar *, size_t, my_bool);
extern int my_strnncollsp_simple(CHARSET_INFO *, const uchar *, size_t, extern int my_strnncollsp_simple(CHARSET_INFO *, const uchar *, size_t,
const uchar *, size_t, const uchar *, size_t,
skipping to change at line 409 skipping to change at line 439
char *min_str, char *max_str, char *min_str, char *max_str,
size_t *min_length, size_t *max_length); size_t *min_length, size_t *max_length);
my_bool my_like_range_ucs2(CHARSET_INFO *cs, my_bool my_like_range_ucs2(CHARSET_INFO *cs,
const char *ptr, size_t ptr_length, const char *ptr, size_t ptr_length,
pbool escape, pbool w_one, pbool w_many, pbool escape, pbool w_one, pbool w_many,
size_t res_length, size_t res_length,
char *min_str, char *max_str, char *min_str, char *max_str,
size_t *min_length, size_t *max_length); size_t *min_length, size_t *max_length);
my_bool my_like_range_utf16(CHARSET_INFO *cs,
const char *ptr, size_t ptr_length,
pbool escape, pbool w_one, pbool w_many,
size_t res_length,
char *min_str, char *max_str,
size_t *min_length, size_t *max_length);
my_bool my_like_range_utf32(CHARSET_INFO *cs,
const char *ptr, size_t ptr_length,
pbool escape, pbool w_one, pbool w_many,
size_t res_length,
char *min_str, char *max_str,
size_t *min_length, size_t *max_length);
int my_wildcmp_8bit(CHARSET_INFO *, int my_wildcmp_8bit(CHARSET_INFO *,
const char *str,const char *str_end, const char *str,const char *str_end,
const char *wildstr,const char *wildend, const char *wildstr,const char *wildend,
int escape, int w_one, int w_many); int escape, int w_one, int w_many);
int my_wildcmp_bin(CHARSET_INFO *, int my_wildcmp_bin(CHARSET_INFO *,
const char *str,const char *str_end, const char *str,const char *str_end,
const char *wildstr,const char *wildend, const char *wildstr,const char *wildend,
int escape, int w_one, int w_many); int escape, int w_one, int w_many);
skipping to change at line 433 skipping to change at line 477
size_t pos, int *error); size_t pos, int *error);
uint my_mbcharlen_8bit(CHARSET_INFO *, uint c); uint my_mbcharlen_8bit(CHARSET_INFO *, uint c);
/* Functions for multibyte charsets */ /* Functions for multibyte charsets */
extern size_t my_caseup_str_mb(CHARSET_INFO *, char *); extern size_t my_caseup_str_mb(CHARSET_INFO *, char *);
extern size_t my_casedn_str_mb(CHARSET_INFO *, char *); extern size_t my_casedn_str_mb(CHARSET_INFO *, char *);
extern size_t my_caseup_mb(CHARSET_INFO *, char *src, size_t srclen, extern size_t my_caseup_mb(CHARSET_INFO *, char *src, size_t srclen,
char *dst, size_t dstlen); char *dst, size_t dstlen);
extern size_t my_casedn_mb(CHARSET_INFO *, char *src, size_t srclen, extern size_t my_casedn_mb(CHARSET_INFO *, char *src, size_t srclen,
char *dst, size_t dstlen); char *dst, size_t dstlen);
extern size_t my_caseup_mb_varlen(CHARSET_INFO *, char *src, size_t srclen,
char *dst, size_t dstlen);
extern size_t my_casedn_mb_varlen(CHARSET_INFO *, char *src, size_t srclen,
char *dst, size_t dstlen);
extern size_t my_caseup_ujis(CHARSET_INFO *, char *src, size_t srclen,
char *dst, size_t dstlen);
extern size_t my_casedn_ujis(CHARSET_INFO *, char *src, size_t srclen,
char *dst, size_t dstlen);
extern int my_strcasecmp_mb(CHARSET_INFO * cs,const char *, const char *); extern int my_strcasecmp_mb(CHARSET_INFO * cs,const char *, const char *);
int my_wildcmp_mb(CHARSET_INFO *, int my_wildcmp_mb(CHARSET_INFO *,
const char *str,const char *str_end, const char *str,const char *str_end,
const char *wildstr,const char *wildend, const char *wildstr,const char *wildend,
int escape, int w_one, int w_many); int escape, int w_one, int w_many);
size_t my_numchars_mb(CHARSET_INFO *, const char *b, const char *e); size_t my_numchars_mb(CHARSET_INFO *, const char *b, const char *e);
size_t my_numcells_mb(CHARSET_INFO *, const char *b, const char *e); size_t my_numcells_mb(CHARSET_INFO *, const char *b, const char *e);
size_t my_charpos_mb(CHARSET_INFO *, const char *b, const char *e, size_t p os); size_t my_charpos_mb(CHARSET_INFO *, const char *b, const char *e, size_t p os);
size_t my_well_formed_len_mb(CHARSET_INFO *, const char *b, const char *e, size_t my_well_formed_len_mb(CHARSET_INFO *, const char *b, const char *e,
size_t pos, int *error); size_t pos, int *error);
uint my_instr_mb(struct charset_info_st *, uint my_instr_mb(struct charset_info_st *,
const char *b, size_t b_length, const char *b, size_t b_length,
const char *s, size_t s_length, const char *s, size_t s_length,
my_match_t *match, uint nmatch); my_match_t *match, uint nmatch);
int my_strnncoll_mb_bin(CHARSET_INFO * cs,
const uchar *s, size_t slen,
const uchar *t, size_t tlen,
my_bool t_is_prefix);
int my_strnncollsp_mb_bin(CHARSET_INFO *cs,
const uchar *a, size_t a_length,
const uchar *b, size_t b_length,
my_bool diff_if_only_endspace_difference);
int my_wildcmp_mb_bin(CHARSET_INFO *cs,
const char *str,const char *str_end,
const char *wildstr,const char *wildend,
int escape, int w_one, int w_many);
int my_strcasecmp_mb_bin(CHARSET_INFO * cs __attribute__((unused)),
const char *s, const char *t);
void my_hash_sort_mb_bin(CHARSET_INFO *cs __attribute__((unused)),
const uchar *key, size_t len,ulong *nr1, ulong *nr
2);
size_t my_strnxfrm_unicode(CHARSET_INFO *,
uchar *dst, size_t dstlen,
const uchar *src, size_t srclen);
int my_wildcmp_unicode(CHARSET_INFO *cs, int my_wildcmp_unicode(CHARSET_INFO *cs,
const char *str, const char *str_end, const char *str, const char *str_end,
const char *wildstr, const char *wildend, const char *wildstr, const char *wildend,
int escape, int w_one, int w_many, int escape, int w_one, int w_many,
MY_UNICASE_INFO **weights); MY_UNICASE_INFO **weights);
extern my_bool my_parse_charset_xml(const char *bug, size_t len, extern my_bool my_parse_charset_xml(const char *bug, size_t len,
int (*add)(CHARSET_INFO *cs)); int (*add)(CHARSET_INFO *cs));
extern char *my_strchr(CHARSET_INFO *cs, const char *str, const char *end, extern char *my_strchr(CHARSET_INFO *cs, const char *str, const char *end,
pchar c); pchar c);
 End of changes. 12 change blocks. 
7 lines changed or deleted 85 lines changed or added


 m_string.h   m_string.h 
skipping to change at line 95 skipping to change at line 95
#define strmov(A,B) stpcpy((A),(B)) #define strmov(A,B) stpcpy((A),(B))
#ifndef stpcpy #ifndef stpcpy
extern char *stpcpy(char *, const char *); /* For AIX with gcc 2.95.3 * / extern char *stpcpy(char *, const char *); /* For AIX with gcc 2.95.3 * /
#endif #endif
#endif #endif
/* Declared in int2str() */ /* Declared in int2str() */
extern char NEAR _dig_vec_upper[]; extern char NEAR _dig_vec_upper[];
extern char NEAR _dig_vec_lower[]; extern char NEAR _dig_vec_lower[];
/* Defined in strtod.c */
extern const double log_10[309];
#ifndef strmov #ifndef strmov
#define strmov_overlapp(A,B) strmov(A,B) #define strmov_overlapp(A,B) strmov(A,B)
#define strmake_overlapp(A,B,C) strmake(A,B,C) #define strmake_overlapp(A,B,C) strmake(A,B,C)
#endif #endif
#ifdef BAD_MEMCPY /* Problem with gcc on Alpha */ #ifdef BAD_MEMCPY /* Problem with gcc on Alpha */
#define memcpy_fixed(A,B,C) bmove((A),(B),(C)) #define memcpy_fixed(A,B,C) bmove((A),(B),(C))
#else #else
#define memcpy_fixed(A,B,C) memcpy((A),(B),(C)) #define memcpy_fixed(A,B,C) memcpy((A),(B),(C))
#endif #endif
skipping to change at line 199 skipping to change at line 196
#ifndef HAVE_STRPBRK #ifndef HAVE_STRPBRK
extern char *strpbrk(const char *, const char *); extern char *strpbrk(const char *, const char *);
#endif #endif
#ifndef HAVE_STRSTR #ifndef HAVE_STRSTR
extern char *strstr(const char *, const char *); extern char *strstr(const char *, const char *);
#endif #endif
#endif #endif
extern int is_prefix(const char *, const char *); extern int is_prefix(const char *, const char *);
/* Conversion routines */ /* Conversion routines */
typedef enum {
MY_GCVT_ARG_FLOAT,
MY_GCVT_ARG_DOUBLE
} my_gcvt_arg_type;
double my_strtod(const char *str, char **end, int *error); double my_strtod(const char *str, char **end, int *error);
double my_atof(const char *nptr); double my_atof(const char *nptr);
size_t my_fcvt(double x, int precision, char *to, my_bool *error);
size_t my_gcvt(double x, my_gcvt_arg_type type, int width, char *to,
my_bool *error);
#define NOT_FIXED_DEC 31
/*
The longest string my_fcvt can return is 311 + "precision" bytes.
Here we assume that we never cal my_fcvt() with precision >= NOT_FIXED_DE
C
(+ 1 byte for the terminating '\0').
*/
#define FLOATING_POINT_BUFFER (311 + NOT_FIXED_DEC)
/*
We want to use the 'e' format in some cases even if we have enough space
for the 'f' one just to mimic sprintf("%.15g") behavior for large integer
s,
and to improve it for numbers < 10^(-4).
That is, for |x| < 1 we require |x| >= 10^(-15), and for |x| > 1 we requi
re
it to be integer and be <= 10^DBL_DIG for the 'f' format to be used.
We don't lose precision, but make cases like "1e200" or "0.00001" look ni
cer.
*/
#define MAX_DECPT_FOR_F_FORMAT DBL_DIG
/*
The maximum possible field width for my_gcvt() conversion.
(DBL_DIG + 2) significant digits + sign + "." + ("e-NNN" or
MAX_DECPT_FOR_F_FORMAT zeros for cases when |x|<1 and the 'f' format is u
sed).
*/
#define MY_GCVT_MAX_FIELD_WIDTH (DBL_DIG + 4 + max(5, MAX_DECPT_FOR_F_FORMA
T)) \
extern char *llstr(longlong value,char *buff); extern char *llstr(longlong value,char *buff);
extern char *ullstr(longlong value,char *buff); extern char *ullstr(longlong value,char *buff);
#ifndef HAVE_STRTOUL #ifndef HAVE_STRTOUL
extern long strtol(const char *str, char **ptr, int base); extern long strtol(const char *str, char **ptr, int base);
extern ulong strtoul(const char *str, char **ptr, int base); extern ulong strtoul(const char *str, char **ptr, int base);
#endif #endif
extern char *int2str(long val, char *dst, int radix, int upcase); extern char *int2str(long val, char *dst, int radix, int upcase);
extern char *int10_to_str(long val,char *dst,int radix); extern char *int10_to_str(long val,char *dst,int radix);
extern char *str2int(const char *src,int radix,long lower,long upper, extern char *str2int(const char *src,int radix,long lower,long upper,
long *val); long *val);
longlong my_strtoll10(const char *nptr, char **endptr, int *error); longlong my_strtoll10(const char *nptr, char **endptr, int *error);
#if SIZEOF_LONG == SIZEOF_LONG_LONG #if SIZEOF_LONG == SIZEOF_LONG_LONG
#define longlong2str(A,B,C) int2str((A),(B),(C),1) #define ll2str(A,B,C,D) int2str((A),(B),(C),(D))
#define longlong10_to_str(A,B,C) int10_to_str((A),(B),(C)) #define longlong10_to_str(A,B,C) int10_to_str((A),(B),(C))
#undef strtoll #undef strtoll
#define strtoll(A,B,C) strtol((A),(B),(C)) #define strtoll(A,B,C) strtol((A),(B),(C))
#define strtoull(A,B,C) strtoul((A),(B),(C)) #define strtoull(A,B,C) strtoul((A),(B),(C))
#ifndef HAVE_STRTOULL #ifndef HAVE_STRTOULL
#define HAVE_STRTOULL #define HAVE_STRTOULL
#endif #endif
#ifndef HAVE_STRTOLL #ifndef HAVE_STRTOLL
#define HAVE_STRTOLL #define HAVE_STRTOLL
#endif #endif
#else #else
#ifdef HAVE_LONG_LONG #ifdef HAVE_LONG_LONG
extern char *longlong2str(longlong val,char *dst,int radix); extern char *ll2str(longlong val,char *dst,int radix, int upcase);
extern char *longlong10_to_str(longlong val,char *dst,int radix); extern char *longlong10_to_str(longlong val,char *dst,int radix);
#if (!defined(HAVE_STRTOULL) || defined(NO_STRTOLL_PROTO)) #if (!defined(HAVE_STRTOULL) || defined(NO_STRTOLL_PROTO))
extern longlong strtoll(const char *str, char **ptr, int base); extern longlong strtoll(const char *str, char **ptr, int base);
extern ulonglong strtoull(const char *str, char **ptr, int base); extern ulonglong strtoull(const char *str, char **ptr, int base);
#endif #endif
#endif #endif
#endif #endif
#define longlong2str(A,B,C) ll2str((A),(B),(C),1)
/* my_vsnprintf.c */ /* my_vsnprintf.c */
extern size_t my_vsnprintf(char *str, size_t n, extern size_t my_vsnprintf(char *str, size_t n,
const char *format, va_list ap); const char *format, va_list ap);
extern size_t my_snprintf(char *to, size_t n, const char *fmt, ...) extern size_t my_snprintf(char *to, size_t n, const char *fmt, ...)
ATTRIBUTE_FORMAT(printf, 3, 4); ATTRIBUTE_FORMAT(printf, 3, 4);
#if defined(__cplusplus) #if defined(__cplusplus)
} }
skipping to change at line 260 skipping to change at line 292
(it's part of the plugin API as a MYSQL_LEX_STRING) (it's part of the plugin API as a MYSQL_LEX_STRING)
*/ */
#include <mysql/plugin.h> #include <mysql/plugin.h>
typedef struct st_mysql_lex_string LEX_STRING; typedef struct st_mysql_lex_string LEX_STRING;
#define STRING_WITH_LEN(X) (X), ((size_t) (sizeof(X) - 1)) #define STRING_WITH_LEN(X) (X), ((size_t) (sizeof(X) - 1))
#define USTRING_WITH_LEN(X) ((uchar*) X), ((size_t) (sizeof(X) - 1)) #define USTRING_WITH_LEN(X) ((uchar*) X), ((size_t) (sizeof(X) - 1))
#define C_STRING_WITH_LEN(X) ((char *) (X)), ((size_t) (sizeof(X) - 1)) #define C_STRING_WITH_LEN(X) ((char *) (X)), ((size_t) (sizeof(X) - 1))
struct st_mysql_const_lex_string
{
const char *str;
size_t length;
};
typedef struct st_mysql_const_lex_string LEX_CSTRING;
/* SPACE_INT is a word that contains only spaces */
#if SIZEOF_INT == 4
#define SPACE_INT 0x20202020
#elif SIZEOF_INT == 8
#define SPACE_INT 0x2020202020202020
#else
#error define the appropriate constant for a word full of spaces
#endif
/**
Skip trailing space.
On most systems reading memory in larger chunks (ideally equal to the siz
e of
the chinks that the machine physically reads from memory) causes fewer me
mory
access loops and hence increased performance.
This is why the 'int' type is used : it's closest to that (according to h
ow
it's defined in C).
So when we determine the amount of whitespace at the end of a string we d
o
the following :
1. We divide the string into 3 zones :
a) from the start of the string (__start) to the first multiple
of sizeof(int) (__start_words)
b) from the end of the string (__end) to the last multiple of sizeof(
int)
(__end_words)
c) a zone that is aligned to sizeof(int) and can be safely accessed
through an int *
2. We start comparing backwards from (c) char-by-char. If all we find i
s
space then we continue
3. If there are elements in zone (b) we compare them as unsigned ints t
o a
int mask (SPACE_INT) consisting of all spaces
4. Finally we compare the remaining part (a) of the string char by char
.
This covers for the last non-space unsigned int from 3. (if any)
This algorithm works well for relatively larger strings, but it will slo
w
the things down for smaller strings (because of the additional calculati
ons
and checks compared to the naive method). Thus the barrier of length 20
is added.
@param ptr pointer to the input string
@param len the length of the string
@return the last non-space character
*/
static inline const uchar *skip_trailing_space(const uchar *ptr,size_t len)
{
const uchar *end= ptr + len;
if (len > 20)
{
const uchar *end_words= (const uchar *)(intptr)
(((ulonglong)(intptr)end) / SIZEOF_INT * SIZEOF_INT);
const uchar *start_words= (const uchar *)(intptr)
((((ulonglong)(intptr)ptr) + SIZEOF_INT - 1) / SIZEOF_INT * SIZEOF_I
NT);
DBUG_ASSERT(((ulonglong)(intptr)ptr) >= SIZEOF_INT);
if (end_words > ptr)
{
while (end > end_words && end[-1] == 0x20)
end--;
if (end[-1] == 0x20 && start_words < end_words)
while (end > start_words && ((unsigned *)end)[-1] == SPACE_INT)
end -= SIZEOF_INT;
}
}
while (end > ptr && end[-1] == 0x20)
end--;
return (end);
}
#endif #endif
 End of changes. 7 change blocks. 
5 lines changed or deleted 130 lines changed or added


 my_config.h   my_config.h 
skipping to change at line 68 skipping to change at line 68
/* Define to 1 if you have `alloca', as a function or macro. */ /* Define to 1 if you have `alloca', as a function or macro. */
#define HAVE_ALLOCA 1 #define HAVE_ALLOCA 1
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix) . /* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix) .
*/ */
#define HAVE_ALLOCA_H 1 #define HAVE_ALLOCA_H 1
/* Define to 1 if you have the <arpa/inet.h> header file. */ /* Define to 1 if you have the <arpa/inet.h> header file. */
#define HAVE_ARPA_INET_H 1 #define HAVE_ARPA_INET_H 1
/* Define to 1 if you have the <asm/msr.h> header file. */
#define HAVE_ASM_MSR_H 1
/* Define to 1 if you have the <asm/termbits.h> header file. */ /* Define to 1 if you have the <asm/termbits.h> header file. */
#define HAVE_ASM_TERMBITS_H 1 #define HAVE_ASM_TERMBITS_H 1
/* Define to 1 if you have the `atomic_add_long' function. */ /* Define to 1 if you have the `atomic_add_long' function. */
/* #undef HAVE_ATOMIC_ADD_LONG */ /* #undef HAVE_ATOMIC_ADD_LONG */
/* Define to 1 if you have the `atomic_cas_32' function. */ /* Define to 1 if you have the `atomic_cas_32' function. */
/* #undef HAVE_ATOMIC_CAS_32 */ /* #undef HAVE_ATOMIC_CAS_32 */
/* Define to 1 if you have the `atomic_cas_64' function. */ /* Define to 1 if you have the `atomic_cas_64' function. */
skipping to change at line 224 skipping to change at line 227
/* Define to enable charset tis620 */ /* Define to enable charset tis620 */
/* #undef HAVE_CHARSET_tis620 */ /* #undef HAVE_CHARSET_tis620 */
/* Define to enable charset ucs2 */ /* Define to enable charset ucs2 */
/* #undef HAVE_CHARSET_ucs2 */ /* #undef HAVE_CHARSET_ucs2 */
/* Define to enable charset ujis */ /* Define to enable charset ujis */
/* #undef HAVE_CHARSET_ujis */ /* #undef HAVE_CHARSET_ujis */
/* Define to enable ut8 */ /* Define to enable utf16 */
/* #undef HAVE_CHARSET_utf16 */
/* Define to enable utf32 */
/* #undef HAVE_CHARSET_utf32 */
/* Define to enable utf8 */
#define HAVE_CHARSET_utf8 1 #define HAVE_CHARSET_utf8 1
/* Define to enable utf8mb4 */
#define HAVE_CHARSET_utf8mb4 1
/* Define to 1 if you have the `chsize' function. */ /* Define to 1 if you have the `chsize' function. */
/* #undef HAVE_CHSIZE */ /* #undef HAVE_CHSIZE */
/* Define to 1 if you have the `clock_gettime' function. */ /* Define to 1 if you have the `clock_gettime' function. */
/* #undef HAVE_CLOCK_GETTIME */ /* #undef HAVE_CLOCK_GETTIME */
/* Define to enable compression support */ /* Define to enable compression support */
#define HAVE_COMPRESS 1 #define HAVE_COMPRESS 1
/* crypt */ /* crypt */
skipping to change at line 309 skipping to change at line 321
/* Define to 1 if you have the `fchmod' function. */ /* Define to 1 if you have the `fchmod' function. */
#define HAVE_FCHMOD 1 #define HAVE_FCHMOD 1
/* Define to 1 if you have the `fcntl' function. */ /* Define to 1 if you have the `fcntl' function. */
#define HAVE_FCNTL 1 #define HAVE_FCNTL 1
/* Define to 1 if you have the <fcntl.h> header file. */ /* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1 #define HAVE_FCNTL_H 1
/* Define to 1 if you have the `fconvert' function. */
/* #undef HAVE_FCONVERT */
/* Define to 1 if you have the `fdatasync' function. */ /* Define to 1 if you have the `fdatasync' function. */
#define HAVE_FDATASYNC 1 #define HAVE_FDATASYNC 1
/* Define to 1 if you have the <fenv.h> header file. */ /* Define to 1 if you have the <fenv.h> header file. */
#define HAVE_FENV_H 1 #define HAVE_FENV_H 1
/* Define to 1 if you have the `fesetround' function. */ /* Define to 1 if you have the `fesetround' function. */
#define HAVE_FESETROUND 1 #define HAVE_FESETROUND 1
/* Define to 1 if you have the `fgetln' function. */ /* Define to 1 if you have the `fgetln' function. */
skipping to change at line 348 skipping to change at line 357
/* Define to 1 if you have the `fpsetmask' function. */ /* Define to 1 if you have the `fpsetmask' function. */
/* #undef HAVE_FPSETMASK */ /* #undef HAVE_FPSETMASK */
/* Define to 1 if the system has the type `fp_except'. */ /* Define to 1 if the system has the type `fp_except'. */
/* #undef HAVE_FP_EXCEPT */ /* #undef HAVE_FP_EXCEPT */
/* Define to 1 if you have the `fsync' function. */ /* Define to 1 if you have the `fsync' function. */
#define HAVE_FSYNC 1 #define HAVE_FSYNC 1
/* Define to 1 if you have the `ftime' function. */
#define HAVE_FTIME 1
/* Define to 1 if you have the `ftruncate' function. */ /* Define to 1 if you have the `ftruncate' function. */
#define HAVE_FTRUNCATE 1 #define HAVE_FTRUNCATE 1
/* Define to 1 if compiler provides atomic builtins. */ /* Define to 1 if compiler provides atomic builtins. */
#define HAVE_GCC_ATOMIC_BUILTINS 1 #define HAVE_GCC_ATOMIC_BUILTINS 1
/* Define to 1 if you have the `getcwd' function. */ /* Define to 1 if you have the `getcwd' function. */
#define HAVE_GETCWD 1 #define HAVE_GETCWD 1
/* Define to 1 if you have the `gethostbyaddr_r' function. */ /* Define to 1 if you have the `gethostbyaddr_r' function. */
skipping to change at line 400 skipping to change at line 412
/* getpwent() declaration present */ /* getpwent() declaration present */
/* #undef HAVE_GETPW_DECLS */ /* #undef HAVE_GETPW_DECLS */
/* Define to 1 if you have the `getrlimit' function. */ /* Define to 1 if you have the `getrlimit' function. */
#define HAVE_GETRLIMIT 1 #define HAVE_GETRLIMIT 1
/* Define to 1 if you have the `getrusage' function. */ /* Define to 1 if you have the `getrusage' function. */
#define HAVE_GETRUSAGE 1 #define HAVE_GETRUSAGE 1
/* Define to 1 if you have the `gettimeofday' function. */
#define HAVE_GETTIMEOFDAY 1
/* Define to 1 if you have the `getwd' function. */ /* Define to 1 if you have the `getwd' function. */
#define HAVE_GETWD 1 #define HAVE_GETWD 1
/* Define to 1 if you have the `gmtime_r' function. */ /* Define to 1 if you have the `gmtime_r' function. */
#define HAVE_GMTIME_R 1 #define HAVE_GMTIME_R 1
/* Define to 1 if you have the <grp.h> header file. */ /* Define to 1 if you have the <grp.h> header file. */
#define HAVE_GRP_H 1 #define HAVE_GRP_H 1
/* HIST_ENTRY is defined in the outer libeditreadline */ /* HIST_ENTRY is defined in the outer libeditreadline */
#define HAVE_HIST_ENTRY 1 #define HAVE_HIST_ENTRY 1
/* Define to 1 if you have the <ia64intrin.h> header file. */
/* #undef HAVE_IA64INTRIN_H */
/* pthread_t can be used by GCC atomic builtins */ /* pthread_t can be used by GCC atomic builtins */
#define HAVE_IB_ATOMIC_PTHREAD_T_GCC 1 #define HAVE_IB_ATOMIC_PTHREAD_T_GCC 1
/* pthread_t can be used by solaris atomics */ /* pthread_t can be used by solaris atomics */
/* #undef HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS */ /* #undef HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS */
/* GCC atomic builtins are available */ /* GCC atomic builtins are available */
#define HAVE_IB_GCC_ATOMIC_BUILTINS 1 #define HAVE_IB_GCC_ATOMIC_BUILTINS 1
/* Does x86 PAUSE instruction exist */ /* Does x86 PAUSE instruction exist */
skipping to change at line 451 skipping to change at line 469
/* Define to 1 if the system has the type `int64'. */ /* Define to 1 if the system has the type `int64'. */
/* #undef HAVE_INT64 */ /* #undef HAVE_INT64 */
/* Define to 1 if the system has the type `int8'. */ /* Define to 1 if the system has the type `int8'. */
/* #undef HAVE_INT8 */ /* #undef HAVE_INT8 */
/* Define to 1 if you have the <inttypes.h> header file. */ /* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1 #define HAVE_INTTYPES_H 1
/* Define to 1 if the system has the type `in_addr_t'. */ /* Define if IPv6 networking support is present */
#define HAVE_IN_ADDR_T 1 #define HAVE_IPV6 1
/* isinf() macro or function */ /* isinf() macro or function */
#define HAVE_ISINF 1 #define HAVE_ISINF 1
/* Define to 1 if you have the `isnan' function. */ /* Define to 1 if you have the `isnan' function. */
#define HAVE_ISNAN 1 #define HAVE_ISNAN 1
/* Define to 1 if you have the `issetugid' function. */ /* Define to 1 if you have the `issetugid' function. */
/* #undef HAVE_ISSETUGID */ /* #undef HAVE_ISSETUGID */
skipping to change at line 580 skipping to change at line 598
/* Define to 1 if you have the `mmap' function. */ /* Define to 1 if you have the `mmap' function. */
#define HAVE_MMAP 1 #define HAVE_MMAP 1
/* Define to 1 if you have the `mmap64' function. */ /* Define to 1 if you have the `mmap64' function. */
#define HAVE_MMAP64 1 #define HAVE_MMAP64 1
/* Define to 1 if you have the <ndir.h> header file. */ /* Define to 1 if you have the <ndir.h> header file. */
/* #undef HAVE_NDIR_H */ /* #undef HAVE_NDIR_H */
/* Define to 1 if you have the <netinet/in6.h> header file. */
/* #undef HAVE_NETINET_IN6_H */
/* Define to 1 if you have the <netinet/in.h> header file. */ /* Define to 1 if you have the <netinet/in.h> header file. */
#define HAVE_NETINET_IN_H 1 #define HAVE_NETINET_IN_H 1
/* Define to 1 if you have the `nl_langinfo' function. */ /* Define to 1 if you have the `nl_langinfo' function. */
#define HAVE_NL_LANGINFO 1 #define HAVE_NL_LANGINFO 1
/* For some non posix threads */ /* For some non posix threads */
/* #undef HAVE_NONPOSIX_PTHREAD_GETSPECIFIC */ /* #undef HAVE_NONPOSIX_PTHREAD_GETSPECIFIC */
/* For some non posix threads */ /* For some non posix threads */
skipping to change at line 616 skipping to change at line 637
/* Does x86 PAUSE instruction exist */ /* Does x86 PAUSE instruction exist */
#define HAVE_PAUSE_INSTRUCTION 1 #define HAVE_PAUSE_INSTRUCTION 1
/* Define to 1 if you have the `perror' function. */ /* Define to 1 if you have the `perror' function. */
#define HAVE_PERROR 1 #define HAVE_PERROR 1
/* Define to 1 if you have the `poll' function. */ /* Define to 1 if you have the `poll' function. */
#define HAVE_POLL 1 #define HAVE_POLL 1
/* Define to 1 if you have the <poll.h> header file. */
#define HAVE_POLL_H 1
/* Define to 1 if you have the `port_create' function. */ /* Define to 1 if you have the `port_create' function. */
/* #undef HAVE_PORT_CREATE */ /* #undef HAVE_PORT_CREATE */
/* Define to 1 if you have the <port.h> header file. */ /* Define to 1 if you have the <port.h> header file. */
/* #undef HAVE_PORT_H */ /* #undef HAVE_PORT_H */
/* Define to 1 if you have the `posix_fallocate' function. */ /* Define to 1 if you have the `posix_fallocate' function. */
#define HAVE_POSIX_FALLOCATE 1 #define HAVE_POSIX_FALLOCATE 1
/* Signal handling is POSIX (sigset/sighold, etc) */ /* Signal handling is POSIX (sigset/sighold, etc) */
skipping to change at line 640 skipping to change at line 664
/* Define to 1 if you have the `printstack' function. */ /* Define to 1 if you have the `printstack' function. */
/* #undef HAVE_PRINTSTACK */ /* #undef HAVE_PRINTSTACK */
/* Define to 1 if you have the `pthread_attr_create' function. */ /* Define to 1 if you have the `pthread_attr_create' function. */
/* #undef HAVE_PTHREAD_ATTR_CREATE */ /* #undef HAVE_PTHREAD_ATTR_CREATE */
/* Define to 1 if you have the `pthread_attr_getstacksize' function. */ /* Define to 1 if you have the `pthread_attr_getstacksize' function. */
#define HAVE_PTHREAD_ATTR_GETSTACKSIZE 1 #define HAVE_PTHREAD_ATTR_GETSTACKSIZE 1
/* Define to 1 if you have the `pthread_attr_setprio' function. */
/* #undef HAVE_PTHREAD_ATTR_SETPRIO */
/* Define to 1 if you have the `pthread_attr_setschedparam' function. */
#define HAVE_PTHREAD_ATTR_SETSCHEDPARAM 1
/* pthread_attr_setscope */ /* pthread_attr_setscope */
#define HAVE_PTHREAD_ATTR_SETSCOPE 1 #define HAVE_PTHREAD_ATTR_SETSCOPE 1
/* Define to 1 if you have the `pthread_attr_setstacksize' function. */ /* Define to 1 if you have the `pthread_attr_setstacksize' function. */
#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1 #define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
/* Define to 1 if you have the `pthread_condattr_create' function. */ /* Define to 1 if you have the `pthread_condattr_create' function. */
/* #undef HAVE_PTHREAD_CONDATTR_CREATE */ /* #undef HAVE_PTHREAD_CONDATTR_CREATE */
/* Define to 1 if you have the `pthread_getsequence_np' function. */ /* Define to 1 if you have the `pthread_getsequence_np' function. */
/* #undef HAVE_PTHREAD_GETSEQUENCE_NP */ /* #undef HAVE_PTHREAD_GETSEQUENCE_NP */
/* Define to 1 if you have the `pthread_init' function. */ /* Define to 1 if you have the `pthread_init' function. */
/* #undef HAVE_PTHREAD_INIT */ /* #undef HAVE_PTHREAD_INIT */
/* Define to 1 if you have the `pthread_key_delete' function. */ /* Define to 1 if you have the `pthread_key_delete' function. */
#define HAVE_PTHREAD_KEY_DELETE 1 #define HAVE_PTHREAD_KEY_DELETE 1
/* Define to 1 if you have the `pthread_rwlockattr_setkind_np' function. */
#define HAVE_PTHREAD_RWLOCKATTR_SETKIND_NP 1
/* Define to 1 if you have the `pthread_rwlock_rdlock' function. */ /* Define to 1 if you have the `pthread_rwlock_rdlock' function. */
#define HAVE_PTHREAD_RWLOCK_RDLOCK 1 #define HAVE_PTHREAD_RWLOCK_RDLOCK 1
/* Define to 1 if you have the `pthread_setprio' function. */
/* #undef HAVE_PTHREAD_SETPRIO */
/* Define to 1 if you have the `pthread_setprio_np' function. */
/* #undef HAVE_PTHREAD_SETPRIO_NP */
/* Define to 1 if you have the `pthread_setschedparam' function. */
#define HAVE_PTHREAD_SETSCHEDPARAM 1
/* Define to 1 if you have the `pthread_setschedprio' function. */ /* Define to 1 if you have the `pthread_setschedprio' function. */
#define HAVE_PTHREAD_SETSCHEDPRIO 1 #define HAVE_PTHREAD_SETSCHEDPRIO 1
/* Define to 1 if you have the `pthread_sigmask' function. */ /* Define to 1 if you have the `pthread_sigmask' function. */
#define HAVE_PTHREAD_SIGMASK 1 #define HAVE_PTHREAD_SIGMASK 1
/* pthread_yield function with one argument */ /* pthread_yield function with one argument */
/* #undef HAVE_PTHREAD_YIELD_ONE_ARG */ /* #undef HAVE_PTHREAD_YIELD_ONE_ARG */
/* pthread_yield that doesn't take any arguments */ /* pthread_yield that doesn't take any arguments */
skipping to change at line 697 skipping to change at line 709
/* Define to 1 if you have the `putenv' function. */ /* Define to 1 if you have the `putenv' function. */
#define HAVE_PUTENV 1 #define HAVE_PUTENV 1
/* Define to 1 if you have the <pwd.h> header file. */ /* Define to 1 if you have the <pwd.h> header file. */
#define HAVE_PWD_H 1 #define HAVE_PWD_H 1
/* If we want to have query cache */ /* If we want to have query cache */
#define HAVE_QUERY_CACHE 1 #define HAVE_QUERY_CACHE 1
/* Define to 1 if you have the `rdtscll' function. */
/* #undef HAVE_RDTSCLL */
/* POSIX readdir_r */ /* POSIX readdir_r */
#define HAVE_READDIR_R 1 #define HAVE_READDIR_R 1
/* Define to 1 if you have the `readlink' function. */ /* Define to 1 if you have the `readlink' function. */
#define HAVE_READLINK 1 #define HAVE_READLINK 1
/* Define to 1 if you have the `read_real_time' function. */
/* #undef HAVE_READ_REAL_TIME */
/* Define to 1 if you have the `realpath' function. */ /* Define to 1 if you have the `realpath' function. */
#define HAVE_REALPATH 1 #define HAVE_REALPATH 1
/* Define to 1 if you have the `regcomp' function. */ /* Define to 1 if you have the `regcomp' function. */
#define HAVE_REGCOMP 1 #define HAVE_REGCOMP 1
/* Define to 1 if you have the `rename' function. */ /* Define to 1 if you have the `rename' function. */
#define HAVE_RENAME 1 #define HAVE_RENAME 1
/* Define to 1 if system calls automatically restart after interruption by a /* Define to 1 if system calls automatically restart after interruption by a
skipping to change at line 879 skipping to change at line 897
/* Define to 1 if you have the `strtoll' function. */ /* Define to 1 if you have the `strtoll' function. */
#define HAVE_STRTOLL 1 #define HAVE_STRTOLL 1
/* Define to 1 if you have the `strtoul' function. */ /* Define to 1 if you have the `strtoul' function. */
#define HAVE_STRTOUL 1 #define HAVE_STRTOUL 1
/* Define to 1 if you have the `strtoull' function. */ /* Define to 1 if you have the `strtoull' function. */
#define HAVE_STRTOULL 1 #define HAVE_STRTOULL 1
/* Define to 1 if the system has the type `struct in6_addr'. */
#define HAVE_STRUCT_IN6_ADDR 1
/* Define to 1 if the system has the type `struct sockaddr_in6'. */
#define HAVE_STRUCT_SOCKADDR_IN6 1
/* Define to 1 if `st_rdev' is member of `struct stat'. */ /* Define to 1 if `st_rdev' is member of `struct stat'. */
#define HAVE_STRUCT_STAT_ST_RDEV 1 #define HAVE_STRUCT_STAT_ST_RDEV 1
/* Define to 1 if your `struct stat' has `st_rdev'. Deprecated, use /* Define to 1 if your `struct stat' has `st_rdev'. Deprecated, use
`HAVE_STRUCT_STAT_ST_RDEV' instead. */ `HAVE_STRUCT_STAT_ST_RDEV' instead. */
#define HAVE_ST_RDEV 1 #define HAVE_ST_RDEV 1
/* Define to 1 if you have the <synch.h> header file. */ /* Define to 1 if you have the <synch.h> header file. */
/* #undef HAVE_SYNCH_H */ /* #undef HAVE_SYNCH_H */
skipping to change at line 946 skipping to change at line 970
/* Define to 1 if you have the <sys/stat.h> header file. */ /* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1 #define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/stream.h> header file. */ /* Define to 1 if you have the <sys/stream.h> header file. */
/* #undef HAVE_SYS_STREAM_H */ /* #undef HAVE_SYS_STREAM_H */
/* Define to 1 if you have the <sys/timeb.h> header file. */ /* Define to 1 if you have the <sys/timeb.h> header file. */
#define HAVE_SYS_TIMEB_H 1 #define HAVE_SYS_TIMEB_H 1
/* Define to 1 if you have the <sys/times.h> header file. */
#define HAVE_SYS_TIMES_H 1
/* Define to 1 if you have the <sys/time.h> header file. */
#define HAVE_SYS_TIME_H 1
/* Define to 1 if you have the <sys/types.h> header file. */ /* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1 #define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <sys/un.h> header file. */ /* Define to 1 if you have the <sys/un.h> header file. */
#define HAVE_SYS_UN_H 1 #define HAVE_SYS_UN_H 1
/* Define to 1 if you have the <sys/utime.h> header file. */ /* Define to 1 if you have the <sys/utime.h> header file. */
/* #undef HAVE_SYS_UTIME_H */ /* #undef HAVE_SYS_UTIME_H */
/* Define to 1 if you have the <sys/vadvise.h> header file. */ /* Define to 1 if you have the <sys/vadvise.h> header file. */
skipping to change at line 988 skipping to change at line 1018
/* Define to 1 if you have the <termio.h> header file. */ /* Define to 1 if you have the <termio.h> header file. */
#define HAVE_TERMIO_H 1 #define HAVE_TERMIO_H 1
/* Define to 1 if you have the <term.h> header file. */ /* Define to 1 if you have the <term.h> header file. */
#define HAVE_TERM_H 1 #define HAVE_TERM_H 1
/* Define to 1 if you have the `thr_setconcurrency' function. */ /* Define to 1 if you have the `thr_setconcurrency' function. */
/* #undef HAVE_THR_SETCONCURRENCY */ /* #undef HAVE_THR_SETCONCURRENCY */
/* Define to 1 if you have the `thr_yield' function. */
/* #undef HAVE_THR_YIELD */
/* Define to 1 if you have the `time' function. */
#define HAVE_TIME 1
/* Define to 1 if you have the `times' function. */
#define HAVE_TIMES 1
/* Timespec has a ts_sec instead of tv_sev */ /* Timespec has a ts_sec instead of tv_sev */
/* #undef HAVE_TIMESPEC_TS_SEC */ /* #undef HAVE_TIMESPEC_TS_SEC */
/* Define to 1 if you have the <time.h> header file. */
#define HAVE_TIME_H 1
/* Define to 1 if you have the `towlower' function. */ /* Define to 1 if you have the `towlower' function. */
#define HAVE_TOWLOWER 1 #define HAVE_TOWLOWER 1
/* Define to 1 if you have the `towupper' function. */ /* Define to 1 if you have the `towupper' function. */
#define HAVE_TOWUPPER 1 #define HAVE_TOWUPPER 1
/* Have the tzname variable */ /* Have the tzname variable */
#define HAVE_TZNAME 1 #define HAVE_TZNAME 1
/* national Unicode collations */ /* national Unicode collations */
skipping to change at line 1150 skipping to change at line 1192
/* NDB major version */ /* NDB major version */
/* #undef NDB_VERSION_MAJOR */ /* #undef NDB_VERSION_MAJOR */
/* NDB minor version */ /* NDB minor version */
/* #undef NDB_VERSION_MINOR */ /* #undef NDB_VERSION_MINOR */
/* NDB status version */ /* NDB status version */
/* #undef NDB_VERSION_STATUS */ /* #undef NDB_VERSION_STATUS */
/* No need to use alarm for socket timeout */
#define NO_ALARM 1
/* Name of package */ /* Name of package */
#define PACKAGE "mysql" #define PACKAGE "mysql"
/* Define to the address where bug reports for this package should be sent. */ /* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "" #define PACKAGE_BUGREPORT ""
/* Define to the full name of this package. */ /* Define to the full name of this package. */
#define PACKAGE_NAME "MySQL Server" #define PACKAGE_NAME "MySQL Server"
/* Define to the full name and version of this package. */ /* Define to the full name and version of this package. */
#define PACKAGE_STRING "MySQL Server 5.5.2-m2" #define PACKAGE_STRING "MySQL Server 5.5.3-m3"
/* Define to the one symbol short name of this package. */ /* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "mysql" #define PACKAGE_TARNAME "mysql"
/* Define to the version of this package. */ /* Define to the version of this package. */
#define PACKAGE_VERSION "5.5.2-m2" #define PACKAGE_VERSION "5.5.3-m3"
/* mysql client protocol version */ /* mysql client protocol version */
#define PROTOCOL_VERSION 10 #define PROTOCOL_VERSION 10
/* qsort returns void */ /* qsort returns void */
#define QSORT_TYPE_IS_VOID 1 #define QSORT_TYPE_IS_VOID 1
/* The return type of qsort (int or void). */ /* The return type of qsort (int or void). */
#define RETQSORTTYPE void #define RETQSORTTYPE void
/* Define as the return type of signal handlers (`int' or `void'). */ /* Define as the return type of signal handlers (`int' or `void'). */
#define RETSIGTYPE void #define RETSIGTYPE void
/* Need to use vio close for kill connection */
#define SIGNAL_WITH_VIO_CLOSE 1
/* The size of `char', as computed by sizeof. */ /* The size of `char', as computed by sizeof. */
#define SIZEOF_CHAR 1 #define SIZEOF_CHAR 1
/* The size of `char*', as computed by sizeof. */ /* The size of `char*', as computed by sizeof. */
#define SIZEOF_CHARP 4 #define SIZEOF_CHARP 4
/* The size of `int', as computed by sizeof. */ /* The size of `int', as computed by sizeof. */
#define SIZEOF_INT 4 #define SIZEOF_INT 4
/* The size of `long', as computed by sizeof. */ /* The size of `long', as computed by sizeof. */
skipping to change at line 1291 skipping to change at line 1339
/* #undef USE_MYSYS_NEW */ /* #undef USE_MYSYS_NEW */
/* used new readline interface (are rl_completion_func_t and /* used new readline interface (are rl_completion_func_t and
rl_compentry_func_t defined) */ rl_compentry_func_t defined) */
/* #undef USE_NEW_READLINE_INTERFACE */ /* #undef USE_NEW_READLINE_INTERFACE */
/* the pstack backtrace library */ /* the pstack backtrace library */
/* #undef USE_PSTACK */ /* #undef USE_PSTACK */
/* Version number of package */ /* Version number of package */
#define VERSION "5.5.2-m2" #define VERSION "5.5.3-m3"
/* sighandler type is void (*signal ()) (); */ /* sighandler type is void (*signal ()) (); */
#define VOID_SIGHANDLER 1 #define VOID_SIGHANDLER 1
/* Include Archive Storage Engine into mysqld */ /* Include Archive Storage Engine into mysqld */
/* #undef WITH_ARCHIVE_STORAGE_ENGINE */ /* #undef WITH_ARCHIVE_STORAGE_ENGINE */
/* Include Basic Write-only Read-never tables into mysqld */ /* Include Basic Write-only Read-never tables into mysqld */
/* #undef WITH_BLACKHOLE_STORAGE_ENGINE */ /* #undef WITH_BLACKHOLE_STORAGE_ENGINE */
skipping to change at line 1335 skipping to change at line 1383
/* Include High Availability Clustered tables into mysqld */ /* Include High Availability Clustered tables into mysqld */
/* #undef WITH_NDBCLUSTER_STORAGE_ENGINE */ /* #undef WITH_NDBCLUSTER_STORAGE_ENGINE */
/* Including Ndb Cluster Binlog */ /* Including Ndb Cluster Binlog */
/* #undef WITH_NDB_BINLOG */ /* #undef WITH_NDB_BINLOG */
/* Include MySQL Partitioning Support into mysqld */ /* Include MySQL Partitioning Support into mysqld */
/* #undef WITH_PARTITION_STORAGE_ENGINE */ /* #undef WITH_PARTITION_STORAGE_ENGINE */
/* Include Performance Schema into mysqld */
/* #undef WITH_PERFSCHEMA_STORAGE_ENGINE */
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */ significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD #if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__ # if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1 # define WORDS_BIGENDIAN 1
# endif # endif
#else #else
# ifndef WORDS_BIGENDIAN # ifndef WORDS_BIGENDIAN
/* # undef WORDS_BIGENDIAN */ /* # undef WORDS_BIGENDIAN */
# endif # endif
 End of changes. 25 change blocks. 
24 lines changed or deleted 75 lines changed or added


 my_getopt.h   my_getopt.h 
skipping to change at line 35 skipping to change at line 35
#define GET_LONG 5 #define GET_LONG 5
#define GET_ULONG 6 #define GET_ULONG 6
#define GET_LL 7 #define GET_LL 7
#define GET_ULL 8 #define GET_ULL 8
#define GET_STR 9 #define GET_STR 9
#define GET_STR_ALLOC 10 #define GET_STR_ALLOC 10
#define GET_DISABLED 11 #define GET_DISABLED 11
#define GET_ENUM 12 #define GET_ENUM 12
#define GET_SET 13 #define GET_SET 13
#define GET_DOUBLE 14 #define GET_DOUBLE 14
#define GET_FLAGSET 15
#define GET_ASK_ADDR 128 #define GET_ASK_ADDR 128
#define GET_TYPE_MASK 127 #define GET_TYPE_MASK 127
enum get_opt_arg_type { NO_ARG, OPT_ARG, REQUIRED_ARG }; enum get_opt_arg_type { NO_ARG, OPT_ARG, REQUIRED_ARG };
struct st_typelib; struct st_typelib;
struct my_option struct my_option
{ {
const char *name; /* Name of the option */ const char *name; /**< Name of the option. name=NULL
int id; /* unique id or short option */ marks the end of the my_option[]
const char *comment; /* option comment, for autom. --hel array.
p */ */
uchar **value; /* The variable value */ int id; /**< For 0<id<255 it's means one
uchar **u_max_value; /* The user def. max variable value character for a short option
*/ (like -A), if >255 no short opti
struct st_typelib *typelib; /* Pointer to possible values */ on
ulong var_type; is created, but a long option st
enum get_opt_arg_type arg_type; ill
longlong def_value; /* Default value */ can be identified uniquely in th
longlong min_value; /* Min allowed value */ e
longlong max_value; /* Max allowed value */ my_get_one_option() callback.
longlong sub_size; /* Subtract this from given value * If an opton needs neither specia
/ l
long block_size; /* Value should be a mult. of this treatment in the my_get_one_opti
*/ on()
void *app_type; /* To be used by an application */ nor one-letter short equivalent
use id=0
*/
const char *comment; /**< option comment, for autom. --h
elp.
if it's NULL the option is not
visible in --help.
*/
uchar **value; /**< A pointer to the variable valu
e */
uchar **u_max_value; /**< The user def. max variable val
ue */
struct st_typelib *typelib; /**< Pointer to possible values */
ulong var_type; /**< GET_BOOL, GET_ULL, etc */
enum get_opt_arg_type arg_type; /**< e.g. REQUIRED_ARG or OPT_ARG *
/
longlong def_value; /**< Default value */
longlong min_value; /**< Min allowed value (for numbers
) */
longlong max_value; /**< Max allowed value (for numbers
) */
longlong sub_size; /**< Unused
*/
long block_size; /**< Value should be a mult. of thi
s (for numbers) */
void *app_type; /**< To be used by an application *
/
}; };
typedef my_bool (* my_get_one_option) (int, const struct my_option *, char typedef my_bool (*my_get_one_option) (int, const struct my_option *, char *
* ); );
typedef void (* my_error_reporter) (enum loglevel level, const char *format typedef void (*my_error_reporter) (enum loglevel level, const char *format,
, ... ); ... );
extern char *disabled_my_option; extern char *disabled_my_option;
extern my_bool my_getopt_print_errors; extern my_bool my_getopt_print_errors;
extern my_bool my_getopt_skip_unknown; extern my_bool my_getopt_skip_unknown;
extern my_error_reporter my_getopt_error_reporter; extern my_error_reporter my_getopt_error_reporter;
extern int handle_options (int *argc, char ***argv, extern int handle_options (int *argc, char ***argv,
const struct my_option *longopts, my_get_one_opti on); const struct my_option *longopts, my_get_one_opti on);
extern void my_cleanup_options(const struct my_option *options); extern void my_cleanup_options(const struct my_option *options);
extern void my_print_help(const struct my_option *options); extern void my_print_help(const struct my_option *options);
extern void my_print_variables(const struct my_option *options); extern void my_print_variables(const struct my_option *options);
extern void my_getopt_register_get_addr(uchar ** (*func_addr)(const char *, uint, extern void my_getopt_register_get_addr(uchar ** (*func_addr)(const char *, uint,
const struct my_option *, int *)); const struct my_option *, int *));
ulonglong getopt_ull_limit_value(ulonglong num, const struct my_option *opt p, ulonglong getopt_ull_limit_value(ulonglong num, const struct my_option *opt p,
my_bool *fix); my_bool *fix);
longlong getopt_ll_limit_value(longlong, const struct my_option *, longlong getopt_ll_limit_value(longlong, const struct my_option *,
my_bool *fix); my_bool *fix);
double getopt_double_limit_value(double num, const struct my_option *optp,
my_bool *fix);
my_bool getopt_compare_strings(const char *s, const char *t, uint length); my_bool getopt_compare_strings(const char *s, const char *t, uint length);
C_MODE_END C_MODE_END
#endif /* _my_getopt_h */ #endif /* _my_getopt_h */
 End of changes. 4 change blocks. 
22 lines changed or deleted 51 lines changed or added


 my_global.h   my_global.h 
/* Copyright (C) 2000-2003 MySQL AB /* Copyright (C) 2000-2003 MySQL AB, 2009 Sun Microsystems, Inc
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License. the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A */ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A */
/* This is the include file that should be included 'first' in every C file . */ /* This is the include file that should be included 'first' in every C file . */
#ifndef _global_h #ifndef _global_h
#define _global_h #define _global_h
/* Client library users on Windows need this macro defined here. */
#if !defined(__WIN__) && defined(_WIN32)
#define __WIN__
#endif
/* /*
InnoDB depends on some MySQL internals which other plugins should not InnoDB depends on some MySQL internals which other plugins should not
need. This is because of InnoDB's foreign key support, "safe" binlog need. This is because of InnoDB's foreign key support, "safe" binlog
truncation, and other similar legacy features. truncation, and other similar legacy features.
We define accessors for these internals unconditionally, but do not We define accessors for these internals unconditionally, but do not
expose them in mysql/plugin.h. They are declared in ha_innodb.h for expose them in mysql/plugin.h. They are declared in ha_innodb.h for
InnoDB's use. InnoDB's use.
*/ */
#define INNODB_COMPATIBILITY_HOOKS #define INNODB_COMPATIBILITY_HOOKS
skipping to change at line 70 skipping to change at line 75
/* Macros to make switching between C and C++ mode easier */ /* Macros to make switching between C and C++ mode easier */
#ifdef __cplusplus #ifdef __cplusplus
#define C_MODE_START extern "C" { #define C_MODE_START extern "C" {
#define C_MODE_END } #define C_MODE_END }
#else #else
#define C_MODE_START #define C_MODE_START
#define C_MODE_END #define C_MODE_END
#endif #endif
#if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(WIN #if defined(_WIN32)
32) #include <my_config.h>
#include <config-win.h>
#elif defined(__NETWARE__) #elif defined(__NETWARE__)
#include <my_config.h> #include <my_config.h>
#include <config-netware.h> #include <config-netware.h>
#if defined(__cplusplus) && defined(inline) #if defined(__cplusplus) && defined(inline)
#undef inline /* fix configure problem */ #undef inline /* fix configure problem */
#endif #endif
#else #else
#include <my_config.h> #include <my_config.h>
#if defined(__cplusplus) && defined(inline) #if defined(__cplusplus) && defined(inline)
#undef inline /* fix configure problem */ #undef inline /* fix configure problem */
#endif #endif
#endif /* _WIN32... */ #endif /* _WIN32... */
/* Make it easier to add conditionl code for windows */ #ifdef WITH_PERFSCHEMA_STORAGE_ENGINE
#define HAVE_PSI_INTERFACE
#endif /* WITH_PERFSCHEMA_STORAGE_ENGINE */
/* Make it easier to add conditional code in _expressions_ */
#ifdef __WIN__ #ifdef __WIN__
#define IF_WIN(A,B) (A) #define IF_WIN(A,B) A
#else
#define IF_WIN(A,B) B
#endif
#ifdef __NETWARE__
#define IF_NETWARE(A,B) A
#else
#define IF_NETWARE(A,B) B
#endif
#ifndef DBUG_OFF
#define IF_DBUG(A,B) A
#else
#define IF_DBUG(A,B) B
#endif
#ifdef HAVE_purify
#define IF_PURIFY(A,B) A
#else #else
#define IF_WIN(A,B) (B) #define IF_PURIFY(A,B) B
#endif
#ifdef DISABLE_GRANT_OPTIONS
#define IF_DISABLE_GRANT_OPTIONS(A,B) A
#else
#define IF_DISABLE_GRANT_OPTIONS(A,B) B
#endif #endif
#ifndef EMBEDDED_LIBRARY #ifndef EMBEDDED_LIBRARY
#ifdef WITH_NDB_BINLOG #ifdef WITH_NDB_BINLOG
#define HAVE_NDB_BINLOG 1 #define HAVE_NDB_BINLOG 1
#endif #endif
#endif /* !EMBEDDED_LIBRARY */ #endif /* !EMBEDDED_LIBRARY */
#ifndef EMBEDDED_LIBRARY #ifndef EMBEDDED_LIBRARY
#define HAVE_REPLICATION #define HAVE_REPLICATION
#define HAVE_EXTERNAL_CLIENT #define HAVE_EXTERNAL_CLIENT
#endif #endif
/* Some defines to avoid ifdefs in the code */ /* Some defines to avoid ifdefs in the code */
#ifndef NETWARE_YIELD #ifndef NETWARE_YIELD
#define NETWARE_YIELD #define NETWARE_YIELD
#define NETWARE_SET_SCREEN_MODE(A) #define NETWARE_SET_SCREEN_MODE(A)
#endif #endif
#if defined (_WIN32)
/*
off_t is 32 bit long. We do not use C runtime functions
with off_t but native Win32 file IO APIs, that work with
64 bit offsets.
*/
#undef SIZEOF_OFF_T
#define SIZEOF_OFF_T 8
/*
Prevent inclusion of Windows GDI headers - they define symbol
ERROR that conflicts with mysql headers.
*/
#ifndef NOGDI
#define NOGDI
#endif
/* Include common headers.*/
#include <winsock2.h>
#include <ws2tcpip.h> /* SOCKET */
#include <io.h> /* access(), chmod() */
#include <process.h> /* getpid() */
#define sleep(a) Sleep((a)*1000)
/* Define missing access() modes. */
#define F_OK 0
#define W_OK 2
/* Define missing file locking constants. */
#define F_RDLCK 1
#define F_WRLCK 2
#define F_UNLCK 3
#define F_TO_EOF 0x3FFFFFFF
/* Shared memory and named pipe connections are supported. */
#define HAVE_SMEM 1
#define HAVE_NAMED_PIPE 1
#define shared_memory_buffer_length 16000
#define default_shared_memory_base_name "MYSQL"
#endif /* _WIN32*/
/* Workaround for _LARGE_FILES and _LARGE_FILE_API incompatibility on AIX * / /* Workaround for _LARGE_FILES and _LARGE_FILE_API incompatibility on AIX * /
#if defined(_AIX) && defined(_LARGE_FILE_API) #if defined(_AIX) && defined(_LARGE_FILE_API)
#undef _LARGE_FILE_API #undef _LARGE_FILE_API
#endif #endif
/* /*
The macros below are used to allow build of Universal/fat binaries of The macros below are used to allow build of Universal/fat binaries of
MySQL and MySQL applications under darwin. MySQL and MySQL applications under darwin.
*/ */
#if defined(__APPLE__) && defined(__MACH__) #if defined(__APPLE__) && defined(__MACH__)
skipping to change at line 239 skipping to change at line 314
#endif #endif
/* /*
now let's figure out if inline functions are supported now let's figure out if inline functions are supported
autoconf defines 'inline' to be empty, if not autoconf defines 'inline' to be empty, if not
*/ */
#define inline_test_1(X) X ## 1 #define inline_test_1(X) X ## 1
#define inline_test_2(X) inline_test_1(X) #define inline_test_2(X) inline_test_1(X)
#if inline_test_2(inline) != 1 #if inline_test_2(inline) != 1
#define HAVE_INLINE #define HAVE_INLINE
#else
#warning No "inline" support in C, all "static inline" functions will be in
stantiated in every .o file!!!
#endif #endif
#undef inline_test_2 #undef inline_test_2
#undef inline_test_1 #undef inline_test_1
/* helper macro for "instantiating" inline functions */ /* helper macro for "instantiating" inline functions */
#define STATIC_INLINE static inline #define STATIC_INLINE static inline
/* /*
The following macros are used to control inlining a bit more than The following macros are used to control inlining a bit more than
usual. These macros are used to ensure that inlining always or usual. These macros are used to ensure that inlining always or
never occurs (independent of compilation mode). never occurs (independent of compilation mode).
skipping to change at line 477 skipping to change at line 554
*/ */
#include <assert.h> #include <assert.h>
/* an assert that works at compile-time. only for constant expression */ /* an assert that works at compile-time. only for constant expression */
#ifndef __GNUC__ #ifndef __GNUC__
#define compile_time_assert(X) do { } while(0) #define compile_time_assert(X) do { } while(0)
#else #else
#define compile_time_assert(X) \ #define compile_time_assert(X) \
do \ do \
{ \ { \
char compile_time_assert[(X) ? 1 : -1] \ typedef char compile_time_assert[(X) ? 1 : -1]; \
__attribute__ ((unused)); \
} while(0) } while(0)
#endif #endif
/* Go around some bugs in different OS and compilers */ /* Go around some bugs in different OS and compilers */
#if defined (HPUX11) && defined(_LARGEFILE_SOURCE) #if defined (HPUX11) && defined(_LARGEFILE_SOURCE)
#ifndef _LARGEFILE64_SOURCE
#define _LARGEFILE64_SOURCE #define _LARGEFILE64_SOURCE
#endif #endif
#endif
#if defined(_HPUX_SOURCE) && defined(HAVE_SYS_STREAM_H) #if defined(_HPUX_SOURCE) && defined(HAVE_SYS_STREAM_H)
#include <sys/stream.h> /* HPUX 10.20 defines ulong here. UG LY !!! */ #include <sys/stream.h> /* HPUX 10.20 defines ulong here. UG LY !!! */
#define HAVE_ULONG #define HAVE_ULONG
#endif #endif
#if defined(HPUX10) && defined(_LARGEFILE64_SOURCE) && defined(THREAD) #if defined(HPUX10) && defined(_LARGEFILE64_SOURCE) && defined(THREAD)
/* Fix bug in setrlimit */ /* Fix bug in setrlimit */
#undef setrlimit #undef setrlimit
#define setrlimit cma_setrlimit64 #define setrlimit cma_setrlimit64
#endif #endif
/* Declare madvise where it is not declared for C++, like Solaris */ /* Declare madvise where it is not declared for C++, like Solaris */
skipping to change at line 540 skipping to change at line 619
#ifdef I_AM_PARANOID #ifdef I_AM_PARANOID
#define DONT_ALLOW_USER_CHANGE 1 #define DONT_ALLOW_USER_CHANGE 1
#define DONT_USE_MYSQL_PWD 1 #define DONT_USE_MYSQL_PWD 1
#endif #endif
/* Does the system remember a signal handler after a signal ? */ /* Does the system remember a signal handler after a signal ? */
#ifndef HAVE_BSD_SIGNALS #ifndef HAVE_BSD_SIGNALS
#define DONT_REMEMBER_SIGNAL #define DONT_REMEMBER_SIGNAL
#endif #endif
/* Define void to stop lint from generating "null effekt" comments */
#ifndef DONT_DEFINE_VOID
#ifdef _lint
int __void__;
#define VOID(X) (__void__ = (int) (X))
#else
#undef VOID
#define VOID(X) (X)
#endif
#endif /* DONT_DEFINE_VOID */
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) #if defined(_lint) || defined(FORCE_INIT_OF_VARS)
#define LINT_INIT(var) var=0 /* No uninitialize-warning * / #define LINT_INIT(var) var=0 /* No uninitialize-warning * /
#else #else
#define LINT_INIT(var) #define LINT_INIT(var)
#endif #endif
/* /*
Suppress uninitialized variable warning without generating code. Suppress uninitialized variable warning without generating code.
The _cplusplus is a temporary workaround for C++ code pending a fix The _cplusplus is a temporary workaround for C++ code pending a fix
skipping to change at line 654 skipping to change at line 722
# endif # endif
#endif #endif
#define MIN_ARRAY_SIZE 0 /* Zero or One. Gcc allows zero*/ #define MIN_ARRAY_SIZE 0 /* Zero or One. Gcc allows zero*/
#define ASCII_BITS_USED 8 /* Bit char used */ #define ASCII_BITS_USED 8 /* Bit char used */
#define NEAR_F /* No near function handling */ #define NEAR_F /* No near function handling */
/* Some types that is different between systems */ /* Some types that is different between systems */
typedef int File; /* File descriptor */ typedef int File; /* File descriptor */
#ifndef Socket_defined #ifdef _WIN32
typedef SOCKET my_socket;
#else
typedef int my_socket; /* File descriptor for sockets */ typedef int my_socket; /* File descriptor for sockets */
#define INVALID_SOCKET -1 #define INVALID_SOCKET -1
#endif #endif
/* Type for fuctions that handles signals */ /* Type for fuctions that handles signals */
#define sig_handler RETSIGTYPE #define sig_handler RETSIGTYPE
C_MODE_START C_MODE_START
typedef void (*sig_return)();/* Returns type from signal */ typedef void (*sig_return)();/* Returns type from signal */
C_MODE_END C_MODE_END
#if defined(__GNUC__) && !defined(_lint) #if defined(__GNUC__) && !defined(_lint)
typedef char pchar; /* Mixed prototypes can take char */ typedef char pchar; /* Mixed prototypes can take char */
skipping to change at line 741 skipping to change at line 811
/* General constants */ /* General constants */
#define FN_LEN 256 /* Max file name len */ #define FN_LEN 256 /* Max file name len */
#define FN_HEADLEN 253 /* Max length of filepart of file name */ #define FN_HEADLEN 253 /* Max length of filepart of file name */
#define FN_EXTLEN 20 /* Max length of extension (part of FN_LEN) */ #define FN_EXTLEN 20 /* Max length of extension (part of FN_LEN) */
#define FN_REFLEN 512 /* Max length of full path-name */ #define FN_REFLEN 512 /* Max length of full path-name */
#define FN_EXTCHAR '.' #define FN_EXTCHAR '.'
#define FN_HOMELIB '~' /* ~/ is used as abbrev for home dir */ #define FN_HOMELIB '~' /* ~/ is used as abbrev for home dir */
#define FN_CURLIB '.' /* ./ is used as abbrev for current dir */ #define FN_CURLIB '.' /* ./ is used as abbrev for current dir */
#define FN_PARENTDIR ".." /* Parent directory; Must be a string */ #define FN_PARENTDIR ".." /* Parent directory; Must be a string */
#ifndef FN_LIBCHAR #ifdef _WIN32
#define FN_LIBCHAR '\\'
#define FN_LIBCHAR2 '/'
#define FN_ROOTDIR "\\"
#define FN_DEVCHAR ':'
#define FN_NETWORK_DRIVES /* Uses \\ to indicate network drives */
#define FN_NO_CASE_SENCE /* Files are not case-sensitive */
#else
#define FN_LIBCHAR '/' #define FN_LIBCHAR '/'
#define FN_LIBCHAR2 '/'
#define FN_ROOTDIR "/" #define FN_ROOTDIR "/"
#endif #endif
/* /*
MY_FILE_MIN is Windows speciality and is used to quickly detect MY_FILE_MIN is Windows speciality and is used to quickly detect
the mismatch of CRT and mysys file IO usage on Windows at runtime. the mismatch of CRT and mysys file IO usage on Windows at runtime.
CRT file descriptors can be in the range 0-2047, whereas descriptors retu rned CRT file descriptors can be in the range 0-2047, whereas descriptors retu rned
by my_open() will start with 2048. If a file descriptor with value less t hen by my_open() will start with 2048. If a file descriptor with value less t hen
MY_FILE_MIN is passed to mysys IO function, chances are it stemms from MY_FILE_MIN is passed to mysys IO function, chances are it stemms from
open()/fileno() and not my_open()/my_fileno. open()/fileno() and not my_open()/my_fileno.
skipping to change at line 785 skipping to change at line 863
#define MY_NFILE (16384 + MY_FILE_MIN) #define MY_NFILE (16384 + MY_FILE_MIN)
#else #else
#define MY_NFILE 64 #define MY_NFILE 64
#endif #endif
#ifndef OS_FILE_LIMIT #ifndef OS_FILE_LIMIT
#define OS_FILE_LIMIT 65535 #define OS_FILE_LIMIT 65535
#endif #endif
/* #define EXT_IN_LIBNAME */ /* #define EXT_IN_LIBNAME */
/* #define FN_NO_CASE_SENCE */ /* #define FN_NO_CASE_SENSE */
/* #define FN_UPPER_CASE TRUE */ /* #define FN_UPPER_CASE TRUE */
/* /*
Io buffer size; Must be a power of 2 and a multiple of 512. May be Io buffer size; Must be a power of 2 and a multiple of 512. May be
smaller what the disk page size. This influences the speed of the smaller what the disk page size. This influences the speed of the
isam btree library. eg to big to slow. isam btree library. eg to big to slow.
*/ */
#define IO_SIZE 4096 #define IO_SIZE 4096
/* /*
How much overhead does malloc have. The code often allocates How much overhead does malloc have. The code often allocates
skipping to change at line 808 skipping to change at line 886
#ifdef SAFEMALLOC #ifdef SAFEMALLOC
#define MALLOC_OVERHEAD (8+24+4) #define MALLOC_OVERHEAD (8+24+4)
#else #else
#define MALLOC_OVERHEAD 8 #define MALLOC_OVERHEAD 8
#endif #endif
/* get memory in huncs */ /* get memory in huncs */
#define ONCE_ALLOC_INIT (uint) (4096-MALLOC_OVERHEAD) #define ONCE_ALLOC_INIT (uint) (4096-MALLOC_OVERHEAD)
/* Typical record cash */ /* Typical record cash */
#define RECORD_CACHE_SIZE (uint) (64*1024-MALLOC_OVERHEAD) #define RECORD_CACHE_SIZE (uint) (64*1024-MALLOC_OVERHEAD)
/* Typical key cash */ /* Typical key cash */
#define KEY_CACHE_SIZE (uint) (8*1024*1024-MALLOC_OVERHEAD) #define KEY_CACHE_SIZE (uint) (8*1024*1024)
/* Default size of a key cache block */ /* Default size of a key cache block */
#define KEY_CACHE_BLOCK_SIZE (uint) 1024 #define KEY_CACHE_BLOCK_SIZE (uint) 1024
/* Some things that this system doesn't have */ /* Some things that this system doesn't have */
#define NO_HASH /* Not needed anymore */ #define NO_HASH /* Not needed anymore */
#ifdef _WIN32 #ifdef _WIN32
#define NO_DIR_LIBRARY /* Not standard dir-library */ #define NO_DIR_LIBRARY /* Not standard dir-library */
#endif #endif
/* Some defines of functions for portability */ /* Some defines of functions for portability */
#undef remove /* Crashes MySQL on SCO 5.0.0 */ #undef remove /* Crashes MySQL on SCO 5.0.0 */
#ifndef __WIN__ #ifndef __WIN__
#define closesocket(A) close(A) #define closesocket(A) close(A)
#endif
#if (_MSC_VER)
#if !defined(_WIN64)
inline double my_ulonglong2double(unsigned long long value)
{
long long nr=(long long) value;
if (nr >= 0)
return (double) nr;
return (18446744073709551616.0 + (double) nr);
}
#define ulonglong2double my_ulonglong2double
#define my_off_t2double my_ulonglong2double
#endif /* _WIN64 */
inline unsigned long long my_double2ulonglong(double d)
{
double t= d - (double) 0x8000000000000000ULL;
if (t >= 0)
return ((unsigned long long) t) + 0x8000000000000000ULL;
return (unsigned long long) d;
}
#define double2ulonglong my_double2ulonglong
#endif
#ifndef ulonglong2double #ifndef ulonglong2double
#define ulonglong2double(A) ((double) (ulonglong) (A)) #define ulonglong2double(A) ((double) (ulonglong) (A))
#define my_off_t2double(A) ((double) (my_off_t) (A)) #define my_off_t2double(A) ((double) (my_off_t) (A))
#endif #endif
#ifndef double2ulonglong #ifndef double2ulonglong
#define double2ulonglong(A) ((ulonglong) (double) (A)) #define double2ulonglong(A) ((ulonglong) (double) (A))
#endif #endif
#endif
#ifndef offsetof #ifndef offsetof
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
#endif #endif
#define ulong_to_double(X) ((double) (ulong) (X)) #define ulong_to_double(X) ((double) (ulong) (X))
#define SET_STACK_SIZE(X) /* Not needed on real machines */ #define SET_STACK_SIZE(X) /* Not needed on real machines */
#ifndef STACK_DIRECTION #ifndef STACK_DIRECTION
#error "please add -DSTACK_DIRECTION=1 or -1 to your CPPFLAGS" #error "please add -DSTACK_DIRECTION=1 or -1 to your CPPFLAGS"
#endif #endif
skipping to change at line 873 skipping to change at line 975
#if defined(HAVE_LONG_LONG) && !defined(ULONGLONG_MAX) #if defined(HAVE_LONG_LONG) && !defined(ULONGLONG_MAX)
/* First check for ANSI C99 definition: */ /* First check for ANSI C99 definition: */
#ifdef ULLONG_MAX #ifdef ULLONG_MAX
#define ULONGLONG_MAX ULLONG_MAX #define ULONGLONG_MAX ULLONG_MAX
#else #else
#define ULONGLONG_MAX ((unsigned long long)(~0ULL)) #define ULONGLONG_MAX ((unsigned long long)(~0ULL))
#endif #endif
#endif /* defined (HAVE_LONG_LONG) && !defined(ULONGLONG_MAX)*/ #endif /* defined (HAVE_LONG_LONG) && !defined(ULONGLONG_MAX)*/
#define INT_MIN64 (~0x7FFFFFFFFFFFFFFFLL)
#define INT_MAX64 0x7FFFFFFFFFFFFFFFLL
#define INT_MIN32 (~0x7FFFFFFFL) #define INT_MIN32 (~0x7FFFFFFFL)
#define INT_MAX32 0x7FFFFFFFL #define INT_MAX32 0x7FFFFFFFL
#define UINT_MAX32 0xFFFFFFFFL #define UINT_MAX32 0xFFFFFFFFL
#define INT_MIN24 (~0x007FFFFF) #define INT_MIN24 (~0x007FFFFF)
#define INT_MAX24 0x007FFFFF #define INT_MAX24 0x007FFFFF
#define UINT_MAX24 0x00FFFFFF #define UINT_MAX24 0x00FFFFFF
#define INT_MIN16 (~0x7FFF) #define INT_MIN16 (~0x7FFF)
#define INT_MAX16 0x7FFF #define INT_MAX16 0x7FFF
#define UINT_MAX16 0xFFFF #define UINT_MAX16 0xFFFF
#define INT_MIN8 (~0x7F) #define INT_MIN8 (~0x7F)
skipping to change at line 985 skipping to change at line 1089
#define NullS (char *) 0 #define NullS (char *) 0
/* Nowdays we do not support MessyDos */ /* Nowdays we do not support MessyDos */
#ifndef NEAR #ifndef NEAR
#define NEAR /* Who needs segments ? */ #define NEAR /* Who needs segments ? */
#define FAR /* On a good machine */ #define FAR /* On a good machine */
#ifndef HUGE_PTR #ifndef HUGE_PTR
#define HUGE_PTR #define HUGE_PTR
#endif #endif
#endif #endif
#if defined(__IBMC__) || defined(__IBMCPP__)
/* This was _System _Export but caused a lot of warnings on _AIX43 */ #ifdef STDCALL
#define STDCALL #undef STDCALL
#elif !defined( STDCALL) #endif
#ifdef _WIN32
#define STDCALL __stdcall
#else
#define STDCALL #define STDCALL
#endif #endif
/* Typdefs for easyier portability */ /* Typdefs for easyier portability */
#ifndef HAVE_UCHAR #ifndef HAVE_UCHAR
typedef unsigned char uchar; /* Short for unsigned char */ typedef unsigned char uchar; /* Short for unsigned char */
#endif #endif
#ifndef HAVE_INT8 #ifndef HAVE_INT8
skipping to change at line 1088 skipping to change at line 1196
#define SYSTEM_SIZEOF_OFF_T 4 #define SYSTEM_SIZEOF_OFF_T 4
#else #else
#define SYSTEM_SIZEOF_OFF_T 8 #define SYSTEM_SIZEOF_OFF_T 8
#endif #endif
#undef SIZEOF_OFF_T #undef SIZEOF_OFF_T
#define SIZEOF_OFF_T 8 #define SIZEOF_OFF_T 8
#else #else
#define SYSTEM_SIZEOF_OFF_T SIZEOF_OFF_T #define SYSTEM_SIZEOF_OFF_T SIZEOF_OFF_T
#endif /* USE_RAID */ #endif /* USE_RAID */
#if defined(_WIN32)
typedef unsigned long long my_off_t;
typedef unsigned long long os_off_t;
#else
typedef off_t os_off_t;
#if SIZEOF_OFF_T > 4 #if SIZEOF_OFF_T > 4
typedef ulonglong my_off_t; typedef ulonglong my_off_t;
#else #else
typedef unsigned long my_off_t; typedef unsigned long my_off_t;
#endif #endif
#endif /*_WIN32*/
#define MY_FILEPOS_ERROR (~(my_off_t) 0) #define MY_FILEPOS_ERROR (~(my_off_t) 0)
#if !defined(__WIN__)
typedef off_t os_off_t;
#endif
#if defined(__WIN__) #if defined(__WIN__)
#define socket_errno WSAGetLastError() #define socket_errno WSAGetLastError()
#define SOCKET_EINTR WSAEINTR #define SOCKET_EINTR WSAEINTR
#define SOCKET_EAGAIN WSAEINPROGRESS #define SOCKET_EAGAIN WSAEINPROGRESS
#define SOCKET_ETIMEDOUT WSAETIMEDOUT #define SOCKET_ETIMEDOUT WSAETIMEDOUT
#define SOCKET_EWOULDBLOCK WSAEWOULDBLOCK #define SOCKET_EWOULDBLOCK WSAEWOULDBLOCK
#define SOCKET_EADDRINUSE WSAEADDRINUSE #define SOCKET_EADDRINUSE WSAEADDRINUSE
#define SOCKET_ENFILE ENFILE #define SOCKET_ENFILE ENFILE
#define SOCKET_EMFILE EMFILE #define SOCKET_EMFILE EMFILE
skipping to change at line 1123 skipping to change at line 1234
#define SOCKET_EWOULDBLOCK EWOULDBLOCK #define SOCKET_EWOULDBLOCK EWOULDBLOCK
#define SOCKET_EADDRINUSE EADDRINUSE #define SOCKET_EADDRINUSE EADDRINUSE
#define SOCKET_ENFILE ENFILE #define SOCKET_ENFILE ENFILE
#define SOCKET_EMFILE EMFILE #define SOCKET_EMFILE EMFILE
#endif #endif
typedef uint8 int7; /* Most effective integer 0 <= x <= 127 */ typedef uint8 int7; /* Most effective integer 0 <= x <= 127 */
typedef short int15; /* Most effective integer 0 <= x <= 32767 */ typedef short int15; /* Most effective integer 0 <= x <= 32767 */
typedef int myf; /* Type of MyFlags in my_funcs */ typedef int myf; /* Type of MyFlags in my_funcs */
typedef char my_bool; /* Small bool */ typedef char my_bool; /* Small bool */
#if !defined(bool) && (!defined(HAVE_BOOL) || !defined(__cplusplus))
typedef char bool; /* Ordinary boolean values 0 1 */
#endif
/* Macros for converting *constants* to the right type */ /* Macros for converting *constants* to the right type */
#define INT8(v) (int8) (v) #define INT8(v) (int8) (v)
#define INT16(v) (int16) (v) #define INT16(v) (int16) (v)
#define INT32(v) (int32) (v) #define INT32(v) (int32) (v)
#define MYF(v) (myf) (v) #define MYF(v) (myf) (v)
#ifndef LL #ifndef LL
#ifdef HAVE_LONG_LONG #ifdef HAVE_LONG_LONG
#define LL(A) A ## LL #define LL(A) A ## LL
#else #else
skipping to change at line 1516 skipping to change at line 1624
#ifdef HAVE_CHARSET_utf8 #ifdef HAVE_CHARSET_utf8
#define MYSQL_UNIVERSAL_CLIENT_CHARSET "utf8" #define MYSQL_UNIVERSAL_CLIENT_CHARSET "utf8"
#else #else
#define MYSQL_UNIVERSAL_CLIENT_CHARSET MYSQL_DEFAULT_CHARSET_NAME #define MYSQL_UNIVERSAL_CLIENT_CHARSET MYSQL_DEFAULT_CHARSET_NAME
#endif #endif
#if defined(EMBEDDED_LIBRARY) && !defined(HAVE_EMBEDDED_PRIVILEGE_CONTROL) #if defined(EMBEDDED_LIBRARY) && !defined(HAVE_EMBEDDED_PRIVILEGE_CONTROL)
#define NO_EMBEDDED_ACCESS_CHECKS #define NO_EMBEDDED_ACCESS_CHECKS
#endif #endif
#ifdef HAVE_DLOPEN #if defined(_WIN32)
#if defined(__WIN__) #define dlsym(lib, name) (void*)GetProcAddress((HMODULE)lib, name)
#define dlsym(lib, name) GetProcAddress((HMODULE)lib, name)
#define dlopen(libname, unused) LoadLibraryEx(libname, NULL, 0) #define dlopen(libname, unused) LoadLibraryEx(libname, NULL, 0)
#define dlclose(lib) FreeLibrary((HMODULE)lib) #define dlclose(lib) FreeLibrary((HMODULE)lib)
#elif defined(HAVE_DLFCN_H) #define HAVE_DLOPEN
#endif
#ifdef HAVE_DLOPEN
#if defined(HAVE_DLFCN_H)
#include <dlfcn.h> #include <dlfcn.h>
#endif #endif
#endif #endif
/* FreeBSD 2.2.2 does not define RTLD_NOW) */ /* FreeBSD 2.2.2 does not define RTLD_NOW) */
#ifndef RTLD_NOW #ifndef RTLD_NOW
#define RTLD_NOW 1 #define RTLD_NOW 1
#endif #endif
#ifndef HAVE_DLERROR #ifndef HAVE_DLERROR
skipping to change at line 1578 skipping to change at line 1689
file creation/deletion/renaming in(from,to) this directory durable. file creation/deletion/renaming in(from,to) this directory durable.
*/ */
#ifdef TARGET_OS_LINUX #ifdef TARGET_OS_LINUX
#define NEED_EXPLICIT_SYNC_DIR 1 #define NEED_EXPLICIT_SYNC_DIR 1
#endif #endif
#if !defined(__cplusplus) && !defined(bool) #if !defined(__cplusplus) && !defined(bool)
#define bool In_C_you_should_use_my_bool_instead() #define bool In_C_you_should_use_my_bool_instead()
#endif #endif
/* Provide __func__ macro definition for platforms that miss it. */
#if __STDC_VERSION__ < 199901L
# if __GNUC__ >= 2
# define __func__ __FUNCTION__
# else
# define __func__ "<unknown>"
# endif
#elif defined(_MSC_VER)
# if _MSC_VER < 1300
# define __func__ "<unknown>"
# else
# define __func__ __FUNCTION__
# endif
#elif defined(__BORLANDC__)
# define __func__ __FUNC__
#else
# define __func__ "<unknown>"
#endif
#ifndef HAVE_RINT #ifndef HAVE_RINT
/** /**
All integers up to this number can be represented exactly as double prec ision All integers up to this number can be represented exactly as double prec ision
values (DBL_MANT_DIG == 53 for IEEE 754 hardware). values (DBL_MANT_DIG == 53 for IEEE 754 hardware).
*/ */
#define MAX_EXACT_INTEGER ((1LL << DBL_MANT_DIG) - 1) #define MAX_EXACT_INTEGER ((1LL << DBL_MANT_DIG) - 1)
/** /**
rint(3) implementation for platforms that do not have it. rint(3) implementation for platforms that do not have it.
Always rounds to the nearest integer with ties being rounded to the near est Always rounds to the nearest integer with ties being rounded to the near est
 End of changes. 28 change blocks. 
39 lines changed or deleted 169 lines changed or added


 my_net.h   my_net.h 
skipping to change at line 46 skipping to change at line 46
#ifdef HAVE_ARPA_INET_H #ifdef HAVE_ARPA_INET_H
#include <arpa/inet.h> #include <arpa/inet.h>
#endif #endif
#ifdef HAVE_POLL #ifdef HAVE_POLL
#include <sys/poll.h> #include <sys/poll.h>
#endif #endif
#ifdef HAVE_SYS_IOCTL_H #ifdef HAVE_SYS_IOCTL_H
#include <sys/ioctl.h> #include <sys/ioctl.h>
#endif #endif
#if !defined(__WIN__) && !defined(HAVE_BROKEN_NETINET_INCLUDES) && !defined (__BEOS__) && !defined(__NETWARE__) #if !defined(__WIN__) && !defined(HAVE_BROKEN_NETINET_INCLUDES) && !defined (__NETWARE__)
#include <netinet/in_systm.h> #include <netinet/in_systm.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <netinet/ip.h> #include <netinet/ip.h>
#if !defined(alpha_linux_port) #if !defined(alpha_linux_port)
#include <netinet/tcp.h> #include <netinet/tcp.h>
#endif #endif
#endif #endif
#if defined(__WIN__) #if defined(__WIN__)
#define O_NONBLOCK 1 /* For emulation of fcntl() */ #define O_NONBLOCK 1 /* For emulation of fcntl() */
skipping to change at line 76 skipping to change at line 76
/* /*
On OSes which don't have the in_addr_t, we guess that using uint32 is the best On OSes which don't have the in_addr_t, we guess that using uint32 is the best
possible choice. We guess this from the fact that on HP-UX64bit & FreeBSD 64bit possible choice. We guess this from the fact that on HP-UX64bit & FreeBSD 64bit
& Solaris64bit, in_addr_t is equivalent to uint32. And on Linux32bit too. & Solaris64bit, in_addr_t is equivalent to uint32. And on Linux32bit too.
*/ */
#ifndef HAVE_IN_ADDR_T #ifndef HAVE_IN_ADDR_T
#define in_addr_t uint32 #define in_addr_t uint32
#endif #endif
/* On some operating systems (e.g. Solaris) INADDR_NONE is not defined */
#ifndef INADDR_NONE
#define INADDR_NONE -1 /* Error value from inet_ad
dr */
#endif
/* Thread safe or portable version of some functions */ /* Thread safe or portable version of some functions */
void my_inet_ntoa(struct in_addr in, char *buf); void my_inet_ntoa(struct in_addr in, char *buf);
/* /*
Handling of gethostbyname_r() Handling of gethostbyname_r()
*/ */
#if !defined(HPUX10)
struct hostent;
#endif /* HPUX */
#if !defined(HAVE_GETHOSTBYNAME_R) #if !defined(HAVE_GETHOSTBYNAME_R)
struct hostent *my_gethostbyname_r(const char *name, struct hostent *my_gethostbyname_r(const char *name,
struct hostent *result, char *buffer, struct hostent *result, char *buffer,
int buflen, int *h_errnop); int buflen, int *h_errnop);
void my_gethostbyname_r_free(); void my_gethostbyname_r_free();
#elif defined(HAVE_PTHREAD_ATTR_CREATE) || defined(_AIX) || defined(HAVE_GE THOSTBYNAME_R_GLIBC2_STYLE) #elif defined(HAVE_PTHREAD_ATTR_CREATE) || defined(_AIX) || defined(HAVE_GE THOSTBYNAME_R_GLIBC2_STYLE)
struct hostent *my_gethostbyname_r(const char *name, struct hostent *my_gethostbyname_r(const char *name,
struct hostent *result, char *buffer, struct hostent *result, char *buffer,
int buflen, int *h_errnop); int buflen, int *h_errnop);
#define my_gethostbyname_r_free() #define my_gethostbyname_r_free()
skipping to change at line 121 skipping to change at line 113
#define my_gethostbyname_r_free() #define my_gethostbyname_r_free()
#else #else
#define my_gethostbyname_r(A,B,C,D,E) gethostbyname_r((A),(B),(C),(D),(E)) #define my_gethostbyname_r(A,B,C,D,E) gethostbyname_r((A),(B),(C),(D),(E))
#define my_gethostbyname_r_free() #define my_gethostbyname_r_free()
#endif /* !defined(HAVE_GETHOSTBYNAME_R) */ #endif /* !defined(HAVE_GETHOSTBYNAME_R) */
#ifndef GETHOSTBYNAME_BUFF_SIZE #ifndef GETHOSTBYNAME_BUFF_SIZE
#define GETHOSTBYNAME_BUFF_SIZE 2048 #define GETHOSTBYNAME_BUFF_SIZE 2048
#endif #endif
/* On SCO you get a link error when refering to h_errno */
#ifdef SCO
#undef h_errno
#define h_errno errno
#endif
C_MODE_END C_MODE_END
#endif #endif
 End of changes. 4 change blocks. 
16 lines changed or deleted 1 lines changed or added


 my_no_pthread.h   my_no_pthread.h 
#ifndef MY_NO_PTHREAD_INCLUDED #ifndef MY_NO_PTHREAD_INCLUDED
#define MY_NO_PTHREAD_INCLUDED #define MY_NO_PTHREAD_INCLUDED
/* Copyright (C) 2000 MySQL AB /* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License. the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
skipping to change at line 49 skipping to change at line 49
#define pthread_mutex_init(A,B) #define pthread_mutex_init(A,B)
#define pthread_mutex_lock(A) #define pthread_mutex_lock(A)
#define pthread_mutex_unlock(A) #define pthread_mutex_unlock(A)
#define pthread_mutex_destroy(A) #define pthread_mutex_destroy(A)
#define my_rwlock_init(A,B) #define my_rwlock_init(A,B)
#define rw_rdlock(A) #define rw_rdlock(A)
#define rw_wrlock(A) #define rw_wrlock(A)
#define rw_unlock(A) #define rw_unlock(A)
#define rwlock_destroy(A) #define rwlock_destroy(A)
#define mysql_mutex_init(A, B, C) do {} while (0)
#define mysql_mutex_lock(A) do {} while (0)
#define mysql_mutex_unlock(A) do {} while (0)
#define mysql_mutex_destroy(A) do {} while (0)
#define mysql_rwlock_init(A, B, C) do {} while (0)
#define mysql_rwlock_rdlock(A) do {} while (0)
#define mysql_rwlock_wrlock(A) do {} while (0)
#define mysql_rwlock_unlock(A) do {} while (0)
#define mysql_rwlock_destroy(A) do {} while (0)
typedef int my_pthread_once_t; typedef int my_pthread_once_t;
#define MY_PTHREAD_ONCE_INIT 0 #define MY_PTHREAD_ONCE_INIT 0
#define MY_PTHREAD_ONCE_DONE 1 #define MY_PTHREAD_ONCE_DONE 1
#define my_pthread_once(C,F) do { \ #define my_pthread_once(C,F) do { \
if (*(C) != MY_PTHREAD_ONCE_DONE) { F(); *(C)= MY_PTHREAD_ONCE_DONE; } \ if (*(C) != MY_PTHREAD_ONCE_DONE) { F(); *(C)= MY_PTHREAD_ONCE_DONE; } \
} while(0) } while(0)
#endif #endif
#endif /* MY_NO_PTHREAD_INCLUDED */ #endif /* MY_NO_PTHREAD_INCLUDED */
 End of changes. 2 change blocks. 
1 lines changed or deleted 12 lines changed or added


 my_pthread.h   my_pthread.h 
/* Copyright (C) 2000 MySQL AB /* Copyright (C) 2000-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License. the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
skipping to change at line 38 skipping to change at line 38
#else #else
#define EXTERNC #define EXTERNC
#endif /* __cplusplus */ #endif /* __cplusplus */
#if defined(__WIN__) #if defined(__WIN__)
typedef CRITICAL_SECTION pthread_mutex_t; typedef CRITICAL_SECTION pthread_mutex_t;
typedef DWORD pthread_t; typedef DWORD pthread_t;
typedef struct thread_attr { typedef struct thread_attr {
DWORD dwStackSize ; DWORD dwStackSize ;
DWORD dwCreatingFlag ; DWORD dwCreatingFlag ;
int priority ;
} pthread_attr_t ; } pthread_attr_t ;
typedef struct { int dummy; } pthread_condattr_t; typedef struct { int dummy; } pthread_condattr_t;
/* Implementation of posix conditions */ /* Implementation of posix conditions */
typedef struct st_pthread_link { typedef struct st_pthread_link {
DWORD thread_id; DWORD thread_id;
struct st_pthread_link *next; struct st_pthread_link *next;
} pthread_link; } pthread_link;
skipping to change at line 105 skipping to change at line 104
GetSystemTimeAsFileTime(&((ABSTIME).tv.ft)); \ GetSystemTimeAsFileTime(&((ABSTIME).tv.ft)); \
(ABSTIME).tv.i64+= (__int64)(SEC)*10000000; \ (ABSTIME).tv.i64+= (__int64)(SEC)*10000000; \
(ABSTIME).max_timeout_msec= (long)((SEC)*1000); \ (ABSTIME).max_timeout_msec= (long)((SEC)*1000); \
} }
#define set_timespec_nsec(ABSTIME,NSEC) { \ #define set_timespec_nsec(ABSTIME,NSEC) { \
GetSystemTimeAsFileTime(&((ABSTIME).tv.ft)); \ GetSystemTimeAsFileTime(&((ABSTIME).tv.ft)); \
(ABSTIME).tv.i64+= (__int64)(NSEC)/100; \ (ABSTIME).tv.i64+= (__int64)(NSEC)/100; \
(ABSTIME).max_timeout_msec= (long)((NSEC)/1000000); \ (ABSTIME).max_timeout_msec= (long)((NSEC)/1000000); \
} }
/**
Compare two timespec structs.
@retval 1 If TS1 ends after TS2.
@retval 0 If TS1 is equal to TS2.
@retval -1 If TS1 ends before TS2.
*/
#define cmp_timespec(TS1, TS2) \
((TS1.tv.i64 > TS2.tv.i64) ? 1 : \
((TS1.tv.i64 < TS2.tv.i64) ? -1 : 0))
int win_pthread_mutex_trylock(pthread_mutex_t *mutex); int win_pthread_mutex_trylock(pthread_mutex_t *mutex);
int pthread_create(pthread_t *,pthread_attr_t *,pthread_handler,void *); int pthread_create(pthread_t *, const pthread_attr_t *, pthread_handler, vo id *);
int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr) ; int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr) ;
int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
struct timespec *abstime); struct timespec *abstime);
int pthread_cond_signal(pthread_cond_t *cond); int pthread_cond_signal(pthread_cond_t *cond);
int pthread_cond_broadcast(pthread_cond_t *cond); int pthread_cond_broadcast(pthread_cond_t *cond);
int pthread_cond_destroy(pthread_cond_t *cond); int pthread_cond_destroy(pthread_cond_t *cond);
int pthread_attr_init(pthread_attr_t *connect_att); int pthread_attr_init(pthread_attr_t *connect_att);
int pthread_attr_setstacksize(pthread_attr_t *connect_att,DWORD stack); int pthread_attr_setstacksize(pthread_attr_t *connect_att,DWORD stack);
int pthread_attr_setprio(pthread_attr_t *connect_att,int priority);
int pthread_attr_destroy(pthread_attr_t *connect_att); int pthread_attr_destroy(pthread_attr_t *connect_att);
int my_pthread_once(my_pthread_once_t *once_control,void (*init_routine)(vo id)); int my_pthread_once(my_pthread_once_t *once_control,void (*init_routine)(vo id));
struct tm *localtime_r(const time_t *timep,struct tm *tmp); struct tm *localtime_r(const time_t *timep,struct tm *tmp);
struct tm *gmtime_r(const time_t *timep,struct tm *tmp); struct tm *gmtime_r(const time_t *timep,struct tm *tmp);
void pthread_exit(void *a); void pthread_exit(void *a);
int pthread_join(pthread_t thread, void **value_ptr); int pthread_join(pthread_t thread, void **value_ptr);
int pthread_cancel(pthread_t thread);
#ifndef ETIMEDOUT
#define ETIMEDOUT 145 /* Win32 doesn't have this */ #define ETIMEDOUT 145 /* Win32 doesn't have this */
#endif
#define HAVE_LOCALTIME_R 1 #define HAVE_LOCALTIME_R 1
#define _REENTRANT 1 #define _REENTRANT 1
#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1 #define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
#undef SAFE_MUTEX /* This will cause conflicts */ #undef SAFE_MUTEX /* This will cause conflicts */
#define pthread_key(T,V) DWORD V #define pthread_key(T,V) DWORD V
#define pthread_key_create(A,B) ((*A=TlsAlloc())==0xFFFFFFFF) #define pthread_key_create(A,B) ((*A=TlsAlloc())==0xFFFFFFFF)
#define pthread_key_delete(A) TlsFree(A) #define pthread_key_delete(A) TlsFree(A)
#define my_pthread_setspecific_ptr(T,V) (!TlsSetValue((T),(V))) #define my_pthread_setspecific_ptr(T,V) (!TlsSetValue((T),(V)))
#define pthread_setspecific(A,B) (!TlsSetValue((A),(B))) #define pthread_setspecific(A,B) (!TlsSetValue((A),(B)))
#define pthread_getspecific(A) (TlsGetValue(A)) #define pthread_getspecific(A) (TlsGetValue(A))
#define my_pthread_getspecific(T,A) ((T) TlsGetValue(A)) #define my_pthread_getspecific(T,A) ((T) TlsGetValue(A))
#define my_pthread_getspecific_ptr(T,V) ((T) TlsGetValue(V)) #define my_pthread_getspecific_ptr(T,V) ((T) TlsGetValue(V))
#define pthread_equal(A,B) ((A) == (B)) #define pthread_equal(A,B) ((A) == (B))
#define pthread_mutex_init(A,B) (InitializeCriticalSection(A),0) #define pthread_mutex_init(A,B) (InitializeCriticalSection(A),0)
#define pthread_mutex_lock(A) (EnterCriticalSection(A),0) #define pthread_mutex_lock(A) (EnterCriticalSection(A),0)
#define pthread_mutex_trylock(A) win_pthread_mutex_trylock((A)) #define pthread_mutex_trylock(A) win_pthread_mutex_trylock((A))
#define pthread_mutex_unlock(A) LeaveCriticalSection(A) #define pthread_mutex_unlock(A) (LeaveCriticalSection(A), 0)
#define pthread_mutex_destroy(A) DeleteCriticalSection(A) #define pthread_mutex_destroy(A) (DeleteCriticalSection(A), 0)
#define my_pthread_setprio(A,B) SetThreadPriority(GetCurrentThread(), (B))
#define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH) #define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH)
/* Dummy defines for easier code */ /* Dummy defines for easier code */
#define pthread_attr_setdetachstate(A,B) pthread_dummy(0) #define pthread_attr_setdetachstate(A,B) pthread_dummy(0)
#define my_pthread_attr_setprio(A,B) pthread_attr_setprio(A,B)
#define pthread_attr_setscope(A,B) #define pthread_attr_setscope(A,B)
#define pthread_detach_this_thread() #define pthread_detach_this_thread()
#define pthread_condattr_init(A) #define pthread_condattr_init(A)
#define pthread_condattr_destroy(A) #define pthread_condattr_destroy(A)
#define pthread_yield() SwitchToThread()
#define my_pthread_getprio(thread_id) pthread_dummy(0) #define my_sigset(A,B) signal(A,B)
#else /* Normal threads */ #else /* Normal threads */
#ifdef HAVE_rts_threads #ifdef HAVE_rts_threads
#define sigwait org_sigwait #define sigwait org_sigwait
#include <signal.h> #include <signal.h>
#undef sigwait #undef sigwait
#endif #endif
#include <pthread.h> #include <pthread.h>
#ifndef _REENTRANT #ifndef _REENTRANT
skipping to change at line 185 skipping to change at line 197
#endif #endif
#ifdef HAVE_SYNCH_H #ifdef HAVE_SYNCH_H
#include <synch.h> #include <synch.h>
#endif #endif
#ifdef __NETWARE__ #ifdef __NETWARE__
void my_pthread_exit(void *status); void my_pthread_exit(void *status);
#define pthread_exit(A) my_pthread_exit(A) #define pthread_exit(A) my_pthread_exit(A)
#endif #endif
extern int my_pthread_getprio(pthread_t thread_id);
#define pthread_key(T,V) pthread_key_t V #define pthread_key(T,V) pthread_key_t V
#define my_pthread_getspecific_ptr(T,V) my_pthread_getspecific(T,(V)) #define my_pthread_getspecific_ptr(T,V) my_pthread_getspecific(T,(V))
#define my_pthread_setspecific_ptr(T,V) pthread_setspecific(T,(void*) (V)) #define my_pthread_setspecific_ptr(T,V) pthread_setspecific(T,(void*) (V))
#define pthread_detach_this_thread() #define pthread_detach_this_thread()
#define pthread_handler_t EXTERNC void * #define pthread_handler_t EXTERNC void *
typedef void *(* pthread_handler)(void *); typedef void *(* pthread_handler)(void *);
#define my_pthread_once_t pthread_once_t #define my_pthread_once_t pthread_once_t
#define MY_PTHREAD_ONCE_INIT PTHREAD_ONCE_INIT #define MY_PTHREAD_ONCE_INIT PTHREAD_ONCE_INIT
#define my_pthread_once(C,F) pthread_once(C,F) #define my_pthread_once(C,F) pthread_once(C,F)
skipping to change at line 261 skipping to change at line 271
l_s.sa_flags = 0; \ l_s.sa_flags = 0; \
l_rc= sigaction((A), &l_s, (struct sigaction *) NULL);\ l_rc= sigaction((A), &l_s, (struct sigaction *) NULL);\
DBUG_ASSERT(l_rc == 0); \ DBUG_ASSERT(l_rc == 0); \
} while (0) } while (0)
#elif defined(HAVE_SIGSET) && !defined(my_sigset) #elif defined(HAVE_SIGSET) && !defined(my_sigset)
#define my_sigset(A,B) sigset((A),(B)) #define my_sigset(A,B) sigset((A),(B))
#elif !defined(my_sigset) #elif !defined(my_sigset)
#define my_sigset(A,B) signal((A),(B)) #define my_sigset(A,B) signal((A),(B))
#endif #endif
#ifndef my_pthread_setprio
#if defined(HAVE_PTHREAD_SETPRIO_NP) /* FSU threads */
#define my_pthread_setprio(A,B) pthread_setprio_np((A),(B))
#elif defined(HAVE_PTHREAD_SETPRIO)
#define my_pthread_setprio(A,B) pthread_setprio((A),(B))
#elif defined(HAVE_PTHREAD_SETSCHEDPRIO) && !defined (__GNUC__)
/*
Workaround for bug on Solaris where pthread.h have bug in GNU
version of pthread.h => configure says yes, header files says
no. So not used with gcc and issue is Solaris only, so will
be used on Solaris using SunStudio.
*/
#define my_pthread_setprio(A,B) pthread_setschedprio((A),(B))
#else
extern void my_pthread_setprio(pthread_t thread_id,int prior);
#endif
#endif
#ifndef my_pthread_attr_setprio
#ifdef HAVE_PTHREAD_ATTR_SETPRIO
#define my_pthread_attr_setprio(A,B) pthread_attr_setprio((A),(B))
#else
extern void my_pthread_attr_setprio(pthread_attr_t *attr, int priority);
#endif
#endif
#if !defined(HAVE_PTHREAD_ATTR_SETSCOPE) || defined(HAVE_DEC_3_2_THREADS) #if !defined(HAVE_PTHREAD_ATTR_SETSCOPE) || defined(HAVE_DEC_3_2_THREADS)
#define pthread_attr_setscope(A,B) #define pthread_attr_setscope(A,B)
#undef HAVE_GETHOSTBYADDR_R /* No definition */ #undef HAVE_GETHOSTBYADDR_R /* No definition */
#endif #endif
#if defined(HAVE_BROKEN_PTHREAD_COND_TIMEDWAIT) && !defined(SAFE_MUTEX) #if defined(HAVE_BROKEN_PTHREAD_COND_TIMEDWAIT) && !defined(SAFE_MUTEX)
extern int my_pthread_cond_timedwait(pthread_cond_t *cond, extern int my_pthread_cond_timedwait(pthread_cond_t *cond,
pthread_mutex_t *mutex, pthread_mutex_t *mutex,
struct timespec *abstime); struct timespec *abstime);
#define pthread_cond_timedwait(A,B,C) my_pthread_cond_timedwait((A),(B),(C) ) #define pthread_cond_timedwait(A,B,C) my_pthread_cond_timedwait((A),(B),(C) )
skipping to change at line 392 skipping to change at line 376
#define pthread_attr_getstacksize(A,B) my_pthread_attr_getstacksize(A,B) #define pthread_attr_getstacksize(A,B) my_pthread_attr_getstacksize(A,B)
void my_pthread_attr_getstacksize(pthread_attr_t *attrib, size_t *size); void my_pthread_attr_getstacksize(pthread_attr_t *attrib, size_t *size);
#endif #endif
#if defined(HAVE_POSIX1003_4a_MUTEX) && !defined(DONT_REMAP_PTHREAD_FUNCTIO NS) #if defined(HAVE_POSIX1003_4a_MUTEX) && !defined(DONT_REMAP_PTHREAD_FUNCTIO NS)
#undef pthread_mutex_trylock #undef pthread_mutex_trylock
#define pthread_mutex_trylock(a) my_pthread_mutex_trylock((a)) #define pthread_mutex_trylock(a) my_pthread_mutex_trylock((a))
int my_pthread_mutex_trylock(pthread_mutex_t *mutex); int my_pthread_mutex_trylock(pthread_mutex_t *mutex);
#endif #endif
#if !defined(HAVE_PTHREAD_YIELD_ONE_ARG) && !defined(HAVE_PTHREAD_YIELD_ZER
O_ARG)
/* no pthread_yield() available */
#ifdef HAVE_SCHED_YIELD
#define pthread_yield() sched_yield()
#elif defined(HAVE_PTHREAD_YIELD_NP) /* can be Mac OS X */
#define pthread_yield() pthread_yield_np()
#elif defined(HAVE_THR_YIELD)
#define pthread_yield() thr_yield()
#endif
#endif
/* /*
The defines set_timespec and set_timespec_nsec should be used The defines set_timespec and set_timespec_nsec should be used
for calculating an absolute time at which for calculating an absolute time at which
pthread_cond_timedwait should timeout pthread_cond_timedwait should timeout
*/ */
#ifdef HAVE_TIMESPEC_TS_SEC #ifdef HAVE_TIMESPEC_TS_SEC
#ifndef set_timespec #ifndef set_timespec
#define set_timespec(ABSTIME,SEC) \ #define set_timespec(ABSTIME,SEC) \
{ \ { \
(ABSTIME).ts_sec=time(0) + (time_t) (SEC); \ (ABSTIME).ts_sec=time(0) + (time_t) (SEC); \
skipping to change at line 433 skipping to change at line 428
#ifndef set_timespec_nsec #ifndef set_timespec_nsec
#define set_timespec_nsec(ABSTIME,NSEC) \ #define set_timespec_nsec(ABSTIME,NSEC) \
{\ {\
ulonglong now= my_getsystime() + (NSEC/100); \ ulonglong now= my_getsystime() + (NSEC/100); \
(ABSTIME).tv_sec= (time_t) (now / ULL(10000000)); \ (ABSTIME).tv_sec= (time_t) (now / ULL(10000000)); \
(ABSTIME).tv_nsec= (long) (now % ULL(10000000) * 100 + ((NSEC) % 100)); \ (ABSTIME).tv_nsec= (long) (now % ULL(10000000) * 100 + ((NSEC) % 100)); \
} }
#endif /* !set_timespec_nsec */ #endif /* !set_timespec_nsec */
#endif /* HAVE_TIMESPEC_TS_SEC */ #endif /* HAVE_TIMESPEC_TS_SEC */
/**
Compare two timespec structs.
@retval 1 If TS1 ends after TS2.
@retval 0 If TS1 is equal to TS2.
@retval -1 If TS1 ends before TS2.
*/
#ifdef HAVE_TIMESPEC_TS_SEC
#ifndef cmp_timespec
#define cmp_timespec(TS1, TS2) \
((TS1.ts_sec > TS2.ts_sec || \
(TS1.ts_sec == TS2.ts_sec && TS1.ts_nsec > TS2.ts_nsec)) ? 1 : \
((TS1.ts_sec < TS2.ts_sec || \
(TS1.ts_sec == TS2.ts_sec && TS1.ts_nsec < TS2.ts_nsec)) ? -1 : 0))
#endif /* !cmp_timespec */
#else
#ifndef cmp_timespec
#define cmp_timespec(TS1, TS2) \
((TS1.tv_sec > TS2.tv_sec || \
(TS1.tv_sec == TS2.tv_sec && TS1.tv_nsec > TS2.tv_nsec)) ? 1 : \
((TS1.tv_sec < TS2.tv_sec || \
(TS1.tv_sec == TS2.tv_sec && TS1.tv_nsec < TS2.tv_nsec)) ? -1 : 0))
#endif /* !cmp_timespec */
#endif /* HAVE_TIMESPEC_TS_SEC */
/* safe_mutex adds checking to mutex for easier debugging */ /* safe_mutex adds checking to mutex for easier debugging */
#if defined(__NETWARE__) && !defined(SAFE_MUTEX_DETECT_DESTROY) #if defined(__NETWARE__) && !defined(SAFE_MUTEX_DETECT_DESTROY)
#define SAFE_MUTEX_DETECT_DESTROY #define SAFE_MUTEX_DETECT_DESTROY
#endif #endif
typedef struct st_safe_mutex_t typedef struct st_safe_mutex_t
{ {
pthread_mutex_t global,mutex; pthread_mutex_t global,mutex;
const char *file; const char *file;
skipping to change at line 576 skipping to change at line 598
#define rw_trywrlock(A) pthread_rwlock_trywrlock((A)) #define rw_trywrlock(A) pthread_rwlock_trywrlock((A))
#define rw_unlock(A) pthread_rwlock_unlock(A) #define rw_unlock(A) pthread_rwlock_unlock(A)
#define rwlock_destroy(A) pthread_rwlock_destroy(A) #define rwlock_destroy(A) pthread_rwlock_destroy(A)
#elif defined(HAVE_RWLOCK_INIT) #elif defined(HAVE_RWLOCK_INIT)
#ifdef HAVE_RWLOCK_T /* For example Solaris 2.6-> */ #ifdef HAVE_RWLOCK_T /* For example Solaris 2.6-> */
#define rw_lock_t rwlock_t #define rw_lock_t rwlock_t
#endif #endif
#define my_rwlock_init(A,B) rwlock_init((A),USYNC_THREAD,0) #define my_rwlock_init(A,B) rwlock_init((A),USYNC_THREAD,0)
#else #else
/* Use our own version of read/write locks */ /* Use our own version of read/write locks */
typedef struct _my_rw_lock_t { #define NEED_MY_RW_LOCK 1
pthread_mutex_t lock; /* lock for structure */
pthread_cond_t readers; /* waiting readers */
pthread_cond_t writers; /* waiting writers */
int state; /* -1:writer,0:free,>0:readers */
int waiters; /* number of waiting writers */
} my_rw_lock_t;
#define rw_lock_t my_rw_lock_t #define rw_lock_t my_rw_lock_t
#define my_rwlock_init(A,B) my_rw_init((A), 0)
#define rw_rdlock(A) my_rw_rdlock((A)) #define rw_rdlock(A) my_rw_rdlock((A))
#define rw_wrlock(A) my_rw_wrlock((A)) #define rw_wrlock(A) my_rw_wrlock((A))
#define rw_tryrdlock(A) my_rw_tryrdlock((A)) #define rw_tryrdlock(A) my_rw_tryrdlock((A))
#define rw_trywrlock(A) my_rw_trywrlock((A)) #define rw_trywrlock(A) my_rw_trywrlock((A))
#define rw_unlock(A) my_rw_unlock((A)) #define rw_unlock(A) my_rw_unlock((A))
#define rwlock_destroy(A) my_rwlock_destroy((A)) #define rwlock_destroy(A) my_rw_destroy((A))
#endif /* USE_MUTEX_INSTEAD_OF_RW_LOCKS */
/*
Portable read-write locks which prefer readers.
extern int my_rwlock_init(my_rw_lock_t *, void *); Required by some algorithms in order to provide correctness.
extern int my_rwlock_destroy(my_rw_lock_t *); */
#if defined(HAVE_PTHREAD_RWLOCK_RDLOCK) && defined(HAVE_PTHREAD_RWLOCKATTR_
SETKIND_NP)
/*
On systems which have a way to specify that readers should
be preferred through attribute mechanism (e.g. Linux) we use
system implementation of read/write locks.
*/
#define rw_pr_lock_t pthread_rwlock_t
extern int rw_pr_init(rw_pr_lock_t *);
#define rw_pr_rdlock(A) pthread_rwlock_rdlock(A)
#define rw_pr_wrlock(A) pthread_rwlock_wrlock(A)
#define rw_pr_tryrdlock(A) pthread_rwlock_tryrdlock(A)
#define rw_pr_trywrlock(A) pthread_rwlock_trywrlock(A)
#define rw_pr_unlock(A) pthread_rwlock_unlock(A)
#define rw_pr_destroy(A) pthread_rwlock_destroy(A)
#else
/* Otherwise we have to use our own implementation of read/write locks. */
#define NEED_MY_RW_LOCK 1
struct st_my_rw_lock_t;
#define rw_pr_lock_t my_rw_lock_t
extern int rw_pr_init(struct st_my_rw_lock_t *);
#define rw_pr_rdlock(A) my_rw_rdlock((A))
#define rw_pr_wrlock(A) my_rw_wrlock((A))
#define rw_pr_tryrdlock(A) my_rw_tryrdlock((A))
#define rw_pr_trywrlock(A) my_rw_trywrlock((A))
#define rw_pr_unlock(A) my_rw_unlock((A))
#define rw_pr_destroy(A) my_rw_destroy((A))
#endif /* defined(HAVE_PTHREAD_RWLOCK_RDLOCK) && defined(HAVE_PTHREAD_RWLOC
KATTR_SETKIND_NP) */
#ifdef NEED_MY_RW_LOCK
/*
On systems which don't support native read/write locks, or don't support
read/write locks which prefer readers we have to use own implementation.
*/
typedef struct st_my_rw_lock_t {
pthread_mutex_t lock; /* lock for structure */
pthread_cond_t readers; /* waiting readers */
pthread_cond_t writers; /* waiting writers */
int state; /* -1:writer,0:free,>0:readers */
int waiters; /* number of waiting writers */
my_bool prefer_readers;
} my_rw_lock_t;
extern int my_rw_init(my_rw_lock_t *, my_bool *);
extern int my_rw_destroy(my_rw_lock_t *);
extern int my_rw_rdlock(my_rw_lock_t *); extern int my_rw_rdlock(my_rw_lock_t *);
extern int my_rw_wrlock(my_rw_lock_t *); extern int my_rw_wrlock(my_rw_lock_t *);
extern int my_rw_unlock(my_rw_lock_t *); extern int my_rw_unlock(my_rw_lock_t *);
extern int my_rw_tryrdlock(my_rw_lock_t *); extern int my_rw_tryrdlock(my_rw_lock_t *);
extern int my_rw_trywrlock(my_rw_lock_t *); extern int my_rw_trywrlock(my_rw_lock_t *);
#endif /* USE_MUTEX_INSTEAD_OF_RW_LOCKS */ #endif /* NEED_MY_RW_LOCK */
#define GETHOSTBYADDR_BUFF_SIZE 2048 #define GETHOSTBYADDR_BUFF_SIZE 2048
#ifndef HAVE_THR_SETCONCURRENCY #ifndef HAVE_THR_SETCONCURRENCY
#define thr_setconcurrency(A) pthread_dummy(0) #define thr_setconcurrency(A) pthread_dummy(0)
#endif #endif
#if !defined(HAVE_PTHREAD_ATTR_SETSTACKSIZE) && ! defined(pthread_attr_sets tacksize) #if !defined(HAVE_PTHREAD_ATTR_SETSTACKSIZE) && ! defined(pthread_attr_sets tacksize)
#define pthread_attr_setstacksize(A,B) pthread_dummy(0) #define pthread_attr_setstacksize(A,B) pthread_dummy(0)
#endif #endif
skipping to change at line 633 skipping to change at line 698
#endif #endif
#ifndef ESRCH #ifndef ESRCH
/* Define it to something */ /* Define it to something */
#define ESRCH 1 #define ESRCH 1
#endif #endif
typedef ulong my_thread_id; typedef ulong my_thread_id;
extern my_bool my_thread_global_init(void); extern my_bool my_thread_global_init(void);
extern my_bool my_thread_basic_global_init(void);
extern void my_thread_basic_global_reinit(void);
extern void my_thread_global_end(void); extern void my_thread_global_end(void);
extern my_bool my_thread_init(void); extern my_bool my_thread_init(void);
extern void my_thread_end(void); extern void my_thread_end(void);
extern const char *my_thread_name(void); extern const char *my_thread_name(void);
extern my_thread_id my_thread_dbug_id(void); extern my_thread_id my_thread_dbug_id(void);
extern int pthread_no_free(void *); extern int pthread_no_free(void *);
extern int pthread_dummy(int); extern int pthread_dummy(int);
/* All thread specific variables are in the following struct */ /* All thread specific variables are in the following struct */
skipping to change at line 656 skipping to change at line 723
/* /*
MySQL can survive with 32K, but some glibc libraries require > 128K stack MySQL can survive with 32K, but some glibc libraries require > 128K stack
To resolve hostnames. Also recursive stored procedures needs stack. To resolve hostnames. Also recursive stored procedures needs stack.
*/ */
#define DEFAULT_THREAD_STACK (256*1024L) #define DEFAULT_THREAD_STACK (256*1024L)
#else #else
#define DEFAULT_THREAD_STACK (192*1024) #define DEFAULT_THREAD_STACK (192*1024)
#endif #endif
#endif #endif
#include <mysql/psi/mysql_thread.h>
#define INSTRUMENT_ME 0
struct st_my_thread_var struct st_my_thread_var
{ {
int thr_errno; int thr_errno;
pthread_cond_t suspend; mysql_cond_t suspend;
pthread_mutex_t mutex; mysql_mutex_t mutex;
pthread_mutex_t * volatile current_mutex; mysql_mutex_t * volatile current_mutex;
pthread_cond_t * volatile current_cond; mysql_cond_t * volatile current_cond;
pthread_t pthread_self; pthread_t pthread_self;
my_thread_id id; my_thread_id id;
int cmp_length; int cmp_length;
int volatile abort; int volatile abort;
my_bool init; my_bool init;
struct st_my_thread_var *next,**prev; struct st_my_thread_var *next,**prev;
void *opt_info; void *opt_info;
void *stack_ends_here;
#ifndef DBUG_OFF #ifndef DBUG_OFF
void *dbug; void *dbug;
char name[THREAD_NAME_SIZE+1]; char name[THREAD_NAME_SIZE+1];
#endif #endif
}; };
extern struct st_my_thread_var *_my_thread_var(void) __attribute__ ((const) ); extern struct st_my_thread_var *_my_thread_var(void) __attribute__ ((const) );
extern void **my_thread_var_dbug(); extern void **my_thread_var_dbug();
extern uint my_thread_end_wait_time; extern uint my_thread_end_wait_time;
#define my_thread_var (_my_thread_var()) #define my_thread_var (_my_thread_var())
skipping to change at line 706 skipping to change at line 778
The implementation is guaranteed to be thread safe, on all platforms. The implementation is guaranteed to be thread safe, on all platforms.
Note that the calling code should *not* assume the counter is protected Note that the calling code should *not* assume the counter is protected
by the mutex given, as the implementation of these helpers may change by the mutex given, as the implementation of these helpers may change
to use my_atomic operations instead. to use my_atomic operations instead.
*/ */
/* /*
Warning: Warning:
When compiling without threads, this file is not included. When compiling without threads, this file is not included.
See the *other* declarations of thread_safe_xxx in include/my_global.h See the *other* declarations of thread_safe_xxx in include/my_global.h
Second warning:
See include/config-win.h, for yet another implementation.
*/ */
#ifdef THREAD #ifdef THREAD
#ifndef thread_safe_increment #ifndef thread_safe_increment
#ifdef _WIN32
#define thread_safe_increment(V,L) InterlockedIncrement((long*) &(V))
#define thread_safe_decrement(V,L) InterlockedDecrement((long*) &(V))
#else
#define thread_safe_increment(V,L) \ #define thread_safe_increment(V,L) \
(pthread_mutex_lock((L)), (V)++, pthread_mutex_unlock((L))) (mysql_mutex_lock((L)), (V)++, mysql_mutex_unlock((L)))
#define thread_safe_decrement(V,L) \ #define thread_safe_decrement(V,L) \
(pthread_mutex_lock((L)), (V)--, pthread_mutex_unlock((L))) (mysql_mutex_lock((L)), (V)--, mysql_mutex_unlock((L)))
#endif
#endif #endif
#ifndef thread_safe_add #ifndef thread_safe_add
#ifdef _WIN32
#define thread_safe_add(V,C,L) InterlockedExchangeAdd((long*) &(V),(C))
#define thread_safe_sub(V,C,L) InterlockedExchangeAdd((long*) &(V),-(long)
(C))
#else
#define thread_safe_add(V,C,L) \ #define thread_safe_add(V,C,L) \
(pthread_mutex_lock((L)), (V)+=(C), pthread_mutex_unlock((L))) (mysql_mutex_lock((L)), (V)+=(C), mysql_mutex_unlock((L)))
#define thread_safe_sub(V,C,L) \ #define thread_safe_sub(V,C,L) \
(pthread_mutex_lock((L)), (V)-=(C), pthread_mutex_unlock((L))) (mysql_mutex_lock((L)), (V)-=(C), mysql_mutex_unlock((L)))
#endif
#endif #endif
#endif #endif
/* /*
statistics_xxx functions are for non critical statistic, statistics_xxx functions are for non critical statistic,
maintained in global variables. maintained in global variables.
When compiling with SAFE_STATISTICS: When compiling with SAFE_STATISTICS:
- race conditions can not occur. - race conditions can not occur.
- some locking occurs, which may cause performance degradation. - some locking occurs, which may cause performance degradation.
 End of changes. 31 change blocks. 
61 lines changed or deleted 144 lines changed or added


 my_sys.h   my_sys.h 
/* Copyright (C) 2000-2003 MySQL AB /* Copyright (C) 2000-2003 MySQL AB, 2008-2009 Sun Microsystems, Inc
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License. the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
skipping to change at line 37 skipping to change at line 37
#ifndef THREAD #ifndef THREAD
extern int NEAR my_errno; /* Last error in mysys */ extern int NEAR my_errno; /* Last error in mysys */
#else #else
#include <my_pthread.h> #include <my_pthread.h>
#endif #endif
#include <m_ctype.h> /* for CHARSET_INFO */ #include <m_ctype.h> /* for CHARSET_INFO */
#include <stdarg.h> #include <stdarg.h>
#include <typelib.h> #include <typelib.h>
#ifdef _WIN32
#include <malloc.h> /*for alloca*/
#endif
#define MYSYS_PROGRAM_USES_CURSES() { error_handler_hook = my_message_curs es; mysys_uses_curses=1; } #define MYSYS_PROGRAM_USES_CURSES() { error_handler_hook = my_message_curs es; mysys_uses_curses=1; }
#define MYSYS_PROGRAM_DONT_USE_CURSES() { error_handler_hook = my_message_ no_curses; mysys_uses_curses=0;} #define MYSYS_PROGRAM_DONT_USE_CURSES() { error_handler_hook = my_message_ no_curses; mysys_uses_curses=0;}
#define MY_INIT(name); { my_progname= name; my_init(); } #define MY_INIT(name); { my_progname= name; my_init(); }
/** /**
Max length of an error message generated by mysys utilities. Max length of an error message generated by mysys utilities.
Some mysys functions produce error messages. These mostly go Some mysys functions produce error messages. These mostly go
to stderr. to stderr.
This constant defines the size of the buffer used to format This constant defines the size of the buffer used to format
skipping to change at line 63 skipping to change at line 66
#define MY_FILE_ERROR ((size_t) -1) #define MY_FILE_ERROR ((size_t) -1)
/* General bitmaps for my_func's */ /* General bitmaps for my_func's */
#define MY_FFNF 1 /* Fatal if file not found */ #define MY_FFNF 1 /* Fatal if file not found */
#define MY_FNABP 2 /* Fatal if not all bytes read/writen */ #define MY_FNABP 2 /* Fatal if not all bytes read/writen */
#define MY_NABP 4 /* Error if not all bytes read/write n */ #define MY_NABP 4 /* Error if not all bytes read/write n */
#define MY_FAE 8 /* Fatal if any error */ #define MY_FAE 8 /* Fatal if any error */
#define MY_WME 16 /* Write message on error */ #define MY_WME 16 /* Write message on error */
#define MY_WAIT_IF_FULL 32 /* Wait and try again if disk full error */ #define MY_WAIT_IF_FULL 32 /* Wait and try again if disk full error */
#define MY_IGNORE_BADFD 32 /* my_sync: ignore 'bad descriptor' errors */ #define MY_IGNORE_BADFD 32 /* my_sync: ignore 'bad descriptor' errors */
#define MY_SYNC_DIR 1024 /* my_create/delete/rename: sync directory */ #define MY_SYNC_DIR 8192 /* my_create/delete/rename: sync directory */
#define MY_RAID 64 /* Support for RAID */ #define MY_RAID 64 /* Support for RAID */
#define MY_FULL_IO 512 /* For my_read - loop intil I/O is complete */ #define MY_FULL_IO 512 /* For my_read - loop intil I/O is complete */
#define MY_DONT_CHECK_FILESIZE 128 /* Option to init_io_cache() */ #define MY_DONT_CHECK_FILESIZE 128 /* Option to init_io_cache() */
#define MY_LINK_WARNING 32 /* my_redel() gives warning if links */ #define MY_LINK_WARNING 32 /* my_redel() gives warning if links */
#define MY_COPYTIME 64 /* my_redel() copys time */ #define MY_COPYTIME 64 /* my_redel() copys time */
#define MY_DELETE_OLD 256 /* my_create_with_symlink() */ #define MY_DELETE_OLD 256 /* my_create_with_symlink() */
#define MY_RESOLVE_LINK 128 /* my_realpath(); Only resolve links */ #define MY_RESOLVE_LINK 128 /* my_realpath(); Only resolve links */
#define MY_HOLD_ORIGINAL_MODES 128 /* my_copy() holds to file modes */ #define MY_HOLD_ORIGINAL_MODES 128 /* my_copy() holds to file modes */
#define MY_REDEL_MAKE_BACKUP 256 #define MY_REDEL_MAKE_BACKUP 256
#define MY_SEEK_NOT_DONE 32 /* my_lock may have to do a seek */ #define MY_SEEK_NOT_DONE 32 /* my_lock may have to do a seek */
skipping to change at line 237 skipping to change at line 240
#endif /* #ifndef errno */ #endif /* #ifndef errno */
extern char *home_dir; /* Home directory for user */ extern char *home_dir; /* Home directory for user */
extern const char *my_progname; /* program-name (printed in errors) */ extern const char *my_progname; /* program-name (printed in errors) */
extern char NEAR curr_dir[]; /* Current directory for user */ extern char NEAR curr_dir[]; /* Current directory for user */
extern void (*error_handler_hook)(uint my_err, const char *str,myf MyFlags) ; extern void (*error_handler_hook)(uint my_err, const char *str,myf MyFlags) ;
extern void (*fatal_error_handler_hook)(uint my_err, const char *str, extern void (*fatal_error_handler_hook)(uint my_err, const char *str,
myf MyFlags); myf MyFlags);
extern uint my_file_limit; extern uint my_file_limit;
extern ulong my_thread_stack_size; extern ulong my_thread_stack_size;
extern const char *(*proc_info_hook)(void *, const char *, const char *,
const char *, const unsigned int);
#ifdef HAVE_LARGE_PAGES #ifdef HAVE_LARGE_PAGES
extern my_bool my_use_large_pages; extern my_bool my_use_large_pages;
extern uint my_large_page_size; extern uint my_large_page_size;
#endif #endif
/* charsets */ /* charsets */
#define MY_ALL_CHARSETS_SIZE 2048 #define MY_ALL_CHARSETS_SIZE 2048
extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *default_charset_info; extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *default_charset_info;
extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *all_charsets[MY_ALL_CHARSETS_SIZE] ; extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *all_charsets[MY_ALL_CHARSETS_SIZE] ;
extern CHARSET_INFO compiled_charsets[]; extern CHARSET_INFO compiled_charsets[];
skipping to change at line 340 skipping to change at line 346
struct st_my_file_info struct st_my_file_info
{ {
char *name; char *name;
#ifdef _WIN32 #ifdef _WIN32
HANDLE fhandle; /* win32 file handle */ HANDLE fhandle; /* win32 file handle */
int oflag; /* open flags, e.g O_APPEND */ int oflag; /* open flags, e.g O_APPEND */
#endif #endif
enum file_type type; enum file_type type;
#if defined(THREAD) && !defined(HAVE_PREAD) && !defined(_WIN32) #if defined(THREAD) && !defined(HAVE_PREAD) && !defined(_WIN32)
pthread_mutex_t mutex; mysql_mutex_t mutex;
#endif #endif
}; };
extern struct st_my_file_info *my_file_info; extern struct st_my_file_info *my_file_info;
typedef struct st_dynamic_array typedef struct st_dynamic_array
{ {
uchar *buffer; uchar *buffer;
uint elements,max_element; uint elements,max_element;
uint alloc_increment; uint alloc_increment;
uint size_of_element; uint size_of_element;
} DYNAMIC_ARRAY; } DYNAMIC_ARRAY;
typedef struct st_my_tmpdir typedef struct st_my_tmpdir
{ {
DYNAMIC_ARRAY full_list; DYNAMIC_ARRAY full_list;
char **list; char **list;
uint cur, max; uint cur, max;
#ifdef THREAD #ifdef THREAD
pthread_mutex_t mutex; mysql_mutex_t mutex;
#endif #endif
} MY_TMPDIR; } MY_TMPDIR;
typedef struct st_dynamic_string typedef struct st_dynamic_string
{ {
char *str; char *str;
size_t length,max_length,alloc_increment; size_t length,max_length,alloc_increment;
} DYNAMIC_STRING; } DYNAMIC_STRING;
struct st_io_cache; struct st_io_cache;
typedef int (*IO_CACHE_CALLBACK)(struct st_io_cache*); typedef int (*IO_CACHE_CALLBACK)(struct st_io_cache*);
#ifdef THREAD #ifdef THREAD
typedef struct st_io_cache_share typedef struct st_io_cache_share
{ {
pthread_mutex_t mutex; /* To sync on reads into buffer. * mysql_mutex_t mutex; /* To sync on reads into buffer. */
/ mysql_cond_t cond; /* To wait for signals. */
pthread_cond_t cond; /* To wait for signals. */ mysql_cond_t cond_writer; /* For a synchronized writer. */
pthread_cond_t cond_writer; /* For a synchronized writer. */
/* Offset in file corresponding to the first byte of buffer. */ /* Offset in file corresponding to the first byte of buffer. */
my_off_t pos_in_file; my_off_t pos_in_file;
/* If a synchronized write cache is the source of the data. */ /* If a synchronized write cache is the source of the data. */
struct st_io_cache *source_cache; struct st_io_cache *source_cache;
uchar *buffer; /* The read buffer. */ uchar *buffer; /* The read buffer. */
uchar *read_end; /* Behind last valid byte of buffe r. */ uchar *read_end; /* Behind last valid byte of buffe r. */
int running_threads; /* threads not in lock. */ int running_threads; /* threads not in lock. */
int total_threads; /* threads sharing the cache. */ int total_threads; /* threads sharing the cache. */
int error; /* Last error. */ int error; /* Last error. */
#ifdef NOT_YET_IMPLEMENTED #ifdef NOT_YET_IMPLEMENTED
skipping to change at line 439 skipping to change at line 445
my_b_tell() and other routines that need to know the current offset my_b_tell() and other routines that need to know the current offset
current_pos points to &write_pos, and current_end to &write_end in a current_pos points to &write_pos, and current_end to &write_end in a
WRITE_CACHE, and &read_pos and &read_end respectively otherwise WRITE_CACHE, and &read_pos and &read_end respectively otherwise
*/ */
uchar **current_pos, **current_end; uchar **current_pos, **current_end;
#ifdef THREAD #ifdef THREAD
/* /*
The lock is for append buffer used in SEQ_READ_APPEND cache The lock is for append buffer used in SEQ_READ_APPEND cache
need mutex copying from append buffer to read buffer. need mutex copying from append buffer to read buffer.
*/ */
pthread_mutex_t append_buffer_lock; mysql_mutex_t append_buffer_lock;
/* /*
The following is used when several threads are reading the The following is used when several threads are reading the
same file in parallel. They are synchronized on disk same file in parallel. They are synchronized on disk
accesses reading the cached part of the file asynchronously. accesses reading the cached part of the file asynchronously.
It should be set to NULL to disable the feature. Only It should be set to NULL to disable the feature. Only
READ_CACHE mode is supported. READ_CACHE mode is supported.
*/ */
IO_CACHE_SHARE *share; IO_CACHE_SHARE *share;
#endif #endif
/* /*
skipping to change at line 691 skipping to change at line 697
myf MyFlags, ...)) myf MyFlags, ...))
ATTRIBUTE_FORMAT(printf, 2, 4); ATTRIBUTE_FORMAT(printf, 2, 4);
extern void my_printv_error(uint error, const char *format, myf MyFlags, extern void my_printv_error(uint error, const char *format, myf MyFlags,
va_list ap); va_list ap);
extern int my_error_register(const char** (*get_errmsgs) (), extern int my_error_register(const char** (*get_errmsgs) (),
int first, int last); int first, int last);
extern const char **my_error_unregister(int first, int last); extern const char **my_error_unregister(int first, int last);
extern void my_message(uint my_err, const char *str,myf MyFlags); extern void my_message(uint my_err, const char *str,myf MyFlags);
extern void my_message_no_curses(uint my_err, const char *str,myf MyFlags); extern void my_message_no_curses(uint my_err, const char *str,myf MyFlags);
extern void my_message_curses(uint my_err, const char *str,myf MyFlags); extern void my_message_curses(uint my_err, const char *str,myf MyFlags);
extern my_bool my_basic_init(void);
extern my_bool my_init(void); extern my_bool my_init(void);
extern void my_end(int infoflag); extern void my_end(int infoflag);
extern int my_redel(const char *from, const char *to, int MyFlags); extern int my_redel(const char *from, const char *to, int MyFlags);
extern int my_copystat(const char *from, const char *to, int MyFlags); extern int my_copystat(const char *from, const char *to, int MyFlags);
extern char * my_filename(File fd); extern char * my_filename(File fd);
#ifndef THREAD #ifndef THREAD
extern void dont_break(void); extern void dont_break(void);
extern void allow_break(void); extern void allow_break(void);
#else #else
skipping to change at line 1017 skipping to change at line 1024
/* implemented in my_conio.c */ /* implemented in my_conio.c */
char* my_cgets(char *string, size_t clen, size_t* plen); char* my_cgets(char *string, size_t clen, size_t* plen);
#endif #endif
#ifdef __NETWARE__ #ifdef __NETWARE__
void netware_reg_user(const char *ip, const char *user, void netware_reg_user(const char *ip, const char *user,
const char *application); const char *application);
#endif #endif
#include <mysql/psi/psi.h>
#ifdef HAVE_PSI_INTERFACE
extern MYSQL_PLUGIN_IMPORT struct PSI_bootstrap *PSI_hook;
void my_init_mysys_psi_keys(void);
#endif
struct st_mysql_file;
extern struct st_mysql_file *mysql_stdin;
C_MODE_END C_MODE_END
#endif /* _my_sys_h */ #endif /* _my_sys_h */
 End of changes. 10 change blocks. 
9 lines changed or deleted 25 lines changed or added


 mysql_com.h   mysql_com.h 
skipping to change at line 36 skipping to change at line 36
#define USERNAME_CHAR_LENGTH 16 #define USERNAME_CHAR_LENGTH 16
#define NAME_LEN (NAME_CHAR_LEN*SYSTEM_CHARSET_MBMAXLEN) #define NAME_LEN (NAME_CHAR_LEN*SYSTEM_CHARSET_MBMAXLEN)
#define USERNAME_LENGTH (USERNAME_CHAR_LENGTH*SYSTEM_CHARSET_MBMAXL EN) #define USERNAME_LENGTH (USERNAME_CHAR_LENGTH*SYSTEM_CHARSET_MBMAXL EN)
#define MYSQL_AUTODETECT_CHARSET_NAME "auto" #define MYSQL_AUTODETECT_CHARSET_NAME "auto"
#define SERVER_VERSION_LENGTH 60 #define SERVER_VERSION_LENGTH 60
#define SQLSTATE_LENGTH 5 #define SQLSTATE_LENGTH 5
/* /*
Maximum length of comments
*/
#define TABLE_COMMENT_INLINE_MAXLEN 180 /* pre 6.0: 60 characters */
#define TABLE_COMMENT_MAXLEN 2048
#define COLUMN_COMMENT_MAXLEN 1024
#define INDEX_COMMENT_MAXLEN 1024
/*
USER_HOST_BUFF_SIZE -- length of string buffer, that is enough to contain USER_HOST_BUFF_SIZE -- length of string buffer, that is enough to contain
username and hostname parts of the user identifier with trailing zero in username and hostname parts of the user identifier with trailing zero in
MySQL standard format: MySQL standard format:
user_name_part@host_name_part\0 user_name_part@host_name_part\0
*/ */
#define USER_HOST_BUFF_SIZE HOSTNAME_LENGTH + USERNAME_LENGTH + 2 #define USER_HOST_BUFF_SIZE HOSTNAME_LENGTH + USERNAME_LENGTH + 2
#define LOCAL_HOST "localhost" #define LOCAL_HOST "localhost"
#define LOCAL_HOST_NAMEDPIPE "." #define LOCAL_HOST_NAMEDPIPE "."
skipping to change at line 117 skipping to change at line 125
#define REFRESH_GRANT 1 /* Refresh grant tables */ #define REFRESH_GRANT 1 /* Refresh grant tables */
#define REFRESH_LOG 2 /* Start on new log file */ #define REFRESH_LOG 2 /* Start on new log file */
#define REFRESH_TABLES 4 /* close all tables */ #define REFRESH_TABLES 4 /* close all tables */
#define REFRESH_HOSTS 8 /* Flush host cache */ #define REFRESH_HOSTS 8 /* Flush host cache */
#define REFRESH_STATUS 16 /* Flush status variables */ #define REFRESH_STATUS 16 /* Flush status variables */
#define REFRESH_THREADS 32 /* Flush thread cache */ #define REFRESH_THREADS 32 /* Flush thread cache */
#define REFRESH_SLAVE 64 /* Reset master info and restart sl ave #define REFRESH_SLAVE 64 /* Reset master info and restart sl ave
thread */ thread */
#define REFRESH_MASTER 128 /* Remove all bin logs in the index #define REFRESH_MASTER 128 /* Remove all bin logs in the index
and truncate the index */ and truncate the index */
#define REFRESH_ERROR_LOG 256 /* Rotate only the erorr log */
#define REFRESH_ENGINE_LOG 512 /* Flush all storage engine logs */
#define REFRESH_BINARY_LOG 1024 /* Flush the binary log */
#define REFRESH_RELAY_LOG 2048 /* Flush the relay log */
#define REFRESH_GENERAL_LOG 4096 /* Flush the general log */
#define REFRESH_SLOW_LOG 8192 /* Flush the slow query log */
/* The following can't be set with mysql_refresh() */ /* The following can't be set with mysql_refresh() */
#define REFRESH_READ_LOCK 16384 /* Lock tables for read */ #define REFRESH_READ_LOCK 16384 /* Lock tables for read */
#define REFRESH_FAST 32768 /* Intern flag */ #define REFRESH_FAST 32768 /* Intern flag */
/* RESET (remove all queries) from query cache */ /* RESET (remove all queries) from query cache */
#define REFRESH_QUERY_CACHE 65536 #define REFRESH_QUERY_CACHE 65536
#define REFRESH_QUERY_CACHE_FREE 0x20000L /* pack query cache */ #define REFRESH_QUERY_CACHE_FREE 0x20000L /* pack query cache */
#define REFRESH_DES_KEY_FILE 0x40000L #define REFRESH_DES_KEY_FILE 0x40000L
#define REFRESH_USER_RESOURCES 0x80000L #define REFRESH_USER_RESOURCES 0x80000L
skipping to change at line 519 skipping to change at line 533
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#define NULL_LENGTH ((unsigned long) ~0) /* For net_store_length */ #define NULL_LENGTH ((unsigned long) ~0) /* For net_store_length */
#define MYSQL_STMT_HEADER 4 #define MYSQL_STMT_HEADER 4
#define MYSQL_LONG_DATA_HEADER 6 #define MYSQL_LONG_DATA_HEADER 6
#define NOT_FIXED_DEC 31
#endif #endif
 End of changes. 3 change blocks. 
0 lines changed or deleted 15 lines changed or added


 mysql_version.h   mysql_version.h 
skipping to change at line 12 skipping to change at line 12
This file is public domain and comes with NO WARRANTY of any kind */ This file is public domain and comes with NO WARRANTY of any kind */
/* Version numbers for protocol & mysqld */ /* Version numbers for protocol & mysqld */
#ifndef _mysql_version_h #ifndef _mysql_version_h
#define _mysql_version_h #define _mysql_version_h
#ifdef _CUSTOMCONFIG_ #ifdef _CUSTOMCONFIG_
#include <custom_conf.h> #include <custom_conf.h>
#else #else
#define PROTOCOL_VERSION 10 #define PROTOCOL_VERSION 10
#define MYSQL_SERVER_VERSION "5.5.2-m2" #define MYSQL_SERVER_VERSION "5.5.3-m3"
#define MYSQL_BASE_VERSION "mysqld-5.5" #define MYSQL_BASE_VERSION "mysqld-5.5"
#define MYSQL_SERVER_SUFFIX_DEF "" #define MYSQL_SERVER_SUFFIX_DEF ""
#define FRM_VER 6 #define FRM_VER 6
#define MYSQL_VERSION_ID 50502 #define MYSQL_VERSION_ID 50503
#define MYSQL_PORT 3306 #define MYSQL_PORT 3306
#define MYSQL_PORT_DEFAULT 0 #define MYSQL_PORT_DEFAULT 0
#define MYSQL_UNIX_ADDR "/tmp/mysql.sock" #define MYSQL_UNIX_ADDR "/tmp/mysql.sock"
#define MYSQL_CONFIG_NAME "my" #define MYSQL_CONFIG_NAME "my"
#define MYSQL_COMPILATION_COMMENT "Source distribution" #define MYSQL_COMPILATION_COMMENT "Source distribution"
/* mysqld compile time options */ /* mysqld compile time options */
#endif /* _CUSTOMCONFIG_ */ #endif /* _CUSTOMCONFIG_ */
#ifndef LICENSE #ifndef LICENSE
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 mysqld_ername.h   mysqld_ername.h 
/* Autogenerated file, please don't edit */ /* Autogenerated file, please don't edit */
{ "ER_HASHCHK", 1000 }, { "ER_HASHCHK", 1000, "hashchk" },
{ "ER_NISAMCHK", 1001 }, { "ER_NISAMCHK", 1001, "isamchk" },
{ "ER_NO", 1002 }, { "ER_NO", 1002, "NO" },
{ "ER_YES", 1003 }, { "ER_YES", 1003, "YES" },
{ "ER_CANT_CREATE_FILE", 1004 }, { "ER_CANT_CREATE_FILE", 1004, "Can\'t create file \'%-.200s\' (errno: %d)"
{ "ER_CANT_CREATE_TABLE", 1005 }, },
{ "ER_CANT_CREATE_DB", 1006 }, { "ER_CANT_CREATE_TABLE", 1005, "Can\'t create table \'%-.200s\' (errno: %d
{ "ER_DB_CREATE_EXISTS", 1007 }, )" },
{ "ER_DB_DROP_EXISTS", 1008 }, { "ER_CANT_CREATE_DB", 1006, "Can\'t create database \'%-.192s\' (errno: %d
{ "ER_DB_DROP_DELETE", 1009 }, )" },
{ "ER_DB_DROP_RMDIR", 1010 }, { "ER_DB_CREATE_EXISTS", 1007, "Can\'t create database \'%-.192s\'; databas
{ "ER_CANT_DELETE_FILE", 1011 }, e exists" },
{ "ER_CANT_FIND_SYSTEM_REC", 1012 }, { "ER_DB_DROP_EXISTS", 1008, "Can\'t drop database \'%-.192s\'; database do
{ "ER_CANT_GET_STAT", 1013 }, esn\'t exist" },
{ "ER_CANT_GET_WD", 1014 }, { "ER_DB_DROP_DELETE", 1009, "Error dropping database (can\'t delete \'%-.1
{ "ER_CANT_LOCK", 1015 }, 92s\', errno: %d)" },
{ "ER_CANT_OPEN_FILE", 1016 }, { "ER_DB_DROP_RMDIR", 1010, "Error dropping database (can\'t rmdir \'%-.192
{ "ER_FILE_NOT_FOUND", 1017 }, s\', errno: %d)" },
{ "ER_CANT_READ_DIR", 1018 }, { "ER_CANT_DELETE_FILE", 1011, "Error on delete of \'%-.192s\' (errno: %d)"
{ "ER_CANT_SET_WD", 1019 }, },
{ "ER_CHECKREAD", 1020 }, { "ER_CANT_FIND_SYSTEM_REC", 1012, "Can\'t read record in system table" },
{ "ER_DISK_FULL", 1021 }, { "ER_CANT_GET_STAT", 1013, "Can\'t get status of \'%-.200s\' (errno: %d)"
{ "ER_DUP_KEY", 1022 }, },
{ "ER_ERROR_ON_CLOSE", 1023 }, { "ER_CANT_GET_WD", 1014, "Can\'t get working directory (errno: %d)" },
{ "ER_ERROR_ON_READ", 1024 }, { "ER_CANT_LOCK", 1015, "Can\'t lock file (errno: %d)" },
{ "ER_ERROR_ON_RENAME", 1025 }, { "ER_CANT_OPEN_FILE", 1016, "Can\'t open file: \'%-.200s\' (errno: %d)" },
{ "ER_ERROR_ON_WRITE", 1026 }, { "ER_FILE_NOT_FOUND", 1017, "Can\'t find file: \'%-.200s\' (errno: %d)" },
{ "ER_FILE_USED", 1027 }, { "ER_CANT_READ_DIR", 1018, "Can\'t read dir of \'%-.192s\' (errno: %d)" },
{ "ER_FILSORT_ABORT", 1028 }, { "ER_CANT_SET_WD", 1019, "Can\'t change dir to \'%-.192s\' (errno: %d)" },
{ "ER_FORM_NOT_FOUND", 1029 }, { "ER_CHECKREAD", 1020, "Record has changed since last read in table \'%-.1
{ "ER_GET_ERRNO", 1030 }, 92s\'" },
{ "ER_ILLEGAL_HA", 1031 }, { "ER_DISK_FULL", 1021, "Disk full (%s); waiting for someone to free some s
{ "ER_KEY_NOT_FOUND", 1032 }, pace..." },
{ "ER_NOT_FORM_FILE", 1033 }, { "ER_DUP_KEY", 1022, "Can\'t write; duplicate key in table \'%-.192s\'" },
{ "ER_NOT_KEYFILE", 1034 }, { "ER_ERROR_ON_CLOSE", 1023, "Error on close of \'%-.192s\' (errno: %d)" },
{ "ER_OLD_KEYFILE", 1035 }, { "ER_ERROR_ON_READ", 1024, "Error reading file \'%-.200s\' (errno: %d)" },
{ "ER_OPEN_AS_READONLY", 1036 }, { "ER_ERROR_ON_RENAME", 1025, "Error on rename of \'%-.210s\' to \'%-.210s\
{ "ER_OUTOFMEMORY", 1037 }, ' (errno: %d)" },
{ "ER_OUT_OF_SORTMEMORY", 1038 }, { "ER_ERROR_ON_WRITE", 1026, "Error writing file \'%-.200s\' (errno: %d)" }
{ "ER_UNEXPECTED_EOF", 1039 }, ,
{ "ER_CON_COUNT_ERROR", 1040 }, { "ER_FILE_USED", 1027, "\'%-.192s\' is locked against change" },
{ "ER_OUT_OF_RESOURCES", 1041 }, { "ER_FILSORT_ABORT", 1028, "Sort aborted" },
{ "ER_BAD_HOST_ERROR", 1042 }, { "ER_FORM_NOT_FOUND", 1029, "View \'%-.192s\' doesn\'t exist for \'%-.192s
{ "ER_HANDSHAKE_ERROR", 1043 }, \'" },
{ "ER_DBACCESS_DENIED_ERROR", 1044 }, { "ER_GET_ERRNO", 1030, "Got error %d from storage engine" },
{ "ER_ACCESS_DENIED_ERROR", 1045 }, { "ER_ILLEGAL_HA", 1031, "Table storage engine for \'%-.192s\' doesn\'t hav
{ "ER_NO_DB_ERROR", 1046 }, e this option" },
{ "ER_UNKNOWN_COM_ERROR", 1047 }, { "ER_KEY_NOT_FOUND", 1032, "Can\'t find record in \'%-.192s\'" },
{ "ER_BAD_NULL_ERROR", 1048 }, { "ER_NOT_FORM_FILE", 1033, "Incorrect information in file: \'%-.200s\'" },
{ "ER_BAD_DB_ERROR", 1049 }, { "ER_NOT_KEYFILE", 1034, "Incorrect key file for table \'%-.200s\'; try to
{ "ER_TABLE_EXISTS_ERROR", 1050 }, repair it" },
{ "ER_BAD_TABLE_ERROR", 1051 }, { "ER_OLD_KEYFILE", 1035, "Old key file for table \'%-.192s\'; repair it!"
{ "ER_NON_UNIQ_ERROR", 1052 }, },
{ "ER_SERVER_SHUTDOWN", 1053 }, { "ER_OPEN_AS_READONLY", 1036, "Table \'%-.192s\' is read only" },
{ "ER_BAD_FIELD_ERROR", 1054 }, { "ER_OUTOFMEMORY", 1037, "Out of memory; restart server and try again (nee
{ "ER_WRONG_FIELD_WITH_GROUP", 1055 }, ded %d bytes)" },
{ "ER_WRONG_GROUP_FIELD", 1056 }, { "ER_OUT_OF_SORTMEMORY", 1038, "Out of sort memory; increase server sort b
{ "ER_WRONG_SUM_SELECT", 1057 }, uffer size" },
{ "ER_WRONG_VALUE_COUNT", 1058 }, { "ER_UNEXPECTED_EOF", 1039, "Unexpected EOF found when reading file \'%-.1
{ "ER_TOO_LONG_IDENT", 1059 }, 92s\' (errno: %d)" },
{ "ER_DUP_FIELDNAME", 1060 }, { "ER_CON_COUNT_ERROR", 1040, "Too many connections" },
{ "ER_DUP_KEYNAME", 1061 }, { "ER_OUT_OF_RESOURCES", 1041, "Out of memory; check if mysqld or some othe
{ "ER_DUP_ENTRY", 1062 }, r process uses all available memory; if not, you may have to use \'ulimit\'
{ "ER_WRONG_FIELD_SPEC", 1063 }, to allow mysqld to use more memory or you can add more swap space" },
{ "ER_PARSE_ERROR", 1064 }, { "ER_BAD_HOST_ERROR", 1042, "Can\'t get hostname for your address" },
{ "ER_EMPTY_QUERY", 1065 }, { "ER_HANDSHAKE_ERROR", 1043, "Bad handshake" },
{ "ER_NONUNIQ_TABLE", 1066 }, { "ER_DBACCESS_DENIED_ERROR", 1044, "Access denied for user \'%-.48s\'@\'%-
{ "ER_INVALID_DEFAULT", 1067 }, .64s\' to database \'%-.192s\'" },
{ "ER_MULTIPLE_PRI_KEY", 1068 }, { "ER_ACCESS_DENIED_ERROR", 1045, "Access denied for user \'%-.48s\'@\'%-.6
{ "ER_TOO_MANY_KEYS", 1069 }, 4s\' (using password: %s)" },
{ "ER_TOO_MANY_KEY_PARTS", 1070 }, { "ER_NO_DB_ERROR", 1046, "No database selected" },
{ "ER_TOO_LONG_KEY", 1071 }, { "ER_UNKNOWN_COM_ERROR", 1047, "Unknown command" },
{ "ER_KEY_COLUMN_DOES_NOT_EXITS", 1072 }, { "ER_BAD_NULL_ERROR", 1048, "Column \'%-.192s\' cannot be null" },
{ "ER_BLOB_USED_AS_KEY", 1073 }, { "ER_BAD_DB_ERROR", 1049, "Unknown database \'%-.192s\'" },
{ "ER_TOO_BIG_FIELDLENGTH", 1074 }, { "ER_TABLE_EXISTS_ERROR", 1050, "Table \'%-.192s\' already exists" },
{ "ER_WRONG_AUTO_KEY", 1075 }, { "ER_BAD_TABLE_ERROR", 1051, "Unknown table \'%-.100s\'" },
{ "ER_READY", 1076 }, { "ER_NON_UNIQ_ERROR", 1052, "Column \'%-.192s\' in %-.192s is ambiguous" }
{ "ER_NORMAL_SHUTDOWN", 1077 }, ,
{ "ER_GOT_SIGNAL", 1078 }, { "ER_SERVER_SHUTDOWN", 1053, "Server shutdown in progress" },
{ "ER_SHUTDOWN_COMPLETE", 1079 }, { "ER_BAD_FIELD_ERROR", 1054, "Unknown column \'%-.192s\' in \'%-.192s\'" }
{ "ER_FORCING_CLOSE", 1080 }, ,
{ "ER_IPSOCK_ERROR", 1081 }, { "ER_WRONG_FIELD_WITH_GROUP", 1055, "\'%-.192s\' isn\'t in GROUP BY" },
{ "ER_NO_SUCH_INDEX", 1082 }, { "ER_WRONG_GROUP_FIELD", 1056, "Can\'t group on \'%-.192s\'" },
{ "ER_WRONG_FIELD_TERMINATORS", 1083 }, { "ER_WRONG_SUM_SELECT", 1057, "Statement has sum functions and columns in
{ "ER_BLOBS_AND_NO_TERMINATED", 1084 }, same statement" },
{ "ER_TEXTFILE_NOT_READABLE", 1085 }, { "ER_WRONG_VALUE_COUNT", 1058, "Column count doesn\'t match value count" }
{ "ER_FILE_EXISTS_ERROR", 1086 }, ,
{ "ER_LOAD_INFO", 1087 }, { "ER_TOO_LONG_IDENT", 1059, "Identifier name \'%-.100s\' is too long" },
{ "ER_ALTER_INFO", 1088 }, { "ER_DUP_FIELDNAME", 1060, "Duplicate column name \'%-.192s\'" },
{ "ER_WRONG_SUB_KEY", 1089 }, { "ER_DUP_KEYNAME", 1061, "Duplicate key name \'%-.192s\'" },
{ "ER_CANT_REMOVE_ALL_FIELDS", 1090 }, { "ER_DUP_ENTRY", 1062, "Duplicate entry \'%-.192s\' for key %d" },
{ "ER_CANT_DROP_FIELD_OR_KEY", 1091 }, { "ER_WRONG_FIELD_SPEC", 1063, "Incorrect column specifier for column \'%-.
{ "ER_INSERT_INFO", 1092 }, 192s\'" },
{ "ER_UPDATE_TABLE_USED", 1093 }, { "ER_PARSE_ERROR", 1064, "%s near \'%-.80s\' at line %d" },
{ "ER_NO_SUCH_THREAD", 1094 }, { "ER_EMPTY_QUERY", 1065, "Query was empty" },
{ "ER_KILL_DENIED_ERROR", 1095 }, { "ER_NONUNIQ_TABLE", 1066, "Not unique table/alias: \'%-.192s\'" },
{ "ER_NO_TABLES_USED", 1096 }, { "ER_INVALID_DEFAULT", 1067, "Invalid default value for \'%-.192s\'" },
{ "ER_TOO_BIG_SET", 1097 }, { "ER_MULTIPLE_PRI_KEY", 1068, "Multiple primary key defined" },
{ "ER_NO_UNIQUE_LOGFILE", 1098 }, { "ER_TOO_MANY_KEYS", 1069, "Too many keys specified; max %d keys allowed"
{ "ER_TABLE_NOT_LOCKED_FOR_WRITE", 1099 }, },
{ "ER_TABLE_NOT_LOCKED", 1100 }, { "ER_TOO_MANY_KEY_PARTS", 1070, "Too many key parts specified; max %d part
{ "ER_BLOB_CANT_HAVE_DEFAULT", 1101 }, s allowed" },
{ "ER_WRONG_DB_NAME", 1102 }, { "ER_TOO_LONG_KEY", 1071, "Specified key was too long; max key length is %
{ "ER_WRONG_TABLE_NAME", 1103 }, d bytes" },
{ "ER_TOO_BIG_SELECT", 1104 }, { "ER_KEY_COLUMN_DOES_NOT_EXITS", 1072, "Key column \'%-.192s\' doesn\'t ex
{ "ER_UNKNOWN_ERROR", 1105 }, ist in table" },
{ "ER_UNKNOWN_PROCEDURE", 1106 }, { "ER_BLOB_USED_AS_KEY", 1073, "BLOB column \'%-.192s\' can\'t be used in k
{ "ER_WRONG_PARAMCOUNT_TO_PROCEDURE", 1107 }, ey specification with the used table type" },
{ "ER_WRONG_PARAMETERS_TO_PROCEDURE", 1108 }, { "ER_TOO_BIG_FIELDLENGTH", 1074, "Column length too big for column \'%-.19
{ "ER_UNKNOWN_TABLE", 1109 }, 2s\' (max = %lu); use BLOB or TEXT instead" },
{ "ER_FIELD_SPECIFIED_TWICE", 1110 }, { "ER_WRONG_AUTO_KEY", 1075, "Incorrect table definition; there can be only
{ "ER_INVALID_GROUP_FUNC_USE", 1111 }, one auto column and it must be defined as a key" },
{ "ER_UNSUPPORTED_EXTENSION", 1112 }, { "ER_READY", 1076, "%s: ready for connections.\nVersion: \'%s\' socket: \
{ "ER_TABLE_MUST_HAVE_COLUMNS", 1113 }, '%s\' port: %d" },
{ "ER_RECORD_FILE_FULL", 1114 }, { "ER_NORMAL_SHUTDOWN", 1077, "%s: Normal shutdown\n" },
{ "ER_UNKNOWN_CHARACTER_SET", 1115 }, { "ER_GOT_SIGNAL", 1078, "%s: Got signal %d. Aborting!\n" },
{ "ER_TOO_MANY_TABLES", 1116 }, { "ER_SHUTDOWN_COMPLETE", 1079, "%s: Shutdown complete\n" },
{ "ER_TOO_MANY_FIELDS", 1117 }, { "ER_FORCING_CLOSE", 1080, "%s: Forcing close of thread %ld user: \'%-.48
{ "ER_TOO_BIG_ROWSIZE", 1118 }, s\'\n" },
{ "ER_STACK_OVERRUN", 1119 }, { "ER_IPSOCK_ERROR", 1081, "Can\'t create IP socket" },
{ "ER_WRONG_OUTER_JOIN", 1120 }, { "ER_NO_SUCH_INDEX", 1082, "Table \'%-.192s\' has no index like the one us
{ "ER_NULL_COLUMN_IN_INDEX", 1121 }, ed in CREATE INDEX; recreate the table" },
{ "ER_CANT_FIND_UDF", 1122 }, { "ER_WRONG_FIELD_TERMINATORS", 1083, "Field separator argument is not what
{ "ER_CANT_INITIALIZE_UDF", 1123 }, is expected; check the manual" },
{ "ER_UDF_NO_PATHS", 1124 }, { "ER_BLOBS_AND_NO_TERMINATED", 1084, "You can\'t use fixed rowlength with
{ "ER_UDF_EXISTS", 1125 }, BLOBs; please use \'fields terminated by\'" },
{ "ER_CANT_OPEN_LIBRARY", 1126 }, { "ER_TEXTFILE_NOT_READABLE", 1085, "The file \'%-.128s\' must be in the da
{ "ER_CANT_FIND_DL_ENTRY", 1127 }, tabase directory or be readable by all" },
{ "ER_FUNCTION_NOT_DEFINED", 1128 }, { "ER_FILE_EXISTS_ERROR", 1086, "File \'%-.200s\' already exists" },
{ "ER_HOST_IS_BLOCKED", 1129 }, { "ER_LOAD_INFO", 1087, "Records: %ld Deleted: %ld Skipped: %ld Warnings
{ "ER_HOST_NOT_PRIVILEGED", 1130 }, : %ld" },
{ "ER_PASSWORD_ANONYMOUS_USER", 1131 }, { "ER_ALTER_INFO", 1088, "Records: %ld Duplicates: %ld" },
{ "ER_PASSWORD_NOT_ALLOWED", 1132 }, { "ER_WRONG_SUB_KEY", 1089, "Incorrect prefix key; the used key part isn\'t
{ "ER_PASSWORD_NO_MATCH", 1133 }, a string, the used length is longer than the key part, or the storage engi
{ "ER_UPDATE_INFO", 1134 }, ne doesn\'t support unique prefix keys" },
{ "ER_CANT_CREATE_THREAD", 1135 }, { "ER_CANT_REMOVE_ALL_FIELDS", 1090, "You can\'t delete all columns with AL
{ "ER_WRONG_VALUE_COUNT_ON_ROW", 1136 }, TER TABLE; use DROP TABLE instead" },
{ "ER_CANT_REOPEN_TABLE", 1137 }, { "ER_CANT_DROP_FIELD_OR_KEY", 1091, "Can\'t DROP \'%-.192s\'; check that c
{ "ER_INVALID_USE_OF_NULL", 1138 }, olumn/key exists" },
{ "ER_REGEXP_ERROR", 1139 }, { "ER_INSERT_INFO", 1092, "Records: %ld Duplicates: %ld Warnings: %ld" },
{ "ER_MIX_OF_GROUP_FUNC_AND_FIELDS", 1140 }, { "ER_UPDATE_TABLE_USED", 1093, "You can\'t specify target table \'%-.192s\
{ "ER_NONEXISTING_GRANT", 1141 }, ' for update in FROM clause" },
{ "ER_TABLEACCESS_DENIED_ERROR", 1142 }, { "ER_NO_SUCH_THREAD", 1094, "Unknown thread id: %lu" },
{ "ER_COLUMNACCESS_DENIED_ERROR", 1143 }, { "ER_KILL_DENIED_ERROR", 1095, "You are not owner of thread %lu" },
{ "ER_ILLEGAL_GRANT_FOR_TABLE", 1144 }, { "ER_NO_TABLES_USED", 1096, "No tables used" },
{ "ER_GRANT_WRONG_HOST_OR_USER", 1145 }, { "ER_TOO_BIG_SET", 1097, "Too many strings for column %-.192s and SET" },
{ "ER_NO_SUCH_TABLE", 1146 }, { "ER_NO_UNIQUE_LOGFILE", 1098, "Can\'t generate a unique log-filename %-.2
{ "ER_NONEXISTING_TABLE_GRANT", 1147 }, 00s.(1-999)\n" },
{ "ER_NOT_ALLOWED_COMMAND", 1148 }, { "ER_TABLE_NOT_LOCKED_FOR_WRITE", 1099, "Table \'%-.192s\' was locked with
{ "ER_SYNTAX_ERROR", 1149 }, a READ lock and can\'t be updated" },
{ "ER_DELAYED_CANT_CHANGE_LOCK", 1150 }, { "ER_TABLE_NOT_LOCKED", 1100, "Table \'%-.192s\' was not locked with LOCK
{ "ER_TOO_MANY_DELAYED_THREADS", 1151 }, TABLES" },
{ "ER_ABORTING_CONNECTION", 1152 }, { "ER_BLOB_CANT_HAVE_DEFAULT", 1101, "BLOB/TEXT column \'%-.192s\' can\'t h
{ "ER_NET_PACKET_TOO_LARGE", 1153 }, ave a default value" },
{ "ER_NET_READ_ERROR_FROM_PIPE", 1154 }, { "ER_WRONG_DB_NAME", 1102, "Incorrect database name \'%-.100s\'" },
{ "ER_NET_FCNTL_ERROR", 1155 }, { "ER_WRONG_TABLE_NAME", 1103, "Incorrect table name \'%-.100s\'" },
{ "ER_NET_PACKETS_OUT_OF_ORDER", 1156 }, { "ER_TOO_BIG_SELECT", 1104, "The SELECT would examine more than MAX_JOIN_S
{ "ER_NET_UNCOMPRESS_ERROR", 1157 }, IZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOI
{ "ER_NET_READ_ERROR", 1158 }, N_SIZE=# if the SELECT is okay" },
{ "ER_NET_READ_INTERRUPTED", 1159 }, { "ER_UNKNOWN_ERROR", 1105, "Unknown error" },
{ "ER_NET_ERROR_ON_WRITE", 1160 }, { "ER_UNKNOWN_PROCEDURE", 1106, "Unknown procedure \'%-.192s\'" },
{ "ER_NET_WRITE_INTERRUPTED", 1161 }, { "ER_WRONG_PARAMCOUNT_TO_PROCEDURE", 1107, "Incorrect parameter count to p
{ "ER_TOO_LONG_STRING", 1162 }, rocedure \'%-.192s\'" },
{ "ER_TABLE_CANT_HANDLE_BLOB", 1163 }, { "ER_WRONG_PARAMETERS_TO_PROCEDURE", 1108, "Incorrect parameters to proced
{ "ER_TABLE_CANT_HANDLE_AUTO_INCREMENT", 1164 }, ure \'%-.192s\'" },
{ "ER_DELAYED_INSERT_TABLE_LOCKED", 1165 }, { "ER_UNKNOWN_TABLE", 1109, "Unknown table \'%-.192s\' in %-.32s" },
{ "ER_WRONG_COLUMN_NAME", 1166 }, { "ER_FIELD_SPECIFIED_TWICE", 1110, "Column \'%-.192s\' specified twice" },
{ "ER_WRONG_KEY_COLUMN", 1167 }, { "ER_INVALID_GROUP_FUNC_USE", 1111, "Invalid use of group function" },
{ "ER_WRONG_MRG_TABLE", 1168 }, { "ER_UNSUPPORTED_EXTENSION", 1112, "Table \'%-.192s\' uses an extension th
{ "ER_DUP_UNIQUE", 1169 }, at doesn\'t exist in this MySQL version" },
{ "ER_BLOB_KEY_WITHOUT_LENGTH", 1170 }, { "ER_TABLE_MUST_HAVE_COLUMNS", 1113, "A table must have at least 1 column"
{ "ER_PRIMARY_CANT_HAVE_NULL", 1171 }, },
{ "ER_TOO_MANY_ROWS", 1172 }, { "ER_RECORD_FILE_FULL", 1114, "The table \'%-.192s\' is full" },
{ "ER_REQUIRES_PRIMARY_KEY", 1173 }, { "ER_UNKNOWN_CHARACTER_SET", 1115, "Unknown character set: \'%-.64s\'" },
{ "ER_NO_RAID_COMPILED", 1174 }, { "ER_TOO_MANY_TABLES", 1116, "Too many tables; MySQL can only use %d table
{ "ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE", 1175 }, s in a join" },
{ "ER_KEY_DOES_NOT_EXITS", 1176 }, { "ER_TOO_MANY_FIELDS", 1117, "Too many columns" },
{ "ER_CHECK_NO_SUCH_TABLE", 1177 }, { "ER_TOO_BIG_ROWSIZE", 1118, "Row size too large. The maximum row size for
{ "ER_CHECK_NOT_IMPLEMENTED", 1178 }, the used table type, not counting BLOBs, is %ld. You have to change some c
{ "ER_CANT_DO_THIS_DURING_AN_TRANSACTION", 1179 }, olumns to TEXT or BLOBs" },
{ "ER_ERROR_DURING_COMMIT", 1180 }, { "ER_STACK_OVERRUN", 1119, "Thread stack overrun: Used: %ld of a %ld stac
{ "ER_ERROR_DURING_ROLLBACK", 1181 }, k. Use \'mysqld --thread_stack=#\' to specify a bigger stack if needed" },
{ "ER_ERROR_DURING_FLUSH_LOGS", 1182 }, { "ER_WRONG_OUTER_JOIN", 1120, "Cross dependency found in OUTER JOIN; exami
{ "ER_ERROR_DURING_CHECKPOINT", 1183 }, ne your ON conditions" },
{ "ER_NEW_ABORTING_CONNECTION", 1184 }, { "ER_NULL_COLUMN_IN_INDEX", 1121, "Table handler doesn\'t support NULL in
{ "ER_DUMP_NOT_IMPLEMENTED", 1185 }, given index. Please change column \'%-.192s\' to be NOT NULL or use another
{ "ER_FLUSH_MASTER_BINLOG_CLOSED", 1186 }, handler" },
{ "ER_INDEX_REBUILD", 1187 }, { "ER_CANT_FIND_UDF", 1122, "Can\'t load function \'%-.192s\'" },
{ "ER_MASTER", 1188 }, { "ER_CANT_INITIALIZE_UDF", 1123, "Can\'t initialize function \'%-.192s\';
{ "ER_MASTER_NET_READ", 1189 }, %-.80s" },
{ "ER_MASTER_NET_WRITE", 1190 }, { "ER_UDF_NO_PATHS", 1124, "No paths allowed for shared library" },
{ "ER_FT_MATCHING_KEY_NOT_FOUND", 1191 }, { "ER_UDF_EXISTS", 1125, "Function \'%-.192s\' already exists" },
{ "ER_LOCK_OR_ACTIVE_TRANSACTION", 1192 }, { "ER_CANT_OPEN_LIBRARY", 1126, "Can\'t open shared library \'%-.192s\' (er
{ "ER_UNKNOWN_SYSTEM_VARIABLE", 1193 }, rno: %d %-.128s)" },
{ "ER_CRASHED_ON_USAGE", 1194 }, { "ER_CANT_FIND_DL_ENTRY", 1127, "Can\'t find symbol \'%-.128s\' in library
{ "ER_CRASHED_ON_REPAIR", 1195 }, " },
{ "ER_WARNING_NOT_COMPLETE_ROLLBACK", 1196 }, { "ER_FUNCTION_NOT_DEFINED", 1128, "Function \'%-.192s\' is not defined" },
{ "ER_TRANS_CACHE_FULL", 1197 }, { "ER_HOST_IS_BLOCKED", 1129, "Host \'%-.64s\' is blocked because of many c
{ "ER_SLAVE_MUST_STOP", 1198 }, onnection errors; unblock with \'mysqladmin flush-hosts\'" },
{ "ER_SLAVE_NOT_RUNNING", 1199 }, { "ER_HOST_NOT_PRIVILEGED", 1130, "Host \'%-.64s\' is not allowed to connec
{ "ER_BAD_SLAVE", 1200 }, t to this MySQL server" },
{ "ER_MASTER_INFO", 1201 }, { "ER_PASSWORD_ANONYMOUS_USER", 1131, "You are using MySQL as an anonymous
{ "ER_SLAVE_THREAD", 1202 }, user and anonymous users are not allowed to change passwords" },
{ "ER_TOO_MANY_USER_CONNECTIONS", 1203 }, { "ER_PASSWORD_NOT_ALLOWED", 1132, "You must have privileges to update tabl
{ "ER_SET_CONSTANTS_ONLY", 1204 }, es in the mysql database to be able to change passwords for others" },
{ "ER_LOCK_WAIT_TIMEOUT", 1205 }, { "ER_PASSWORD_NO_MATCH", 1133, "Can\'t find any matching row in the user t
{ "ER_LOCK_TABLE_FULL", 1206 }, able" },
{ "ER_READ_ONLY_TRANSACTION", 1207 }, { "ER_UPDATE_INFO", 1134, "Rows matched: %ld Changed: %ld Warnings: %ld"
{ "ER_DROP_DB_WITH_READ_LOCK", 1208 }, },
{ "ER_CREATE_DB_WITH_READ_LOCK", 1209 }, { "ER_CANT_CREATE_THREAD", 1135, "Can\'t create a new thread (errno %d); if
{ "ER_WRONG_ARGUMENTS", 1210 }, you are not out of available memory, you can consult the manual for a poss
{ "ER_NO_PERMISSION_TO_CREATE_USER", 1211 }, ible OS-dependent bug" },
{ "ER_UNION_TABLES_IN_DIFFERENT_DIR", 1212 }, { "ER_WRONG_VALUE_COUNT_ON_ROW", 1136, "Column count doesn\'t match value c
{ "ER_LOCK_DEADLOCK", 1213 }, ount at row %ld" },
{ "ER_TABLE_CANT_HANDLE_FT", 1214 }, { "ER_CANT_REOPEN_TABLE", 1137, "Can\'t reopen table: \'%-.192s\'" },
{ "ER_CANNOT_ADD_FOREIGN", 1215 }, { "ER_INVALID_USE_OF_NULL", 1138, "Invalid use of NULL value" },
{ "ER_NO_REFERENCED_ROW", 1216 }, { "ER_REGEXP_ERROR", 1139, "Got error \'%-.64s\' from regexp" },
{ "ER_ROW_IS_REFERENCED", 1217 }, { "ER_MIX_OF_GROUP_FUNC_AND_FIELDS", 1140, "Mixing of GROUP columns (MIN(),
{ "ER_CONNECT_TO_MASTER", 1218 }, MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY
{ "ER_QUERY_ON_MASTER", 1219 }, clause" },
{ "ER_ERROR_WHEN_EXECUTING_COMMAND", 1220 }, { "ER_NONEXISTING_GRANT", 1141, "There is no such grant defined for user \'
{ "ER_WRONG_USAGE", 1221 }, %-.48s\' on host \'%-.64s\'" },
{ "ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT", 1222 }, { "ER_TABLEACCESS_DENIED_ERROR", 1142, "%-.16s command denied to user \'%-.
{ "ER_CANT_UPDATE_WITH_READLOCK", 1223 }, 48s\'@\'%-.64s\' for table \'%-.192s\'" },
{ "ER_MIXING_NOT_ALLOWED", 1224 }, { "ER_COLUMNACCESS_DENIED_ERROR", 1143, "%-.16s command denied to user \'%-
{ "ER_DUP_ARGUMENT", 1225 }, .48s\'@\'%-.64s\' for column \'%-.192s\' in table \'%-.192s\'" },
{ "ER_USER_LIMIT_REACHED", 1226 }, { "ER_ILLEGAL_GRANT_FOR_TABLE", 1144, "Illegal GRANT/REVOKE command; please
{ "ER_SPECIFIC_ACCESS_DENIED_ERROR", 1227 }, consult the manual to see which privileges can be used" },
{ "ER_LOCAL_VARIABLE", 1228 }, { "ER_GRANT_WRONG_HOST_OR_USER", 1145, "The host or user argument to GRANT
{ "ER_GLOBAL_VARIABLE", 1229 }, is too long" },
{ "ER_NO_DEFAULT", 1230 }, { "ER_NO_SUCH_TABLE", 1146, "Table \'%-.192s.%-.192s\' doesn\'t exist" },
{ "ER_WRONG_VALUE_FOR_VAR", 1231 }, { "ER_NONEXISTING_TABLE_GRANT", 1147, "There is no such grant defined for u
{ "ER_WRONG_TYPE_FOR_VAR", 1232 }, ser \'%-.48s\' on host \'%-.64s\' on table \'%-.192s\'" },
{ "ER_VAR_CANT_BE_READ", 1233 }, { "ER_NOT_ALLOWED_COMMAND", 1148, "The used command is not allowed with thi
{ "ER_CANT_USE_OPTION_HERE", 1234 }, s MySQL version" },
{ "ER_NOT_SUPPORTED_YET", 1235 }, { "ER_SYNTAX_ERROR", 1149, "You have an error in your SQL syntax; check the
{ "ER_MASTER_FATAL_ERROR_READING_BINLOG", 1236 }, manual that corresponds to your MySQL server version for the right syntax
{ "ER_SLAVE_IGNORED_TABLE", 1237 }, to use" },
{ "ER_INCORRECT_GLOBAL_LOCAL_VAR", 1238 }, { "ER_DELAYED_CANT_CHANGE_LOCK", 1150, "Delayed insert thread couldn\'t get
{ "ER_WRONG_FK_DEF", 1239 }, requested lock for table %-.192s" },
{ "ER_KEY_REF_DO_NOT_MATCH_TABLE_REF", 1240 }, { "ER_TOO_MANY_DELAYED_THREADS", 1151, "Too many delayed threads in use" },
{ "ER_OPERAND_COLUMNS", 1241 }, { "ER_ABORTING_CONNECTION", 1152, "Aborted connection %ld to db: \'%-.192s\
{ "ER_SUBQUERY_NO_1_ROW", 1242 }, ' user: \'%-.48s\' (%-.64s)" },
{ "ER_UNKNOWN_STMT_HANDLER", 1243 }, { "ER_NET_PACKET_TOO_LARGE", 1153, "Got a packet bigger than \'max_allowed_
{ "ER_CORRUPT_HELP_DB", 1244 }, packet\' bytes" },
{ "ER_CYCLIC_REFERENCE", 1245 }, { "ER_NET_READ_ERROR_FROM_PIPE", 1154, "Got a read error from the connectio
{ "ER_AUTO_CONVERT", 1246 }, n pipe" },
{ "ER_ILLEGAL_REFERENCE", 1247 }, { "ER_NET_FCNTL_ERROR", 1155, "Got an error from fcntl()" },
{ "ER_DERIVED_MUST_HAVE_ALIAS", 1248 }, { "ER_NET_PACKETS_OUT_OF_ORDER", 1156, "Got packets out of order" },
{ "ER_SELECT_REDUCED", 1249 }, { "ER_NET_UNCOMPRESS_ERROR", 1157, "Couldn\'t uncompress communication pack
{ "ER_TABLENAME_NOT_ALLOWED_HERE", 1250 }, et" },
{ "ER_NOT_SUPPORTED_AUTH_MODE", 1251 }, { "ER_NET_READ_ERROR", 1158, "Got an error reading communication packets" }
{ "ER_SPATIAL_CANT_HAVE_NULL", 1252 }, ,
{ "ER_COLLATION_CHARSET_MISMATCH", 1253 }, { "ER_NET_READ_INTERRUPTED", 1159, "Got timeout reading communication packe
{ "ER_SLAVE_WAS_RUNNING", 1254 }, ts" },
{ "ER_SLAVE_WAS_NOT_RUNNING", 1255 }, { "ER_NET_ERROR_ON_WRITE", 1160, "Got an error writing communication packet
{ "ER_TOO_BIG_FOR_UNCOMPRESS", 1256 }, s" },
{ "ER_ZLIB_Z_MEM_ERROR", 1257 }, { "ER_NET_WRITE_INTERRUPTED", 1161, "Got timeout writing communication pack
{ "ER_ZLIB_Z_BUF_ERROR", 1258 }, ets" },
{ "ER_ZLIB_Z_DATA_ERROR", 1259 }, { "ER_TOO_LONG_STRING", 1162, "Result string is longer than \'max_allowed_p
{ "ER_CUT_VALUE_GROUP_CONCAT", 1260 }, acket\' bytes" },
{ "ER_WARN_TOO_FEW_RECORDS", 1261 }, { "ER_TABLE_CANT_HANDLE_BLOB", 1163, "The used table type doesn\'t support
{ "ER_WARN_TOO_MANY_RECORDS", 1262 }, BLOB/TEXT columns" },
{ "ER_WARN_NULL_TO_NOTNULL", 1263 }, { "ER_TABLE_CANT_HANDLE_AUTO_INCREMENT", 1164, "The used table type doesn\'
{ "ER_WARN_DATA_OUT_OF_RANGE", 1264 }, t support AUTO_INCREMENT columns" },
{ "WARN_DATA_TRUNCATED", 1265 }, { "ER_DELAYED_INSERT_TABLE_LOCKED", 1165, "INSERT DELAYED can\'t be used wi
{ "ER_WARN_USING_OTHER_HANDLER", 1266 }, th table \'%-.192s\' because it is locked with LOCK TABLES" },
{ "ER_CANT_AGGREGATE_2COLLATIONS", 1267 }, { "ER_WRONG_COLUMN_NAME", 1166, "Incorrect column name \'%-.100s\'" },
{ "ER_DROP_USER", 1268 }, { "ER_WRONG_KEY_COLUMN", 1167, "The used storage engine can\'t index column
{ "ER_REVOKE_GRANTS", 1269 }, \'%-.192s\'" },
{ "ER_CANT_AGGREGATE_3COLLATIONS", 1270 }, { "ER_WRONG_MRG_TABLE", 1168, "Unable to open underlying table which is dif
{ "ER_CANT_AGGREGATE_NCOLLATIONS", 1271 }, ferently defined or of non-MyISAM type or doesn\'t exist" },
{ "ER_VARIABLE_IS_NOT_STRUCT", 1272 }, { "ER_DUP_UNIQUE", 1169, "Can\'t write, because of unique constraint, to ta
{ "ER_UNKNOWN_COLLATION", 1273 }, ble \'%-.192s\'" },
{ "ER_SLAVE_IGNORED_SSL_PARAMS", 1274 }, { "ER_BLOB_KEY_WITHOUT_LENGTH", 1170, "BLOB/TEXT column \'%-.192s\' used in
{ "ER_SERVER_IS_IN_SECURE_AUTH_MODE", 1275 }, key specification without a key length" },
{ "ER_WARN_FIELD_RESOLVED", 1276 }, { "ER_PRIMARY_CANT_HAVE_NULL", 1171, "All parts of a PRIMARY KEY must be NO
{ "ER_BAD_SLAVE_UNTIL_COND", 1277 }, T NULL; if you need NULL in a key, use UNIQUE instead" },
{ "ER_MISSING_SKIP_SLAVE", 1278 }, { "ER_TOO_MANY_ROWS", 1172, "Result consisted of more than one row" },
{ "ER_UNTIL_COND_IGNORED", 1279 }, { "ER_REQUIRES_PRIMARY_KEY", 1173, "This table type requires a primary key"
{ "ER_WRONG_NAME_FOR_INDEX", 1280 }, },
{ "ER_WRONG_NAME_FOR_CATALOG", 1281 }, { "ER_NO_RAID_COMPILED", 1174, "This version of MySQL is not compiled with
{ "ER_WARN_QC_RESIZE", 1282 }, RAID support" },
{ "ER_BAD_FT_COLUMN", 1283 }, { "ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE", 1175, "You are using safe update mo
{ "ER_UNKNOWN_KEY_CACHE", 1284 }, de and you tried to update a table without a WHERE that uses a KEY column"
{ "ER_WARN_HOSTNAME_WONT_WORK", 1285 }, },
{ "ER_UNKNOWN_STORAGE_ENGINE", 1286 }, { "ER_KEY_DOES_NOT_EXITS", 1176, "Key \'%-.192s\' doesn\'t exist in table \
{ "ER_WARN_DEPRECATED_SYNTAX", 1287 }, '%-.192s\'" },
{ "ER_NON_UPDATABLE_TABLE", 1288 }, { "ER_CHECK_NO_SUCH_TABLE", 1177, "Can\'t open table" },
{ "ER_FEATURE_DISABLED", 1289 }, { "ER_CHECK_NOT_IMPLEMENTED", 1178, "The storage engine for the table doesn
{ "ER_OPTION_PREVENTS_STATEMENT", 1290 }, \'t support %s" },
{ "ER_DUPLICATED_VALUE_IN_TYPE", 1291 }, { "ER_CANT_DO_THIS_DURING_AN_TRANSACTION", 1179, "You are not allowed to ex
{ "ER_TRUNCATED_WRONG_VALUE", 1292 }, ecute this command in a transaction" },
{ "ER_TOO_MUCH_AUTO_TIMESTAMP_COLS", 1293 }, { "ER_ERROR_DURING_COMMIT", 1180, "Got error %d during COMMIT" },
{ "ER_INVALID_ON_UPDATE", 1294 }, { "ER_ERROR_DURING_ROLLBACK", 1181, "Got error %d during ROLLBACK" },
{ "ER_UNSUPPORTED_PS", 1295 }, { "ER_ERROR_DURING_FLUSH_LOGS", 1182, "Got error %d during FLUSH_LOGS" },
{ "ER_GET_ERRMSG", 1296 }, { "ER_ERROR_DURING_CHECKPOINT", 1183, "Got error %d during CHECKPOINT" },
{ "ER_GET_TEMPORARY_ERRMSG", 1297 }, { "ER_NEW_ABORTING_CONNECTION", 1184, "Aborted connection %ld to db: \'%-.1
{ "ER_UNKNOWN_TIME_ZONE", 1298 }, 92s\' user: \'%-.48s\' host: \'%-.64s\' (%-.64s)" },
{ "ER_WARN_INVALID_TIMESTAMP", 1299 }, { "ER_DUMP_NOT_IMPLEMENTED", 1185, "The storage engine for the table does n
{ "ER_INVALID_CHARACTER_STRING", 1300 }, ot support binary table dump" },
{ "ER_WARN_ALLOWED_PACKET_OVERFLOWED", 1301 }, { "ER_FLUSH_MASTER_BINLOG_CLOSED", 1186, "Binlog closed, cannot RESET MASTE
{ "ER_CONFLICTING_DECLARATIONS", 1302 }, R" },
{ "ER_SP_NO_RECURSIVE_CREATE", 1303 }, { "ER_INDEX_REBUILD", 1187, "Failed rebuilding the index of dumped table \
{ "ER_SP_ALREADY_EXISTS", 1304 }, '%-.192s\'" },
{ "ER_SP_DOES_NOT_EXIST", 1305 }, { "ER_MASTER", 1188, "Error from master: \'%-.64s\'" },
{ "ER_SP_DROP_FAILED", 1306 }, { "ER_MASTER_NET_READ", 1189, "Net error reading from master" },
{ "ER_SP_STORE_FAILED", 1307 }, { "ER_MASTER_NET_WRITE", 1190, "Net error writing to master" },
{ "ER_SP_LILABEL_MISMATCH", 1308 }, { "ER_FT_MATCHING_KEY_NOT_FOUND", 1191, "Can\'t find FULLTEXT index matchin
{ "ER_SP_LABEL_REDEFINE", 1309 }, g the column list" },
{ "ER_SP_LABEL_MISMATCH", 1310 }, { "ER_LOCK_OR_ACTIVE_TRANSACTION", 1192, "Can\'t execute the given command
{ "ER_SP_UNINIT_VAR", 1311 }, because you have active locked tables or an active transaction" },
{ "ER_SP_BADSELECT", 1312 }, { "ER_UNKNOWN_SYSTEM_VARIABLE", 1193, "Unknown system variable \'%-.64s\'"
{ "ER_SP_BADRETURN", 1313 }, },
{ "ER_SP_BADSTATEMENT", 1314 }, { "ER_CRASHED_ON_USAGE", 1194, "Table \'%-.192s\' is marked as crashed and
{ "ER_UPDATE_LOG_DEPRECATED_IGNORED", 1315 }, should be repaired" },
{ "ER_UPDATE_LOG_DEPRECATED_TRANSLATED", 1316 }, { "ER_CRASHED_ON_REPAIR", 1195, "Table \'%-.192s\' is marked as crashed and
{ "ER_QUERY_INTERRUPTED", 1317 }, last (automatic?) repair failed" },
{ "ER_SP_WRONG_NO_OF_ARGS", 1318 }, { "ER_WARNING_NOT_COMPLETE_ROLLBACK", 1196, "Some non-transactional changed
{ "ER_SP_COND_MISMATCH", 1319 }, tables couldn\'t be rolled back" },
{ "ER_SP_NORETURN", 1320 }, { "ER_TRANS_CACHE_FULL", 1197, "Multi-statement transaction required more t
{ "ER_SP_NORETURNEND", 1321 }, han \'max_binlog_cache_size\' bytes of storage; increase this mysqld variab
{ "ER_SP_BAD_CURSOR_QUERY", 1322 }, le and try again" },
{ "ER_SP_BAD_CURSOR_SELECT", 1323 }, { "ER_SLAVE_MUST_STOP", 1198, "This operation cannot be performed with a ru
{ "ER_SP_CURSOR_MISMATCH", 1324 }, nning slave; run STOP SLAVE first" },
{ "ER_SP_CURSOR_ALREADY_OPEN", 1325 }, { "ER_SLAVE_NOT_RUNNING", 1199, "This operation requires a running slave; c
{ "ER_SP_CURSOR_NOT_OPEN", 1326 }, onfigure slave and do START SLAVE" },
{ "ER_SP_UNDECLARED_VAR", 1327 }, { "ER_BAD_SLAVE", 1200, "The server is not configured as slave; fix in conf
{ "ER_SP_WRONG_NO_OF_FETCH_ARGS", 1328 }, ig file or with CHANGE MASTER TO" },
{ "ER_SP_FETCH_NO_DATA", 1329 }, { "ER_MASTER_INFO", 1201, "Could not initialize master info structure; more
{ "ER_SP_DUP_PARAM", 1330 }, error messages can be found in the MySQL error log" },
{ "ER_SP_DUP_VAR", 1331 }, { "ER_SLAVE_THREAD", 1202, "Could not create slave thread; check system res
{ "ER_SP_DUP_COND", 1332 }, ources" },
{ "ER_SP_DUP_CURS", 1333 }, { "ER_TOO_MANY_USER_CONNECTIONS", 1203, "User %-.64s already has more than
{ "ER_SP_CANT_ALTER", 1334 }, \'max_user_connections\' active connections" },
{ "ER_SP_SUBSELECT_NYI", 1335 }, { "ER_SET_CONSTANTS_ONLY", 1204, "You may only use constant expressions wit
{ "ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG", 1336 }, h SET" },
{ "ER_SP_VARCOND_AFTER_CURSHNDLR", 1337 }, { "ER_LOCK_WAIT_TIMEOUT", 1205, "Lock wait timeout exceeded; try restarting
{ "ER_SP_CURSOR_AFTER_HANDLER", 1338 }, transaction" },
{ "ER_SP_CASE_NOT_FOUND", 1339 }, { "ER_LOCK_TABLE_FULL", 1206, "The total number of locks exceeds the lock t
{ "ER_FPARSER_TOO_BIG_FILE", 1340 }, able size" },
{ "ER_FPARSER_BAD_HEADER", 1341 }, { "ER_READ_ONLY_TRANSACTION", 1207, "Update locks cannot be acquired during
{ "ER_FPARSER_EOF_IN_COMMENT", 1342 }, a READ UNCOMMITTED transaction" },
{ "ER_FPARSER_ERROR_IN_PARAMETER", 1343 }, { "ER_DROP_DB_WITH_READ_LOCK", 1208, "DROP DATABASE not allowed while threa
{ "ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER", 1344 }, d is holding global read lock" },
{ "ER_VIEW_NO_EXPLAIN", 1345 }, { "ER_CREATE_DB_WITH_READ_LOCK", 1209, "CREATE DATABASE not allowed while t
{ "ER_FRM_UNKNOWN_TYPE", 1346 }, hread is holding global read lock" },
{ "ER_WRONG_OBJECT", 1347 }, { "ER_WRONG_ARGUMENTS", 1210, "Incorrect arguments to %s" },
{ "ER_NONUPDATEABLE_COLUMN", 1348 }, { "ER_NO_PERMISSION_TO_CREATE_USER", 1211, "\'%-.48s\'@\'%-.64s\' is not al
{ "ER_VIEW_SELECT_DERIVED", 1349 }, lowed to create new users" },
{ "ER_VIEW_SELECT_CLAUSE", 1350 }, { "ER_UNION_TABLES_IN_DIFFERENT_DIR", 1212, "Incorrect table definition; al
{ "ER_VIEW_SELECT_VARIABLE", 1351 }, l MERGE tables must be in the same database" },
{ "ER_VIEW_SELECT_TMPTABLE", 1352 }, { "ER_LOCK_DEADLOCK", 1213, "Deadlock found when trying to get lock; try re
{ "ER_VIEW_WRONG_LIST", 1353 }, starting transaction" },
{ "ER_WARN_VIEW_MERGE", 1354 }, { "ER_TABLE_CANT_HANDLE_FT", 1214, "The used table type doesn\'t support FU
{ "ER_WARN_VIEW_WITHOUT_KEY", 1355 }, LLTEXT indexes" },
{ "ER_VIEW_INVALID", 1356 }, { "ER_CANNOT_ADD_FOREIGN", 1215, "Cannot add foreign key constraint" },
{ "ER_SP_NO_DROP_SP", 1357 }, { "ER_NO_REFERENCED_ROW", 1216, "Cannot add or update a child row: a foreig
{ "ER_SP_GOTO_IN_HNDLR", 1358 }, n key constraint fails" },
{ "ER_TRG_ALREADY_EXISTS", 1359 }, { "ER_ROW_IS_REFERENCED", 1217, "Cannot delete or update a parent row: a fo
{ "ER_TRG_DOES_NOT_EXIST", 1360 }, reign key constraint fails" },
{ "ER_TRG_ON_VIEW_OR_TEMP_TABLE", 1361 }, { "ER_CONNECT_TO_MASTER", 1218, "Error connecting to master: %-.128s" },
{ "ER_TRG_CANT_CHANGE_ROW", 1362 }, { "ER_QUERY_ON_MASTER", 1219, "Error running query on master: %-.128s" },
{ "ER_TRG_NO_SUCH_ROW_IN_TRG", 1363 }, { "ER_ERROR_WHEN_EXECUTING_COMMAND", 1220, "Error when executing command %s
{ "ER_NO_DEFAULT_FOR_FIELD", 1364 }, : %-.128s" },
{ "ER_DIVISION_BY_ZERO", 1365 }, { "ER_WRONG_USAGE", 1221, "Incorrect usage of %s and %s" },
{ "ER_TRUNCATED_WRONG_VALUE_FOR_FIELD", 1366 }, { "ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT", 1222, "The used SELECT statements
{ "ER_ILLEGAL_VALUE_FOR_TYPE", 1367 }, have a different number of columns" },
{ "ER_VIEW_NONUPD_CHECK", 1368 }, { "ER_CANT_UPDATE_WITH_READLOCK", 1223, "Can\'t execute the query because y
{ "ER_VIEW_CHECK_FAILED", 1369 }, ou have a conflicting read lock" },
{ "ER_PROCACCESS_DENIED_ERROR", 1370 }, { "ER_MIXING_NOT_ALLOWED", 1224, "Mixing of transactional and non-transacti
{ "ER_RELAY_LOG_FAIL", 1371 }, onal tables is disabled" },
{ "ER_PASSWD_LENGTH", 1372 }, { "ER_DUP_ARGUMENT", 1225, "Option \'%s\' used twice in statement" },
{ "ER_UNKNOWN_TARGET_BINLOG", 1373 }, { "ER_USER_LIMIT_REACHED", 1226, "User \'%-.64s\' has exceeded the \'%s\' r
{ "ER_IO_ERR_LOG_INDEX_READ", 1374 }, esource (current value: %ld)" },
{ "ER_BINLOG_PURGE_PROHIBITED", 1375 }, { "ER_SPECIFIC_ACCESS_DENIED_ERROR", 1227, "Access denied; you need (at lea
{ "ER_FSEEK_FAIL", 1376 }, st one of) the %-.128s privilege(s) for this operation" },
{ "ER_BINLOG_PURGE_FATAL_ERR", 1377 }, { "ER_LOCAL_VARIABLE", 1228, "Variable \'%-.64s\' is a SESSION variable and
{ "ER_LOG_IN_USE", 1378 }, can\'t be used with SET GLOBAL" },
{ "ER_LOG_PURGE_UNKNOWN_ERR", 1379 }, { "ER_GLOBAL_VARIABLE", 1229, "Variable \'%-.64s\' is a GLOBAL variable and
{ "ER_RELAY_LOG_INIT", 1380 }, should be set with SET GLOBAL" },
{ "ER_NO_BINARY_LOGGING", 1381 }, { "ER_NO_DEFAULT", 1230, "Variable \'%-.64s\' doesn\'t have a default value
{ "ER_RESERVED_SYNTAX", 1382 }, " },
{ "ER_WSAS_FAILED", 1383 }, { "ER_WRONG_VALUE_FOR_VAR", 1231, "Variable \'%-.64s\' can\'t be set to the
{ "ER_DIFF_GROUPS_PROC", 1384 }, value of \'%-.200s\'" },
{ "ER_NO_GROUP_FOR_PROC", 1385 }, { "ER_WRONG_TYPE_FOR_VAR", 1232, "Incorrect argument type to variable \'%-.
{ "ER_ORDER_WITH_PROC", 1386 }, 64s\'" },
{ "ER_LOGGING_PROHIBIT_CHANGING_OF", 1387 }, { "ER_VAR_CANT_BE_READ", 1233, "Variable \'%-.64s\' can only be set, not re
{ "ER_NO_FILE_MAPPING", 1388 }, ad" },
{ "ER_WRONG_MAGIC", 1389 }, { "ER_CANT_USE_OPTION_HERE", 1234, "Incorrect usage/placement of \'%s\'" },
{ "ER_PS_MANY_PARAM", 1390 }, { "ER_NOT_SUPPORTED_YET", 1235, "This version of MySQL doesn\'t yet support
{ "ER_KEY_PART_0", 1391 }, \'%s\'" },
{ "ER_VIEW_CHECKSUM", 1392 }, { "ER_MASTER_FATAL_ERROR_READING_BINLOG", 1236, "Got fatal error %d from ma
{ "ER_VIEW_MULTIUPDATE", 1393 }, ster when reading data from binary log: \'%-.128s\'" },
{ "ER_VIEW_NO_INSERT_FIELD_LIST", 1394 }, { "ER_SLAVE_IGNORED_TABLE", 1237, "Slave SQL thread ignored the query becau
{ "ER_VIEW_DELETE_MERGE_VIEW", 1395 }, se of replicate-*-table rules" },
{ "ER_CANNOT_USER", 1396 }, { "ER_INCORRECT_GLOBAL_LOCAL_VAR", 1238, "Variable \'%-.192s\' is a %s vari
{ "ER_XAER_NOTA", 1397 }, able" },
{ "ER_XAER_INVAL", 1398 }, { "ER_WRONG_FK_DEF", 1239, "Incorrect foreign key definition for \'%-.192s\
{ "ER_XAER_RMFAIL", 1399 }, ': %s" },
{ "ER_XAER_OUTSIDE", 1400 }, { "ER_KEY_REF_DO_NOT_MATCH_TABLE_REF", 1240, "Key reference and table refer
{ "ER_XAER_RMERR", 1401 }, ence don\'t match" },
{ "ER_XA_RBROLLBACK", 1402 }, { "ER_OPERAND_COLUMNS", 1241, "Operand should contain %d column(s)" },
{ "ER_NONEXISTING_PROC_GRANT", 1403 }, { "ER_SUBQUERY_NO_1_ROW", 1242, "Subquery returns more than 1 row" },
{ "ER_PROC_AUTO_GRANT_FAIL", 1404 }, { "ER_UNKNOWN_STMT_HANDLER", 1243, "Unknown prepared statement handler (%.*
{ "ER_PROC_AUTO_REVOKE_FAIL", 1405 }, s) given to %s" },
{ "ER_DATA_TOO_LONG", 1406 }, { "ER_CORRUPT_HELP_DB", 1244, "Help database is corrupt or does not exist"
{ "ER_SP_BAD_SQLSTATE", 1407 }, },
{ "ER_STARTUP", 1408 }, { "ER_CYCLIC_REFERENCE", 1245, "Cyclic reference on subqueries" },
{ "ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR", 1409 }, { "ER_AUTO_CONVERT", 1246, "Converting column \'%s\' from %s to %s" },
{ "ER_CANT_CREATE_USER_WITH_GRANT", 1410 }, { "ER_ILLEGAL_REFERENCE", 1247, "Reference \'%-.64s\' not supported (%s)" }
{ "ER_WRONG_VALUE_FOR_TYPE", 1411 }, ,
{ "ER_TABLE_DEF_CHANGED", 1412 }, { "ER_DERIVED_MUST_HAVE_ALIAS", 1248, "Every derived table must have its ow
{ "ER_SP_DUP_HANDLER", 1413 }, n alias" },
{ "ER_SP_NOT_VAR_ARG", 1414 }, { "ER_SELECT_REDUCED", 1249, "Select %u was reduced during optimization" },
{ "ER_SP_NO_RETSET", 1415 }, { "ER_TABLENAME_NOT_ALLOWED_HERE", 1250, "Table \'%-.192s\' from one of the
{ "ER_CANT_CREATE_GEOMETRY_OBJECT", 1416 }, SELECTs cannot be used in %-.32s" },
{ "ER_FAILED_ROUTINE_BREAK_BINLOG", 1417 }, { "ER_NOT_SUPPORTED_AUTH_MODE", 1251, "Client does not support authenticati
{ "ER_BINLOG_UNSAFE_ROUTINE", 1418 }, on protocol requested by server; consider upgrading MySQL client" },
{ "ER_BINLOG_CREATE_ROUTINE_NEED_SUPER", 1419 }, { "ER_SPATIAL_CANT_HAVE_NULL", 1252, "All parts of a SPATIAL index must be
{ "ER_EXEC_STMT_WITH_OPEN_CURSOR", 1420 }, NOT NULL" },
{ "ER_STMT_HAS_NO_OPEN_CURSOR", 1421 }, { "ER_COLLATION_CHARSET_MISMATCH", 1253, "COLLATION \'%s\' is not valid for
{ "ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG", 1422 }, CHARACTER SET \'%s\'" },
{ "ER_NO_DEFAULT_FOR_VIEW_FIELD", 1423 }, { "ER_SLAVE_WAS_RUNNING", 1254, "Slave is already running" },
{ "ER_SP_NO_RECURSION", 1424 }, { "ER_SLAVE_WAS_NOT_RUNNING", 1255, "Slave already has been stopped" },
{ "ER_TOO_BIG_SCALE", 1425 }, { "ER_TOO_BIG_FOR_UNCOMPRESS", 1256, "Uncompressed data size too large; the
{ "ER_TOO_BIG_PRECISION", 1426 }, maximum size is %d (probably, length of uncompressed data was corrupted)"
{ "ER_M_BIGGER_THAN_D", 1427 }, },
{ "ER_WRONG_LOCK_OF_SYSTEM_TABLE", 1428 }, { "ER_ZLIB_Z_MEM_ERROR", 1257, "ZLIB: Not enough memory" },
{ "ER_CONNECT_TO_FOREIGN_DATA_SOURCE", 1429 }, { "ER_ZLIB_Z_BUF_ERROR", 1258, "ZLIB: Not enough room in the output buffer
{ "ER_QUERY_ON_FOREIGN_DATA_SOURCE", 1430 }, (probably, length of uncompressed data was corrupted)" },
{ "ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST", 1431 }, { "ER_ZLIB_Z_DATA_ERROR", 1259, "ZLIB: Input data corrupted" },
{ "ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE", 1432 }, { "ER_CUT_VALUE_GROUP_CONCAT", 1260, "Row %u was cut by GROUP_CONCAT()" },
{ "ER_FOREIGN_DATA_STRING_INVALID", 1433 }, { "ER_WARN_TOO_FEW_RECORDS", 1261, "Row %ld doesn\'t contain data for all c
{ "ER_CANT_CREATE_FEDERATED_TABLE", 1434 }, olumns" },
{ "ER_TRG_IN_WRONG_SCHEMA", 1435 }, { "ER_WARN_TOO_MANY_RECORDS", 1262, "Row %ld was truncated; it contained mo
{ "ER_STACK_OVERRUN_NEED_MORE", 1436 }, re data than there were input columns" },
{ "ER_TOO_LONG_BODY", 1437 }, { "ER_WARN_NULL_TO_NOTNULL", 1263, "Column set to default value; NULL suppl
{ "ER_WARN_CANT_DROP_DEFAULT_KEYCACHE", 1438 }, ied to NOT NULL column \'%s\' at row %ld" },
{ "ER_TOO_BIG_DISPLAYWIDTH", 1439 }, { "ER_WARN_DATA_OUT_OF_RANGE", 1264, "Out of range value for column \'%s\'
{ "ER_XAER_DUPID", 1440 }, at row %ld" },
{ "ER_DATETIME_FUNCTION_OVERFLOW", 1441 }, { "WARN_DATA_TRUNCATED", 1265, "Data truncated for column \'%s\' at row %ld
{ "ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG", 1442 }, " },
{ "ER_VIEW_PREVENT_UPDATE", 1443 }, { "ER_WARN_USING_OTHER_HANDLER", 1266, "Using storage engine %s for table \
{ "ER_PS_NO_RECURSION", 1444 }, '%s\'" },
{ "ER_SP_CANT_SET_AUTOCOMMIT", 1445 }, { "ER_CANT_AGGREGATE_2COLLATIONS", 1267, "Illegal mix of collations (%s,%s)
{ "ER_MALFORMED_DEFINER", 1446 }, and (%s,%s) for operation \'%s\'" },
{ "ER_VIEW_FRM_NO_USER", 1447 }, { "ER_DROP_USER", 1268, "Cannot drop one or more of the requested users" },
{ "ER_VIEW_OTHER_USER", 1448 }, { "ER_REVOKE_GRANTS", 1269, "Can\'t revoke all privileges for one or more o
{ "ER_NO_SUCH_USER", 1449 }, f the requested users" },
{ "ER_FORBID_SCHEMA_CHANGE", 1450 }, { "ER_CANT_AGGREGATE_3COLLATIONS", 1270, "Illegal mix of collations (%s,%s)
{ "ER_ROW_IS_REFERENCED_2", 1451 }, , (%s,%s), (%s,%s) for operation \'%s\'" },
{ "ER_NO_REFERENCED_ROW_2", 1452 }, { "ER_CANT_AGGREGATE_NCOLLATIONS", 1271, "Illegal mix of collations for ope
{ "ER_SP_BAD_VAR_SHADOW", 1453 }, ration \'%s\'" },
{ "ER_TRG_NO_DEFINER", 1454 }, { "ER_VARIABLE_IS_NOT_STRUCT", 1272, "Variable \'%-.64s\' is not a variable
{ "ER_OLD_FILE_FORMAT", 1455 }, component (can\'t be used as XXXX.variable_name)" },
{ "ER_SP_RECURSION_LIMIT", 1456 }, { "ER_UNKNOWN_COLLATION", 1273, "Unknown collation: \'%-.64s\'" },
{ "ER_SP_PROC_TABLE_CORRUPT", 1457 }, { "ER_SLAVE_IGNORED_SSL_PARAMS", 1274, "SSL parameters in CHANGE MASTER are
{ "ER_SP_WRONG_NAME", 1458 }, ignored because this MySQL slave was compiled without SSL support; they ca
{ "ER_TABLE_NEEDS_UPGRADE", 1459 }, n be used later if MySQL slave with SSL is started" },
{ "ER_SP_NO_AGGREGATE", 1460 }, { "ER_SERVER_IS_IN_SECURE_AUTH_MODE", 1275, "Server is running in --secure-
{ "ER_MAX_PREPARED_STMT_COUNT_REACHED", 1461 }, auth mode, but \'%s\'@\'%s\' has a password in the old format; please chang
{ "ER_VIEW_RECURSIVE", 1462 }, e the password to the new format" },
{ "ER_NON_GROUPING_FIELD_USED", 1463 }, { "ER_WARN_FIELD_RESOLVED", 1276, "Field or reference \'%-.192s%s%-.192s%s%
{ "ER_TABLE_CANT_HANDLE_SPKEYS", 1464 }, -.192s\' of SELECT #%d was resolved in SELECT #%d" },
{ "ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA", 1465 }, { "ER_BAD_SLAVE_UNTIL_COND", 1277, "Incorrect parameter or combination of p
{ "ER_REMOVED_SPACES", 1466 }, arameters for START SLAVE UNTIL" },
{ "ER_AUTOINC_READ_FAILED", 1467 }, { "ER_MISSING_SKIP_SLAVE", 1278, "It is recommended to use --skip-slave-sta
{ "ER_USERNAME", 1468 }, rt when doing step-by-step replication with START SLAVE UNTIL; otherwise, y
{ "ER_HOSTNAME", 1469 }, ou will get problems if you get an unexpected slave\'s mysqld restart" },
{ "ER_WRONG_STRING_LENGTH", 1470 }, { "ER_UNTIL_COND_IGNORED", 1279, "SQL thread is not to be started so UNTIL
{ "ER_NON_INSERTABLE_TABLE", 1471 }, options are ignored" },
{ "ER_ADMIN_WRONG_MRG_TABLE", 1472 }, { "ER_WRONG_NAME_FOR_INDEX", 1280, "Incorrect index name \'%-.100s\'" },
{ "ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT", 1473 }, { "ER_WRONG_NAME_FOR_CATALOG", 1281, "Incorrect catalog name \'%-.100s\'" }
{ "ER_NAME_BECOMES_EMPTY", 1474 }, ,
{ "ER_AMBIGUOUS_FIELD_TERM", 1475 }, { "ER_WARN_QC_RESIZE", 1282, "Query cache failed to set size %lu; new query
{ "ER_FOREIGN_SERVER_EXISTS", 1476 }, cache size is %lu" },
{ "ER_FOREIGN_SERVER_DOESNT_EXIST", 1477 }, { "ER_BAD_FT_COLUMN", 1283, "Column \'%-.192s\' cannot be part of FULLTEXT
{ "ER_ILLEGAL_HA_CREATE_OPTION", 1478 }, index" },
{ "ER_PARTITION_REQUIRES_VALUES_ERROR", 1479 }, { "ER_UNKNOWN_KEY_CACHE", 1284, "Unknown key cache \'%-.100s\'" },
{ "ER_PARTITION_WRONG_VALUES_ERROR", 1480 }, { "ER_WARN_HOSTNAME_WONT_WORK", 1285, "MySQL is started in --skip-name-reso
{ "ER_PARTITION_MAXVALUE_ERROR", 1481 }, lve mode; you must restart it without this switch for this grant to work" }
{ "ER_PARTITION_SUBPARTITION_ERROR", 1482 }, ,
{ "ER_PARTITION_SUBPART_MIX_ERROR", 1483 }, { "ER_UNKNOWN_STORAGE_ENGINE", 1286, "Unknown storage engine \'%s\'" },
{ "ER_PARTITION_WRONG_NO_PART_ERROR", 1484 }, { "ER_WARN_DEPRECATED_SYNTAX", 1287, "\'%s\' is deprecated and will be remo
{ "ER_PARTITION_WRONG_NO_SUBPART_ERROR", 1485 }, ved in a future release. Please use %s instead" },
{ "ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR", 1486 }, { "ER_NON_UPDATABLE_TABLE", 1288, "The target table %-.100s of the %s is no
{ "ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR", 1487 }, t updatable" },
{ "ER_FIELD_NOT_FOUND_PART_ERROR", 1488 }, { "ER_FEATURE_DISABLED", 1289, "The \'%s\' feature is disabled; you need My
{ "ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR", 1489 }, SQL built with \'%s\' to have it working" },
{ "ER_INCONSISTENT_PARTITION_INFO_ERROR", 1490 }, { "ER_OPTION_PREVENTS_STATEMENT", 1290, "The MySQL server is running with t
{ "ER_PARTITION_FUNC_NOT_ALLOWED_ERROR", 1491 }, he %s option so it cannot execute this statement" },
{ "ER_PARTITIONS_MUST_BE_DEFINED_ERROR", 1492 }, { "ER_DUPLICATED_VALUE_IN_TYPE", 1291, "Column \'%-.100s\' has duplicated v
{ "ER_RANGE_NOT_INCREASING_ERROR", 1493 }, alue \'%-.64s\' in %s" },
{ "ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR", 1494 }, { "ER_TRUNCATED_WRONG_VALUE", 1292, "Truncated incorrect %-.32s value: \'%-
{ "ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR", 1495 }, .128s\'" },
{ "ER_PARTITION_ENTRY_ERROR", 1496 }, { "ER_TOO_MUCH_AUTO_TIMESTAMP_COLS", 1293, "Incorrect table definition; the
{ "ER_MIX_HANDLER_ERROR", 1497 }, re can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON
{ "ER_PARTITION_NOT_DEFINED_ERROR", 1498 }, UPDATE clause" },
{ "ER_TOO_MANY_PARTITIONS_ERROR", 1499 }, { "ER_INVALID_ON_UPDATE", 1294, "Invalid ON UPDATE clause for \'%-.192s\' c
{ "ER_SUBPARTITION_ERROR", 1500 }, olumn" },
{ "ER_CANT_CREATE_HANDLER_FILE", 1501 }, { "ER_UNSUPPORTED_PS", 1295, "This command is not supported in the prepared
{ "ER_BLOB_FIELD_IN_PART_FUNC_ERROR", 1502 }, statement protocol yet" },
{ "ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF", 1503 }, { "ER_GET_ERRMSG", 1296, "Got error %d \'%-.100s\' from %s" },
{ "ER_NO_PARTS_ERROR", 1504 }, { "ER_GET_TEMPORARY_ERRMSG", 1297, "Got temporary error %d \'%-.100s\' from
{ "ER_PARTITION_MGMT_ON_NONPARTITIONED", 1505 }, %s" },
{ "ER_FOREIGN_KEY_ON_PARTITIONED", 1506 }, { "ER_UNKNOWN_TIME_ZONE", 1298, "Unknown or incorrect time zone: \'%-.64s\'
{ "ER_DROP_PARTITION_NON_EXISTENT", 1507 }, " },
{ "ER_DROP_LAST_PARTITION", 1508 }, { "ER_WARN_INVALID_TIMESTAMP", 1299, "Invalid TIMESTAMP value in column \'%
{ "ER_COALESCE_ONLY_ON_HASH_PARTITION", 1509 }, s\' at row %ld" },
{ "ER_REORG_HASH_ONLY_ON_SAME_NO", 1510 }, { "ER_INVALID_CHARACTER_STRING", 1300, "Invalid %s character string: \'%.64
{ "ER_REORG_NO_PARAM_ERROR", 1511 }, s\'" },
{ "ER_ONLY_ON_RANGE_LIST_PARTITION", 1512 }, { "ER_WARN_ALLOWED_PACKET_OVERFLOWED", 1301, "Result of %s() was larger tha
{ "ER_ADD_PARTITION_SUBPART_ERROR", 1513 }, n max_allowed_packet (%ld) - truncated" },
{ "ER_ADD_PARTITION_NO_NEW_PARTITION", 1514 }, { "ER_CONFLICTING_DECLARATIONS", 1302, "Conflicting declarations: \'%s%s\'
{ "ER_COALESCE_PARTITION_NO_PARTITION", 1515 }, and \'%s%s\'" },
{ "ER_REORG_PARTITION_NOT_EXIST", 1516 }, { "ER_SP_NO_RECURSIVE_CREATE", 1303, "Can\'t create a %s from within anothe
{ "ER_SAME_NAME_PARTITION", 1517 }, r stored routine" },
{ "ER_NO_BINLOG_ERROR", 1518 }, { "ER_SP_ALREADY_EXISTS", 1304, "%s %s already exists" },
{ "ER_CONSECUTIVE_REORG_PARTITIONS", 1519 }, { "ER_SP_DOES_NOT_EXIST", 1305, "%s %s does not exist" },
{ "ER_REORG_OUTSIDE_RANGE", 1520 }, { "ER_SP_DROP_FAILED", 1306, "Failed to DROP %s %s" },
{ "ER_PARTITION_FUNCTION_FAILURE", 1521 }, { "ER_SP_STORE_FAILED", 1307, "Failed to CREATE %s %s" },
{ "ER_PART_STATE_ERROR", 1522 }, { "ER_SP_LILABEL_MISMATCH", 1308, "%s with no matching label: %s" },
{ "ER_LIMITED_PART_RANGE", 1523 }, { "ER_SP_LABEL_REDEFINE", 1309, "Redefining label %s" },
{ "ER_PLUGIN_IS_NOT_LOADED", 1524 }, { "ER_SP_LABEL_MISMATCH", 1310, "End-label %s without match" },
{ "ER_WRONG_VALUE", 1525 }, { "ER_SP_UNINIT_VAR", 1311, "Referring to uninitialized variable %s" },
{ "ER_NO_PARTITION_FOR_GIVEN_VALUE", 1526 }, { "ER_SP_BADSELECT", 1312, "PROCEDURE %s can\'t return a result set in the
{ "ER_FILEGROUP_OPTION_ONLY_ONCE", 1527 }, given context" },
{ "ER_CREATE_FILEGROUP_FAILED", 1528 }, { "ER_SP_BADRETURN", 1313, "RETURN is only allowed in a FUNCTION" },
{ "ER_DROP_FILEGROUP_FAILED", 1529 }, { "ER_SP_BADSTATEMENT", 1314, "%s is not allowed in stored procedures" },
{ "ER_TABLESPACE_AUTO_EXTEND_ERROR", 1530 }, { "ER_UPDATE_LOG_DEPRECATED_IGNORED", 1315, "The update log is deprecated a
{ "ER_WRONG_SIZE_NUMBER", 1531 }, nd replaced by the binary log; SET SQL_LOG_UPDATE has been ignored. This op
{ "ER_SIZE_OVERFLOW_ERROR", 1532 }, tion will be removed in MySQL 5.6." },
{ "ER_ALTER_FILEGROUP_FAILED", 1533 }, { "ER_UPDATE_LOG_DEPRECATED_TRANSLATED", 1316, "The update log is deprecate
{ "ER_BINLOG_ROW_LOGGING_FAILED", 1534 }, d and replaced by the binary log; SET SQL_LOG_UPDATE has been translated to
{ "ER_BINLOG_ROW_WRONG_TABLE_DEF", 1535 }, SET SQL_LOG_BIN. This option will be removed in MySQL 5.6." },
{ "ER_BINLOG_ROW_RBR_TO_SBR", 1536 }, { "ER_QUERY_INTERRUPTED", 1317, "Query execution was interrupted" },
{ "ER_EVENT_ALREADY_EXISTS", 1537 }, { "ER_SP_WRONG_NO_OF_ARGS", 1318, "Incorrect number of arguments for %s %s;
{ "ER_EVENT_STORE_FAILED", 1538 }, expected %u, got %u" },
{ "ER_EVENT_DOES_NOT_EXIST", 1539 }, { "ER_SP_COND_MISMATCH", 1319, "Undefined CONDITION: %s" },
{ "ER_EVENT_CANT_ALTER", 1540 }, { "ER_SP_NORETURN", 1320, "No RETURN found in FUNCTION %s" },
{ "ER_EVENT_DROP_FAILED", 1541 }, { "ER_SP_NORETURNEND", 1321, "FUNCTION %s ended without RETURN" },
{ "ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG", 1542 }, { "ER_SP_BAD_CURSOR_QUERY", 1322, "Cursor statement must be a SELECT" },
{ "ER_EVENT_ENDS_BEFORE_STARTS", 1543 }, { "ER_SP_BAD_CURSOR_SELECT", 1323, "Cursor SELECT must not have INTO" },
{ "ER_EVENT_EXEC_TIME_IN_THE_PAST", 1544 }, { "ER_SP_CURSOR_MISMATCH", 1324, "Undefined CURSOR: %s" },
{ "ER_EVENT_OPEN_TABLE_FAILED", 1545 }, { "ER_SP_CURSOR_ALREADY_OPEN", 1325, "Cursor is already open" },
{ "ER_EVENT_NEITHER_M_EXPR_NOR_M_AT", 1546 }, { "ER_SP_CURSOR_NOT_OPEN", 1326, "Cursor is not open" },
{ "ER_COL_COUNT_DOESNT_MATCH_CORRUPTED", 1547 }, { "ER_SP_UNDECLARED_VAR", 1327, "Undeclared variable: %s" },
{ "ER_CANNOT_LOAD_FROM_TABLE", 1548 }, { "ER_SP_WRONG_NO_OF_FETCH_ARGS", 1328, "Incorrect number of FETCH variable
{ "ER_EVENT_CANNOT_DELETE", 1549 }, s" },
{ "ER_EVENT_COMPILE_ERROR", 1550 }, { "ER_SP_FETCH_NO_DATA", 1329, "No data - zero rows fetched, selected, or p
{ "ER_EVENT_SAME_NAME", 1551 }, rocessed" },
{ "ER_EVENT_DATA_TOO_LONG", 1552 }, { "ER_SP_DUP_PARAM", 1330, "Duplicate parameter: %s" },
{ "ER_DROP_INDEX_FK", 1553 }, { "ER_SP_DUP_VAR", 1331, "Duplicate variable: %s" },
{ "ER_WARN_DEPRECATED_SYNTAX_WITH_VER", 1554 }, { "ER_SP_DUP_COND", 1332, "Duplicate condition: %s" },
{ "ER_CANT_WRITE_LOCK_LOG_TABLE", 1555 }, { "ER_SP_DUP_CURS", 1333, "Duplicate cursor: %s" },
{ "ER_CANT_LOCK_LOG_TABLE", 1556 }, { "ER_SP_CANT_ALTER", 1334, "Failed to ALTER %s %s" },
{ "ER_FOREIGN_DUPLICATE_KEY", 1557 }, { "ER_SP_SUBSELECT_NYI", 1335, "Subquery value not supported" },
{ "ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE", 1558 }, { "ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG", 1336, "%s is not allowed in stored fu
{ "ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR", 1559 }, nction or trigger" },
{ "ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT", 1560 }, { "ER_SP_VARCOND_AFTER_CURSHNDLR", 1337, "Variable or condition declaration
{ "ER_NDB_CANT_SWITCH_BINLOG_FORMAT", 1561 }, after cursor or handler declaration" },
{ "ER_PARTITION_NO_TEMPORARY", 1562 }, { "ER_SP_CURSOR_AFTER_HANDLER", 1338, "Cursor declaration after handler dec
{ "ER_PARTITION_CONST_DOMAIN_ERROR", 1563 }, laration" },
{ "ER_PARTITION_FUNCTION_IS_NOT_ALLOWED", 1564 }, { "ER_SP_CASE_NOT_FOUND", 1339, "Case not found for CASE statement" },
{ "ER_DDL_LOG_ERROR", 1565 }, { "ER_FPARSER_TOO_BIG_FILE", 1340, "Configuration file \'%-.192s\' is too b
{ "ER_NULL_IN_VALUES_LESS_THAN", 1566 }, ig" },
{ "ER_WRONG_PARTITION_NAME", 1567 }, { "ER_FPARSER_BAD_HEADER", 1341, "Malformed file type header in file \'%-.1
{ "ER_CANT_CHANGE_TX_ISOLATION", 1568 }, 92s\'" },
{ "ER_DUP_ENTRY_AUTOINCREMENT_CASE", 1569 }, { "ER_FPARSER_EOF_IN_COMMENT", 1342, "Unexpected end of file while parsing
{ "ER_EVENT_MODIFY_QUEUE_ERROR", 1570 }, comment \'%-.200s\'" },
{ "ER_EVENT_SET_VAR_ERROR", 1571 }, { "ER_FPARSER_ERROR_IN_PARAMETER", 1343, "Error while parsing parameter \'%
{ "ER_PARTITION_MERGE_ERROR", 1572 }, -.192s\' (line: \'%-.192s\')" },
{ "ER_CANT_ACTIVATE_LOG", 1573 }, { "ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER", 1344, "Unexpected end of file whil
{ "ER_RBR_NOT_AVAILABLE", 1574 }, e skipping unknown parameter \'%-.192s\'" },
{ "ER_BASE64_DECODE_ERROR", 1575 }, { "ER_VIEW_NO_EXPLAIN", 1345, "EXPLAIN/SHOW can not be issued; lacking priv
{ "ER_EVENT_RECURSION_FORBIDDEN", 1576 }, ileges for underlying table" },
{ "ER_EVENTS_DB_ERROR", 1577 }, { "ER_FRM_UNKNOWN_TYPE", 1346, "File \'%-.192s\' has unknown type \'%-.64s\
{ "ER_ONLY_INTEGERS_ALLOWED", 1578 }, ' in its header" },
{ "ER_UNSUPORTED_LOG_ENGINE", 1579 }, { "ER_WRONG_OBJECT", 1347, "\'%-.192s.%-.192s\' is not %s" },
{ "ER_BAD_LOG_STATEMENT", 1580 }, { "ER_NONUPDATEABLE_COLUMN", 1348, "Column \'%-.192s\' is not updatable" },
{ "ER_CANT_RENAME_LOG_TABLE", 1581 }, { "ER_VIEW_SELECT_DERIVED", 1349, "View\'s SELECT contains a subquery in th
{ "ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT", 1582 }, e FROM clause" },
{ "ER_WRONG_PARAMETERS_TO_NATIVE_FCT", 1583 }, { "ER_VIEW_SELECT_CLAUSE", 1350, "View\'s SELECT contains a \'%s\' clause"
{ "ER_WRONG_PARAMETERS_TO_STORED_FCT", 1584 }, },
{ "ER_NATIVE_FCT_NAME_COLLISION", 1585 }, { "ER_VIEW_SELECT_VARIABLE", 1351, "View\'s SELECT contains a variable or p
{ "ER_DUP_ENTRY_WITH_KEY_NAME", 1586 }, arameter" },
{ "ER_BINLOG_PURGE_EMFILE", 1587 }, { "ER_VIEW_SELECT_TMPTABLE", 1352, "View\'s SELECT refers to a temporary ta
{ "ER_EVENT_CANNOT_CREATE_IN_THE_PAST", 1588 }, ble \'%-.192s\'" },
{ "ER_EVENT_CANNOT_ALTER_IN_THE_PAST", 1589 }, { "ER_VIEW_WRONG_LIST", 1353, "View\'s SELECT and view\'s field list have d
{ "ER_SLAVE_INCIDENT", 1590 }, ifferent column counts" },
{ "ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT", 1591 }, { "ER_WARN_VIEW_MERGE", 1354, "View merge algorithm can\'t be used here for
{ "ER_BINLOG_UNSAFE_STATEMENT", 1592 }, now (assumed undefined algorithm)" },
{ "ER_SLAVE_FATAL_ERROR", 1593 }, { "ER_WARN_VIEW_WITHOUT_KEY", 1355, "View being updated does not have compl
{ "ER_SLAVE_RELAY_LOG_READ_FAILURE", 1594 }, ete key of underlying table in it" },
{ "ER_SLAVE_RELAY_LOG_WRITE_FAILURE", 1595 }, { "ER_VIEW_INVALID", 1356, "View \'%-.192s.%-.192s\' references invalid tab
{ "ER_SLAVE_CREATE_EVENT_FAILURE", 1596 }, le(s) or column(s) or function(s) or definer/invoker of view lack rights to
{ "ER_SLAVE_MASTER_COM_FAILURE", 1597 }, use them" },
{ "ER_BINLOG_LOGGING_IMPOSSIBLE", 1598 }, { "ER_SP_NO_DROP_SP", 1357, "Can\'t drop or alter a %s from within another
{ "ER_VIEW_NO_CREATION_CTX", 1599 }, stored routine" },
{ "ER_VIEW_INVALID_CREATION_CTX", 1600 }, { "ER_SP_GOTO_IN_HNDLR", 1358, "GOTO is not allowed in a stored procedure h
{ "ER_SR_INVALID_CREATION_CTX", 1601 }, andler" },
{ "ER_TRG_CORRUPTED_FILE", 1602 }, { "ER_TRG_ALREADY_EXISTS", 1359, "Trigger already exists" },
{ "ER_TRG_NO_CREATION_CTX", 1603 }, { "ER_TRG_DOES_NOT_EXIST", 1360, "Trigger does not exist" },
{ "ER_TRG_INVALID_CREATION_CTX", 1604 }, { "ER_TRG_ON_VIEW_OR_TEMP_TABLE", 1361, "Trigger\'s \'%-.192s\' is view or
{ "ER_EVENT_INVALID_CREATION_CTX", 1605 }, temporary table" },
{ "ER_TRG_CANT_OPEN_TABLE", 1606 }, { "ER_TRG_CANT_CHANGE_ROW", 1362, "Updating of %s row is not allowed in %st
{ "ER_CANT_CREATE_SROUTINE", 1607 }, rigger" },
{ "ER_SLAVE_AMBIGOUS_EXEC_MODE", 1608 }, { "ER_TRG_NO_SUCH_ROW_IN_TRG", 1363, "There is no %s row in %s trigger" },
{ "ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT", 1609 }, { "ER_NO_DEFAULT_FOR_FIELD", 1364, "Field \'%-.192s\' doesn\'t have a defau
{ "ER_SLAVE_CORRUPT_EVENT", 1610 }, lt value" },
{ "ER_LOAD_DATA_INVALID_COLUMN", 1611 }, { "ER_DIVISION_BY_ZERO", 1365, "Division by 0" },
{ "ER_LOG_PURGE_NO_FILE", 1612 }, { "ER_TRUNCATED_WRONG_VALUE_FOR_FIELD", 1366, "Incorrect %-.32s value: \'%-
{ "ER_XA_RBTIMEOUT", 1613 }, .128s\' for column \'%.192s\' at row %ld" },
{ "ER_XA_RBDEADLOCK", 1614 }, { "ER_ILLEGAL_VALUE_FOR_TYPE", 1367, "Illegal %s \'%-.192s\' value found du
{ "ER_NEED_REPREPARE", 1615 }, ring parsing" },
{ "ER_DELAYED_NOT_SUPPORTED", 1616 }, { "ER_VIEW_NONUPD_CHECK", 1368, "CHECK OPTION on non-updatable view \'%-.19
{ "WARN_NO_MASTER_INFO", 1617 }, 2s.%-.192s\'" },
{ "WARN_OPTION_IGNORED", 1618 }, { "ER_VIEW_CHECK_FAILED", 1369, "CHECK OPTION failed \'%-.192s.%-.192s\'" }
{ "WARN_PLUGIN_DELETE_BUILTIN", 1619 }, ,
{ "WARN_PLUGIN_BUSY", 1620 }, { "ER_PROCACCESS_DENIED_ERROR", 1370, "%-.16s command denied to user \'%-.4
{ "ER_VARIABLE_IS_READONLY", 1621 }, 8s\'@\'%-.64s\' for routine \'%-.192s\'" },
{ "ER_WARN_ENGINE_TRANSACTION_ROLLBACK", 1622 }, { "ER_RELAY_LOG_FAIL", 1371, "Failed purging old relay logs: %s" },
{ "ER_SLAVE_HEARTBEAT_FAILURE", 1623 }, { "ER_PASSWD_LENGTH", 1372, "Password hash should be a %d-digit hexadecimal
{ "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE", 1624 }, number" },
{ "ER_NDB_REPLICATION_SCHEMA_ERROR", 1625 }, { "ER_UNKNOWN_TARGET_BINLOG", 1373, "Target log not found in binlog index"
{ "ER_CONFLICT_FN_PARSE_ERROR", 1626 }, },
{ "ER_EXCEPTIONS_WRITE_ERROR", 1627 }, { "ER_IO_ERR_LOG_INDEX_READ", 1374, "I/O error reading log index file" },
{ "ER_TOO_LONG_TABLE_COMMENT", 1628 }, { "ER_BINLOG_PURGE_PROHIBITED", 1375, "Server configuration does not permit
{ "ER_TOO_LONG_FIELD_COMMENT", 1629 }, binlog purge" },
{ "ER_FUNC_INEXISTENT_NAME_COLLISION", 1630 }, { "ER_FSEEK_FAIL", 1376, "Failed on fseek()" },
{ "ER_DATABASE_NAME", 1631 }, { "ER_BINLOG_PURGE_FATAL_ERR", 1377, "Fatal error during log purge" },
{ "ER_TABLE_NAME", 1632 }, { "ER_LOG_IN_USE", 1378, "A purgeable log is in use, will not purge" },
{ "ER_PARTITION_NAME", 1633 }, { "ER_LOG_PURGE_UNKNOWN_ERR", 1379, "Unknown error during log purge" },
{ "ER_SUBPARTITION_NAME", 1634 }, { "ER_RELAY_LOG_INIT", 1380, "Failed initializing relay log position: %s" }
{ "ER_TEMPORARY_NAME", 1635 }, ,
{ "ER_RENAMED_NAME", 1636 }, { "ER_NO_BINARY_LOGGING", 1381, "You are not using binary logging" },
{ "ER_TOO_MANY_CONCURRENT_TRXS", 1637 }, { "ER_RESERVED_SYNTAX", 1382, "The \'%-.64s\' syntax is reserved for purpos
{ "WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED", 1638 }, es internal to the MySQL server" },
{ "ER_DEBUG_SYNC_TIMEOUT", 1639 }, { "ER_WSAS_FAILED", 1383, "WSAStartup Failed" },
{ "ER_DEBUG_SYNC_HIT_LIMIT", 1640 }, { "ER_DIFF_GROUPS_PROC", 1384, "Can\'t handle procedures with different gro
{ "ER_DUP_SIGNAL_SET", 1641 }, ups yet" },
{ "ER_SIGNAL_WARN", 1642 }, { "ER_NO_GROUP_FOR_PROC", 1385, "Select must have a group with this procedu
{ "ER_SIGNAL_NOT_FOUND", 1643 }, re" },
{ "ER_SIGNAL_EXCEPTION", 1644 }, { "ER_ORDER_WITH_PROC", 1386, "Can\'t use ORDER clause with this procedure"
{ "ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER", 1645 }, },
{ "ER_SIGNAL_BAD_CONDITION_TYPE", 1646 }, { "ER_LOGGING_PROHIBIT_CHANGING_OF", 1387, "Binary logging and replication
{ "WARN_COND_ITEM_TRUNCATED", 1647 }, forbid changing the global server %s" },
{ "ER_COND_ITEM_TOO_LONG", 1648 }, { "ER_NO_FILE_MAPPING", 1388, "Can\'t map file: %-.200s, errno: %d" },
{ "ER_UNKNOWN_LOCALE", 1649 }, { "ER_WRONG_MAGIC", 1389, "Wrong magic in %-.64s" },
{ "ER_SLAVE_IGNORE_SERVER_IDS", 1650 }, { "ER_PS_MANY_PARAM", 1390, "Prepared statement contains too many placehold
{ "ER_QUERY_CACHE_DISABLED", 1651 }, ers" },
{ "ER_SAME_NAME_PARTITION_FIELD", 1652 }, { "ER_KEY_PART_0", 1391, "Key part \'%-.192s\' length cannot be 0" },
{ "ER_PARTITION_COLUMN_LIST_ERROR", 1653 }, { "ER_VIEW_CHECKSUM", 1392, "View text checksum failed" },
{ "ER_WRONG_TYPE_COLUMN_VALUE_ERROR", 1654 }, { "ER_VIEW_MULTIUPDATE", 1393, "Can not modify more than one base table thr
{ "ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR", 1655 }, ough a join view \'%-.192s.%-.192s\'" },
{ "ER_MAXVALUE_IN_VALUES_IN", 1656 }, { "ER_VIEW_NO_INSERT_FIELD_LIST", 1394, "Can not insert into join view \'%-
{ "ER_TOO_MANY_VALUES_ERROR", 1657 }, .192s.%-.192s\' without fields list" },
{ "ER_ROW_SINGLE_PARTITION_FIELD_ERROR", 1658 }, { "ER_VIEW_DELETE_MERGE_VIEW", 1395, "Can not delete from join view \'%-.19
{ "ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD", 1659 }, 2s.%-.192s\'" },
{ "ER_PARTITION_FIELDS_TOO_LONG", 1660 }, { "ER_CANNOT_USER", 1396, "Operation %s failed for %.256s" },
{ "ER_SPATIAL_MUST_HAVE_GEOM_COL", 1661 }, { "ER_XAER_NOTA", 1397, "XAER_NOTA: Unknown XID" },
{ "ER_XAER_INVAL", 1398, "XAER_INVAL: Invalid arguments (or unsupported com
mand)" },
{ "ER_XAER_RMFAIL", 1399, "XAER_RMFAIL: The command cannot be executed when
global transaction is in the %.64s state" },
{ "ER_XAER_OUTSIDE", 1400, "XAER_OUTSIDE: Some work is done outside global
transaction" },
{ "ER_XAER_RMERR", 1401, "XAER_RMERR: Fatal error occurred in the transacti
on branch - check your data for consistency" },
{ "ER_XA_RBROLLBACK", 1402, "XA_RBROLLBACK: Transaction branch was rolled b
ack" },
{ "ER_NONEXISTING_PROC_GRANT", 1403, "There is no such grant defined for us
er \'%-.48s\' on host \'%-.64s\' on routine \'%-.192s\'" },
{ "ER_PROC_AUTO_GRANT_FAIL", 1404, "Failed to grant EXECUTE and ALTER ROUTI
NE privileges" },
{ "ER_PROC_AUTO_REVOKE_FAIL", 1405, "Failed to revoke all privileges to dro
pped routine" },
{ "ER_DATA_TOO_LONG", 1406, "Data too long for column \'%s\' at row %ld" },
{ "ER_SP_BAD_SQLSTATE", 1407, "Bad SQLSTATE: \'%s\'" },
{ "ER_STARTUP", 1408, "%s: ready for connections.\nVersion: \'%s\' socket:
\'%s\' port: %d %s" },
{ "ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR", 1409, "Can\'t load value from file
with fixed size rows to variable" },
{ "ER_CANT_CREATE_USER_WITH_GRANT", 1410, "You are not allowed to create a
user with GRANT" },
{ "ER_WRONG_VALUE_FOR_TYPE", 1411, "Incorrect %-.32s value: \'%-.128s\' for
function %-.32s" },
{ "ER_TABLE_DEF_CHANGED", 1412, "Table definition has changed, please retry
transaction" },
{ "ER_SP_DUP_HANDLER", 1413, "Duplicate handler declared in the same block"
},
{ "ER_SP_NOT_VAR_ARG", 1414, "OUT or INOUT argument %d for routine %s is no
t a variable or NEW pseudo-variable in BEFORE trigger" },
{ "ER_SP_NO_RETSET", 1415, "Not allowed to return a result set from a %s" }
,
{ "ER_CANT_CREATE_GEOMETRY_OBJECT", 1416, "Cannot get geometry object from
data you send to the GEOMETRY field" },
{ "ER_FAILED_ROUTINE_BREAK_BINLOG", 1417, "A routine failed and has neither
NO SQL nor READS SQL DATA in its declaration and binary logging is enabled
; if non-transactional tables were updated, the binary log will miss their
changes" },
{ "ER_BINLOG_UNSAFE_ROUTINE", 1418, "This function has none of DETERMINISTI
C, NO SQL, or READS SQL DATA in its declaration and binary logging is enabl
ed (you *might* want to use the less safe log_bin_trust_function_creators v
ariable)" },
{ "ER_BINLOG_CREATE_ROUTINE_NEED_SUPER", 1419, "You do not have the SUPER p
rivilege and binary logging is enabled (you *might* want to use the less sa
fe log_bin_trust_function_creators variable)" },
{ "ER_EXEC_STMT_WITH_OPEN_CURSOR", 1420, "You can\'t execute a prepared sta
tement which has an open cursor associated with it. Reset the statement to
re-execute it." },
{ "ER_STMT_HAS_NO_OPEN_CURSOR", 1421, "The statement (%lu) has no open curs
or." },
{ "ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG", 1422, "Explicit or implicit commit
is not allowed in stored function or trigger." },
{ "ER_NO_DEFAULT_FOR_VIEW_FIELD", 1423, "Field of view \'%-.192s.%-.192s\'
underlying table doesn\'t have a default value" },
{ "ER_SP_NO_RECURSION", 1424, "Recursive stored functions and triggers are
not allowed." },
{ "ER_TOO_BIG_SCALE", 1425, "Too big scale %d specified for column \'%-.192
s\'. Maximum is %lu." },
{ "ER_TOO_BIG_PRECISION", 1426, "Too big precision %d specified for column
\'%-.192s\'. Maximum is %lu." },
{ "ER_M_BIGGER_THAN_D", 1427, "For float(M,D), double(M,D) or decimal(M,D),
M must be >= D (column \'%-.192s\')." },
{ "ER_WRONG_LOCK_OF_SYSTEM_TABLE", 1428, "You can\'t combine write-locking
of system tables with other tables or lock types" },
{ "ER_CONNECT_TO_FOREIGN_DATA_SOURCE", 1429, "Unable to connect to foreign
data source: %.64s" },
{ "ER_QUERY_ON_FOREIGN_DATA_SOURCE", 1430, "There was a problem processing
the query on the foreign data source. Data source error: %-.64s" },
{ "ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST", 1431, "The foreign data source you
are trying to reference does not exist. Data source error: %-.64s" },
{ "ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE", 1432, "Can\'t create federa
ted table. The data source connection string \'%-.64s\' is not in the corre
ct format" },
{ "ER_FOREIGN_DATA_STRING_INVALID", 1433, "The data source connection strin
g \'%-.64s\' is not in the correct format" },
{ "ER_CANT_CREATE_FEDERATED_TABLE", 1434, "Can\'t create federated table. F
oreign data src error: %-.64s" },
{ "ER_TRG_IN_WRONG_SCHEMA", 1435, "Trigger in wrong schema" },
{ "ER_STACK_OVERRUN_NEED_MORE", 1436, "Thread stack overrun: %ld bytes use
d of a %ld byte stack, and %ld bytes needed. Use \'mysqld --thread_stack=#
\' to specify a bigger stack." },
{ "ER_TOO_LONG_BODY", 1437, "Routine body for \'%-.100s\' is too long" },
{ "ER_WARN_CANT_DROP_DEFAULT_KEYCACHE", 1438, "Cannot drop default keycache
" },
{ "ER_TOO_BIG_DISPLAYWIDTH", 1439, "Display width out of range for column \
'%-.192s\' (max = %lu)" },
{ "ER_XAER_DUPID", 1440, "XAER_DUPID: The XID already exists" },
{ "ER_DATETIME_FUNCTION_OVERFLOW", 1441, "Datetime function: %-.32s field o
verflow" },
{ "ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG", 1442, "Can\'t update table \'%-
.192s\' in stored function/trigger because it is already used by statement
which invoked this stored function/trigger." },
{ "ER_VIEW_PREVENT_UPDATE", 1443, "The definition of table \'%-.192s\' prev
ents operation %.192s on table \'%-.192s\'." },
{ "ER_PS_NO_RECURSION", 1444, "The prepared statement contains a stored rou
tine call that refers to that same statement. It\'s not allowed to execute
a prepared statement in such a recursive manner" },
{ "ER_SP_CANT_SET_AUTOCOMMIT", 1445, "Not allowed to set autocommit from a
stored function or trigger" },
{ "ER_MALFORMED_DEFINER", 1446, "Definer is not fully qualified" },
{ "ER_VIEW_FRM_NO_USER", 1447, "View \'%-.192s\'.\'%-.192s\' has no definer
information (old table format). Current user is used as definer. Please re
create the view!" },
{ "ER_VIEW_OTHER_USER", 1448, "You need the SUPER privilege for creation vi
ew with \'%-.192s\'@\'%-.192s\' definer" },
{ "ER_NO_SUCH_USER", 1449, "The user specified as a definer (\'%-.64s\'@\'%
-.64s\') does not exist" },
{ "ER_FORBID_SCHEMA_CHANGE", 1450, "Changing schema from \'%-.192s\' to \'%
-.192s\' is not allowed." },
{ "ER_ROW_IS_REFERENCED_2", 1451, "Cannot delete or update a parent row: a
foreign key constraint fails (%.192s)" },
{ "ER_NO_REFERENCED_ROW_2", 1452, "Cannot add or update a child row: a fore
ign key constraint fails (%.192s)" },
{ "ER_SP_BAD_VAR_SHADOW", 1453, "Variable \'%-.64s\' must be quoted with `.
..`, or renamed" },
{ "ER_TRG_NO_DEFINER", 1454, "No definer attribute for trigger \'%-.192s\'.
\'%-.192s\'. The trigger will be activated under the authorization of the i
nvoker, which may have insufficient privileges. Please recreate the trigger
." },
{ "ER_OLD_FILE_FORMAT", 1455, "\'%-.192s\' has an old format, you should re
-create the \'%s\' object(s)" },
{ "ER_SP_RECURSION_LIMIT", 1456, "Recursive limit %d (as set by the max_sp_
recursion_depth variable) was exceeded for routine %.192s" },
{ "ER_SP_PROC_TABLE_CORRUPT", 1457, "Failed to load routine %-.192s. The ta
ble mysql.proc is missing, corrupt, or contains bad data (internal code %d)
" },
{ "ER_SP_WRONG_NAME", 1458, "Incorrect routine name \'%-.192s\'" },
{ "ER_TABLE_NEEDS_UPGRADE", 1459, "Table upgrade required. Please do \"REPA
IR TABLE `%-.32s`\" or dump/reload to fix it!" },
{ "ER_SP_NO_AGGREGATE", 1460, "AGGREGATE is not supported for stored functi
ons" },
{ "ER_MAX_PREPARED_STMT_COUNT_REACHED", 1461, "Can\'t create more than max_
prepared_stmt_count statements (current value: %lu)" },
{ "ER_VIEW_RECURSIVE", 1462, "`%-.192s`.`%-.192s` contains view recursion"
},
{ "ER_NON_GROUPING_FIELD_USED", 1463, "non-grouping field \'%-.192s\' is us
ed in %-.64s clause" },
{ "ER_TABLE_CANT_HANDLE_SPKEYS", 1464, "The used table type doesn\'t suppor
t SPATIAL indexes" },
{ "ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA", 1465, "Triggers can not be created on
system tables" },
{ "ER_REMOVED_SPACES", 1466, "Leading spaces are removed from name \'%s\'"
},
{ "ER_AUTOINC_READ_FAILED", 1467, "Failed to read auto-increment value from
storage engine" },
{ "ER_USERNAME", 1468, "user name" },
{ "ER_HOSTNAME", 1469, "host name" },
{ "ER_WRONG_STRING_LENGTH", 1470, "String \'%-.70s\' is too long for %s (sh
ould be no longer than %d)" },
{ "ER_NON_INSERTABLE_TABLE", 1471, "The target table %-.100s of the %s is n
ot insertable-into" },
{ "ER_ADMIN_WRONG_MRG_TABLE", 1472, "Table \'%-.64s\' is differently define
d or of non-MyISAM type or doesn\'t exist" },
{ "ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT", 1473, "Too high level of nesti
ng for select" },
{ "ER_NAME_BECOMES_EMPTY", 1474, "Name \'%-.64s\' has become \'\'" },
{ "ER_AMBIGUOUS_FIELD_TERM", 1475, "First character of the FIELDS TERMINATE
D string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSE
D BY" },
{ "ER_FOREIGN_SERVER_EXISTS", 1476, "The foreign server, %s, you are trying
to create already exists." },
{ "ER_FOREIGN_SERVER_DOESNT_EXIST", 1477, "The foreign server name you are
trying to reference does not exist. Data source error: %-.64s" },
{ "ER_ILLEGAL_HA_CREATE_OPTION", 1478, "Table storage engine \'%-.64s\' doe
s not support the create option \'%.64s\'" },
{ "ER_PARTITION_REQUIRES_VALUES_ERROR", 1479, "Syntax error: %-.64s PARTITI
ONING requires definition of VALUES %-.64s for each partition" },
{ "ER_PARTITION_WRONG_VALUES_ERROR", 1480, "Only %-.64s PARTITIONING can us
e VALUES %-.64s in partition definition" },
{ "ER_PARTITION_MAXVALUE_ERROR", 1481, "MAXVALUE can only be used in last p
artition definition" },
{ "ER_PARTITION_SUBPARTITION_ERROR", 1482, "Subpartitions can only be hash
partitions and by key" },
{ "ER_PARTITION_SUBPART_MIX_ERROR", 1483, "Must define subpartitions on all
partitions if on one partition" },
{ "ER_PARTITION_WRONG_NO_PART_ERROR", 1484, "Wrong number of partitions def
ined, mismatch with previous setting" },
{ "ER_PARTITION_WRONG_NO_SUBPART_ERROR", 1485, "Wrong number of subpartitio
ns defined, mismatch with previous setting" },
{ "ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR", 1486, "Constant, random or timez
one-dependent expressions in (sub)partitioning function are not allowed" },
{ "ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR", 1487, "Expression in RANGE/LIS
T VALUES must be constant" },
{ "ER_FIELD_NOT_FOUND_PART_ERROR", 1488, "Field in list of fields for parti
tion function not found in table" },
{ "ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR", 1489, "List of fields is only all
owed in KEY partitions" },
{ "ER_INCONSISTENT_PARTITION_INFO_ERROR", 1490, "The partition info in the
frm file is not consistent with what can be written into the frm file" },
{ "ER_PARTITION_FUNC_NOT_ALLOWED_ERROR", 1491, "The %-.192s function return
s the wrong type" },
{ "ER_PARTITIONS_MUST_BE_DEFINED_ERROR", 1492, "For %-.64s partitions each
partition must be defined" },
{ "ER_RANGE_NOT_INCREASING_ERROR", 1493, "VALUES LESS THAN value must be st
rictly increasing for each partition" },
{ "ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR", 1494, "VALUES value must be of
same type as partition function" },
{ "ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR", 1495, "Multiple definition of
same constant in list partitioning" },
{ "ER_PARTITION_ENTRY_ERROR", 1496, "Partitioning can not be used stand-alo
ne in query" },
{ "ER_MIX_HANDLER_ERROR", 1497, "The mix of handlers in the partitions is n
ot allowed in this version of MySQL" },
{ "ER_PARTITION_NOT_DEFINED_ERROR", 1498, "For the partitioned engine it is
necessary to define all %-.64s" },
{ "ER_TOO_MANY_PARTITIONS_ERROR", 1499, "Too many partitions (including sub
partitions) were defined" },
{ "ER_SUBPARTITION_ERROR", 1500, "It is only possible to mix RANGE/LIST par
titioning with HASH/KEY partitioning for subpartitioning" },
{ "ER_CANT_CREATE_HANDLER_FILE", 1501, "Failed to create specific handler f
ile" },
{ "ER_BLOB_FIELD_IN_PART_FUNC_ERROR", 1502, "A BLOB field is not allowed in
partition function" },
{ "ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF", 1503, "A %-.192s must include all
columns in the table\'s partitioning function" },
{ "ER_NO_PARTS_ERROR", 1504, "Number of %-.64s = 0 is not an allowed value"
},
{ "ER_PARTITION_MGMT_ON_NONPARTITIONED", 1505, "Partition management on a n
ot partitioned table is not possible" },
{ "ER_FOREIGN_KEY_ON_PARTITIONED", 1506, "Foreign key clause is not yet sup
ported in conjunction with partitioning" },
{ "ER_DROP_PARTITION_NON_EXISTENT", 1507, "Error in list of partitions to %
-.64s" },
{ "ER_DROP_LAST_PARTITION", 1508, "Cannot remove all partitions, use DROP T
ABLE instead" },
{ "ER_COALESCE_ONLY_ON_HASH_PARTITION", 1509, "COALESCE PARTITION can only
be used on HASH/KEY partitions" },
{ "ER_REORG_HASH_ONLY_ON_SAME_NO", 1510, "REORGANIZE PARTITION can only be
used to reorganize partitions not to change their numbers" },
{ "ER_REORG_NO_PARAM_ERROR", 1511, "REORGANIZE PARTITION without parameters
can only be used on auto-partitioned tables using HASH PARTITIONs" },
{ "ER_ONLY_ON_RANGE_LIST_PARTITION", 1512, "%-.64s PARTITION can only be us
ed on RANGE/LIST partitions" },
{ "ER_ADD_PARTITION_SUBPART_ERROR", 1513, "Trying to Add partition(s) with
wrong number of subpartitions" },
{ "ER_ADD_PARTITION_NO_NEW_PARTITION", 1514, "At least one partition must b
e added" },
{ "ER_COALESCE_PARTITION_NO_PARTITION", 1515, "At least one partition must
be coalesced" },
{ "ER_REORG_PARTITION_NOT_EXIST", 1516, "More partitions to reorganize than
there are partitions" },
{ "ER_SAME_NAME_PARTITION", 1517, "Duplicate partition name %-.192s" },
{ "ER_NO_BINLOG_ERROR", 1518, "It is not allowed to shut off binlog on this
command" },
{ "ER_CONSECUTIVE_REORG_PARTITIONS", 1519, "When reorganizing a set of part
itions they must be in consecutive order" },
{ "ER_REORG_OUTSIDE_RANGE", 1520, "Reorganize of range partitions cannot ch
ange total ranges except for last partition where it can extend the range"
},
{ "ER_PARTITION_FUNCTION_FAILURE", 1521, "Partition function not supported
in this version for this handler" },
{ "ER_PART_STATE_ERROR", 1522, "Partition state cannot be defined from CREA
TE/ALTER TABLE" },
{ "ER_LIMITED_PART_RANGE", 1523, "The %-.64s handler only supports 32 bit i
ntegers in VALUES" },
{ "ER_PLUGIN_IS_NOT_LOADED", 1524, "Plugin \'%-.192s\' is not loaded" },
{ "ER_WRONG_VALUE", 1525, "Incorrect %-.32s value: \'%-.128s\'" },
{ "ER_NO_PARTITION_FOR_GIVEN_VALUE", 1526, "Table has no partition for valu
e %-.64s" },
{ "ER_FILEGROUP_OPTION_ONLY_ONCE", 1527, "It is not allowed to specify %s m
ore than once" },
{ "ER_CREATE_FILEGROUP_FAILED", 1528, "Failed to create %s" },
{ "ER_DROP_FILEGROUP_FAILED", 1529, "Failed to drop %s" },
{ "ER_TABLESPACE_AUTO_EXTEND_ERROR", 1530, "The handler doesn\'t support au
toextend of tablespaces" },
{ "ER_WRONG_SIZE_NUMBER", 1531, "A size parameter was incorrectly specified
, either number or on the form 10M" },
{ "ER_SIZE_OVERFLOW_ERROR", 1532, "The size number was correct but we don\'
t allow the digit part to be more than 2 billion" },
{ "ER_ALTER_FILEGROUP_FAILED", 1533, "Failed to alter: %s" },
{ "ER_BINLOG_ROW_LOGGING_FAILED", 1534, "Writing one row to the row-based b
inary log failed" },
{ "ER_BINLOG_ROW_WRONG_TABLE_DEF", 1535, "Table definition on master and sl
ave does not match: %s" },
{ "ER_BINLOG_ROW_RBR_TO_SBR", 1536, "Slave running with --log-slave-updates
must use row-based binary logging to be able to replicate row-based binary
log events" },
{ "ER_EVENT_ALREADY_EXISTS", 1537, "Event \'%-.192s\' already exists" },
{ "ER_EVENT_STORE_FAILED", 1538, "Failed to store event %s. Error code %d f
rom storage engine." },
{ "ER_EVENT_DOES_NOT_EXIST", 1539, "Unknown event \'%-.192s\'" },
{ "ER_EVENT_CANT_ALTER", 1540, "Failed to alter event \'%-.192s\'" },
{ "ER_EVENT_DROP_FAILED", 1541, "Failed to drop %s" },
{ "ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG", 1542, "INTERVAL is either no
t positive or too big" },
{ "ER_EVENT_ENDS_BEFORE_STARTS", 1543, "ENDS is either invalid or before ST
ARTS" },
{ "ER_EVENT_EXEC_TIME_IN_THE_PAST", 1544, "Event execution time is in the p
ast. Event has been disabled" },
{ "ER_EVENT_OPEN_TABLE_FAILED", 1545, "Failed to open mysql.event" },
{ "ER_EVENT_NEITHER_M_EXPR_NOR_M_AT", 1546, "No datetime expression provide
d" },
{ "ER_COL_COUNT_DOESNT_MATCH_CORRUPTED", 1547, "Column count of mysql.%s is
wrong. Expected %d, found %d. The table is probably corrupted" },
{ "ER_CANNOT_LOAD_FROM_TABLE", 1548, "Cannot load from mysql.%s. The table
is probably corrupted" },
{ "ER_EVENT_CANNOT_DELETE", 1549, "Failed to delete the event from mysql.ev
ent" },
{ "ER_EVENT_COMPILE_ERROR", 1550, "Error during compilation of event\'s bod
y" },
{ "ER_EVENT_SAME_NAME", 1551, "Same old and new event name" },
{ "ER_EVENT_DATA_TOO_LONG", 1552, "Data for column \'%s\' too long" },
{ "ER_DROP_INDEX_FK", 1553, "Cannot drop index \'%-.192s\': needed in a for
eign key constraint" },
{ "ER_WARN_DEPRECATED_SYNTAX_WITH_VER", 1554, "The syntax \'%s\' is depreca
ted and will be removed in MySQL %s. Please use %s instead" },
{ "ER_CANT_WRITE_LOCK_LOG_TABLE", 1555, "You can\'t write-lock a log table.
Only read access is possible" },
{ "ER_CANT_LOCK_LOG_TABLE", 1556, "You can\'t use locks with log tables." }
,
{ "ER_FOREIGN_DUPLICATE_KEY", 1557, "Upholding foreign key constraints for
table \'%.192s\', entry \'%-.192s\', key %d would lead to a duplicate entry
" },
{ "ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE", 1558, "Column count of mysql.%
s is wrong. Expected %d, found %d. Created with MySQL %d, now running %d. P
lease use mysql_upgrade to fix this error." },
{ "ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR", 1559, "Cannot switch out of t
he row-based binary log format when the session has open temporary tables"
},
{ "ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT", 1560, "Cannot change
the binary logging format inside a stored function or trigger" },
{ "ER_NDB_CANT_SWITCH_BINLOG_FORMAT", 1561, "The NDB cluster engine does no
t support changing the binlog format on the fly yet" },
{ "ER_PARTITION_NO_TEMPORARY", 1562, "Cannot create temporary table with pa
rtitions" },
{ "ER_PARTITION_CONST_DOMAIN_ERROR", 1563, "Partition constant is out of pa
rtition function domain" },
{ "ER_PARTITION_FUNCTION_IS_NOT_ALLOWED", 1564, "This partition function is
not allowed" },
{ "ER_DDL_LOG_ERROR", 1565, "Error in DDL log" },
{ "ER_NULL_IN_VALUES_LESS_THAN", 1566, "Not allowed to use NULL value in VA
LUES LESS THAN" },
{ "ER_WRONG_PARTITION_NAME", 1567, "Incorrect partition name" },
{ "ER_CANT_CHANGE_TX_ISOLATION", 1568, "Transaction isolation level can\'t
be changed while a transaction is in progress" },
{ "ER_DUP_ENTRY_AUTOINCREMENT_CASE", 1569, "ALTER TABLE causes auto_increme
nt resequencing, resulting in duplicate entry \'%-.192s\' for key \'%-.192s
\'" },
{ "ER_EVENT_MODIFY_QUEUE_ERROR", 1570, "Internal scheduler error %d" },
{ "ER_EVENT_SET_VAR_ERROR", 1571, "Error during starting/stopping of the sc
heduler. Error code %u" },
{ "ER_PARTITION_MERGE_ERROR", 1572, "Engine cannot be used in partitioned t
ables" },
{ "ER_CANT_ACTIVATE_LOG", 1573, "Cannot activate \'%-.64s\' log" },
{ "ER_RBR_NOT_AVAILABLE", 1574, "The server was not built with row-based re
plication" },
{ "ER_BASE64_DECODE_ERROR", 1575, "Decoding of base64 string failed" },
{ "ER_EVENT_RECURSION_FORBIDDEN", 1576, "Recursion of EVENT DDL statements
is forbidden when body is present" },
{ "ER_EVENTS_DB_ERROR", 1577, "Cannot proceed because system tables used by
Event Scheduler were found damaged at server start" },
{ "ER_ONLY_INTEGERS_ALLOWED", 1578, "Only integers allowed as number here"
},
{ "ER_UNSUPORTED_LOG_ENGINE", 1579, "This storage engine cannot be used for
log tables\"" },
{ "ER_BAD_LOG_STATEMENT", 1580, "You cannot \'%s\' a log table if logging i
s enabled" },
{ "ER_CANT_RENAME_LOG_TABLE", 1581, "Cannot rename \'%s\'. When logging ena
bled, rename to/from log table must rename two tables: the log table to an
archive table and another table back to \'%s\'" },
{ "ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT", 1582, "Incorrect parameter count in
the call to native function \'%-.192s\'" },
{ "ER_WRONG_PARAMETERS_TO_NATIVE_FCT", 1583, "Incorrect parameters in the c
all to native function \'%-.192s\'" },
{ "ER_WRONG_PARAMETERS_TO_STORED_FCT", 1584, "Incorrect parameters in the c
all to stored function \'%-.192s\'" },
{ "ER_NATIVE_FCT_NAME_COLLISION", 1585, "This function \'%-.192s\' has the
same name as a native function" },
{ "ER_DUP_ENTRY_WITH_KEY_NAME", 1586, "Duplicate entry \'%-.64s\' for key \
'%-.192s\'" },
{ "ER_BINLOG_PURGE_EMFILE", 1587, "Too many files opened, please execute th
e command again" },
{ "ER_EVENT_CANNOT_CREATE_IN_THE_PAST", 1588, "Event execution time is in t
he past and ON COMPLETION NOT PRESERVE is set. The event was dropped immedi
ately after creation." },
{ "ER_EVENT_CANNOT_ALTER_IN_THE_PAST", 1589, "Event execution time is in th
e past and ON COMPLETION NOT PRESERVE is set. The event was dropped immedia
tely after creation." },
{ "ER_SLAVE_INCIDENT", 1590, "The incident %s occured on the master. Messag
e: %-.64s" },
{ "ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT", 1591, "Table has no partition f
or some existing values" },
{ "ER_BINLOG_UNSAFE_STATEMENT", 1592, "Unsafe statement binlogged in statem
ent format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: %s" },
{ "ER_SLAVE_FATAL_ERROR", 1593, "Fatal error: %s" },
{ "ER_SLAVE_RELAY_LOG_READ_FAILURE", 1594, "Relay log read failure: %s" },
{ "ER_SLAVE_RELAY_LOG_WRITE_FAILURE", 1595, "Relay log write failure: %s" }
,
{ "ER_SLAVE_CREATE_EVENT_FAILURE", 1596, "Failed to create %s" },
{ "ER_SLAVE_MASTER_COM_FAILURE", 1597, "Master command %s failed: %s" },
{ "ER_BINLOG_LOGGING_IMPOSSIBLE", 1598, "Binary logging not possible. Messa
ge: %s" },
{ "ER_VIEW_NO_CREATION_CTX", 1599, "View `%-.64s`.`%-.64s` has no creation
context" },
{ "ER_VIEW_INVALID_CREATION_CTX", 1600, "Creation context of view `%-.64s`.
`%-.64s\' is invalid" },
{ "ER_SR_INVALID_CREATION_CTX", 1601, "Creation context of stored routine `
%-.64s`.`%-.64s` is invalid" },
{ "ER_TRG_CORRUPTED_FILE", 1602, "Corrupted TRG file for table `%-.64s`.`%-
.64s`" },
{ "ER_TRG_NO_CREATION_CTX", 1603, "Triggers for table `%-.64s`.`%-.64s` hav
e no creation context" },
{ "ER_TRG_INVALID_CREATION_CTX", 1604, "Trigger creation context of table `
%-.64s`.`%-.64s` is invalid" },
{ "ER_EVENT_INVALID_CREATION_CTX", 1605, "Creation context of event `%-.64s
`.`%-.64s` is invalid" },
{ "ER_TRG_CANT_OPEN_TABLE", 1606, "Cannot open table for trigger `%-.64s`.`
%-.64s`" },
{ "ER_CANT_CREATE_SROUTINE", 1607, "Cannot create stored routine `%-.64s`.
Check warnings" },
{ "ER_NEVER_USED", 1608, "Ambiguous slave modes combination. %s" },
{ "ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT", 1609, "The BINL
OG statement of type `%s` was not preceded by a format description BINLOG s
tatement." },
{ "ER_SLAVE_CORRUPT_EVENT", 1610, "Corrupted replication event was detected
" },
{ "ER_LOAD_DATA_INVALID_COLUMN", 1611, "Invalid column reference (%-.64s) i
n LOAD DATA" },
{ "ER_LOG_PURGE_NO_FILE", 1612, "Being purged log %s was not found" },
{ "ER_XA_RBTIMEOUT", 1613, "XA_RBTIMEOUT: Transaction branch was rolled bac
k: took too long" },
{ "ER_XA_RBDEADLOCK", 1614, "XA_RBDEADLOCK: Transaction branch was rolled b
ack: deadlock was detected" },
{ "ER_NEED_REPREPARE", 1615, "Prepared statement needs to be re-prepared" }
,
{ "ER_DELAYED_NOT_SUPPORTED", 1616, "DELAYED option not supported for table
\'%-.192s\'" },
{ "WARN_NO_MASTER_INFO", 1617, "The master info structure does not exist" }
,
{ "WARN_OPTION_IGNORED", 1618, "<%-.64s> option ignored" },
{ "WARN_PLUGIN_DELETE_BUILTIN", 1619, "Built-in plugins cannot be deleted"
},
{ "WARN_PLUGIN_BUSY", 1620, "Plugin is busy and will be uninstalled on shut
down" },
{ "ER_VARIABLE_IS_READONLY", 1621, "%s variable \'%s\' is read-only. Use SE
T %s to assign the value" },
{ "ER_WARN_ENGINE_TRANSACTION_ROLLBACK", 1622, "Storage engine %s does not
support rollback for this statement. Transaction rolled back and must be re
started" },
{ "ER_SLAVE_HEARTBEAT_FAILURE", 1623, "Unexpected master\'s heartbeat data:
%s" },
{ "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE", 1624, "The requested value for t
he heartbeat period %s %s" },
{ "ER_NDB_REPLICATION_SCHEMA_ERROR", 1625, "Bad schema for mysql.ndb_replic
ation table. Message: %-.64s" },
{ "ER_CONFLICT_FN_PARSE_ERROR", 1626, "Error in parsing conflict function.
Message: %-.64s" },
{ "ER_EXCEPTIONS_WRITE_ERROR", 1627, "Write to exceptions table failed. Mes
sage: %-.128s\"" },
{ "ER_TOO_LONG_TABLE_COMMENT", 1628, "Comment for table \'%-.64s\' is too l
ong (max = %lu)" },
{ "ER_TOO_LONG_FIELD_COMMENT", 1629, "Comment for field \'%-.64s\' is too l
ong (max = %lu)" },
{ "ER_FUNC_INEXISTENT_NAME_COLLISION", 1630, "FUNCTION %s does not exist. C
heck the \'Function Name Parsing and Resolution\' section in the Reference
Manual" },
{ "ER_DATABASE_NAME", 1631, "Database" },
{ "ER_TABLE_NAME", 1632, "Table" },
{ "ER_PARTITION_NAME", 1633, "Partition" },
{ "ER_SUBPARTITION_NAME", 1634, "Subpartition" },
{ "ER_TEMPORARY_NAME", 1635, "Temporary" },
{ "ER_RENAMED_NAME", 1636, "Renamed" },
{ "ER_TOO_MANY_CONCURRENT_TRXS", 1637, "Too many active concurrent transact
ions" },
{ "WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED", 1638, "Non-ASCII separator ar
guments are not fully supported" },
{ "ER_DEBUG_SYNC_TIMEOUT", 1639, "debug sync point wait timed out" },
{ "ER_DEBUG_SYNC_HIT_LIMIT", 1640, "debug sync point hit limit reached" },
{ "ER_DUP_SIGNAL_SET", 1641, "Duplicate condition information item \'%s\'"
},
{ "ER_SIGNAL_WARN", 1642, "Unhandled user-defined warning condition" },
{ "ER_SIGNAL_NOT_FOUND", 1643, "Unhandled user-defined not found condition"
},
{ "ER_SIGNAL_EXCEPTION", 1644, "Unhandled user-defined exception condition"
},
{ "ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER", 1645, "RESIGNAL when handler not ac
tive" },
{ "ER_SIGNAL_BAD_CONDITION_TYPE", 1646, "SIGNAL/RESIGNAL can only use a CON
DITION defined with SQLSTATE" },
{ "WARN_COND_ITEM_TRUNCATED", 1647, "Data truncated for condition item \'%s
\'" },
{ "ER_COND_ITEM_TOO_LONG", 1648, "Data too long for condition item \'%s\'"
},
{ "ER_UNKNOWN_LOCALE", 1649, "Unknown locale: \'%-.64s\'" },
{ "ER_SLAVE_IGNORE_SERVER_IDS", 1650, "The requested server id %d clashes w
ith the slave startup option --replicate-same-server-id" },
{ "ER_QUERY_CACHE_DISABLED", 1651, "Query cache is disabled; restart the se
rver with query_cache_type=1 to enable it" },
{ "ER_SAME_NAME_PARTITION_FIELD", 1652, "Duplicate partition field name \'%
-.192s\'" },
{ "ER_PARTITION_COLUMN_LIST_ERROR", 1653, "Inconsistency in usage of column
lists for partitioning" },
{ "ER_WRONG_TYPE_COLUMN_VALUE_ERROR", 1654, "Partition column values of inc
orrect type" },
{ "ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR", 1655, "Too many fields in \'%-
.192s\'" },
{ "ER_MAXVALUE_IN_VALUES_IN", 1656, "Cannot use MAXVALUE as value in VALUES
IN" },
{ "ER_TOO_MANY_VALUES_ERROR", 1657, "Cannot have more than one value for th
is type of %-.64s partitioning" },
{ "ER_ROW_SINGLE_PARTITION_FIELD_ERROR", 1658, "Row expressions in VALUES I
N only allowed for multi-field column partitioning" },
{ "ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD", 1659, "Field \'%-.192s\'
is of a not allowed type for this type of partitioning" },
{ "ER_PARTITION_FIELDS_TOO_LONG", 1660, "The total length of the partitioni
ng fields is too large" },
{ "ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE", 1661, "Cannot execute statement:
binlogging impossible since both row-incapable engines and statement-incapa
ble engines are involved." },
{ "ER_BINLOG_ROW_MODE_AND_STMT_ENGINE", 1662, "Cannot execute statement: bi
nlogging impossible since BINLOG_FORMAT = ROW and at least one table uses a
storage engine limited to statement-logging." },
{ "ER_BINLOG_UNSAFE_AND_STMT_ENGINE", 1663, "Cannot execute statement: binl
ogging of unsafe statement is impossible when storage engine is limited to
statement-logging and BINLOG_FORMAT = MIXED. Reason for unsafeness: %s" },
{ "ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE", 1664, "Cannot execute row inje
ction: binlogging impossible since at least one table uses a storage engine
limited to statement-logging." },
{ "ER_BINLOG_STMT_MODE_AND_ROW_ENGINE", 1665, "Cannot execute statement: bi
nlogging impossible since BINLOG_FORMAT = STATEMENT and at least one table
uses a storage engine limited to row-logging.%s" },
{ "ER_BINLOG_ROW_INJECTION_AND_STMT_MODE", 1666, "Cannot execute row inject
ion: binlogging impossible since BINLOG_FORMAT = STATEMENT." },
{ "ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE", 1667, "Cannot execu
te statement: binlogging impossible since more than one engine is involved
and at least one engine is self-logging." },
{ "ER_BINLOG_UNSAFE_LIMIT", 1668, "Statement uses a LIMIT clause. This is u
nsafe because the set of rows included cannot be predicted." },
{ "ER_BINLOG_UNSAFE_INSERT_DELAYED", 1669, "Statement uses INSERT DELAYED.
This is unsafe because the time when rows are inserted cannot be predicted.
" },
{ "ER_BINLOG_UNSAFE_SYSTEM_TABLE", 1670, "Statement uses the general_log, s
low_log or performance_schema table(s). This is unsafe because system table
s may differ on slave." },
{ "ER_BINLOG_UNSAFE_AUTOINC_COLUMNS", 1671, "Statement invokes a trigger or
a stored function that inserts into AUTO_INCREMENT column which is unsafe
to binlog in STATEMENT format because slave may execute it non-deterministi
cally." },
{ "ER_BINLOG_UNSAFE_UDF", 1672, "Statement uses a UDF. It cannot be determi
ned if the UDF will return the same value on slave." },
{ "ER_BINLOG_UNSAFE_SYSTEM_VARIABLE", 1673, "Statement uses a system variab
le whose value may differ on slave." },
{ "ER_BINLOG_UNSAFE_SYSTEM_FUNCTION", 1674, "Statement uses a system functi
on whose value may differ on slave." },
{ "ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS", 1675, "Non-transactional reads o
r writes are unsafe if they occur after transactional reads or writes insid
e a transaction." },
{ "ER_MESSAGE_AND_STATEMENT", 1676, "%s Statement: %s" },
{ "ER_SLAVE_CONVERSION_FAILED", 1677, "Column %d of table \'%-.192s.%-.192s
\' cannot be converted from type \'%-.32s\' to type \'%-.32s\'" },
{ "ER_SLAVE_CANT_CREATE_CONVERSION", 1678, "Can\'t create conversion table
for table \'%-.192s.%-.192s\'" },
{ "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT", 1679, "Cannot modi
fy @@session.binlog_format inside a transaction" },
{ "ER_PATH_LENGTH", 1680, "The path specified for %.64s is too long." },
{ "ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT", 1681, "The syntax \'%s\' is d
eprecated and will be removed in MySQL %s." },
{ "ER_WRONG_NATIVE_TABLE_STRUCTURE", 1682, "Native table \'%-.64s\'.\'%-.64
s\' has the wrong structure" },
{ "ER_WRONG_PERFSCHEMA_USAGE", 1683, "Invalid performance_schema usage." },
{ "ER_WARN_I_S_SKIPPED_TABLE", 1684, "Table \'%s\'.\'%s\' was skipped since
its definition is being modified by concurrent DDL statement" },
{ "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT", 1685, "Cannot modi
fy @@session.binlog_direct_non_transactional_updates inside a transaction"
},
{ "ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT", 1686, "Cannot change
the binlog direct flag inside a stored function or trigger" },
{ "ER_SPATIAL_MUST_HAVE_GEOM_COL", 1687, "A SPATIAL index may only contain
a geometrical type column" },
{ "ER_TOO_LONG_INDEX_COMMENT", 1688, "Comment for index \'%-.64s\' is too l
ong (max = %lu)" },
 End of changes. 1 change blocks. 
0 lines changed or deleted 0 lines changed or added


 mysqld_error.h   mysqld_error.h 
skipping to change at line 612 skipping to change at line 612
#define ER_BINLOG_LOGGING_IMPOSSIBLE 1598 #define ER_BINLOG_LOGGING_IMPOSSIBLE 1598
#define ER_VIEW_NO_CREATION_CTX 1599 #define ER_VIEW_NO_CREATION_CTX 1599
#define ER_VIEW_INVALID_CREATION_CTX 1600 #define ER_VIEW_INVALID_CREATION_CTX 1600
#define ER_SR_INVALID_CREATION_CTX 1601 #define ER_SR_INVALID_CREATION_CTX 1601
#define ER_TRG_CORRUPTED_FILE 1602 #define ER_TRG_CORRUPTED_FILE 1602
#define ER_TRG_NO_CREATION_CTX 1603 #define ER_TRG_NO_CREATION_CTX 1603
#define ER_TRG_INVALID_CREATION_CTX 1604 #define ER_TRG_INVALID_CREATION_CTX 1604
#define ER_EVENT_INVALID_CREATION_CTX 1605 #define ER_EVENT_INVALID_CREATION_CTX 1605
#define ER_TRG_CANT_OPEN_TABLE 1606 #define ER_TRG_CANT_OPEN_TABLE 1606
#define ER_CANT_CREATE_SROUTINE 1607 #define ER_CANT_CREATE_SROUTINE 1607
#define ER_SLAVE_AMBIGOUS_EXEC_MODE 1608 #define ER_NEVER_USED 1608
#define ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT 1609 #define ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT 1609
#define ER_SLAVE_CORRUPT_EVENT 1610 #define ER_SLAVE_CORRUPT_EVENT 1610
#define ER_LOAD_DATA_INVALID_COLUMN 1611 #define ER_LOAD_DATA_INVALID_COLUMN 1611
#define ER_LOG_PURGE_NO_FILE 1612 #define ER_LOG_PURGE_NO_FILE 1612
#define ER_XA_RBTIMEOUT 1613 #define ER_XA_RBTIMEOUT 1613
#define ER_XA_RBDEADLOCK 1614 #define ER_XA_RBDEADLOCK 1614
#define ER_NEED_REPREPARE 1615 #define ER_NEED_REPREPARE 1615
#define ER_DELAYED_NOT_SUPPORTED 1616 #define ER_DELAYED_NOT_SUPPORTED 1616
#define WARN_NO_MASTER_INFO 1617 #define WARN_NO_MASTER_INFO 1617
#define WARN_OPTION_IGNORED 1618 #define WARN_OPTION_IGNORED 1618
skipping to change at line 665 skipping to change at line 665
#define ER_QUERY_CACHE_DISABLED 1651 #define ER_QUERY_CACHE_DISABLED 1651
#define ER_SAME_NAME_PARTITION_FIELD 1652 #define ER_SAME_NAME_PARTITION_FIELD 1652
#define ER_PARTITION_COLUMN_LIST_ERROR 1653 #define ER_PARTITION_COLUMN_LIST_ERROR 1653
#define ER_WRONG_TYPE_COLUMN_VALUE_ERROR 1654 #define ER_WRONG_TYPE_COLUMN_VALUE_ERROR 1654
#define ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR 1655 #define ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR 1655
#define ER_MAXVALUE_IN_VALUES_IN 1656 #define ER_MAXVALUE_IN_VALUES_IN 1656
#define ER_TOO_MANY_VALUES_ERROR 1657 #define ER_TOO_MANY_VALUES_ERROR 1657
#define ER_ROW_SINGLE_PARTITION_FIELD_ERROR 1658 #define ER_ROW_SINGLE_PARTITION_FIELD_ERROR 1658
#define ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD 1659 #define ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD 1659
#define ER_PARTITION_FIELDS_TOO_LONG 1660 #define ER_PARTITION_FIELDS_TOO_LONG 1660
#define ER_SPATIAL_MUST_HAVE_GEOM_COL 1661 #define ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE 1661
#define ER_ERROR_LAST 1661 #define ER_BINLOG_ROW_MODE_AND_STMT_ENGINE 1662
#define ER_BINLOG_UNSAFE_AND_STMT_ENGINE 1663
#define ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE 1664
#define ER_BINLOG_STMT_MODE_AND_ROW_ENGINE 1665
#define ER_BINLOG_ROW_INJECTION_AND_STMT_MODE 1666
#define ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE 1667
#define ER_BINLOG_UNSAFE_LIMIT 1668
#define ER_BINLOG_UNSAFE_INSERT_DELAYED 1669
#define ER_BINLOG_UNSAFE_SYSTEM_TABLE 1670
#define ER_BINLOG_UNSAFE_AUTOINC_COLUMNS 1671
#define ER_BINLOG_UNSAFE_UDF 1672
#define ER_BINLOG_UNSAFE_SYSTEM_VARIABLE 1673
#define ER_BINLOG_UNSAFE_SYSTEM_FUNCTION 1674
#define ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS 1675
#define ER_MESSAGE_AND_STATEMENT 1676
#define ER_SLAVE_CONVERSION_FAILED 1677
#define ER_SLAVE_CANT_CREATE_CONVERSION 1678
#define ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT 1679
#define ER_PATH_LENGTH 1680
#define ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT 1681
#define ER_WRONG_NATIVE_TABLE_STRUCTURE 1682
#define ER_WRONG_PERFSCHEMA_USAGE 1683
#define ER_WARN_I_S_SKIPPED_TABLE 1684
#define ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT 1685
#define ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT 1686
#define ER_SPATIAL_MUST_HAVE_GEOM_COL 1687
#define ER_TOO_LONG_INDEX_COMMENT 1688
#define ER_ERROR_LAST 1688
 End of changes. 2 change blocks. 
1 lines changed or deleted 1 lines changed or added


 plugin.h   plugin.h 
skipping to change at line 21 skipping to change at line 21
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A */ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A */
#ifndef _my_plugin_h #ifndef _my_plugin_h
#define _my_plugin_h #define _my_plugin_h
/* /*
On Windows, exports from DLL need to be declared On Windows, exports from DLL need to be declared
*/ Also, plugin needs to be declared as extern "C" because MSVC
#if (defined(_WIN32) && defined(MYSQL_DYNAMIC_PLUGIN)) unlike other compilers, uses C++ mangling for variables not only
#define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport) for functions.
#else */
#if defined(_MSC_VER)
#if defined(MYSQL_DYNAMIC_PLUGIN)
#ifdef __cplusplus
#define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport)
#else
#define MYSQL_PLUGIN_EXPORT __declspec(dllexport)
#endif
#else /* MYSQL_DYNAMIC_PLUGIN */
#ifdef __cplusplus
#define MYSQL_PLUGIN_EXPORT extern "C"
#else
#define MYSQL_PLUGIN_EXPORT
#endif
#endif /*MYSQL_DYNAMIC_PLUGIN */
#else /*_MSC_VER */
#define MYSQL_PLUGIN_EXPORT #define MYSQL_PLUGIN_EXPORT
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
class THD; class THD;
class Item; class Item;
#define MYSQL_THD THD* #define MYSQL_THD THD*
#else #else
#define MYSQL_THD void* #define MYSQL_THD void*
#endif #endif
skipping to change at line 90 skipping to change at line 105
#define PLUGIN_LICENSE_BSD_STRING "BSD" #define PLUGIN_LICENSE_BSD_STRING "BSD"
/* /*
Macros for beginning and ending plugin declarations. Between Macros for beginning and ending plugin declarations. Between
mysql_declare_plugin and mysql_declare_plugin_end there should mysql_declare_plugin and mysql_declare_plugin_end there should
be a st_mysql_plugin struct for each plugin to be declared. be a st_mysql_plugin struct for each plugin to be declared.
*/ */
#ifndef MYSQL_DYNAMIC_PLUGIN #ifndef MYSQL_DYNAMIC_PLUGIN
#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \ #define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \
int VERSION= MYSQL_PLUGIN_INTERFACE_VERSION; MYSQL_PLUGIN_EXPORT int VERSION= MYSQL_PLUGIN_INTERFACE_VERSION;
\ \
int PSIZE= sizeof(struct st_mysql_plugin); MYSQL_PLUGIN_EXPORT int PSIZE= sizeof(struct st_mysql_plugin);
\ \
struct st_mysql_plugin DECLS[]= { MYSQL_PLUGIN_EXPORT struct st_mysql_plugin DECLS[]= {
#else #else
#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \ #define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \
MYSQL_PLUGIN_EXPORT int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTE RFACE_VERSION; \ MYSQL_PLUGIN_EXPORT int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTE RFACE_VERSION; \
MYSQL_PLUGIN_EXPORT int _mysql_sizeof_struct_st_plugin_= sizeof(struct st_m ysql_plugin); \ MYSQL_PLUGIN_EXPORT int _mysql_sizeof_struct_st_plugin_= sizeof(struct st_m ysql_plugin); \
MYSQL_PLUGIN_EXPORT struct st_mysql_plugin _mysql_plugin_declarations_[]= { MYSQL_PLUGIN_EXPORT struct st_mysql_plugin _mysql_plugin_declarations_[]= {
#endif #endif
#define mysql_declare_plugin(NAME) \ #define mysql_declare_plugin(NAME) \
__MYSQL_DECLARE_PLUGIN(NAME, \ __MYSQL_DECLARE_PLUGIN(NAME, \
builtin_ ## NAME ## _plugin_interface_version, \ builtin_ ## NAME ## _plugin_interface_version, \
skipping to change at line 399 skipping to change at line 414
int (*deinit)(void *);/* the function to invoke when plugin is unloaded * / int (*deinit)(void *);/* the function to invoke when plugin is unloaded * /
unsigned int version; /* plugin version (for SHOW PLUGINS) */ unsigned int version; /* plugin version (for SHOW PLUGINS) */
struct st_mysql_show_var *status_vars; struct st_mysql_show_var *status_vars;
struct st_mysql_sys_var **system_vars; struct st_mysql_sys_var **system_vars;
void * __reserved1; /* reserved for dependency checking */ void * __reserved1; /* reserved for dependency checking */
}; };
/************************************************************************* /*************************************************************************
API for Full-text parser plugin. (MYSQL_FTPARSER_PLUGIN) API for Full-text parser plugin. (MYSQL_FTPARSER_PLUGIN)
*/ */
#include "plugin_ftparser.h"
#define MYSQL_FTPARSER_INTERFACE_VERSION 0x0100 /*************************************************************************
API for Storage Engine plugin. (MYSQL_DAEMON_PLUGIN)
/* Parsing modes. Set in MYSQL_FTPARSER_PARAM::mode */
enum enum_ftparser_mode
{
/*
Fast and simple mode. This mode is used for indexing, and natural
language queries.
The parser is expected to return only those words that go into the
index. Stopwords or too short/long words should not be returned. The
'boolean_info' argument of mysql_add_word() does not have to be set.
*/
MYSQL_FTPARSER_SIMPLE_MODE= 0,
/*
Parse with stopwords mode. This mode is used in boolean searches for
"phrase matching."
The parser is not allowed to ignore words in this mode. Every word
should be returned, including stopwords and words that are too short
or long. The 'boolean_info' argument of mysql_add_word() does not
have to be set.
*/ */
MYSQL_FTPARSER_WITH_STOPWORDS= 1,
/*
Parse in boolean mode. This mode is used to parse a boolean query string
.
The parser should provide a valid MYSQL_FTPARSER_BOOLEAN_INFO /* handlertons of different MySQL releases are incompatible */
structure in the 'boolean_info' argument to mysql_add_word(). #define MYSQL_DAEMON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
Usually that means that the parser should recognize boolean operators
in the parsing stream and set appropriate fields in
MYSQL_FTPARSER_BOOLEAN_INFO structure accordingly. As for
MYSQL_FTPARSER_WITH_STOPWORDS mode, no word should be ignored.
Instead, use FT_TOKEN_STOPWORD for the token type of such a word.
*/
MYSQL_FTPARSER_FULL_BOOLEAN_INFO= 2
};
/* /*
Token types for boolean mode searching (used for the type member of Here we define only the descriptor structure, that is referred from
MYSQL_FTPARSER_BOOLEAN_INFO struct) st_mysql_plugin.
FT_TOKEN_EOF: End of data.
FT_TOKEN_WORD: Regular word.
FT_TOKEN_LEFT_PAREN: Left parenthesis (start of group/sub-expression).
FT_TOKEN_RIGHT_PAREN: Right parenthesis (end of group/sub-expression).
FT_TOKEN_STOPWORD: Stopword.
*/ */
enum enum_ft_token_type struct st_mysql_daemon
{ {
FT_TOKEN_EOF= 0, int interface_version;
FT_TOKEN_WORD= 1,
FT_TOKEN_LEFT_PAREN= 2,
FT_TOKEN_RIGHT_PAREN= 3,
FT_TOKEN_STOPWORD= 4
}; };
/* /*************************************************************************
This structure is used in boolean search mode only. It conveys API for I_S plugin. (MYSQL_INFORMATION_SCHEMA_PLUGIN)
boolean-mode metadata to the MySQL search engine for every word in
the search query. A valid instance of this structure must be filled
in by the plugin parser and passed as an argument in the call to
mysql_add_word (the callback function in the MYSQL_FTPARSER_PARAM
structure) when a query is parsed in boolean mode.
type: The token type. Should be one of the enum_ft_token_type values.
yesno: Whether the word must be present for a match to occur:
>0 Must be present
<0 Must not be present
0 Neither; the word is optional but its presence increases the relevan
ce
With the default settings of the ft_boolean_syntax system variable,
>0 corresponds to the '+' operator, <0 corrresponds to the '-' operator,
and 0 means neither operator was used.
weight_adjust: A weighting factor that determines how much a match
for the word counts. Positive values increase, negative - decrease the
relative word's importance in the query.
wasign: The sign of the word's weight in the query. If it's non-negative
the match for the word will increase document relevance, if it's
negative - decrease (the word becomes a "noise word", the less of it the
better).
trunc: Corresponds to the '*' operator in the default setting of the
ft_boolean_syntax system variable.
*/ */
typedef struct st_mysql_ftparser_boolean_info /* handlertons of different MySQL releases are incompatible */
{ #define MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
enum enum_ft_token_type type;
int yesno;
int weight_adjust;
char wasign;
char trunc;
/* These are parser state and must be removed. */
char prev;
char *quot;
} MYSQL_FTPARSER_BOOLEAN_INFO;
/*
The following flag means that buffer with a string (document, word)
may be overwritten by the caller before the end of the parsing (that is
before st_mysql_ftparser::deinit() call). If one needs the string
to survive between two successive calls of the parsing function, she
needs to save a copy of it. The flag may be set by MySQL before calling
st_mysql_ftparser::parse(), or it may be set by a plugin before calling
st_mysql_ftparser_param::mysql_parse() or
st_mysql_ftparser_param::mysql_add_word().
*/
#define MYSQL_FTFLAGS_NEED_COPY 1
/* /*
An argument of the full-text parser plugin. This structure is Here we define only the descriptor structure, that is referred from
filled in by MySQL server and passed to the parsing function of the st_mysql_plugin.
plugin as an in/out parameter.
mysql_parse: A pointer to the built-in parser implementation of the
server. It's set by the server and can be used by the parser plugin
to invoke the MySQL default parser. If plugin's role is to extract
textual data from .doc, .pdf or .xml content, it might extract
plaintext from the content, and then pass the text to the default
MySQL parser to be parsed.
mysql_add_word: A server callback to add a new word. When parsing
a document, the server sets this to point at a function that adds
the word to MySQL full-text index. When parsing a search query,
this function will add the new word to the list of words to search
for. The boolean_info argument can be NULL for all cases except
when mode is MYSQL_FTPARSER_FULL_BOOLEAN_INFO.
ftparser_state: A generic pointer. The plugin can set it to point
to information to be used internally for its own purposes.
mysql_ftparam: This is set by the server. It is used by MySQL functions
called via mysql_parse() and mysql_add_word() callback. The plugin
should not modify it.
cs: Information about the character set of the document or query string.
doc: A pointer to the document or query string to be parsed.
length: Length of the document or query string, in bytes.
flags: See MYSQL_FTFLAGS_* constants above.
mode: The parsing mode. With boolean operators, with stopwords, or
nothing. See enum_ftparser_mode above.
*/
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;
/*
Full-text parser descriptor.
interface_version is, e.g., MYSQL_FTPARSER_INTERFACE_VERSION.
The parsing, initialization, and deinitialization functions are
invoked per SQL statement for which the parser is used.
*/ */
struct st_mysql_ftparser struct st_mysql_information_schema
{ {
int interface_version; int interface_version;
int (*parse)(MYSQL_FTPARSER_PARAM *param);
int (*init)(MYSQL_FTPARSER_PARAM *param);
int (*deinit)(MYSQL_FTPARSER_PARAM *param);
}; };
/************************************************************************* /*************************************************************************
API for Storage Engine plugin. (MYSQL_DAEMON_PLUGIN)
*/
/* handlertons of different MySQL releases are incompatible */
#define MYSQL_DAEMON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
/*************************************************************************
API for I_S plugin. (MYSQL_INFORMATION_SCHEMA_PLUGIN)
*/
/* handlertons of different MySQL releases are incompatible */
#define MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
/*************************************************************************
API for Storage Engine plugin. (MYSQL_STORAGE_ENGINE_PLUGIN) API for Storage Engine plugin. (MYSQL_STORAGE_ENGINE_PLUGIN)
*/ */
/* handlertons of different MySQL releases are incompatible */ /* handlertons of different MySQL releases are incompatible */
#define MYSQL_HANDLERTON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8) #define MYSQL_HANDLERTON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
/* /*
The real API is in the sql/handler.h The real API is in the sql/handler.h
Here we define only the descriptor structure, that is referred from Here we define only the descriptor structure, that is referred from
st_mysql_plugin. st_mysql_plugin.
*/ */
struct st_mysql_storage_engine struct st_mysql_storage_engine
{ {
int interface_version; int interface_version;
}; };
struct handlerton; struct handlerton;
/* /*
Here we define only the descriptor structure, that is referred from
st_mysql_plugin.
*/
struct st_mysql_daemon
{
int interface_version;
};
/*
Here we define only the descriptor structure, that is referred from
st_mysql_plugin.
*/
struct st_mysql_information_schema
{
int interface_version;
};
/*
API for Replication plugin. (MYSQL_REPLICATION_PLUGIN) API for Replication plugin. (MYSQL_REPLICATION_PLUGIN)
*/ */
#define MYSQL_REPLICATION_INTERFACE_VERSION 0x0100 #define MYSQL_REPLICATION_INTERFACE_VERSION 0x0100
/** /**
Replication plugin descriptor Replication plugin descriptor
*/ */
struct Mysql_replication { struct Mysql_replication {
int interface_version; int interface_version;
}; };
/* /*************************************************************************
st_mysql_value struct for reading values from mysqld. st_mysql_value struct for reading values from mysqld.
Used by server variables framework to parse user-provided values. Used by server variables framework to parse user-provided values.
Will be used for arguments when implementing UDFs. Will be used for arguments when implementing UDFs.
Note that val_str() returns a string in temporary memory Note that val_str() returns a string in temporary memory
that will be freed at the end of statement. Copy the string that will be freed at the end of statement. Copy the string
if you need it to persist. if you need it to persist.
*/ */
#define MYSQL_VALUE_TYPE_STRING 0 #define MYSQL_VALUE_TYPE_STRING 0
#define MYSQL_VALUE_TYPE_REAL 1 #define MYSQL_VALUE_TYPE_REAL 1
#define MYSQL_VALUE_TYPE_INT 2 #define MYSQL_VALUE_TYPE_INT 2
struct st_mysql_value struct st_mysql_value
{ {
int (*value_type)(struct st_mysql_value *); int (*value_type)(struct st_mysql_value *);
const char *(*val_str)(struct st_mysql_value *, char *buffer, int *length ); const char *(*val_str)(struct st_mysql_value *, char *buffer, int *length );
int (*val_real)(struct st_mysql_value *, double *realbuf); int (*val_real)(struct st_mysql_value *, double *realbuf);
int (*val_int)(struct st_mysql_value *, long long *intbuf); int (*val_int)(struct st_mysql_value *, long long *intbuf);
int (*is_unsigned)(struct st_mysql_value *);
}; };
/************************************************************************* /*************************************************************************
Miscellaneous functions for plugin implementors Miscellaneous functions for plugin implementors
*/ */
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
 End of changes. 18 change blocks. 
212 lines changed or deleted 42 lines changed or added


 service_my_snprintf.h   service_my_snprintf.h 
skipping to change at line 56 skipping to change at line 56
'0' has the standard zero-padding semantics; '0' has the standard zero-padding semantics;
'-' is parsed, but silently ignored; '-' is parsed, but silently ignored;
'`' (backtick) is only supported for strings (%s) and means that the '`' (backtick) is only supported for strings (%s) and means that the
string will be quoted according to MySQL identifier quoting rules. string will be quoted according to MySQL identifier quoting rules.
Both <width> and <precision> can be specified as numbers or '*'. Both <width> and <precision> can be specified as numbers or '*'.
<length modifier> can be 'l', 'll', or 'z'. <length modifier> can be 'l', 'll', or 'z'.
Supported formats are 's' (null pointer is accepted, printed as Supported formats are 's' (null pointer is accepted, printed as
"(null)"), 'b' (extension, see below), 'c', 'd', 'u', 'x', "(null)"), 'b' (extension, see below), 'c', 'd', 'u', 'x', 'o',
'X', 'p' (works as 0x%x). 'X', 'p' (works as 0x%x).
Standard syntax for positional arguments $n is supported. Standard syntax for positional arguments $n is supported.
Extensions: Extensions:
Flag '`' (backtick): see above. Flag '`' (backtick): see above.
Format 'b': binary buffer, prints exactly <precision> bytes from the Format 'b': binary buffer, prints exactly <precision> bytes from the
argument, without stopping at '\0'. argument, without stopping at '\0'.
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 sslopt-longopts.h   sslopt-longopts.h 
skipping to change at line 22 skipping to change at line 22
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A */ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A */
#ifdef HAVE_OPENSSL #ifdef HAVE_OPENSSL
{"ssl", OPT_SSL_SSL, {"ssl", OPT_SSL_SSL,
"Enable SSL for connection (automatically enabled with other flags). Dis "Enable SSL for connection (automatically enabled with other flags).",
able with --skip-ssl.", (uchar **) &opt_use_ssl, (uchar **) &opt_use_ssl, 0, GET_BOOL, OPT_ARG, 0,
(uchar **) &opt_use_ssl, (uchar **) &opt_use_ssl, 0, GET_BOOL, NO_ARG, 0, 0, 0,
0, 0,
0, 0, 0}, 0, 0, 0},
{"ssl-ca", OPT_SSL_CA, {"ssl-ca", OPT_SSL_CA,
"CA file in PEM format (check OpenSSL docs, implies --ssl).", "CA file in PEM format (check OpenSSL docs, implies --ssl).",
(uchar **) &opt_ssl_ca, (uchar **) &opt_ssl_ca, 0, GET_STR, REQUIRED_ARG , (uchar **) &opt_ssl_ca, (uchar **) &opt_ssl_ca, 0, GET_STR, REQUIRED_ARG ,
0, 0, 0, 0, 0, 0}, 0, 0, 0, 0, 0, 0},
{"ssl-capath", OPT_SSL_CAPATH, {"ssl-capath", OPT_SSL_CAPATH,
"CA directory (check OpenSSL docs, implies --ssl).", "CA directory (check OpenSSL docs, implies --ssl).",
(uchar **) &opt_ssl_capath, (uchar **) &opt_ssl_capath, 0, GET_STR, REQU IRED_ARG, (uchar **) &opt_ssl_capath, (uchar **) &opt_ssl_capath, 0, GET_STR, REQU IRED_ARG,
0, 0, 0, 0, 0, 0}, 0, 0, 0, 0, 0, 0},
{"ssl-cert", OPT_SSL_CERT, "X509 cert in PEM format (implies --ssl).", {"ssl-cert", OPT_SSL_CERT, "X509 cert in PEM format (implies --ssl).",
skipping to change at line 46 skipping to change at line 46
{"ssl-cipher", OPT_SSL_CIPHER, "SSL cipher to use (implies --ssl).", {"ssl-cipher", OPT_SSL_CIPHER, "SSL cipher to use (implies --ssl).",
(uchar **) &opt_ssl_cipher, (uchar **) &opt_ssl_cipher, 0, GET_STR, REQU IRED_ARG, (uchar **) &opt_ssl_cipher, (uchar **) &opt_ssl_cipher, 0, GET_STR, REQU IRED_ARG,
0, 0, 0, 0, 0, 0}, 0, 0, 0, 0, 0, 0},
{"ssl-key", OPT_SSL_KEY, "X509 key in PEM format (implies --ssl).", {"ssl-key", OPT_SSL_KEY, "X509 key in PEM format (implies --ssl).",
(uchar **) &opt_ssl_key, (uchar **) &opt_ssl_key, 0, GET_STR, REQUIRED_A RG, (uchar **) &opt_ssl_key, (uchar **) &opt_ssl_key, 0, GET_STR, REQUIRED_A RG,
0, 0, 0, 0, 0, 0}, 0, 0, 0, 0, 0, 0},
#ifdef MYSQL_CLIENT #ifdef MYSQL_CLIENT
{"ssl-verify-server-cert", OPT_SSL_VERIFY_SERVER_CERT, {"ssl-verify-server-cert", OPT_SSL_VERIFY_SERVER_CERT,
"Verify server's \"Common Name\" in its cert against hostname used when connecting. This option is disabled by default.", "Verify server's \"Common Name\" in its cert against hostname used when connecting. This option is disabled by default.",
(uchar **) &opt_ssl_verify_server_cert, (uchar **) &opt_ssl_verify_serve r_cert, (uchar **) &opt_ssl_verify_server_cert, (uchar **) &opt_ssl_verify_serve r_cert,
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, 0, GET_BOOL, OPT_ARG, 0, 0, 0, 0, 0, 0},
#endif #endif
#endif /* HAVE_OPENSSL */ #endif /* HAVE_OPENSSL */
#endif /* SSLOPT_LONGOPTS_INCLUDED */ #endif /* SSLOPT_LONGOPTS_INCLUDED */
 End of changes. 2 change blocks. 
5 lines changed or deleted 4 lines changed or added


 typelib.h   typelib.h 
skipping to change at line 38 skipping to change at line 38
extern my_ulonglong find_typeset(char *x, TYPELIB *typelib,int *error_posit ion); extern my_ulonglong find_typeset(char *x, TYPELIB *typelib,int *error_posit ion);
extern int find_type_or_exit(const char *x, TYPELIB *typelib, extern int find_type_or_exit(const char *x, TYPELIB *typelib,
const char *option); const char *option);
extern int find_type(char *x, const TYPELIB *typelib, unsigned int full_nam e); extern int find_type(char *x, const TYPELIB *typelib, unsigned int full_nam e);
extern void make_type(char *to,unsigned int nr,TYPELIB *typelib); extern void make_type(char *to,unsigned int nr,TYPELIB *typelib);
extern const char *get_type(TYPELIB *typelib,unsigned int nr); extern const char *get_type(TYPELIB *typelib,unsigned int nr);
extern TYPELIB *copy_typelib(MEM_ROOT *root, TYPELIB *from); extern TYPELIB *copy_typelib(MEM_ROOT *root, TYPELIB *from);
extern TYPELIB sql_protocol_typelib; extern TYPELIB sql_protocol_typelib;
my_ulonglong find_set_from_flags(const TYPELIB *lib, uint default_name,
my_ulonglong cur_set, my_ulonglong default_se
t,
const char *str, uint length,
char **err_pos, uint *err_len);
#endif /* _typelib_h */ #endif /* _typelib_h */
 End of changes. 1 change blocks. 
0 lines changed or deleted 6 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/