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 | |||