Commit 5e4af7e5 authored by joreland@mysql.com's avatar joreland@mysql.com

Merge mysql.com:/home/jonas/src/mysql-4.1-ndb

into mysql.com:/home/jonas/src/wl1671
parents aa599d17 f254d9f1
......@@ -110,7 +110,7 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=xilink6.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_release\dbug.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib /nologo /subsystem:console /debug /machine:I386
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib /nologo /subsystem:console /debug /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Wsock32.lib ..\lib_release\vio.lib ..\lib_release\isam.lib ..\lib_release\merge.lib ..\lib_release\myisam.lib ..\lib_release\myisammrg.lib ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\regex.lib ..\lib_release\heap.lib ..\lib_release\innodb.lib ..\lib_release\zlib.lib /nologo /subsystem:console /map /machine:I386 /out:"../client_release/mysqld-nt.exe"
# SUBTRACT LINK32 /pdb:none /debug
......
......@@ -2661,6 +2661,9 @@ AC_SUBST(netware_dir)
AC_SUBST(linked_netware_sources)
AM_CONDITIONAL(HAVE_NETWARE, test "$netware_dir" = "netware")
# Ensure that table handlers gets all modifications to CFLAGS/CXXFLAGS
export CC CXX CFLAGS CXXFLAGS LD LDFLAGS AR
if test "$with_server" = "yes" -o "$THREAD_SAFE_CLIENT" != "no"
then
AC_DEFINE(THREAD)
......
......@@ -57,6 +57,10 @@ extern "C" {
#undef HAVE_CRYPT
#endif /* HAVE_OPENSSL */
/* Configure can't detect this because it uses AC_TRY_RUN */
#undef HAVE_COMPRESS
#define HAVE_COMPRESS
/* include the old function apis */
#define USE_OLD_FUNCTIONS 1
......
......@@ -225,7 +225,7 @@ extern long strtol(const char *str, char **ptr, int base);
extern ulong strtoul(const char *str, char **ptr, int base);
#endif
extern char *int2str(long val, char *dst, int radix, char 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 *str2int(const char *src,int radix,long lower,long upper,
long *val);
......
......@@ -1740,7 +1740,7 @@ os_file_pread(
os_n_file_reads++;
#ifdef HAVE_PREAD
#if defined(HAVE_PREAD) && !defined(HAVE_BROKEN_PREAD)
os_mutex_enter(os_file_count_mutex);
os_file_n_pending_preads++;
os_mutex_exit(os_file_count_mutex);
......@@ -1815,7 +1815,7 @@ os_file_pwrite(
os_n_file_writes++;
#ifdef HAVE_PWRITE
#if defined(HAVE_PWRITE) && !defined(HAVE_BROKEN_PREAD)
os_mutex_enter(os_file_count_mutex);
os_file_n_pending_pwrites++;
os_mutex_exit(os_file_count_mutex);
......
......@@ -421,7 +421,7 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, byte *query,
}
/* returns 1 if str0 ~= /\<str1\>/ */
/* returns 1 if str0 ~= /\bstr1\b/ */
static int _ftb_strstr(const byte *s0, const byte *e0,
const byte *s1, const byte *e1,
CHARSET_INFO *cs)
......
......@@ -400,7 +400,7 @@ ERROR 42000: Variable 'ft_boolean_syntax' can't be set to the value of ''
set global myisam_max_sort_file_size=4294967296;
show global variables like 'myisam_max_sort_file_size';
Variable_name Value
myisam_max_sort_file_size 4294967296
myisam_max_sort_file_size MAX_FILE_SIZE
set global myisam_max_sort_file_size=default;
select @@global.max_user_connections,@@local.max_join_size;
@@global.max_user_connections @@session.max_join_size
......
......@@ -69,10 +69,10 @@ select * from t1 where MATCH a,b AGAINST ('+(support collections) +foobar*' IN B
select * from t1 where MATCH a,b AGAINST ('+(+(support collections)) +foobar*' IN BOOLEAN MODE);
select * from t1 where MATCH a,b AGAINST ('"xt indexes"' IN BOOLEAN MODE);
# bug#2708 crash
# bug#2708, bug#3870 crash
select * from t1 where MATCH a,b AGAINST('"space model' IN BOOLEAN MODE);
# boolean w/o index:
select * from t1 where MATCH a AGAINST ("search" IN BOOLEAN MODE);
......
......@@ -291,6 +291,7 @@ set global ft_boolean_syntax = @@init_connect;
# variables are set
set global myisam_max_sort_file_size=4294967296;
--replace_result 4294967296 MAX_FILE_SIZE 2146435072 MAX_FILE_SIZE
show global variables like 'myisam_max_sort_file_size';
set global myisam_max_sort_file_size=default;
......
......@@ -134,6 +134,10 @@ void Cmvmi::execNDB_TAMPER(Signal* signal)
if(ERROR_INSERTED(9998)){
while(true) NdbSleep_SecSleep(1);
}
if(ERROR_INSERTED(9997)){
ndbrequire(false);
}
}//execNDB_TAMPER()
void Cmvmi::execSET_LOGLEVELORD(Signal* signal)
......
......@@ -93,7 +93,7 @@ NDB_MAIN(ndb_kernel){
catchsigs(true);
int status = 0;
while(waitpid(child, &status, 0) != child);
if(WIFEXITED(status) || !theConfig->stopOnError()){
if(WIFEXITED(status)){
switch(WEXITSTATUS(status)){
case NRT_Default:
g_eventLogger.info("Angel shutting down");
......@@ -117,13 +117,13 @@ NDB_MAIN(ndb_kernel){
globalData.theRestartFlag = perform_start;
break;
}
g_eventLogger.info("Ndb has terminated (pid %d) restarting", child);
} else {
} else if(theConfig->stopOnError()){
/**
* Error shutdown && stopOnError()
*/
exit(0);
}
g_eventLogger.info("Ndb has terminated (pid %d) restarting", child);
}
g_eventLogger.info("Angel pid: %d ndb pid: %d", getppid(), getpid());
......
......@@ -67,6 +67,7 @@ void check_data_vol();
void check_setup();
void check_tables();
void mysql_start(int, char*[]);
void parse_setvar(char *arg);
/******************************************************************************
......@@ -321,7 +322,8 @@ void parse_args(int argc, char *argv[])
OPT_ERR_LOG,
OPT_SAFE_LOG,
OPT_MYSQLD,
OPT_HELP
OPT_HELP,
OPT_SETVAR
};
static struct option options[] =
......@@ -337,6 +339,7 @@ void parse_args(int argc, char *argv[])
{"safe-log", required_argument, 0, OPT_SAFE_LOG},
{"mysqld", required_argument, 0, OPT_MYSQLD},
{"help", no_argument, 0, OPT_HELP},
{"set-variable", required_argument, 0, OPT_SETVAR},
{0, 0, 0, 0}
};
......@@ -384,7 +387,11 @@ void parse_args(int argc, char *argv[])
case OPT_MYSQLD:
strcpy(mysqld, optarg);
break;
case OPT_SETVAR:
parse_setvar(optarg);
break;
case OPT_HELP:
usage();
break;
......@@ -396,6 +403,25 @@ void parse_args(int argc, char *argv[])
}
}
/*
parse_setvar(char *arg)
Pasrsing for port just to display the port num on the mysqld_safe screen
*/
void parse_setvar(char *arg)
{
char *pos;
if ((pos= strindex(arg, "port")))
{
for (; *pos && *pos != '='; pos++) ;
if (*pos)
strcpy(port, pos + 1);
}
}
/******************************************************************************
/******************************************************************************
get_options()
......@@ -599,32 +625,32 @@ void check_tables()
******************************************************************************/
void mysql_start(int argc, char *argv[])
{
arg_list_t al;
int i, j, err;
struct stat info;
time_t cal;
struct tm lt;
char stamp[PATH_MAX];
char skip;
arg_list_t al;
int i, j, err;
struct stat info;
time_t cal;
struct tm lt;
char stamp[PATH_MAX];
char skip;
// private options
static char *private_options[] =
{
"--autoclose",
"--autoclose",
"--check-tables",
"--help",
"--err-log=",
"--mysqld=",
NULL
"--err-log=",
"--mysqld=",
NULL
};
// args
init_args(&al);
add_arg(&al, "%s", mysqld);
// parent args
for(i = 1; i < argc; i++)
{
// args
init_args(&al);
add_arg(&al, "%s", mysqld);
// parent args
for(i = 1; i < argc; i++)
{
skip = FALSE;
// skip private arguments
......@@ -633,38 +659,42 @@ void mysql_start(int argc, char *argv[])
if(!strnicmp(argv[i], private_options[j], strlen(private_options[j])))
{
skip = TRUE;
consoleprintf("The argument skipped is %s\n",argv[i]);
break;
}
}
if (!skip) add_arg(&al, "%s", argv[i]);
}
if (!skip)
{
add_arg(&al, "%s", argv[i]);
consoleprintf("The final argument is %s\n",argv[i]);
}
}
// spawn
do
{
// check the database tables
if (checktables) check_tables();
// status
do
{
// check the database tables
if (checktables) check_tables();
// status
time(&cal);
localtime_r(&cal, &lt);
strftime(stamp, PATH_MAX, "%d %b %Y %H:%M:%S", &lt);
log("mysql started : %s\n", stamp);
// spawn mysqld
spawn(mysqld, &al, TRUE, NULL, NULL, err_log);
}
while (!stat(pid_file, &info));
// status
// spawn mysqld
spawn(mysqld, &al, TRUE, NULL, NULL, err_log);
}
while (!stat(pid_file, &info));
// status
time(&cal);
localtime_r(&cal, &lt);
strftime(stamp, PATH_MAX, "%d %b %Y %H:%M:%S", &lt);
log("mysql stopped : %s\n\n", stamp);
// free args
free_args(&al);
// free args
free_args(&al);
}
/******************************************************************************
......
......@@ -302,10 +302,12 @@ do
done
#
# Fix some windows files
# Fix some windows files to avoid compiler warnings
#
./extra/replace std:: "" -- $BASE/sql/sql_yacc.cpp
./extra/replace std:: "" < $BASE/sql/sql_yacc.cpp | sed '/^ *switch (yytype)$/ { N; /\n *{$/ { N; /\n *default:$/ { N; /\n *break;$/ { N; /\n *}$/ d; };};};} ' > $BASE/sql/sql_yacc.cpp-new
mv $BASE/sql/sql_yacc.cpp-new $BASE/sql/sql_yacc.cpp
unix_to_dos $BASE/README
mv $BASE/README $BASE/README.txt
......
......@@ -34,7 +34,7 @@ char NEAR _dig_vec_lower[] =
val - value to convert
dst - points to buffer where string representation should be stored
radix - radix of scale of notation
upcase - flag indicating that whenever we should use upper-case digits
upcase - set to 1 if we should use upper-case digits
DESCRIPTION
Converts the (long) integer value to its character form and moves it to
......@@ -52,34 +52,39 @@ char NEAR _dig_vec_lower[] =
char *
int2str(register long int val, register char *dst, register int radix,
char upcase)
int upcase)
{
char buffer[65];
register char *p;
long int new_val;
char *dig_vec= upcase ? _dig_vec_upper : _dig_vec_lower;
if (radix < 0) {
if (radix < -36 || radix > -2) return NullS;
if (val < 0) {
if (radix < 0)
{
if (radix < -36 || radix > -2)
return NullS;
if (val < 0)
{
*dst++ = '-';
val = -val;
}
radix = -radix;
} else {
if (radix > 36 || radix < 2) return NullS;
}
/* The slightly contorted code which follows is due to the
fact that few machines directly support unsigned long / and %.
Certainly the VAX C compiler generates a subroutine call. In
the interests of efficiency (hollow laugh) I let this happen
for the first digit only; after that "val" will be in range so
that signed integer division will do. Sorry 'bout that.
CHECK THE CODE PRODUCED BY YOUR C COMPILER. The first % and /
should be unsigned, the second % and / signed, but C compilers
tend to be extraordinarily sensitive to minor details of style.
This works on a VAX, that's all I claim for it.
*/
else if (radix > 36 || radix < 2)
return NullS;
/*
The slightly contorted code which follows is due to the fact that
few machines directly support unsigned long / and %. Certainly
the VAX C compiler generates a subroutine call. In the interests
of efficiency (hollow laugh) I let this happen for the first digit
only; after that "val" will be in range so that signed integer
division will do. Sorry 'bout that. CHECK THE CODE PRODUCED BY
YOUR C COMPILER. The first % and / should be unsigned, the second
% and / signed, but C compilers tend to be extraordinarily
sensitive to minor details of style. This works on a VAX, that's
all I claim for it.
*/
p = &buffer[sizeof(buffer)-1];
*p = '\0';
new_val=(ulong) val / (ulong) radix;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment