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
AC_CHECK_HEADERS(aio.h sched.h)
AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(long, 4)
AC_CHECK_SIZEOF(void*, 4)
AC_CHECK_FUNCS(sched_yield)
AC_CHECK_FUNCS(fdatasync)
#AC_CHECK_FUNCS(localtime_r) # Already checked by MySQL
......
......@@ -67,16 +67,6 @@ Microsoft Visual C++ */
#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
===================== */
......@@ -185,27 +175,37 @@ management to ensure correct alignment for doubles etc. */
*/
/* 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
equal to the word size of the machine. */
/* Another basic type we use is unsigned long integer which should be equal to
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
typedef unsigned __int64 ulint;
#define ULINTPF "%I64u"
typedef __int64 lint;
#else
typedef unsigned long int ulint;
#endif
#define ULINTPF "%lu"
typedef long int lint;
#endif
#ifdef __WIN__
typedef __int64 ib_longlong;
typedef __int64 ib_longlong;
#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
/* 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 */
#define ULINT_UNDEFINED ((ulint)(-1))
......@@ -218,7 +218,7 @@ typedef double utfloat;
/* This 'ibool' type is used within Innobase. Remember that different included
headers may define 'bool' differently. Do not assume that 'bool' is a ulint! */
#define ibool ulint
#define ibool ulint
#ifndef TRUE
......
......@@ -2447,20 +2447,22 @@ srv_sprintf_innodb_monitor(
"BUFFER POOL AND MEMORY\n"
"----------------------\n");
buf += sprintf(buf,
"Total memory allocated %lu; in additional pool allocated %lu\n",
(ulong) ut_total_allocated_memory,
(ulong) mem_pool_get_reserved(mem_comm_pool));
"Total memory allocated " ULINTPF
"; in additional pool allocated" ULINTPF "\n",
ut_total_allocated_memory,
mem_pool_get_reserved(mem_comm_pool));
if (mem_out_of_mem_err_msg_count > 0) {
buf += sprintf(buf,
"Mem allocation has spilled out of additional mem pool %lu times\n",
(ulong) mem_out_of_mem_err_msg_count);
"Mem allocation has spilled out of additional mem pool" ULINTPF
"times\n",
mem_out_of_mem_err_msg_count);
}
if (srv_use_awe) {
buf += sprintf(buf,
"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);
......@@ -2472,7 +2474,7 @@ srv_sprintf_innodb_monitor(
"--------------\n");
buf += sprintf(buf,
"%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);
n_reserved = fil_space_get_n_reserved_extents(0);
......@@ -2495,11 +2497,12 @@ srv_sprintf_innodb_monitor(
srv_main_thread_op_info);
#endif
buf += sprintf(buf,
"Number of rows inserted %lu, updated %lu, deleted %lu, read %lu\n",
(ulong) srv_n_rows_inserted,
(ulong) srv_n_rows_updated,
(ulong) srv_n_rows_deleted,
(ulong) srv_n_rows_read);
"Number of rows inserted " ULINTPF
", updated " ULINTPF ", deleted " ULINTPF ", read " ULINTPF "\n",
srv_n_rows_inserted,
srv_n_rows_updated,
srv_n_rows_deleted,
srv_n_rows_read);
buf += sprintf(buf,
"%.2f inserts/s, %.2f updates/s, %.2f deletes/s, %.2f reads/s\n",
(srv_n_rows_inserted - srv_n_rows_inserted_old)
......
......@@ -57,7 +57,6 @@ Created 2/16/1996 Heikki Tuuri
#include "srv0start.h"
#include "que0que.h"
/* Log sequence number immediately after startup */
dulint srv_start_lsn;
/* Log sequence number at shutdown */
......@@ -1010,6 +1009,14 @@ innobase_start_or_create_for_mysql(void)
ibool srv_file_per_table_original_value = srv_file_per_table;
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
0 */
#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