Commit ba6f5403 authored by pem@mysql.com's avatar pem@mysql.com

Merge mysql.com:/home/pem/work/mysql-4.1

into mysql.com:/home/pem/work/mysql-5.0-merge
parents e2cbc87b 947057e7
...@@ -37,6 +37,7 @@ AC_PROG_INSTALL ...@@ -37,6 +37,7 @@ AC_PROG_INSTALL
AC_CHECK_HEADERS(aio.h sched.h) AC_CHECK_HEADERS(aio.h sched.h)
AC_CHECK_SIZEOF(int, 4) AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(long, 4) AC_CHECK_SIZEOF(long, 4)
AC_CHECK_SIZEOF(void*, 4)
AC_CHECK_FUNCS(sched_yield) AC_CHECK_FUNCS(sched_yield)
AC_CHECK_FUNCS(fdatasync) AC_CHECK_FUNCS(fdatasync)
#AC_CHECK_FUNCS(localtime_r) # Already checked by MySQL #AC_CHECK_FUNCS(localtime_r) # Already checked by MySQL
......
...@@ -67,16 +67,6 @@ Microsoft Visual C++ */ ...@@ -67,16 +67,6 @@ Microsoft Visual C++ */
#endif /* #if (defined(WIN32) || ... */ #endif /* #if (defined(WIN32) || ... */
#ifdef NOT_USED
/* On the 64-bit Windows we replace printf with ut_printf, etc. so that
we can use the %lu format string to print a 64-bit ulint */
#if defined(__WIN__) && (defined(WIN64) || defined(_WIN64))
#define printf ut_printf
#define sprintf ut_sprintf
#define fprintf ut_fprintf
#endif
#endif
/* DEBUG VERSION CONTROL /* DEBUG VERSION CONTROL
===================== */ ===================== */
...@@ -185,27 +175,37 @@ management to ensure correct alignment for doubles etc. */ ...@@ -185,27 +175,37 @@ management to ensure correct alignment for doubles etc. */
*/ */
/* Note that inside MySQL 'byte' is defined as char on Linux! */ /* Note that inside MySQL 'byte' is defined as char on Linux! */
#define byte unsigned char #define byte unsigned char
/* Another basic type we use is unsigned long integer which is intended to be /* Another basic type we use is unsigned long integer which should be equal to
equal to the word size of the machine. */ the word size of the machine, that is on a 32-bit platform 32 bits, and on a
64-bit platform 64 bits. We also give the printf format for the type as a
macro PRULINT. */
#ifdef _WIN64 #ifdef _WIN64
typedef unsigned __int64 ulint; typedef unsigned __int64 ulint;
#define ULINTPF "%I64u"
typedef __int64 lint;
#else #else
typedef unsigned long int ulint; typedef unsigned long int ulint;
#endif #define ULINTPF "%lu"
typedef long int lint; typedef long int lint;
#endif
#ifdef __WIN__ #ifdef __WIN__
typedef __int64 ib_longlong; typedef __int64 ib_longlong;
#else #else
typedef longlong ib_longlong; typedef longlong ib_longlong;
#endif
#ifndef __WIN__
#if SIZEOF_LONG != SIZEOF_VOIDP
#error "Error: InnoDB's ulint must be of the same size as void*"
#endif
#endif #endif
/* The following type should be at least a 64-bit floating point number */ /* The following type should be at least a 64-bit floating point number */
typedef double utfloat; typedef double utfloat;
/* The 'undefined' value for a ulint */ /* The 'undefined' value for a ulint */
#define ULINT_UNDEFINED ((ulint)(-1)) #define ULINT_UNDEFINED ((ulint)(-1))
...@@ -218,7 +218,7 @@ typedef double utfloat; ...@@ -218,7 +218,7 @@ typedef double utfloat;
/* This 'ibool' type is used within Innobase. Remember that different included /* This 'ibool' type is used within Innobase. Remember that different included
headers may define 'bool' differently. Do not assume that 'bool' is a ulint! */ headers may define 'bool' differently. Do not assume that 'bool' is a ulint! */
#define ibool ulint #define ibool ulint
#ifndef TRUE #ifndef TRUE
......
...@@ -2447,20 +2447,22 @@ srv_sprintf_innodb_monitor( ...@@ -2447,20 +2447,22 @@ srv_sprintf_innodb_monitor(
"BUFFER POOL AND MEMORY\n" "BUFFER POOL AND MEMORY\n"
"----------------------\n"); "----------------------\n");
buf += sprintf(buf, buf += sprintf(buf,
"Total memory allocated %lu; in additional pool allocated %lu\n", "Total memory allocated " ULINTPF
(ulong) ut_total_allocated_memory, "; in additional pool allocated" ULINTPF "\n",
(ulong) mem_pool_get_reserved(mem_comm_pool)); ut_total_allocated_memory,
mem_pool_get_reserved(mem_comm_pool));
if (mem_out_of_mem_err_msg_count > 0) { if (mem_out_of_mem_err_msg_count > 0) {
buf += sprintf(buf, buf += sprintf(buf,
"Mem allocation has spilled out of additional mem pool %lu times\n", "Mem allocation has spilled out of additional mem pool" ULINTPF
(ulong) mem_out_of_mem_err_msg_count); "times\n",
mem_out_of_mem_err_msg_count);
} }
if (srv_use_awe) { if (srv_use_awe) {
buf += sprintf(buf, buf += sprintf(buf,
"In addition to that %lu MB of AWE memory allocated\n", "In addition to that %lu MB of AWE memory allocated\n",
(ulong) (srv_pool_size / ((1024 * 1024) / UNIV_PAGE_SIZE))); (ulong) (srv_pool_size / ((1024 * 1024) / UNIV_PAGE_SIZE)));
} }
buf_print_io(buf, buf_end); buf_print_io(buf, buf_end);
...@@ -2472,7 +2474,7 @@ srv_sprintf_innodb_monitor( ...@@ -2472,7 +2474,7 @@ srv_sprintf_innodb_monitor(
"--------------\n"); "--------------\n");
buf += sprintf(buf, buf += sprintf(buf,
"%ld queries inside InnoDB, %lu queries in queue\n", "%ld queries inside InnoDB, %lu queries in queue\n",
(ulong) srv_conc_n_threads, (long) srv_conc_n_threads,
(ulong) srv_conc_n_waiting_threads); (ulong) srv_conc_n_waiting_threads);
n_reserved = fil_space_get_n_reserved_extents(0); n_reserved = fil_space_get_n_reserved_extents(0);
...@@ -2495,11 +2497,12 @@ srv_sprintf_innodb_monitor( ...@@ -2495,11 +2497,12 @@ srv_sprintf_innodb_monitor(
srv_main_thread_op_info); srv_main_thread_op_info);
#endif #endif
buf += sprintf(buf, buf += sprintf(buf,
"Number of rows inserted %lu, updated %lu, deleted %lu, read %lu\n", "Number of rows inserted " ULINTPF
(ulong) srv_n_rows_inserted, ", updated " ULINTPF ", deleted " ULINTPF ", read " ULINTPF "\n",
(ulong) srv_n_rows_updated, srv_n_rows_inserted,
(ulong) srv_n_rows_deleted, srv_n_rows_updated,
(ulong) srv_n_rows_read); srv_n_rows_deleted,
srv_n_rows_read);
buf += sprintf(buf, buf += sprintf(buf,
"%.2f inserts/s, %.2f updates/s, %.2f deletes/s, %.2f reads/s\n", "%.2f inserts/s, %.2f updates/s, %.2f deletes/s, %.2f reads/s\n",
(srv_n_rows_inserted - srv_n_rows_inserted_old) (srv_n_rows_inserted - srv_n_rows_inserted_old)
......
...@@ -57,7 +57,6 @@ Created 2/16/1996 Heikki Tuuri ...@@ -57,7 +57,6 @@ Created 2/16/1996 Heikki Tuuri
#include "srv0start.h" #include "srv0start.h"
#include "que0que.h" #include "que0que.h"
/* Log sequence number immediately after startup */ /* Log sequence number immediately after startup */
dulint srv_start_lsn; dulint srv_start_lsn;
/* Log sequence number at shutdown */ /* Log sequence number at shutdown */
...@@ -1010,6 +1009,14 @@ innobase_start_or_create_for_mysql(void) ...@@ -1010,6 +1009,14 @@ innobase_start_or_create_for_mysql(void)
ibool srv_file_per_table_original_value = srv_file_per_table; ibool srv_file_per_table_original_value = srv_file_per_table;
mtr_t mtr; mtr_t mtr;
if (sizeof(ulint) != sizeof(void*)) {
fprintf(stderr,
"InnoDB: Error: size of InnoDB's ulint is %lu, but size of void* is %lu.\n"
"InnoDB: The sizes should be the same so that on a 64-bit platform you can\n"
"InnoDB: allocate more than 4 GB of memory.",
(ulong)sizeof(ulint), (ulong)sizeof(void*));
}
srv_file_per_table = FALSE; /* system tables are created in tablespace srv_file_per_table = FALSE; /* system tables are created in tablespace
0 */ 0 */
#ifdef UNIV_DEBUG #ifdef UNIV_DEBUG
......
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