Commit e75b64c0 authored by unknown's avatar unknown

Added test case that crashed Innobase


BUILD/compile-solaris-sparc-purify:
  Changed to old (easy-to-edit) format
extra/resolve_stack_dump.c:
  Don't require -s and -n options
innobase/include/Makefile.i:
  Applied Heikki's changes
innobase/include/univ.i:
  Applied Heikki's changes
innobase/os/os0file.c:
  Fix problem with Signal 14 on Solaris
mysys/mf_qsort.c:
  Fix for purify
sql-bench/Results/ATIS-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/RUN-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/alter-table-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/big-tables-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/connect-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/create-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/insert-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/select-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql-bench/Results/wisconsin-mysql-Linux_2.2.16_SMP_alpha:
  New test results
sql/ha_gemini.h:
  Fixed that SHOW VARIABLES shows table type as disabled if it can't be initialized.
sql/ha_innobase.cc:
  Merged Heikkis changes
sql/ha_innobase.h:
  Fixed that SHOW VARIABLES shows table type as disabled if it can't be initialized.
sql/handler.cc:
  Fixed that SHOW VARIABLES shows table type as disabled if it can't be initialized.
sql/mysqld.cc:
  Cleaned up error warning message.
parent 1663b50c
#! /bin/sh
gmake -k clean || true
/bin/rm -f */.deps/*.P config.cache
path=`dirname $0`
. "$path/SETUP.sh"
aclocal && autoheader && aclocal && automake && autoconf
(cd bdb/dist && sh s_all)
(cd innobase && aclocal && autoheader && aclocal && automake && autoconf)
extra_flags="$sparc_cflags -DHAVE_PURIFY -O2"
extra_configs="$sparc_configs --with-debug=full"
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 -O2" CXX=gcc 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 -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-debug=full
. "$path/FINISH.sh"
gmake -j 4
......@@ -31,7 +31,7 @@
#define INIT_SYM_TABLE 4096
#define INC_SYM_TABLE 4096
#define MAX_SYM_SIZE 128
#define DUMP_VERSION "1.1"
#define DUMP_VERSION "1.2"
#define HEX_INVALID (uchar)255
typedef ulong my_long_addr_t ; /* at some point, we need to fix configure
......@@ -72,14 +72,15 @@ static void usage()
printf("MySQL AB, by Sasha Pachev\n");
printf("This software comes with ABSOLUTELY NO WARRANTY\n\n");
printf("Resolve numeric stack strace dump into symbols.\n\n");
printf("Usage: %s [OPTIONS]\n", my_progname);
printf("Usage: %s [OPTIONS] symbols-file [numeric-dump-file]\n", my_progname);
printf("\n\
-?, --help Display this help and exit.\n\
-h, --host=... Connect to host.\n\
-V, --version Output version information and exit.\n\
-n, --numeric-dump-file File containing the numeric stack dump.\n\
-s, --symbols-file=... File containting the output of\
nm --numeric-sort mysqld .\n\n");
-V, --version Output version information and exit.\n");
printf("\n\
The symbols-file should include the output from: 'nm --numeric-sort mysqld'.\n\
The numeric-dump-file should contain a numeric stack trace from mysqld.\n\
If the numeric-dump-file is not given, the stack trace is read from stdin.\n");
}
......@@ -125,15 +126,38 @@ static int parse_args(int argc, char **argv)
argc-=optind;
argv+=optind;
if (argc > 0)
/*
The following code is to make the command compatible with the old
version that required one to use the -n and -s options
*/
if (argc == 2)
{
sym_fname= argv[0];
dump_fname= argv[1];
}
else if (argc == 1)
{
if (!sym_fname)
sym_fname = argv[0];
else if (!dump_fname)
dump_fname = argv[0];
else
{
usage();
exit(1);
}
}
else if (argc != 0 || !sym_fname)
{
usage();
exit(1);
}
return 0;
}
static void open_files()
{
fp_out = stdout;
......
......@@ -4,5 +4,7 @@ libsdir = ../libs
INCLUDES = -I../../include -I../include
CFLAGS= -g -O2 -DDEBUG_OFF
# Don't update the files from bitkeeper
%::SCCS/s.%
......@@ -29,6 +29,10 @@ subdirectory of 'mysql'. */
#include <global.h>
#include <my_pthread.h>
/* Include <sys/stat.h> to get S_I... macros defined for os0file.c */
#include <sys/stat.h>
#undef PACKAGE
#undef VERSION
......
......@@ -318,11 +318,8 @@ os_file_create(
UT_NOT_USED(purpose);
if (create_mode == OS_FILE_CREATE) {
#ifndef S_IRWXU
file = open(name, create_flag);
#else
file = open(name, create_flag, S_IRWXU | S_IRWXG | S_IRWXO);
#endif
file = open(name, create_flag, S_IRUSR | S_IWUSR | S_IRGRP
| S_IWGRP | S_IROTH | S_IWOTH);
} else {
file = open(name, create_flag);
}
......@@ -905,19 +902,21 @@ os_aio_init(
os_aio_segment_wait_events[i] = os_event_create(NULL);
}
#if defined(POSIX_ASYNC_IO) && defined(NOT_USED_WITH_MYSQL)
#ifdef POSIX_ASYNC_IO
/* Block aio signals from the current thread and its children:
for this to work, the current thread must be the first created
in the database, so that all its children will inherit its
signal mask */
/* TODO: to work MySQL needs the SIGALARM signal; the following
will not work yet! */
sigemptyset(&sigset);
sigaddset(&sigset, SIGRTMIN + 1 + 0);
sigaddset(&sigset, SIGRTMIN + 1 + 1);
sigaddset(&sigset, SIGRTMIN + 1 + 2);
sigaddset(&sigset, SIGRTMIN + 1 + 3);
pthread_sigmask(SIG_BLOCK, &sigset, NULL);
pthread_sigmask(SIG_BLOCK, &sigset, NULL); */
#endif
}
......
......@@ -408,3 +408,12 @@ CREATE TABLE t1 (
INSERT INTO t1 VALUES (1, 1);
SELECT MIN(B),MAX(b) FROM t1 WHERE t1.a = 1;
drop table t1;
#
# Crash when using many tables (Test case by Jeremy D Zawodny)
#
create table t1 (a int primary key,b int, c int, d int, e int, f int, g int, h int, i int, j int, k int, l int, m int, n int, o int, p int, q int, r int, s int, t int, u int, v int, w int, x int, y int, z int, a1 int, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int, b1 int, b2 int, b3 int, b4 int, b5 int, b6 int) type = Innobase;
insert into t1 values (1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
explain select * from t1 where a > 0 and a < 50;
drop table t1;
......@@ -37,7 +37,6 @@ along with GNU QSORT; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "mysys_priv.h"
#if !defined(HAVE_purify) || defined(QSORT_EXTRA_CMP_ARGUMENT)
/* Envoke the comparison function, returns either 0, < 0, or > 0. */
#ifdef QSORT_EXTRA_CMP_ARGUMENT
......@@ -123,6 +122,9 @@ qsort_t qsort(void *base_ptr, size_t total_elems, size_t size, qsort_cmp cmp)
stack_node stack[STACK_SIZE]; /* Largest size needed for 32-bit int!!! */
stack_node *top = stack + 1;
char *pivot_buffer = (char *) my_alloca ((int) size);
#ifdef HAVE_purify
stack[0].lo=stack[0].hi=0;
#endif
while (STACK_NOT_EMPTY)
{
......@@ -255,4 +257,3 @@ qsort_t qsort(void *base_ptr, size_t total_elems, size_t size, qsort_cmp cmp)
}
SORT_RETURN;
}
#endif /* HAVE_purify */
Testing server 'MySQL 3.23.31' at 2001-12-17 12:46:04
Testing server 'MySQL 3.23.36' at 2001-03-26 1:22:18
ATIS table test
......@@ -6,15 +6,15 @@ Creating tables
Time for create_table (28): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Inserting data
Time to insert (9768): 3 wallclock secs ( 0.60 usr 0.65 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time to insert (9768): 4 wallclock secs ( 0.57 usr 0.65 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Retrieving data
Time for select_simple_join (500): 2 wallclock secs ( 0.58 usr 0.37 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_join (100): 1 wallclock secs ( 0.42 usr 0.32 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_key_prefix_join (100): 11 wallclock secs ( 3.27 usr 2.59 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_distinct (800): 10 wallclock secs ( 1.49 usr 0.94 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_group (2800): 11 wallclock secs ( 1.45 usr 0.64 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_simple_join (500): 1 wallclock secs ( 0.58 usr 0.37 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_join (100): 2 wallclock secs ( 0.44 usr 0.33 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_key_prefix_join (100): 11 wallclock secs ( 3.47 usr 2.55 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_distinct (800): 10 wallclock secs ( 1.53 usr 0.98 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_group (2800): 11 wallclock secs ( 1.44 usr 0.65 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Removing tables
Time to drop_table (28): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 38 wallclock secs ( 7.82 usr 5.51 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 39 wallclock secs ( 8.05 usr 5.53 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing server 'MySQL 3.23.31' at 2001-12-17 12:46:42
Testing server 'MySQL 3.23.36' at 2001-03-26 1:22:58
Testing of ALTER TABLE
Testing with 1000 columns and 1000 rows in 20 steps
Insert data into the table
Time for insert (1000) 0 wallclock secs ( 0.05 usr 0.07 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for insert (1000) 0 wallclock secs ( 0.07 usr 0.06 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for alter_table_add (992): 195 wallclock secs ( 0.17 usr 0.09 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for alter_table_add (992): 219 wallclock secs ( 0.16 usr 0.07 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for create_index (8): 3 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for create_index (8): 4 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for drop_index (8): 4 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for alter_table_drop (496): 155 wallclock secs ( 0.06 usr 0.04 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for alter_table_drop (496): 178 wallclock secs ( 0.06 usr 0.04 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 357 wallclock secs ( 0.28 usr 0.20 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 405 wallclock secs ( 0.30 usr 0.16 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing server 'MySQL 3.23.31' at 2001-12-17 12:52:39
Testing server 'MySQL 3.23.36' at 2001-03-26 1:29:43
Testing of some unusual tables
All tests are done 1000 times with 1000 fields
Testing table with 1000 fields
Testing select * from table with 1 record
Time to select_many_fields(1000): 10 wallclock secs ( 3.38 usr 4.68 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time to select_many_fields(1000): 10 wallclock secs ( 3.55 usr 5.04 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing select all_fields from table with 1 record
Time to select_many_fields(1000): 15 wallclock secs ( 3.55 usr 4.64 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time to select_many_fields(1000): 15 wallclock secs ( 3.61 usr 5.06 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing insert VALUES()
Time to insert_many_fields(1000): 5 wallclock secs ( 0.33 usr 0.08 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time to insert_many_fields(1000): 5 wallclock secs ( 0.30 usr 0.09 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing insert (all_fields) VALUES()
Time to insert_many_fields(1000): 10 wallclock secs ( 0.03 usr 0.07 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time to insert_many_fields(1000): 9 wallclock secs ( 0.03 usr 0.05 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 40 wallclock secs ( 7.30 usr 9.46 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 40 wallclock secs ( 7.49 usr 10.23 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing server 'MySQL 3.23.31' at 2001-12-17 12:53:19
Testing server 'MySQL 3.23.36' at 2001-03-26 1:30:23
Testing the speed of connecting to the server and sending of data
All tests are done 10000 times
Testing connection/disconnect
Time to connect (10000): 14 wallclock secs ( 7.94 usr 2.31 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time to connect (10000): 14 wallclock secs ( 7.60 usr 2.34 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Test connect/simple select/disconnect
Time for connect+select_simple (10000): 16 wallclock secs ( 8.44 usr 3.19 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for connect+select_simple (10000): 16 wallclock secs ( 7.88 usr 3.28 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Test simple select
Time for select_simple (10000): 2 wallclock secs ( 0.30 usr 0.78 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_simple (10000): 1 wallclock secs ( 0.33 usr 0.77 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing connect/select 1 row from table/disconnect
Time to connect+select_1_row (10000): 17 wallclock secs ( 8.45 usr 3.13 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time to connect+select_1_row (10000): 17 wallclock secs ( 8.25 usr 3.12 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing select 1 row from table
Time to select_1_row (10000): 2 wallclock secs ( 0.29 usr 0.81 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time to select_1_row (10000): 3 wallclock secs ( 0.30 usr 0.80 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing select 2 rows from table
Time to select_2_rows (10000): 3 wallclock secs ( 0.32 usr 0.93 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time to select_2_rows (10000): 2 wallclock secs ( 0.32 usr 0.95 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Test select with aritmetic (+)
Time for select_column+column (10000): 3 wallclock secs ( 0.30 usr 0.72 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_column+column (10000): 3 wallclock secs ( 0.31 usr 0.79 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing retrieval of big records (65000 bytes)
Time to select_big (10000): 19 wallclock secs ( 7.77 usr 5.83 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time to select_big (10000): 20 wallclock secs ( 8.34 usr 6.75 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 76 wallclock secs (33.82 usr 17.71 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 76 wallclock secs (33.34 usr 18.80 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing server 'MySQL 3.23.31' at 2001-12-17 12:54:35
Testing server 'MySQL 3.23.36' at 2001-03-26 1:31:40
Testing the speed of creating and droping tables
Testing with 10000 tables and 10000 loop count
Testing create of tables
Time for create_MANY_tables (10000): 185 wallclock secs ( 1.92 usr 0.72 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for create_MANY_tables (10000): 104 wallclock secs ( 1.76 usr 0.73 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Accessing tables
Time to select_group_when_MANY_tables (10000): 6 wallclock secs ( 0.89 usr 0.87 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time to select_group_when_MANY_tables (10000): 6 wallclock secs ( 0.95 usr 0.90 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing drop
Time for drop_table_when_MANY_tables (10000): 6 wallclock secs ( 0.55 usr 0.56 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for drop_table_when_MANY_tables (10000): 7 wallclock secs ( 0.64 usr 0.63 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing create+drop
Time for create+drop (10000): 12 wallclock secs ( 2.23 usr 1.21 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for create_key+drop (10000): 17 wallclock secs ( 3.97 usr 1.39 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 226 wallclock secs ( 9.57 usr 4.75 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for create+drop (10000): 13 wallclock secs ( 2.39 usr 1.35 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for create_key+drop (10000): 17 wallclock secs ( 4.00 usr 1.40 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 147 wallclock secs ( 9.75 usr 5.02 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing server 'MySQL 3.23.31' at 2001-12-17 13:31:13
Testing server 'MySQL 3.23.36' at 2001-03-26 2:12:47
Testing the speed of selecting on keys that consist of many parts
The test-table has 10000 rows and the test is done with 500 ranges.
Creating table
Inserting 10000 rows
Time to insert (10000): 4 wallclock secs ( 0.76 usr 0.67 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time to insert (10000): 4 wallclock secs ( 0.81 usr 0.63 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Test if the database has a query cache
Time for select_query_cache (10000): 82 wallclock secs ( 3.31 usr 1.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_query_cache2 (10000): 83 wallclock secs ( 3.20 usr 0.96 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing big selects on the table
Time for select_big (70:17207): 1 wallclock secs ( 0.12 usr 0.09 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_range (410:1057904): 217 wallclock secs ( 7.91 usr 5.38 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for min_max_on_key (70000): 172 wallclock secs (21.85 usr 6.80 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_on_key (50000): 393 wallclock secs (16.24 usr 4.77 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_big (70:17207): 1 wallclock secs ( 0.12 usr 0.08 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for select_range (410:1057904): 225 wallclock secs ( 7.61 usr 5.12 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for min_max_on_key (70000): 155 wallclock secs (21.44 usr 6.55 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_on_key (50000): 355 wallclock secs (16.27 usr 4.69 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_group_on_key_parts (1000:100000): 44 wallclock secs ( 0.96 usr 0.58 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_group_on_key_parts (1000:100000): 42 wallclock secs ( 0.94 usr 0.56 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing count(distinct) on the table
Time for count_distinct (2000:2000): 103 wallclock secs ( 0.72 usr 0.23 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_group_on_key (1000:6000): 49 wallclock secs ( 0.49 usr 0.15 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_group_on_key_parts (1000:100000): 64 wallclock secs ( 1.03 usr 0.60 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_group (1000:100000): 64 wallclock secs ( 1.01 usr 0.62 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_big (100:1000000): 82 wallclock secs ( 6.23 usr 7.46 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 1193 wallclock secs (57.33 usr 27.36 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_key_prefix (1000:1000): 38 wallclock secs ( 0.39 usr 0.12 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct (1000:1000): 48 wallclock secs ( 0.40 usr 0.10 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_2 (1000:1000): 50 wallclock secs ( 0.42 usr 0.12 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_group_on_key (1000:6000): 42 wallclock secs ( 0.42 usr 0.15 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_group_on_key_parts (1000:100000): 70 wallclock secs ( 0.97 usr 0.59 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_group (1000:100000): 69 wallclock secs ( 0.98 usr 0.61 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for count_distinct_big (100:1000000): 82 wallclock secs ( 6.04 usr 7.21 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 1346 wallclock secs (63.34 usr 28.50 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Testing server 'MySQL 3.23.31' at 2001-12-17 13:51:06
Testing server 'MySQL 3.23.36' at 2001-03-26 2:35:13
Wisconsin benchmark test
Time for create_table (3): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Inserting data
Time to insert (31000): 14 wallclock secs ( 2.16 usr 2.23 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time to insert (31000): 15 wallclock secs ( 2.39 usr 2.30 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time to delete_big (1): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Running actual benchmark
Time for wisc_benchmark (114): 4 wallclock secs ( 1.62 usr 0.85 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Time for wisc_benchmark (114): 4 wallclock secs ( 1.59 usr 0.88 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 18 wallclock secs ( 3.78 usr 3.08 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
Total time: 19 wallclock secs ( 3.99 usr 3.17 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
......@@ -158,6 +158,7 @@ class ha_gemini: public handler
#define GEM_OPTID_SPIN_RETRIES 1
extern bool gemini_skip;
extern SHOW_COMP_OPTION have_gemini;
extern long gemini_options;
extern long gemini_buffer_cache;
extern long gemini_io_threads;
......
......@@ -917,7 +917,7 @@ innobase_mysql_cmp(
not UNIV_SQL_NULL */
{
enum_field_types mysql_tp;
int ret;
int ret;
dbug_assert(a_length != UNIV_SQL_NULL);
dbug_assert(b_length != UNIV_SQL_NULL);
......@@ -928,9 +928,15 @@ innobase_mysql_cmp(
case FIELD_TYPE_STRING:
case FIELD_TYPE_VAR_STRING:
ret = my_sortncmp((const char*) a, a_length,
(const char*) b, b_length);
return ret;
ret = my_sortncmp((const char*) a, a_length,
(const char*) b, b_length);
if (ret < 0) {
return(-1);
} else if (ret > 0) {
return(1);
} else {
return(0);
}
default:
assert(0);
}
......
......@@ -148,6 +148,7 @@ class ha_innobase: public handler
};
extern bool innobase_skip;
extern SHOW_COMP_OPTION have_innobase;
extern uint innobase_init_flags, innobase_lock_type;
extern ulong innobase_cache_size;
extern char *innobase_home, *innobase_tmpdir, *innobase_logdir;
......
......@@ -159,7 +159,10 @@ int ha_init()
if (innobase_init())
return -1;
if (!innobase_skip) // If we couldn't use handler
{
opt_using_transactions=1;
have_innobase=SHOW_OPTION_DISABLED;
}
}
#endif
#ifdef HAVE_GEMINI_DB
......@@ -168,7 +171,10 @@ int ha_init()
if (gemini_init())
return -1;
if (!gemini_skip) // If we couldn't use handler
{
opt_using_transactions=1;
have_gemini=SHOW_OPTION_DISABLED;
}
}
#endif
return 0;
......
......@@ -1696,9 +1696,9 @@ int main(int argc, char **argv)
#ifdef EXTRA_DEBUG
case 1:
sql_print_error("\
Warning: You should set server-id to a non-0 value if log-bin is enabled.\n\
mysqld will log updates to the binary log, but will not accept connections\n\
from slaves.");
Warning: You have enabled the binary log, but you haven't set server-id:\n\
Updates will be logged to the binary log, but connections to slaves will\n\
not be accepted.");
break;
#endif
case 2:
......
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