mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 10:31:54 +01:00
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/my/mysql-5.0
This commit is contained in:
commit
e3111b31d1
13 changed files with 212 additions and 118 deletions
37
BUILD/compile-pentium-icc
Executable file
37
BUILD/compile-pentium-icc
Executable file
|
@ -0,0 +1,37 @@
|
||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
path=`dirname $0`
|
||||||
|
. "$path/SETUP.sh"
|
||||||
|
|
||||||
|
# Note that we can't use ccache with icc as the generated .deps file will
|
||||||
|
# then contain wrong information
|
||||||
|
CC=icc
|
||||||
|
CXX=icpc
|
||||||
|
CXXLD="$CXX -static-libcxa"
|
||||||
|
export CC CXX
|
||||||
|
|
||||||
|
|
||||||
|
extra_flags="$pentium_cflags $debug_cflags $max_cflags -USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_purify -DMYSQL_SERVER_SUFFIX=-valgrind-max"
|
||||||
|
|
||||||
|
# Disable following warnings as these are generated by header files:
|
||||||
|
# 161 unrecognized pragma
|
||||||
|
# 444 destructor for base class xxx is not virtual
|
||||||
|
# 279 controlling expression is constant
|
||||||
|
# 810 conversion from ulonglong to ulong with cast
|
||||||
|
# 981 operands are evaluated in unspecified order
|
||||||
|
# 1292 warning for unknown 'attribute' options
|
||||||
|
# 1469 "xxx" clobber ignored
|
||||||
|
# 1572 floating-point equality and inequality comparisons are unreliable
|
||||||
|
|
||||||
|
# In C++
|
||||||
|
# 869 parameter "xxx" was never referenced
|
||||||
|
# (Problem with virtual functions)
|
||||||
|
# 874 support for placement delete is disabled
|
||||||
|
|
||||||
|
c_warnings=""
|
||||||
|
cxx_warnings=""
|
||||||
|
extra_flags="-O3 -unroll2 -ip -mp -no-gcc -restrict"
|
||||||
|
base_cxxflags="-fno-exceptions -fno-rtti"
|
||||||
|
extra_configs="$pentium_configs $static_link"
|
||||||
|
|
||||||
|
. "$path/FINISH.sh"
|
34
BUILD/compile-pentium-icc-valgrind-max
Executable file
34
BUILD/compile-pentium-icc-valgrind-max
Executable file
|
@ -0,0 +1,34 @@
|
||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
path=`dirname $0`
|
||||||
|
. "$path/SETUP.sh"
|
||||||
|
|
||||||
|
# Note that we can't use ccache with icc as the generated .deps file will
|
||||||
|
# then contain wrong information
|
||||||
|
CC=icc
|
||||||
|
CXX=icpc
|
||||||
|
export CC CXX
|
||||||
|
|
||||||
|
extra_flags="$pentium_cflags $debug_cflags $max_cflags -USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_purify -DMYSQL_SERVER_SUFFIX=-valgrind-max"
|
||||||
|
|
||||||
|
# Disable following warnings as these are generated by header files:
|
||||||
|
# 161 unrecognized pragma
|
||||||
|
# 444 destructor for base class xxx is not virtual
|
||||||
|
# 279 controlling expression is constant
|
||||||
|
# 810 conversion from ulonglong to ulong with cast
|
||||||
|
# 981 operands are evaluated in unspecified order
|
||||||
|
# 1292 warning for unknown 'attribute' options
|
||||||
|
# 1469 "xxx" clobber ignored
|
||||||
|
# 1572 floating-point equality and inequality comparisons are unreliable
|
||||||
|
|
||||||
|
# In C++
|
||||||
|
# 869 parameter "xxx" was never referenced
|
||||||
|
# (Problem with virtual functions)
|
||||||
|
# 874 support for placement delete is disabled
|
||||||
|
|
||||||
|
c_warnings="-Wall -Wcheck -wd161,444,279,810,981,1292,1469,1572"
|
||||||
|
cxx_warnings="$c_warnings -wd869,874"
|
||||||
|
base_cxxflags="-fno-exceptions -fno-rtti"
|
||||||
|
extra_configs="$pentium_configs $debug_configs"
|
||||||
|
|
||||||
|
. "$path/FINISH.sh"
|
|
@ -38,7 +38,7 @@ AC_LANG_PUSH(C++)
|
||||||
if test "$ac_cv_prog_gxx" = "yes"
|
if test "$ac_cv_prog_gxx" = "yes"
|
||||||
then
|
then
|
||||||
# Add -Werror, remove -fbranch-probabilities (Bug #268)
|
# Add -Werror, remove -fbranch-probabilities (Bug #268)
|
||||||
CXXFLAGS=`echo $CXXFLAGS -Werror | sed 's/-fbranch-probabilities//'`
|
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed -e 's/-fbranch-probabilities//; s/-Wall//; s/-Wcheck//'`
|
||||||
fi
|
fi
|
||||||
mysql_cv_btype_last_arg_accept=none
|
mysql_cv_btype_last_arg_accept=none
|
||||||
[AC_TRY_COMPILE([#if defined(inline)
|
[AC_TRY_COMPILE([#if defined(inline)
|
||||||
|
@ -98,7 +98,7 @@ AC_LANG_PUSH(C++)
|
||||||
if test "$ac_cv_prog_gxx" = "yes"
|
if test "$ac_cv_prog_gxx" = "yes"
|
||||||
then
|
then
|
||||||
# Add -Werror, remove -fbranch-probabilities (Bug #268)
|
# Add -Werror, remove -fbranch-probabilities (Bug #268)
|
||||||
CXXFLAGS=`echo $CXXFLAGS -Werror | sed 's/-fbranch-probabilities//'`
|
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed -e 's/-fbranch-probabilities//; s/-Wall//; s/-Wcheck//'`
|
||||||
fi
|
fi
|
||||||
mysql_cv_btype_struct_rlimit=none
|
mysql_cv_btype_struct_rlimit=none
|
||||||
[AC_TRY_COMPILE([#if defined(inline)
|
[AC_TRY_COMPILE([#if defined(inline)
|
||||||
|
|
|
@ -1965,9 +1965,12 @@ AC_LANG_CPLUSPLUS
|
||||||
# with respect to ANSI C++
|
# with respect to ANSI C++
|
||||||
# We also remove the -fbranch-probabilities option as this will give warnings
|
# We also remove the -fbranch-probabilities option as this will give warnings
|
||||||
# about not profiled code, which confuses configure
|
# about not profiled code, which confuses configure
|
||||||
|
# We also must remove -W and -Wcheck which on icc produces warnings that
|
||||||
|
# we don't want to catch with -Werror
|
||||||
|
|
||||||
if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
|
if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
|
||||||
then
|
then
|
||||||
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed 's/-fbranch-probabilities//'`
|
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed -e 's/-fbranch-probabilities//; s/-Wall//; s/-Wcheck//'`
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_TRY_COMPILE(
|
AC_TRY_COMPILE(
|
||||||
|
@ -2002,7 +2005,7 @@ AC_LANG_SAVE
|
||||||
AC_LANG_CPLUSPLUS
|
AC_LANG_CPLUSPLUS
|
||||||
if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
|
if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
|
||||||
then
|
then
|
||||||
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed 's/-fbranch-probabilities//'`
|
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed -e 's/-fbranch-probabilities//; s/-Wall//; s/-Wcheck//'`
|
||||||
fi
|
fi
|
||||||
AC_TRY_COMPILE(
|
AC_TRY_COMPILE(
|
||||||
[#undef inline
|
[#undef inline
|
||||||
|
@ -2035,7 +2038,7 @@ AC_LANG_SAVE
|
||||||
AC_LANG_CPLUSPLUS
|
AC_LANG_CPLUSPLUS
|
||||||
if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
|
if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
|
||||||
then
|
then
|
||||||
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed 's/-fbranch-probabilities//'`
|
CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed -e 's/-fbranch-probabilities//; s/-Wall//; s/-Wcheck//'`
|
||||||
fi
|
fi
|
||||||
AC_TRY_COMPILE(
|
AC_TRY_COMPILE(
|
||||||
[#undef inline
|
[#undef inline
|
||||||
|
|
|
@ -63,7 +63,7 @@ typedef struct st_pointer_array { /* when using array-strings */
|
||||||
#define LAST_CHAR_CODE 259
|
#define LAST_CHAR_CODE 259
|
||||||
|
|
||||||
typedef struct st_replace {
|
typedef struct st_replace {
|
||||||
bool found;
|
my_bool found;
|
||||||
struct st_replace *next[256];
|
struct st_replace *next[256];
|
||||||
} REPLACE;
|
} REPLACE;
|
||||||
|
|
||||||
|
@ -80,19 +80,18 @@ typedef struct st_replace_found {
|
||||||
|
|
||||||
/* functions defined in this file */
|
/* functions defined in this file */
|
||||||
|
|
||||||
extern int main(int argc,char * *argv);
|
|
||||||
static int static_get_options(int *argc,char * * *argv);
|
static int static_get_options(int *argc,char * * *argv);
|
||||||
static int get_replace_strings(int *argc,char * * *argv,
|
static int get_replace_strings(int *argc,char * * *argv,
|
||||||
POINTER_ARRAY *from_array,
|
POINTER_ARRAY *from_array,
|
||||||
POINTER_ARRAY *to_array);
|
POINTER_ARRAY *to_array);
|
||||||
int insert_pointer_name(POINTER_ARRAY *pa, my_string name);
|
static int insert_pointer_name(POINTER_ARRAY *pa, my_string name);
|
||||||
void free_pointer_array(POINTER_ARRAY *pa);
|
static void free_pointer_array(POINTER_ARRAY *pa);
|
||||||
static int convert_pipe(REPLACE *,FILE *,FILE *);
|
static int convert_pipe(REPLACE *,FILE *,FILE *);
|
||||||
static int convert_file(REPLACE *, my_string);
|
static int convert_file(REPLACE *, my_string);
|
||||||
REPLACE *init_replace(my_string *from, my_string *to,uint count, my_string
|
static REPLACE *init_replace(my_string *from, my_string *to,uint count,
|
||||||
word_end_chars);
|
my_string word_end_chars);
|
||||||
uint replace_strings(REPLACE *rep, my_string *start,uint *max_length,
|
static uint replace_strings(REPLACE *rep, my_string *start,uint *max_length,
|
||||||
my_string from);
|
my_string from);
|
||||||
static int initialize_buffer(void);
|
static int initialize_buffer(void);
|
||||||
static void reset_buffer(void);
|
static void reset_buffer(void);
|
||||||
static void free_buffer(void);
|
static void free_buffer(void);
|
||||||
|
@ -101,9 +100,7 @@ static int silent=0,verbose=0,updated=0;
|
||||||
|
|
||||||
/* The main program */
|
/* The main program */
|
||||||
|
|
||||||
int main(argc,argv)
|
int main(int argc, char *argv[])
|
||||||
int argc;
|
|
||||||
char *argv[];
|
|
||||||
{
|
{
|
||||||
int i,error;
|
int i,error;
|
||||||
char word_end_chars[256],*pos;
|
char word_end_chars[256],*pos;
|
||||||
|
@ -118,7 +115,7 @@ char *argv[];
|
||||||
|
|
||||||
for (i=1,pos=word_end_chars ; i < 256 ; i++)
|
for (i=1,pos=word_end_chars ; i < 256 ; i++)
|
||||||
if (my_isspace(&my_charset_latin1,i))
|
if (my_isspace(&my_charset_latin1,i))
|
||||||
*pos++=i;
|
*pos++= (char) i;
|
||||||
*pos=0;
|
*pos=0;
|
||||||
if (!(replace=init_replace((char**) from.typelib.type_names,
|
if (!(replace=init_replace((char**) from.typelib.type_names,
|
||||||
(char**) to.typelib.type_names,
|
(char**) to.typelib.type_names,
|
||||||
|
@ -153,7 +150,7 @@ static int static_get_options(argc,argv)
|
||||||
register int *argc;
|
register int *argc;
|
||||||
register char **argv[];
|
register char **argv[];
|
||||||
{
|
{
|
||||||
int help,version,opt;
|
int help,version;
|
||||||
char *pos;
|
char *pos;
|
||||||
|
|
||||||
silent=verbose=help=0;
|
silent=verbose=help=0;
|
||||||
|
@ -162,7 +159,7 @@ register char **argv[];
|
||||||
while (*++pos)
|
while (*++pos)
|
||||||
{
|
{
|
||||||
version=0;
|
version=0;
|
||||||
switch((opt= *pos)) {
|
switch((*pos)) {
|
||||||
case 's':
|
case 's':
|
||||||
silent=1;
|
silent=1;
|
||||||
break;
|
break;
|
||||||
|
@ -249,7 +246,7 @@ POINTER_ARRAY *from_array,*to_array;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int insert_pointer_name(reg1 POINTER_ARRAY *pa,my_string name)
|
static int insert_pointer_name(reg1 POINTER_ARRAY *pa,my_string name)
|
||||||
{
|
{
|
||||||
uint i,length,old_count;
|
uint i,length,old_count;
|
||||||
byte *new_pos;
|
byte *new_pos;
|
||||||
|
@ -323,8 +320,7 @@ int insert_pointer_name(reg1 POINTER_ARRAY *pa,my_string name)
|
||||||
|
|
||||||
/* free pointer array */
|
/* free pointer array */
|
||||||
|
|
||||||
void free_pointer_array(pa)
|
static void free_pointer_array(reg1 POINTER_ARRAY *pa)
|
||||||
reg1 POINTER_ARRAY *pa;
|
|
||||||
{
|
{
|
||||||
if (pa->typelib.count)
|
if (pa->typelib.count)
|
||||||
{
|
{
|
||||||
|
@ -382,9 +378,9 @@ static void or_bits(REP_SET *to,REP_SET *from);
|
||||||
static void copy_bits(REP_SET *to,REP_SET *from);
|
static void copy_bits(REP_SET *to,REP_SET *from);
|
||||||
static int cmp_bits(REP_SET *set1,REP_SET *set2);
|
static int cmp_bits(REP_SET *set1,REP_SET *set2);
|
||||||
static int get_next_bit(REP_SET *set,uint lastpos);
|
static int get_next_bit(REP_SET *set,uint lastpos);
|
||||||
static int find_set(REP_SETS *sets,REP_SET *find);
|
static short find_set(REP_SETS *sets,REP_SET *find);
|
||||||
static int find_found(FOUND_SET *found_set,uint table_offset,
|
static short find_found(FOUND_SET *found_set,uint table_offset,
|
||||||
int found_offset);
|
int found_offset);
|
||||||
static uint start_at_word(my_string pos);
|
static uint start_at_word(my_string pos);
|
||||||
static uint end_of_word(my_string pos);
|
static uint end_of_word(my_string pos);
|
||||||
static uint replace_len(my_string pos);
|
static uint replace_len(my_string pos);
|
||||||
|
@ -394,11 +390,12 @@ static uint found_sets=0;
|
||||||
|
|
||||||
/* Init a replace structure for further calls */
|
/* Init a replace structure for further calls */
|
||||||
|
|
||||||
REPLACE *init_replace(my_string *from, my_string *to,uint count,
|
static REPLACE *init_replace(my_string *from, my_string *to,uint count,
|
||||||
my_string word_end_chars)
|
my_string word_end_chars)
|
||||||
{
|
{
|
||||||
uint i,j,states,set_nr,len,result_len,max_length,found_end,bits_set,bit_nr;
|
uint i,j,states,set_nr,len,result_len,max_length,found_end,bits_set,bit_nr;
|
||||||
int used_sets,chr,default_state;
|
int used_sets,chr;
|
||||||
|
short default_state;
|
||||||
char used_chars[LAST_CHAR_CODE],is_word_end[256];
|
char used_chars[LAST_CHAR_CODE],is_word_end[256];
|
||||||
my_string pos,to_pos,*to_array;
|
my_string pos,to_pos,*to_array;
|
||||||
REP_SETS sets;
|
REP_SETS sets;
|
||||||
|
@ -561,7 +558,7 @@ REPLACE *init_replace(my_string *from, my_string *to,uint count,
|
||||||
for (chr= 0 ; chr < 256 ; chr++)
|
for (chr= 0 ; chr < 256 ; chr++)
|
||||||
{
|
{
|
||||||
if (! used_chars[chr])
|
if (! used_chars[chr])
|
||||||
set->next[chr]= chr ? default_state : -1;
|
set->next[chr]= (short) (chr ? default_state : -1);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
new_set=make_new_set(&sets);
|
new_set=make_new_set(&sets);
|
||||||
|
@ -652,7 +649,7 @@ REPLACE *init_replace(my_string *from, my_string *to,uint count,
|
||||||
for (i=1 ; i <= found_sets ; i++)
|
for (i=1 ; i <= found_sets ; i++)
|
||||||
{
|
{
|
||||||
pos=from[found_set[i-1].table_offset];
|
pos=from[found_set[i-1].table_offset];
|
||||||
rep_str[i].found= !bcmp(pos,"\\^",3) ? 2 : 1;
|
rep_str[i].found= (my_bool) (!bcmp(pos,"\\^",3) ? 2 : 1);
|
||||||
rep_str[i].replace_string=to_array[found_set[i-1].table_offset];
|
rep_str[i].replace_string=to_array[found_set[i-1].table_offset];
|
||||||
rep_str[i].to_offset=found_set[i-1].found_offset-start_at_word(pos);
|
rep_str[i].to_offset=found_set[i-1].found_offset-start_at_word(pos);
|
||||||
rep_str[i].from_offset=found_set[i-1].found_offset-replace_len(pos)+
|
rep_str[i].from_offset=found_set[i-1].found_offset-replace_len(pos)+
|
||||||
|
@ -812,7 +809,7 @@ static int get_next_bit(REP_SET *set,uint lastpos)
|
||||||
free given set, else put in given set in sets and return it's
|
free given set, else put in given set in sets and return it's
|
||||||
position */
|
position */
|
||||||
|
|
||||||
static int find_set(REP_SETS *sets,REP_SET *find)
|
static short find_set(REP_SETS *sets,REP_SET *find)
|
||||||
{
|
{
|
||||||
uint i;
|
uint i;
|
||||||
for (i=0 ; i < sets->count-1 ; i++)
|
for (i=0 ; i < sets->count-1 ; i++)
|
||||||
|
@ -820,30 +817,33 @@ static int find_set(REP_SETS *sets,REP_SET *find)
|
||||||
if (!cmp_bits(sets->set+i,find))
|
if (!cmp_bits(sets->set+i,find))
|
||||||
{
|
{
|
||||||
free_last_set(sets);
|
free_last_set(sets);
|
||||||
return i;
|
return (short) i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return i; /* return new postion */
|
return (short) i; /* return new postion */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* find if there is a found_set with same table_offset & found_offset
|
|
||||||
If there is return offset to it, else add new offset and return pos.
|
|
||||||
Pos returned is -offset-2 in found_set_structure because it's is
|
|
||||||
saved in set->next and set->next[] >= 0 points to next set and
|
|
||||||
set->next[] == -1 is reserved for end without replaces.
|
|
||||||
*/
|
|
||||||
|
|
||||||
static int find_found(FOUND_SET *found_set,uint table_offset, int found_offset)
|
/*
|
||||||
|
find if there is a found_set with same table_offset & found_offset
|
||||||
|
If there is return offset to it, else add new offset and return pos.
|
||||||
|
Pos returned is -offset-2 in found_set_structure because it's is
|
||||||
|
saved in set->next and set->next[] >= 0 points to next set and
|
||||||
|
set->next[] == -1 is reserved for end without replaces.
|
||||||
|
*/
|
||||||
|
|
||||||
|
static short find_found(FOUND_SET *found_set,uint table_offset,
|
||||||
|
int found_offset)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i=0 ; (uint) i < found_sets ; i++)
|
for (i=0 ; (uint) i < found_sets ; i++)
|
||||||
if (found_set[i].table_offset == table_offset &&
|
if (found_set[i].table_offset == table_offset &&
|
||||||
found_set[i].found_offset == found_offset)
|
found_set[i].found_offset == found_offset)
|
||||||
return -i-2;
|
return (short) (-i-2);
|
||||||
found_set[i].table_offset=table_offset;
|
found_set[i].table_offset=table_offset;
|
||||||
found_set[i].found_offset=found_offset;
|
found_set[i].found_offset=found_offset;
|
||||||
found_sets++;
|
found_sets++;
|
||||||
return -i-2; /* return new postion */
|
return (short) (-i-2); /* return new postion */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return 1 if regexp starts with \b or ends with \b*/
|
/* Return 1 if regexp starts with \b or ends with \b*/
|
||||||
|
@ -878,7 +878,8 @@ static uint replace_len(my_string str)
|
||||||
|
|
||||||
/* The actual loop */
|
/* The actual loop */
|
||||||
|
|
||||||
uint replace_strings(REPLACE *rep, my_string *start,uint *max_length, my_string from)
|
static uint replace_strings(REPLACE *rep, my_string *start,uint *max_length,
|
||||||
|
my_string from)
|
||||||
{
|
{
|
||||||
reg1 REPLACE *rep_pos;
|
reg1 REPLACE *rep_pos;
|
||||||
reg2 REPLACE_STRING *rep_str;
|
reg2 REPLACE_STRING *rep_str;
|
||||||
|
|
|
@ -39,9 +39,9 @@ extern void _db_pargs_(uint _line_,const char *keyword);
|
||||||
extern void _db_doprnt_ _VARARGS((const char *format,...));
|
extern void _db_doprnt_ _VARARGS((const char *format,...));
|
||||||
extern void _db_dump_(uint _line_,const char *keyword,const char *memory,
|
extern void _db_dump_(uint _line_,const char *keyword,const char *memory,
|
||||||
uint length);
|
uint length);
|
||||||
extern void _db_output_();
|
extern void _db_output_(void);
|
||||||
extern void _db_lock_file();
|
extern void _db_lock_file(void);
|
||||||
extern void _db_unlock_file();
|
extern void _db_unlock_file(void);
|
||||||
|
|
||||||
#define DBUG_ENTER(a) const char *_db_func_, *_db_file_; uint _db_level_; \
|
#define DBUG_ENTER(a) const char *_db_func_, *_db_file_; uint _db_level_; \
|
||||||
char **_db_framep_; \
|
char **_db_framep_; \
|
||||||
|
|
|
@ -300,7 +300,7 @@ void print_hash_map(const char *name)
|
||||||
char *cur;
|
char *cur;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
printf("uchar %s[%d]= {\n",name,size_hash_map);
|
printf("static uchar %s[%d]= {\n",name,size_hash_map);
|
||||||
for (i=0, cur= hash_map; i<size_hash_map; i++, cur++)
|
for (i=0, cur= hash_map; i<size_hash_map; i++, cur++)
|
||||||
{
|
{
|
||||||
switch(i%4){
|
switch(i%4){
|
||||||
|
@ -459,11 +459,11 @@ int main(int argc,char **argv)
|
||||||
generate_find_structs();
|
generate_find_structs();
|
||||||
print_find_structs();
|
print_find_structs();
|
||||||
|
|
||||||
printf("\nunsigned int sql_functions_max_len=%d;\n",max_len);
|
printf("\static unsigned int sql_functions_max_len=%d;\n",max_len);
|
||||||
printf("\nunsigned int symbols_max_len=%d;\n\n",max_len2);
|
printf("\static unsigned int symbols_max_len=%d;\n\n",max_len2);
|
||||||
|
|
||||||
printf("\
|
printf("\
|
||||||
inline SYMBOL *get_hash_symbol(const char *s,\n \
|
static inline SYMBOL *get_hash_symbol(const char *s,\n\
|
||||||
unsigned int len,bool function)\n\
|
unsigned int len,bool function)\n\
|
||||||
{\n\
|
{\n\
|
||||||
register uchar *hash_map;\n\
|
register uchar *hash_map;\n\
|
||||||
|
|
|
@ -1113,7 +1113,8 @@ extern pthread_mutex_t LOCK_mysql_create_db,LOCK_Acl,LOCK_open,
|
||||||
LOCK_error_log, LOCK_delayed_insert, LOCK_uuid_generator,
|
LOCK_error_log, LOCK_delayed_insert, LOCK_uuid_generator,
|
||||||
LOCK_delayed_status, LOCK_delayed_create, LOCK_crypt, LOCK_timezone,
|
LOCK_delayed_status, LOCK_delayed_create, LOCK_crypt, LOCK_timezone,
|
||||||
LOCK_slave_list, LOCK_active_mi, LOCK_manager, LOCK_global_read_lock,
|
LOCK_slave_list, LOCK_active_mi, LOCK_manager, LOCK_global_read_lock,
|
||||||
LOCK_global_system_variables, LOCK_user_conn;
|
LOCK_global_system_variables, LOCK_user_conn,
|
||||||
|
LOCK_bytes_sent, LOCK_bytes_received;
|
||||||
extern rw_lock_t LOCK_grant, LOCK_sys_init_connect, LOCK_sys_init_slave;
|
extern rw_lock_t LOCK_grant, LOCK_sys_init_connect, LOCK_sys_init_slave;
|
||||||
extern pthread_cond_t COND_refresh, COND_thread_count, COND_manager;
|
extern pthread_cond_t COND_refresh, COND_thread_count, COND_manager;
|
||||||
extern pthread_attr_t connection_attrib;
|
extern pthread_attr_t connection_attrib;
|
||||||
|
|
132
sql/mysqld.cc
132
sql/mysqld.cc
|
@ -223,7 +223,7 @@ extern "C" int gethostname(char *name, int namelen);
|
||||||
/* Constants */
|
/* Constants */
|
||||||
|
|
||||||
const char *show_comp_option_name[]= {"YES", "NO", "DISABLED"};
|
const char *show_comp_option_name[]= {"YES", "NO", "DISABLED"};
|
||||||
const char *sql_mode_names[] =
|
static const char *sql_mode_names[] =
|
||||||
{
|
{
|
||||||
"REAL_AS_FLOAT", "PIPES_AS_CONCAT", "ANSI_QUOTES", "IGNORE_SPACE",
|
"REAL_AS_FLOAT", "PIPES_AS_CONCAT", "ANSI_QUOTES", "IGNORE_SPACE",
|
||||||
"?", "ONLY_FULL_GROUP_BY", "NO_UNSIGNED_SUBTRACTION",
|
"?", "ONLY_FULL_GROUP_BY", "NO_UNSIGNED_SUBTRACTION",
|
||||||
|
@ -237,10 +237,15 @@ const char *sql_mode_names[] =
|
||||||
};
|
};
|
||||||
TYPELIB sql_mode_typelib= { array_elements(sql_mode_names)-1,"",
|
TYPELIB sql_mode_typelib= { array_elements(sql_mode_names)-1,"",
|
||||||
sql_mode_names, NULL };
|
sql_mode_names, NULL };
|
||||||
const char *tc_heuristic_recover_names[]= { "COMMIT", "ROLLBACK", NullS };
|
static const char *tc_heuristic_recover_names[]=
|
||||||
TYPELIB tc_heuristic_recover_typelib=
|
{
|
||||||
{ array_elements(tc_heuristic_recover_names)-1,"",
|
"COMMIT", "ROLLBACK", NullS
|
||||||
tc_heuristic_recover_names, NULL };
|
};
|
||||||
|
static TYPELIB tc_heuristic_recover_typelib=
|
||||||
|
{
|
||||||
|
array_elements(tc_heuristic_recover_names)-1,"",
|
||||||
|
tc_heuristic_recover_names, NULL
|
||||||
|
};
|
||||||
const char *first_keyword= "first", *binary_keyword= "BINARY";
|
const char *first_keyword= "first", *binary_keyword= "BINARY";
|
||||||
const char *my_localhost= "localhost", *delayed_user= "DELAYED";
|
const char *my_localhost= "localhost", *delayed_user= "DELAYED";
|
||||||
#if SIZEOF_OFF_T > 4 && defined(BIG_TABLES)
|
#if SIZEOF_OFF_T > 4 && defined(BIG_TABLES)
|
||||||
|
@ -254,8 +259,7 @@ bool opt_large_files= sizeof(my_off_t) > 4;
|
||||||
/*
|
/*
|
||||||
Used with --help for detailed option
|
Used with --help for detailed option
|
||||||
*/
|
*/
|
||||||
bool opt_help= 0;
|
static bool opt_help= 0, opt_verbose= 0;
|
||||||
bool opt_verbose= 0;
|
|
||||||
|
|
||||||
arg_cmp_func Arg_comparator::comparator_matrix[5][2] =
|
arg_cmp_func Arg_comparator::comparator_matrix[5][2] =
|
||||||
{{&Arg_comparator::compare_string, &Arg_comparator::compare_e_string},
|
{{&Arg_comparator::compare_string, &Arg_comparator::compare_e_string},
|
||||||
|
@ -264,27 +268,55 @@ arg_cmp_func Arg_comparator::comparator_matrix[5][2] =
|
||||||
{&Arg_comparator::compare_row, &Arg_comparator::compare_e_row},
|
{&Arg_comparator::compare_row, &Arg_comparator::compare_e_row},
|
||||||
{&Arg_comparator::compare_decimal, &Arg_comparator::compare_e_decimal}};
|
{&Arg_comparator::compare_decimal, &Arg_comparator::compare_e_decimal}};
|
||||||
|
|
||||||
|
/* static variables */
|
||||||
|
|
||||||
|
static bool lower_case_table_names_used= 0;
|
||||||
|
static bool volatile select_thread_in_use, signal_thread_in_use;
|
||||||
|
static bool volatile ready_to_exit;
|
||||||
|
static my_bool opt_debugging= 0, opt_external_locking= 0, opt_console= 0;
|
||||||
|
static my_bool opt_bdb, opt_isam, opt_ndbcluster;
|
||||||
|
static my_bool opt_short_log_format= 0;
|
||||||
|
static my_bool opt_log_queries_not_using_indexes= 0;
|
||||||
|
static uint kill_cached_threads, wake_thread;
|
||||||
|
static ulong killed_threads, thread_created;
|
||||||
|
static ulong max_used_connections;
|
||||||
|
static ulong my_bind_addr; /* the address we bind to */
|
||||||
|
static volatile ulong cached_thread_count= 0;
|
||||||
|
static const char *sql_mode_str= "OFF";
|
||||||
|
static char *mysqld_user, *mysqld_chroot, *log_error_file_ptr;
|
||||||
|
static char *opt_init_slave, *language_ptr, *opt_init_connect;
|
||||||
|
static char *default_character_set_name;
|
||||||
|
static char *my_bind_addr_str;
|
||||||
|
static char *default_collation_name;
|
||||||
|
static char mysql_data_home_buff[2];
|
||||||
|
static struct passwd *user_info;
|
||||||
|
static I_List<THD> thread_cache;
|
||||||
|
|
||||||
|
static pthread_cond_t COND_thread_cache, COND_flush_thread_cache;
|
||||||
|
|
||||||
|
#ifdef HAVE_BERKLEY_DB
|
||||||
|
static my_bool opt_sync_bdb_logs;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Global variables */
|
/* Global variables */
|
||||||
|
|
||||||
bool opt_log, opt_update_log, opt_bin_log, opt_slow_log;
|
bool opt_log, opt_update_log, opt_bin_log, opt_slow_log;
|
||||||
bool opt_error_log= IF_WIN(1,0);
|
bool opt_error_log= IF_WIN(1,0);
|
||||||
bool opt_disable_networking=0, opt_skip_show_db=0;
|
bool opt_disable_networking=0, opt_skip_show_db=0;
|
||||||
bool lower_case_table_names_used= 0;
|
|
||||||
bool server_id_supplied = 0;
|
bool server_id_supplied = 0;
|
||||||
bool opt_endinfo,using_udf_functions, locked_in_memory;
|
bool opt_endinfo,using_udf_functions, locked_in_memory;
|
||||||
bool opt_using_transactions, using_update_log;
|
bool opt_using_transactions, using_update_log;
|
||||||
bool volatile abort_loop, select_thread_in_use, signal_thread_in_use;
|
bool volatile abort_loop;
|
||||||
bool volatile ready_to_exit, shutdown_in_progress, grant_option;
|
bool volatile shutdown_in_progress, grant_option;
|
||||||
|
|
||||||
my_bool opt_skip_slave_start = 0; // If set, slave is not autostarted
|
my_bool opt_skip_slave_start = 0; // If set, slave is not autostarted
|
||||||
my_bool opt_reckless_slave = 0;
|
my_bool opt_reckless_slave = 0;
|
||||||
my_bool opt_enable_named_pipe= 0, opt_debugging= 0;
|
my_bool opt_enable_named_pipe= 0;
|
||||||
my_bool opt_local_infile, opt_external_locking, opt_slave_compressed_protocol;
|
my_bool opt_local_infile, opt_slave_compressed_protocol;
|
||||||
my_bool opt_safe_user_create = 0, opt_no_mix_types = 0;
|
my_bool opt_safe_user_create = 0, opt_no_mix_types = 0;
|
||||||
my_bool opt_show_slave_auth_info, opt_sql_bin_update = 0;
|
my_bool opt_show_slave_auth_info, opt_sql_bin_update = 0;
|
||||||
my_bool opt_log_slave_updates= 0;
|
my_bool opt_log_slave_updates= 0;
|
||||||
my_bool opt_console= 0, opt_bdb, opt_innodb, opt_isam, opt_ndbcluster;
|
my_bool opt_innodb;
|
||||||
#ifdef HAVE_NDBCLUSTER_DB
|
#ifdef HAVE_NDBCLUSTER_DB
|
||||||
const char *opt_ndbcluster_connectstring= 0;
|
const char *opt_ndbcluster_connectstring= 0;
|
||||||
const char *opt_ndb_connectstring= 0;
|
const char *opt_ndb_connectstring= 0;
|
||||||
|
@ -296,10 +328,8 @@ const char *opt_ndb_mgmd;
|
||||||
ulong opt_ndb_nodeid;
|
ulong opt_ndb_nodeid;
|
||||||
#endif
|
#endif
|
||||||
my_bool opt_readonly, use_temp_pool, relay_log_purge;
|
my_bool opt_readonly, use_temp_pool, relay_log_purge;
|
||||||
my_bool opt_sync_bdb_logs, opt_sync_frm, opt_allow_suspicious_udfs;
|
my_bool opt_sync_frm, opt_allow_suspicious_udfs;
|
||||||
my_bool opt_secure_auth= 0;
|
my_bool opt_secure_auth= 0;
|
||||||
my_bool opt_short_log_format= 0;
|
|
||||||
my_bool opt_log_queries_not_using_indexes= 0;
|
|
||||||
my_bool lower_case_file_system= 0;
|
my_bool lower_case_file_system= 0;
|
||||||
my_bool opt_large_pages= 0;
|
my_bool opt_large_pages= 0;
|
||||||
uint opt_large_page_size= 0;
|
uint opt_large_page_size= 0;
|
||||||
|
@ -319,7 +349,7 @@ uint mysqld_port, test_flags, select_errors, dropping_tables, ha_open_options;
|
||||||
uint delay_key_write_options, protocol_version;
|
uint delay_key_write_options, protocol_version;
|
||||||
uint lower_case_table_names;
|
uint lower_case_table_names;
|
||||||
uint tc_heuristic_recover= 0;
|
uint tc_heuristic_recover= 0;
|
||||||
uint volatile thread_count, thread_running, kill_cached_threads, wake_thread;
|
uint volatile thread_count, thread_running;
|
||||||
ulong back_log, connect_timeout, concurrency;
|
ulong back_log, connect_timeout, concurrency;
|
||||||
ulong server_id, thd_startup_options;
|
ulong server_id, thd_startup_options;
|
||||||
ulong table_cache_size, thread_stack, thread_stack_min, what_to_log;
|
ulong table_cache_size, thread_stack, thread_stack_min, what_to_log;
|
||||||
|
@ -330,21 +360,18 @@ ulong thread_cache_size=0, binlog_cache_size=0, max_binlog_cache_size=0;
|
||||||
ulong query_cache_size=0;
|
ulong query_cache_size=0;
|
||||||
ulong refresh_version, flush_version; /* Increments on each reload */
|
ulong refresh_version, flush_version; /* Increments on each reload */
|
||||||
query_id_t query_id;
|
query_id_t query_id;
|
||||||
ulong aborted_threads, killed_threads, aborted_connects;
|
ulong aborted_threads, aborted_connects;
|
||||||
ulong delayed_insert_timeout, delayed_insert_limit, delayed_queue_size;
|
ulong delayed_insert_timeout, delayed_insert_limit, delayed_queue_size;
|
||||||
ulong delayed_insert_threads, delayed_insert_writes, delayed_rows_in_use;
|
ulong delayed_insert_threads, delayed_insert_writes, delayed_rows_in_use;
|
||||||
ulong delayed_insert_errors,flush_time, thread_created;
|
ulong delayed_insert_errors,flush_time;
|
||||||
ulong specialflag=0;
|
ulong specialflag=0;
|
||||||
ulong binlog_cache_use= 0, binlog_cache_disk_use= 0;
|
ulong binlog_cache_use= 0, binlog_cache_disk_use= 0;
|
||||||
ulong max_connections,max_used_connections,
|
ulong max_connections, max_connect_errors;
|
||||||
max_connect_errors;
|
|
||||||
uint max_user_connections= 0;
|
uint max_user_connections= 0;
|
||||||
ulong thread_id=1L,current_pid;
|
ulong thread_id=1L,current_pid;
|
||||||
ulong slow_launch_threads = 0, sync_binlog_period;
|
ulong slow_launch_threads = 0, sync_binlog_period;
|
||||||
ulong expire_logs_days = 0;
|
ulong expire_logs_days = 0;
|
||||||
ulong rpl_recovery_rank=0;
|
ulong rpl_recovery_rank=0;
|
||||||
ulong my_bind_addr; /* the address we bind to */
|
|
||||||
volatile ulong cached_thread_count= 0;
|
|
||||||
double last_query_cost= -1; /* -1 denotes that no query was compiled yet */
|
double last_query_cost= -1; /* -1 denotes that no query was compiled yet */
|
||||||
|
|
||||||
double log_10[32]; /* 10 potences */
|
double log_10[32]; /* 10 potences */
|
||||||
|
@ -353,24 +380,18 @@ time_t start_time;
|
||||||
char mysql_home[FN_REFLEN], pidfile_name[FN_REFLEN], system_time_zone[30];
|
char mysql_home[FN_REFLEN], pidfile_name[FN_REFLEN], system_time_zone[30];
|
||||||
char *default_tz_name;
|
char *default_tz_name;
|
||||||
char log_error_file[FN_REFLEN], glob_hostname[FN_REFLEN];
|
char log_error_file[FN_REFLEN], glob_hostname[FN_REFLEN];
|
||||||
char* log_error_file_ptr= log_error_file;
|
|
||||||
char mysql_real_data_home[FN_REFLEN],
|
char mysql_real_data_home[FN_REFLEN],
|
||||||
language[FN_REFLEN], reg_ext[FN_EXTLEN], mysql_charsets_dir[FN_REFLEN],
|
language[FN_REFLEN], reg_ext[FN_EXTLEN], mysql_charsets_dir[FN_REFLEN],
|
||||||
*mysqld_user,*mysqld_chroot, *opt_init_file,
|
*opt_init_file, *opt_tc_log_file,
|
||||||
*opt_init_connect, *opt_init_slave, *opt_tc_log_file,
|
|
||||||
def_ft_boolean_syntax[sizeof(ft_boolean_syntax)];
|
def_ft_boolean_syntax[sizeof(ft_boolean_syntax)];
|
||||||
|
|
||||||
const char *opt_date_time_formats[3];
|
const char *opt_date_time_formats[3];
|
||||||
|
|
||||||
char *language_ptr, *default_collation_name, *default_character_set_name;
|
char *mysql_data_home= mysql_real_data_home;
|
||||||
char mysql_data_home_buff[2], *mysql_data_home=mysql_real_data_home;
|
|
||||||
struct passwd *user_info;
|
|
||||||
char server_version[SERVER_VERSION_LENGTH];
|
char server_version[SERVER_VERSION_LENGTH];
|
||||||
char *mysqld_unix_port, *opt_mysql_tmpdir;
|
char *mysqld_unix_port, *opt_mysql_tmpdir;
|
||||||
char *my_bind_addr_str;
|
|
||||||
const char **errmesg; /* Error messages */
|
const char **errmesg; /* Error messages */
|
||||||
const char *myisam_recover_options_str="OFF";
|
const char *myisam_recover_options_str="OFF";
|
||||||
const char *sql_mode_str="OFF";
|
|
||||||
/* name of reference on left espression in rewritten IN subquery */
|
/* name of reference on left espression in rewritten IN subquery */
|
||||||
const char *in_left_expr_name= "<left expr>";
|
const char *in_left_expr_name= "<left expr>";
|
||||||
/* name of additional condition */
|
/* name of additional condition */
|
||||||
|
@ -392,7 +413,7 @@ I_List<i_string_pair> replicate_rewrite_db;
|
||||||
I_List<i_string> replicate_do_db, replicate_ignore_db;
|
I_List<i_string> replicate_do_db, replicate_ignore_db;
|
||||||
// allow the user to tell us which db to replicate and which to ignore
|
// allow the user to tell us which db to replicate and which to ignore
|
||||||
I_List<i_string> binlog_do_db, binlog_ignore_db;
|
I_List<i_string> binlog_do_db, binlog_ignore_db;
|
||||||
I_List<THD> threads,thread_cache;
|
I_List<THD> threads;
|
||||||
I_List<NAMED_LIST> key_caches;
|
I_List<NAMED_LIST> key_caches;
|
||||||
|
|
||||||
struct system_variables global_system_variables;
|
struct system_variables global_system_variables;
|
||||||
|
@ -425,9 +446,7 @@ pthread_mutex_t LOCK_mysql_create_db, LOCK_Acl, LOCK_open, LOCK_thread_count,
|
||||||
LOCK_global_system_variables,
|
LOCK_global_system_variables,
|
||||||
LOCK_user_conn, LOCK_slave_list, LOCK_active_mi;
|
LOCK_user_conn, LOCK_slave_list, LOCK_active_mi;
|
||||||
rw_lock_t LOCK_grant, LOCK_sys_init_connect, LOCK_sys_init_slave;
|
rw_lock_t LOCK_grant, LOCK_sys_init_connect, LOCK_sys_init_slave;
|
||||||
pthread_cond_t COND_refresh,COND_thread_count, COND_slave_stopped,
|
pthread_cond_t COND_refresh,COND_thread_count;
|
||||||
COND_slave_start;
|
|
||||||
pthread_cond_t COND_thread_cache,COND_flush_thread_cache;
|
|
||||||
pthread_t signal_thread;
|
pthread_t signal_thread;
|
||||||
pthread_attr_t connection_attrib;
|
pthread_attr_t connection_attrib;
|
||||||
|
|
||||||
|
@ -502,7 +521,7 @@ static const char* default_dbug_option;
|
||||||
char *libwrapName= NULL;
|
char *libwrapName= NULL;
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_QUERY_CACHE
|
#ifdef HAVE_QUERY_CACHE
|
||||||
ulong query_cache_limit= 0;
|
static ulong query_cache_limit= 0;
|
||||||
ulong query_cache_min_res_unit= QUERY_CACHE_MIN_RESULT_DATA_SIZE;
|
ulong query_cache_min_res_unit= QUERY_CACHE_MIN_RESULT_DATA_SIZE;
|
||||||
Query_cache query_cache;
|
Query_cache query_cache;
|
||||||
#endif
|
#endif
|
||||||
|
@ -522,7 +541,7 @@ struct st_VioSSLAcceptorFd *ssl_acceptor_fd;
|
||||||
/* Function declarations */
|
/* Function declarations */
|
||||||
|
|
||||||
static void start_signal_handler(void);
|
static void start_signal_handler(void);
|
||||||
extern "C" pthread_handler_decl(signal_hand, arg);
|
static pthread_handler_decl(signal_hand, arg);
|
||||||
static void mysql_init_variables(void);
|
static void mysql_init_variables(void);
|
||||||
static void get_options(int argc,char **argv);
|
static void get_options(int argc,char **argv);
|
||||||
static void set_server_version(void);
|
static void set_server_version(void);
|
||||||
|
@ -558,8 +577,6 @@ static void close_connections(void)
|
||||||
#ifdef EXTRA_DEBUG
|
#ifdef EXTRA_DEBUG
|
||||||
int count=0;
|
int count=0;
|
||||||
#endif
|
#endif
|
||||||
THD *thd= current_thd;
|
|
||||||
|
|
||||||
DBUG_ENTER("close_connections");
|
DBUG_ENTER("close_connections");
|
||||||
|
|
||||||
/* Clear thread cache */
|
/* Clear thread cache */
|
||||||
|
@ -1916,12 +1933,12 @@ the problem, but since we have already crashed, something is definitely wrong\n\
|
||||||
and this may fail.\n\n");
|
and this may fail.\n\n");
|
||||||
fprintf(stderr, "key_buffer_size=%lu\n",
|
fprintf(stderr, "key_buffer_size=%lu\n",
|
||||||
(ulong) dflt_key_cache->key_cache_mem_size);
|
(ulong) dflt_key_cache->key_cache_mem_size);
|
||||||
fprintf(stderr, "read_buffer_size=%ld\n", global_system_variables.read_buff_size);
|
fprintf(stderr, "read_buffer_size=%ld\n", (long) global_system_variables.read_buff_size);
|
||||||
fprintf(stderr, "max_used_connections=%ld\n", max_used_connections);
|
fprintf(stderr, "max_used_connections=%lu\n", max_used_connections);
|
||||||
fprintf(stderr, "max_connections=%ld\n", max_connections);
|
fprintf(stderr, "max_connections=%lu\n", max_connections);
|
||||||
fprintf(stderr, "threads_connected=%d\n", thread_count);
|
fprintf(stderr, "threads_connected=%u\n", thread_count);
|
||||||
fprintf(stderr, "It is possible that mysqld could use up to \n\
|
fprintf(stderr, "It is possible that mysqld could use up to \n\
|
||||||
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = %ld K\n\
|
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = %lu K\n\
|
||||||
bytes of memory\n", ((ulong) dflt_key_cache->key_cache_mem_size +
|
bytes of memory\n", ((ulong) dflt_key_cache->key_cache_mem_size +
|
||||||
(global_system_variables.read_buff_size +
|
(global_system_variables.read_buff_size +
|
||||||
global_system_variables.sortbuff_size) *
|
global_system_variables.sortbuff_size) *
|
||||||
|
@ -1952,7 +1969,7 @@ the thread stack. Please read http://www.mysql.com/doc/en/Linux.html\n\n",
|
||||||
fprintf(stderr, "Trying to get some variables.\n\
|
fprintf(stderr, "Trying to get some variables.\n\
|
||||||
Some pointers may be invalid and cause the dump to abort...\n");
|
Some pointers may be invalid and cause the dump to abort...\n");
|
||||||
safe_print_str("thd->query", thd->query, 1024);
|
safe_print_str("thd->query", thd->query, 1024);
|
||||||
fprintf(stderr, "thd->thread_id=%ld\n", thd->thread_id);
|
fprintf(stderr, "thd->thread_id=%lu\n", (ulong) thd->thread_id);
|
||||||
}
|
}
|
||||||
fprintf(stderr, "\
|
fprintf(stderr, "\
|
||||||
The manual page at http://www.mysql.com/doc/en/Crashing.html contains\n\
|
The manual page at http://www.mysql.com/doc/en/Crashing.html contains\n\
|
||||||
|
@ -2098,7 +2115,7 @@ static void start_signal_handler(void)
|
||||||
/* This threads handles all signals and alarms */
|
/* This threads handles all signals and alarms */
|
||||||
|
|
||||||
/* ARGSUSED */
|
/* ARGSUSED */
|
||||||
extern "C" void *signal_hand(void *arg __attribute__((unused)))
|
static void *signal_hand(void *arg __attribute__((unused)))
|
||||||
{
|
{
|
||||||
sigset_t set;
|
sigset_t set;
|
||||||
int sig;
|
int sig;
|
||||||
|
@ -2238,7 +2255,7 @@ static void check_data_home(const char *path)
|
||||||
|
|
||||||
|
|
||||||
/* ARGSUSED */
|
/* ARGSUSED */
|
||||||
extern "C" int my_message_sql(uint error, const char *str, myf MyFlags)
|
static int my_message_sql(uint error, const char *str, myf MyFlags)
|
||||||
{
|
{
|
||||||
THD *thd;
|
THD *thd;
|
||||||
DBUG_ENTER("my_message_sql");
|
DBUG_ENTER("my_message_sql");
|
||||||
|
@ -2359,7 +2376,7 @@ extern "C" pthread_handler_decl(handle_shutdown,arg)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
const char *load_default_groups[]= {
|
static const char *load_default_groups[]= {
|
||||||
#ifdef HAVE_NDBCLUSTER_DB
|
#ifdef HAVE_NDBCLUSTER_DB
|
||||||
"mysql_cluster",
|
"mysql_cluster",
|
||||||
#endif
|
#endif
|
||||||
|
@ -2370,6 +2387,7 @@ static const int load_default_groups_sz=
|
||||||
sizeof(load_default_groups)/sizeof(load_default_groups[0]);
|
sizeof(load_default_groups)/sizeof(load_default_groups[0]);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Initialize one of the global date/time format variables
|
Initialize one of the global date/time format variables
|
||||||
|
|
||||||
|
@ -2387,8 +2405,8 @@ sizeof(load_default_groups)/sizeof(load_default_groups[0]);
|
||||||
1 error
|
1 error
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool init_global_datetime_format(timestamp_type format_type,
|
static bool init_global_datetime_format(timestamp_type format_type,
|
||||||
DATE_TIME_FORMAT **var_ptr)
|
DATE_TIME_FORMAT **var_ptr)
|
||||||
{
|
{
|
||||||
/* Get command line option */
|
/* Get command line option */
|
||||||
const char *str= opt_date_time_formats[format_type];
|
const char *str= opt_date_time_formats[format_type];
|
||||||
|
@ -4349,7 +4367,6 @@ Disable with --skip-bdb (will save memory).",
|
||||||
NO_ARG, 0, 0, 0, 0, 0, 0},
|
NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"bdb-no-sync", OPT_BDB_NOSYNC,
|
{"bdb-no-sync", OPT_BDB_NOSYNC,
|
||||||
"This option is deprecated, use --skip-sync-bdb-logs instead",
|
"This option is deprecated, use --skip-sync-bdb-logs instead",
|
||||||
// (gptr*) &opt_sync_bdb_logs, (gptr*) &opt_sync_bdb_logs, 0, GET_BOOL,
|
|
||||||
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||||
{"bdb-shared-data", OPT_BDB_SHARED,
|
{"bdb-shared-data", OPT_BDB_SHARED,
|
||||||
"Start Berkeley DB in multi-process mode.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0,
|
"Start Berkeley DB in multi-process mode.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0,
|
||||||
|
@ -4571,7 +4588,7 @@ Disable with --skip-innodb-doublewrite.", (gptr*) &innobase_use_doublewrite,
|
||||||
{"isam", OPT_ISAM, "Obsolete. ISAM storage engine is no longer supported.",
|
{"isam", OPT_ISAM, "Obsolete. ISAM storage engine is no longer supported.",
|
||||||
(gptr*) &opt_isam, (gptr*) &opt_isam, 0, GET_BOOL, NO_ARG, 0, 0, 0,
|
(gptr*) &opt_isam, (gptr*) &opt_isam, 0, GET_BOOL, NO_ARG, 0, 0, 0,
|
||||||
0, 0, 0},
|
0, 0, 0},
|
||||||
{"language", 'L',
|
{"language", 'L',
|
||||||
"Client error messages in given language. May be given as a full path.",
|
"Client error messages in given language. May be given as a full path.",
|
||||||
(gptr*) &language_ptr, (gptr*) &language_ptr, 0, GET_STR, REQUIRED_ARG,
|
(gptr*) &language_ptr, (gptr*) &language_ptr, 0, GET_STR, REQUIRED_ARG,
|
||||||
0, 0, 0, 0, 0, 0},
|
0, 0, 0, 0, 0, 0},
|
||||||
|
@ -5795,11 +5812,6 @@ static void print_version(void)
|
||||||
server_version,SYSTEM_TYPE,MACHINE_TYPE, MYSQL_COMPILATION_COMMENT);
|
server_version,SYSTEM_TYPE,MACHINE_TYPE, MYSQL_COMPILATION_COMMENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void use_help(void)
|
|
||||||
{
|
|
||||||
print_version();
|
|
||||||
printf("Use '--help' or '--no-defaults --help' for a list of available options\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void usage(void)
|
static void usage(void)
|
||||||
{
|
{
|
||||||
|
@ -6096,7 +6108,7 @@ static void mysql_init_variables(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
extern "C" my_bool
|
static my_bool
|
||||||
get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
||||||
char *argument)
|
char *argument)
|
||||||
{
|
{
|
||||||
|
@ -6623,7 +6635,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
||||||
}
|
}
|
||||||
/* Initiates DEBUG - but no debugging here ! */
|
/* Initiates DEBUG - but no debugging here ! */
|
||||||
|
|
||||||
extern "C" gptr *
|
static gptr *
|
||||||
mysql_getopt_value(const char *keyname, uint key_length,
|
mysql_getopt_value(const char *keyname, uint key_length,
|
||||||
const struct my_option *option)
|
const struct my_option *option)
|
||||||
{
|
{
|
||||||
|
@ -6652,7 +6664,7 @@ mysql_getopt_value(const char *keyname, uint key_length,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void option_error_reporter(enum loglevel level, const char *format, ...)
|
static void option_error_reporter(enum loglevel level, const char *format, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, format);
|
va_start(args, format);
|
||||||
|
|
|
@ -173,6 +173,9 @@ public:
|
||||||
static void operator delete(void *ptr, void *buffer)
|
static void operator delete(void *ptr, void *buffer)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
static void operator delete(void *buffer)
|
||||||
|
{}
|
||||||
|
|
||||||
static String bad_geometry_data;
|
static String bad_geometry_data;
|
||||||
|
|
||||||
enum wkbType
|
enum wkbType
|
||||||
|
|
|
@ -3115,6 +3115,7 @@ void grant_free(void)
|
||||||
grant_option = FALSE;
|
grant_option = FALSE;
|
||||||
hash_free(&column_priv_hash);
|
hash_free(&column_priv_hash);
|
||||||
hash_free(&proc_priv_hash);
|
hash_free(&proc_priv_hash);
|
||||||
|
hash_free(&func_priv_hash);
|
||||||
free_root(&memex,MYF(0));
|
free_root(&memex,MYF(0));
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,8 @@ pthread_key(LEX*,THR_LEX);
|
||||||
used when comparing keywords
|
used when comparing keywords
|
||||||
*/
|
*/
|
||||||
|
|
||||||
uchar to_upper_lex[] = {
|
static uchar to_upper_lex[]=
|
||||||
|
{
|
||||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
|
||||||
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
|
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
|
||||||
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
|
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
|
||||||
|
@ -1530,8 +1531,8 @@ void st_select_lex::print_order(String *str, ORDER *order)
|
||||||
if (order->counter_used)
|
if (order->counter_used)
|
||||||
{
|
{
|
||||||
char buffer[20];
|
char buffer[20];
|
||||||
my_snprintf(buffer, 20, "%u", order->counter);
|
uint length= my_snprintf(buffer, 20, "%d", order->counter);
|
||||||
str->append(buffer);
|
str->append(buffer, length);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
(*order->item)->print(str);
|
(*order->item)->print(str);
|
||||||
|
|
|
@ -898,10 +898,11 @@ struct st_lex_local: public st_lex
|
||||||
{ /* Never called */ }
|
{ /* Never called */ }
|
||||||
};
|
};
|
||||||
|
|
||||||
void lex_init(void);
|
extern void lex_init(void);
|
||||||
void lex_free(void);
|
extern void lex_free(void);
|
||||||
void lex_start(THD *thd, uchar *buf,uint length);
|
extern void lex_start(THD *thd, uchar *buf,uint length);
|
||||||
void lex_end(LEX *lex);
|
extern void lex_end(LEX *lex);
|
||||||
|
extern int yylex(void *arg, void *yythd);
|
||||||
|
|
||||||
extern pthread_key(LEX*,THR_LEX);
|
extern pthread_key(LEX*,THR_LEX);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue