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

Portability fixes

parent b4705431
......@@ -1129,6 +1129,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
......@@ -36066,7 +36069,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
......@@ -36074,6 +36077,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
......@@ -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;
......
......@@ -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 */
......
......@@ -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,
......
......@@ -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;
......
......@@ -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);
......
......@@ -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;
}
......
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