summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <jcole@tetra.spaceapes.com>2001-08-23 14:50:57 -0500
committerunknown <jcole@tetra.spaceapes.com>2001-08-23 14:50:57 -0500
commiteebaa4d64596cbc4e57b03568c315f3b7864f128 (patch)
tree555210ccacdfd094d06ebb469e5dce2157803c9c
parentb5dfa5b7a77b9ae694d1330fdc03ae6f9f2cb810 (diff)
parent44517da574ca2d073c2f3ea8e61c8cf49239c052 (diff)
downloadmariadb-git-eebaa4d64596cbc4e57b03568c315f3b7864f128.tar.gz
Merge jcole@work.mysql.com:/home/bk/mysql
into tetra.spaceapes.com:/home/jcole/bk/mysql Docs/manual.texi: Auto merged
-rwxr-xr-xBUILD/compile-solaris-sparc-purify2
-rw-r--r--Docs/manual.texi15
-rw-r--r--heap/heapdef.h4
-rw-r--r--include/global.h13
-rw-r--r--myisam/myisamlog.c3
-rw-r--r--sql/mini_client.cc19
-rw-r--r--sql/mysqld.cc8
-rw-r--r--sql/sql_repl.cc3
-rw-r--r--sql/stacktrace.c10
-rw-r--r--sql/stacktrace.h7
-rw-r--r--sql/violite.c14
11 files changed, 62 insertions, 36 deletions
diff --git a/BUILD/compile-solaris-sparc-purify b/BUILD/compile-solaris-sparc-purify
index 91fbbf1ae8d..8bb53bba876 100755
--- a/BUILD/compile-solaris-sparc-purify
+++ b/BUILD/compile-solaris-sparc-purify
@@ -6,7 +6,7 @@ aclocal && autoheader && aclocal && automake && autoconf
(cd bdb/dist && sh s_all)
(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
diff --git a/Docs/manual.texi b/Docs/manual.texi
index b6d05119e36..6ae3314b4c2 100644
--- a/Docs/manual.texi
+++ b/Docs/manual.texi
@@ -1128,6 +1128,9 @@ values).
@node MySQL-Books, General-SQL, MySQL Information Sources, MySQL Information Sources
@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
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
@@ -36131,7 +36134,7 @@ installing a binary version of MySQL. @xref{Installing binary}.
@xref{mysqld-max, , @code{mysqld-max}}.
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}.
@example
@@ -36139,6 +36142,16 @@ cd /path/to/source/of/mysql-3.23.37
./configure --with-innodb
@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
commit, rollback, and crash recovery capabilities. InnoDB does
locking on row level, and also provides an Oracle-style consistent
diff --git a/heap/heapdef.h b/heap/heapdef.h
index 19c3b7d7792..938cb55c0eb 100644
--- a/heap/heapdef.h
+++ b/heap/heapdef.h
@@ -34,9 +34,9 @@ if (!(info->update & HA_STATE_AKTIV))\
/* 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)
-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;
} HASH_INFO;
diff --git a/include/global.h b/include/global.h
index d6a46e1b187..f10411af0aa 100644
--- a/include/global.h
+++ b/include/global.h
@@ -644,13 +644,18 @@ typedef off_t os_off_t;
#endif
#if defined(__WIN__)
-#define socket_errno WSAGetLastError()
+#define socket_errno WSAGetLastError()
+#define SOCKET_EINTR WSAEINTR
+#define SOCKET_EAGAIN WSAEINPROGRESS
#elif defined(OS2)
-#define socket_errno sock_errno()
+#define socket_errno sock_errno()
#define closesocket(A) soclose(A)
-#else
+#else /* Unix */
#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
typedef uint8 int7; /* Most effective integer 0 <= x <= 127 */
diff --git a/myisam/myisamlog.c b/myisam/myisamlog.c
index a6094cfd489..ddfafb91430 100644
--- a/myisam/myisamlog.c
+++ b/myisam/myisamlog.c
@@ -488,8 +488,7 @@ static int examine_log(my_string file_name, char **table_names)
command_name[command], (int) extra_command,result);
if (update && curr_file_info && !curr_file_info->closed)
{
- if (mi_extra(curr_file_info->isam,
- (int) extra_command) != (int) result)
+ if (mi_extra(curr_file_info->isam, extra_command) != (int) result)
{
fflush(stdout);
VOID(fprintf(stderr,
diff --git a/sql/mini_client.cc b/sql/mini_client.cc
index 88a02e227a3..3a2305aa69c 100644
--- a/sql/mini_client.cc
+++ b/sql/mini_client.cc
@@ -23,10 +23,23 @@
*/
#define DONT_USE_RAID
-#if defined(__WIN__) || defined(WIN32)
+#if defined(__WIN__)
#include <winsock.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
+
#include <global.h>
#include <my_sys.h>
#include <mysys_err.h>
@@ -62,7 +75,7 @@ extern "C" { // Because of SCO 3.2V4.2
#ifdef HAVE_SYS_UN_H
# include <sys/un.h>
#endif
-#if defined(THREAD) && !defined(__WIN__)
+#if defined(THREAD)
#include <my_pthread.h> /* because of signal() */
#include <thr_alarm.h>
#endif
@@ -486,9 +499,7 @@ mc_mysql_connect(MYSQL *mysql,const char *host, const char *user,
uint pkt_length;
NET *net= &mysql->net;
thr_alarm_t alarmed;
-#if !defined(__WIN__)
ALARM alarm_buff;
-#endif
#ifdef __WIN__
HANDLE hPipe=INVALID_HANDLE_VALUE;
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 35aeaecc6e1..b484eee3480 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -1247,12 +1247,14 @@ static void init_signals(void)
sigset(THR_KILL_SIGNAL,end_thread_signal);
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))
{
+ struct sigaction sa;
+ sa.sa_flags = SA_RESETHAND | SA_NODEFER;
+ sigemptyset(&sa.sa_mask);
+ sigprocmask(SIG_SETMASK,&sa.sa_mask,NULL);
+
init_stacktrace();
sa.sa_handler=handle_segfault;
sigaction(SIGSEGV, &sa, NULL);
diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc
index 32c4c5c6509..b9ba284ab27 100644
--- a/sql/sql_repl.cc
+++ b/sql/sql_repl.cc
@@ -620,6 +620,9 @@ int stop_slave(THD* thd, bool net_report )
#ifdef HAVE_TIMESPEC_TS_SEC
abstime.ts_sec=time(NULL)+2;
abstime.ts_nsec=0;
+#elif defined(__WIN__)
+ abstime.tv_sec=time((time_t*) 0)+2;
+ abstime.tv_nsec=0;
#else
struct timeval tv;
gettimeofday(&tv,0);
diff --git a/sql/stacktrace.c b/sql/stacktrace.c
index ab1113f74cf..408006dac93 100644
--- a/sql/stacktrace.c
+++ b/sql/stacktrace.c
@@ -205,11 +205,17 @@ resolve it\n");
/* Produce a core for the thread */
-#ifdef HAVE_WRITE_CORE
+#ifdef HAVE_LINUXTHREADS
void write_core(int sig)
{
signal(sig, SIG_DFL);
if (fork() != 0) exit(1); // Abort main program
// 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
diff --git a/sql/stacktrace.h b/sql/stacktrace.h
index b6c0ec43a0f..980e1ea07eb 100644
--- a/sql/stacktrace.h
+++ b/sql/stacktrace.h
@@ -30,9 +30,6 @@ extern char* heap_start;
void print_stacktrace(gptr stack_bottom, ulong thread_stack);
void safe_print_str(const char* name, const char* val, int max_len);
#endif /* (defined (__i386__) || (defined(__alpha__) && defined(__GNUC__))) */
-
-#define HAVE_WRITE_CORE
-void write_core(int sig);
#endif /* HAVE_LINUXTHREADS */
/* Define empty prototypes for functions that are not implemented */
@@ -42,9 +39,7 @@ void write_core(int sig);
#define safe_print_str(A,B,C) {}
#endif /* HAVE_STACKTRACE */
-#ifndef HAVE_WRITE_CORE
-#define write_core(A) {}
-#endif
+void write_core(int sig);
#ifdef __cplusplus
}
diff --git a/sql/violite.c b/sql/violite.c
index aff4224e5a3..0d96c71969c 100644
--- a/sql/violite.c
+++ b/sql/violite.c
@@ -44,18 +44,10 @@
#endif /* defined(__EMX__) */
#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() */
#endif
#ifndef EWOULDBLOCK
-#define EWOULDBLOCK EAGAIN
+#define SOCKET_EWOULDBLOCK SOCKET_EAGAIN
#endif
#ifndef __WIN__
@@ -327,8 +319,8 @@ int vio_keepalive(Vio* vio, my_bool set_keep_alive)
my_bool
vio_should_retry(Vio * vio __attribute__((unused)))
{
- int en = errno;
- return en == EAGAIN || en == EINTR || en == EWOULDBLOCK;
+ int en = socket_errno;
+ return en == SOCKET_EAGAIN || en == SOCKET_EINTR || en == SOCKET_EWOULDBLOCK;
}