Commit dfcb208e authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi

Merge work:/home/bk/mysql into hundin.mysql.fi:/my/bk/mysql

parents b57ef1cc e127a952
...@@ -6,7 +6,7 @@ aclocal && autoheader && aclocal && automake && autoconf ...@@ -6,7 +6,7 @@ aclocal && autoheader && aclocal && automake && autoconf
(cd bdb/dist && sh s_all) (cd bdb/dist && sh s_all)
(cd innobase && aclocal && autoheader && aclocal && automake && autoconf) (cd innobase && aclocal && autoheader && aclocal && automake && autoconf)
CFLAGS="-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DHAVE_purify -DEXTRA_DEBUG -O2" CXX=gcc CXXLD=g++ CXXFLAGS="-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wextern-inline -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DHAVE_purify -DEXTRA_DEBUG -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-berkeley-db --with-innodb CFLAGS="-g -Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DHAVE_purify -DEXTRA_DEBUG -O2" CXX=gcc CXXLD=g++ CXXFLAGS="-g -Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wextern-inline -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DHAVE_purify -DEXTRA_DEBUG -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-berkeley-db --with-innodb
gmake -j 4 gmake -j 4
......
...@@ -1129,6 +1129,9 @@ values). ...@@ -1129,6 +1129,9 @@ values).
@node MySQL-Books, General-SQL, MySQL Information Sources, MySQL Information Sources @node MySQL-Books, General-SQL, MySQL Information Sources, MySQL Information Sources
@subsection Books About MySQL @subsection Books About MySQL
For the latest book information, with user comments, please visit
@uref{http://www.mysql.com/portal/books/html/index.html}.
While this manual is still the right place for up to date technical While this manual is still the right place for up to date technical
information, its primary goal is to contain everything there is to know information, its primary goal is to contain everything there is to know
about MySQL. It is sometimes nice to have a bound book to read about MySQL. It is sometimes nice to have a bound book to read
...@@ -36066,7 +36069,7 @@ installing a binary version of MySQL. @xref{Installing binary}. ...@@ -36066,7 +36069,7 @@ installing a binary version of MySQL. @xref{Installing binary}.
@xref{mysqld-max, , @code{mysqld-max}}. @xref{mysqld-max, , @code{mysqld-max}}.
To compile MySQL with InnoDB support, download MySQL-3.23.37 or newer To compile MySQL with InnoDB support, download MySQL-3.23.37 or newer
and configure @code{MySQL} with the @code{--with-innodb} option. and configure MySQL with the @code{--with-innodb} option.
@xref{Installing source}. @xref{Installing source}.
@example @example
...@@ -36074,6 +36077,16 @@ cd /path/to/source/of/mysql-3.23.37 ...@@ -36074,6 +36077,16 @@ cd /path/to/source/of/mysql-3.23.37
./configure --with-innodb ./configure --with-innodb
@end example @end example
To get InnoDB to work you have to specify where the data for InnoDB
tables should be stored by specifying the @code{innodb_data_file_path}
option on the command line or in an MySQL option file. @xref{InnoDB
start}. If you have configured MySQL for InnoDB but you have not
specified the above option, @code{mysqld} will print at start:
@example
Can't initialize InnoDB as 'innodb_data_file_path' is not set
@end example
InnoDB provides MySQL with a transaction-safe table handler with InnoDB provides MySQL with a transaction-safe table handler with
commit, rollback, and crash recovery capabilities. InnoDB does commit, rollback, and crash recovery capabilities. InnoDB does
locking on row level, and also provides an Oracle-style consistent locking on row level, and also provides an Oracle-style consistent
...@@ -34,9 +34,9 @@ if (!(info->update & HA_STATE_AKTIV))\ ...@@ -34,9 +34,9 @@ if (!(info->update & HA_STATE_AKTIV))\
/* Find pos for record and update it in info->current_ptr */ /* Find pos for record and update it in info->current_ptr */
#define _hp_find_record(info,pos) (info)->current_ptr= _hp_find_block(&(info)->s->block,pos) #define _hp_find_record(info,pos) (info)->current_ptr= _hp_find_block(&(info)->s->block,pos)
typedef struct st_hash_info typedef struct st_hp_hash_info
{ {
struct st_hash_info *next_key; struct st_hp_hash_info *next_key;
byte *ptr_to_rec; byte *ptr_to_rec;
} HASH_INFO; } HASH_INFO;
......
...@@ -644,13 +644,18 @@ typedef off_t os_off_t; ...@@ -644,13 +644,18 @@ typedef off_t os_off_t;
#endif #endif
#if defined(__WIN__) #if defined(__WIN__)
#define socket_errno WSAGetLastError() #define socket_errno WSAGetLastError()
#define SOCKET_EINTR WSAEINTR
#define SOCKET_EAGAIN WSAEINPROGRESS
#elif defined(OS2) #elif defined(OS2)
#define socket_errno sock_errno() #define socket_errno sock_errno()
#define closesocket(A) soclose(A) #define closesocket(A) soclose(A)
#else #else /* Unix */
#define socket_errno errno #define socket_errno errno
#define closesocket(A) close(A) #define closesocket(A) close(A)
#define SOCKET_EINTR EINTR
#define SOCKET_EAGAIN EAGAIN
#define SOCKET_EWOULDBLOCK EWOULDBLOCK
#endif #endif
typedef uint8 int7; /* Most effective integer 0 <= x <= 127 */ typedef uint8 int7; /* Most effective integer 0 <= x <= 127 */
......
...@@ -488,8 +488,7 @@ static int examine_log(my_string file_name, char **table_names) ...@@ -488,8 +488,7 @@ static int examine_log(my_string file_name, char **table_names)
command_name[command], (int) extra_command,result); command_name[command], (int) extra_command,result);
if (update && curr_file_info && !curr_file_info->closed) if (update && curr_file_info && !curr_file_info->closed)
{ {
if (mi_extra(curr_file_info->isam, if (mi_extra(curr_file_info->isam, extra_command) != (int) result)
(int) extra_command) != (int) result)
{ {
fflush(stdout); fflush(stdout);
VOID(fprintf(stderr, VOID(fprintf(stderr,
......
...@@ -23,10 +23,23 @@ ...@@ -23,10 +23,23 @@
*/ */
#define DONT_USE_RAID #define DONT_USE_RAID
#if defined(__WIN__) || defined(WIN32) #if defined(__WIN__)
#include <winsock.h> #include <winsock.h>
#include <odbcinst.h> #include <odbcinst.h>
/* Disable alarms */
typedef my_bool ALARM;
#define thr_alarm_init(A) (*(A))=0
#define thr_alarm_in_use(A) (*(A))
#define thr_end_alarm(A)
#define thr_alarm(A,B,C) local_thr_alarm((A),(B),(C))
inline int local_thr_alarm(my_bool *A,int B __attribute__((unused)),ALARM *C __attribute__((unused)))
{
*A=1;
return 0;
}
#define thr_got_alarm(A) 0
#endif #endif
#include <global.h> #include <global.h>
#include <my_sys.h> #include <my_sys.h>
#include <mysys_err.h> #include <mysys_err.h>
...@@ -62,7 +75,7 @@ extern "C" { // Because of SCO 3.2V4.2 ...@@ -62,7 +75,7 @@ extern "C" { // Because of SCO 3.2V4.2
#ifdef HAVE_SYS_UN_H #ifdef HAVE_SYS_UN_H
# include <sys/un.h> # include <sys/un.h>
#endif #endif
#if defined(THREAD) && !defined(__WIN__) #if defined(THREAD)
#include <my_pthread.h> /* because of signal() */ #include <my_pthread.h> /* because of signal() */
#include <thr_alarm.h> #include <thr_alarm.h>
#endif #endif
...@@ -486,9 +499,7 @@ mc_mysql_connect(MYSQL *mysql,const char *host, const char *user, ...@@ -486,9 +499,7 @@ mc_mysql_connect(MYSQL *mysql,const char *host, const char *user,
uint pkt_length; uint pkt_length;
NET *net= &mysql->net; NET *net= &mysql->net;
thr_alarm_t alarmed; thr_alarm_t alarmed;
#if !defined(__WIN__)
ALARM alarm_buff; ALARM alarm_buff;
#endif
#ifdef __WIN__ #ifdef __WIN__
HANDLE hPipe=INVALID_HANDLE_VALUE; HANDLE hPipe=INVALID_HANDLE_VALUE;
......
...@@ -1247,12 +1247,14 @@ static void init_signals(void) ...@@ -1247,12 +1247,14 @@ static void init_signals(void)
sigset(THR_KILL_SIGNAL,end_thread_signal); sigset(THR_KILL_SIGNAL,end_thread_signal);
sigset(THR_SERVER_ALARM,print_signal_warning); // Should never be called! sigset(THR_SERVER_ALARM,print_signal_warning); // Should never be called!
struct sigaction sa; sa.sa_flags = 0;
sigemptyset(&sa.sa_mask);
sigprocmask(SIG_SETMASK,&sa.sa_mask,NULL);
if (!(test_flags & TEST_NO_STACKTRACE) || (test_flags & TEST_CORE_ON_SIGNAL)) if (!(test_flags & TEST_NO_STACKTRACE) || (test_flags & TEST_CORE_ON_SIGNAL))
{ {
struct sigaction sa;
sa.sa_flags = SA_RESETHAND | SA_NODEFER;
sigemptyset(&sa.sa_mask);
sigprocmask(SIG_SETMASK,&sa.sa_mask,NULL);
init_stacktrace(); init_stacktrace();
sa.sa_handler=handle_segfault; sa.sa_handler=handle_segfault;
sigaction(SIGSEGV, &sa, NULL); sigaction(SIGSEGV, &sa, NULL);
......
...@@ -620,6 +620,9 @@ int stop_slave(THD* thd, bool net_report ) ...@@ -620,6 +620,9 @@ int stop_slave(THD* thd, bool net_report )
#ifdef HAVE_TIMESPEC_TS_SEC #ifdef HAVE_TIMESPEC_TS_SEC
abstime.ts_sec=time(NULL)+2; abstime.ts_sec=time(NULL)+2;
abstime.ts_nsec=0; abstime.ts_nsec=0;
#elif defined(__WIN__)
abstime.tv_sec=time((time_t*) 0)+2;
abstime.tv_nsec=0;
#else #else
struct timeval tv; struct timeval tv;
gettimeofday(&tv,0); gettimeofday(&tv,0);
......
...@@ -205,11 +205,17 @@ resolve it\n"); ...@@ -205,11 +205,17 @@ resolve it\n");
/* Produce a core for the thread */ /* Produce a core for the thread */
#ifdef HAVE_WRITE_CORE #ifdef HAVE_LINUXTHREADS
void write_core(int sig) void write_core(int sig)
{ {
signal(sig, SIG_DFL); signal(sig, SIG_DFL);
if (fork() != 0) exit(1); // Abort main program if (fork() != 0) exit(1); // Abort main program
// Core will be written at exit // Core will be written at exit
} }
#endif /* HAVE_WRITE_CORE */ #else
void write_core(int sig)
{
signal(sig, SIG_DFL);
pthread_kill(pthread_self(), sig);
}
#endif
...@@ -30,9 +30,6 @@ extern char* heap_start; ...@@ -30,9 +30,6 @@ extern char* heap_start;
void print_stacktrace(gptr stack_bottom, ulong thread_stack); void print_stacktrace(gptr stack_bottom, ulong thread_stack);
void safe_print_str(const char* name, const char* val, int max_len); void safe_print_str(const char* name, const char* val, int max_len);
#endif /* (defined (__i386__) || (defined(__alpha__) && defined(__GNUC__))) */ #endif /* (defined (__i386__) || (defined(__alpha__) && defined(__GNUC__))) */
#define HAVE_WRITE_CORE
void write_core(int sig);
#endif /* HAVE_LINUXTHREADS */ #endif /* HAVE_LINUXTHREADS */
/* Define empty prototypes for functions that are not implemented */ /* Define empty prototypes for functions that are not implemented */
...@@ -42,9 +39,7 @@ void write_core(int sig); ...@@ -42,9 +39,7 @@ void write_core(int sig);
#define safe_print_str(A,B,C) {} #define safe_print_str(A,B,C) {}
#endif /* HAVE_STACKTRACE */ #endif /* HAVE_STACKTRACE */
#ifndef HAVE_WRITE_CORE void write_core(int sig);
#define write_core(A) {}
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
......
...@@ -44,18 +44,10 @@ ...@@ -44,18 +44,10 @@
#endif /* defined(__EMX__) */ #endif /* defined(__EMX__) */
#if defined(MSDOS) || defined(__WIN__) #if defined(MSDOS) || defined(__WIN__)
#ifdef __WIN__
#undef errno
#undef EINTR
#undef EAGAIN
#define errno WSAGetLastError()
#define EINTR WSAEINTR
#define EAGAIN WSAEINPROGRESS
#endif /* __WIN__ */
#define O_NONBLOCK 1 /* For emulation of fcntl() */ #define O_NONBLOCK 1 /* For emulation of fcntl() */
#endif #endif
#ifndef EWOULDBLOCK #ifndef EWOULDBLOCK
#define EWOULDBLOCK EAGAIN #define SOCKET_EWOULDBLOCK SOCKET_EAGAIN
#endif #endif
#ifndef __WIN__ #ifndef __WIN__
...@@ -327,8 +319,8 @@ int vio_keepalive(Vio* vio, my_bool set_keep_alive) ...@@ -327,8 +319,8 @@ int vio_keepalive(Vio* vio, my_bool set_keep_alive)
my_bool my_bool
vio_should_retry(Vio * vio __attribute__((unused))) vio_should_retry(Vio * vio __attribute__((unused)))
{ {
int en = errno; int en = socket_errno;
return en == EAGAIN || en == EINTR || en == EWOULDBLOCK; return en == SOCKET_EAGAIN || en == SOCKET_EINTR || en == SOCKET_EWOULDBLOCK;
} }
......
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