diff options
author | unknown <monty@donna.mysql.com> | 2000-11-29 05:09:28 +0200 |
---|---|---|
committer | unknown <monty@donna.mysql.com> | 2000-11-29 05:09:28 +0200 |
commit | 2c036ff7b95fd7350d9cb207470ae0022b81e76f (patch) | |
tree | ee9a533ec9c7faa983b88519569d772d4c829bc1 | |
parent | 2c660371c9a8930883bdf8d8b1b46d57b5f6265c (diff) | |
download | mariadb-git-2c036ff7b95fd7350d9cb207470ae0022b81e76f.tar.gz |
Fixed bug in 'drop table'
Portability fixes
sql-bench/bench-init.pl.sh:
Change mode to -rw-rw-r--
sql-bench/compare-results.sh:
Change mode to -rw-rw-r--
sql-bench/run-all-tests.sh:
Change mode to -rw-rw-r--
sql-bench/test-ATIS.sh:
Change mode to -rw-rw-r--
sql-bench/test-alter-table.sh:
Change mode to -rw-rw-r--
sql-bench/test-big-tables.sh:
Change mode to -rw-rw-r--
sql-bench/test-connect.sh:
Change mode to -rw-rw-r--
sql-bench/test-create.sh:
Change mode to -rw-rw-r--
sql-bench/test-select.sh:
Change mode to -rw-rw-r--
sql-bench/test-wisconsin.sh:
Change mode to -rw-rw-r--
Docs/manual.texi:
Added documentation for perror
myisam/mi_check.c:
Portability fix
mysql-test/chew_on_this/select.res:
***MISSING WEAVE***
scripts/mysqlhotcopy.sh:
Added --noindices
sql-bench/Results/ATIS-mysql-Linux_2.2.13_SMP_alpha:
New benchmark results
sql-bench/Results/RUN-mysql-Linux_2.2.13_SMP_alpha:
New benchmark results
sql-bench/Results/alter-table-mysql-Linux_2.2.13_SMP_alpha:
New benchmark results
sql-bench/Results/big-tables-mysql-Linux_2.2.13_SMP_alpha:
New benchmark results
sql-bench/Results/connect-mysql-Linux_2.2.13_SMP_alpha:
New benchmark results
sql-bench/Results/create-mysql-Linux_2.2.13_SMP_alpha:
New benchmark results
sql-bench/Results/insert-mysql-Linux_2.2.13_SMP_alpha:
New benchmark results
sql-bench/Results/select-mysql-Linux_2.2.13_SMP_alpha:
New benchmark results
sql-bench/Results/wisconsin-mysql-Linux_2.2.13_SMP_alpha:
New benchmark results
sql-bench/copy-db.sh:
Changed multi_value_insert -> insert_multi_value
sql-bench/crash-me.sh:
Changed multi_value_insert -> insert_multi_value
sql-bench/limits/Adabas.cfg:
Changed multi_value_insert -> insert_multi_value
sql-bench/limits/access.cfg:
Changed multi_value_insert -> insert_multi_value
sql-bench/limits/access_odbc.cfg:
Changed multi_value_insert -> insert_multi_value
sql-bench/limits/frontbase.cfg:
Changed multi_value_insert -> insert_multi_value
sql-bench/limits/interbase.cfg:
Changed multi_value_insert -> insert_multi_value
sql-bench/limits/mimer.cfg:
Changed multi_value_insert -> insert_multi_value
sql-bench/limits/ms-sql.cfg:
Changed multi_value_insert -> insert_multi_value
sql-bench/limits/msql.cfg:
Changed multi_value_insert -> insert_multi_value
sql-bench/limits/mysql-3.22.cfg:
Changed multi_value_insert -> insert_multi_value
sql-bench/limits/mysql-3.23.cfg:
Changed multi_value_insert -> insert_multi_value
sql-bench/limits/mysql.cfg:
Changed multi_value_insert -> insert_multi_value
sql-bench/limits/oracle.cfg:
Changed multi_value_insert -> insert_multi_value
sql-bench/limits/pg.cfg:
Changed multi_value_insert -> insert_multi_value
sql-bench/print-limit-table:
Better groups
sql-bench/server-cfg.sh:
Changed multi_value_insert -> insert_multi_value
sql-bench/test-insert.sh:
Changed multi_value_insert -> insert_multi_value
sql/ha_myisam.cc:
Added warning of number of rows changed in optimize
sql/mysqlbinlog.cc:
Portability fix
sql/mysqld.cc:
Changed mysqld to take less stack and safer shutdown
sql/share/swedish/errmsg.OLD:
update
sql/sql_base.cc:
Fixed 'drop table' bug
sql/sql_parse.cc:
Fixed bug in 'TRUNCATE'
sql/sql_show.cc:
Don't lock keycache when you do 'show variables'
53 files changed, 811 insertions, 301 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi index 8ad5a5dec39..3e96570809f 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -27761,6 +27761,7 @@ How big a @code{VARCHAR} column can be * mysqldump:: Dumping the structure and data from @strong{MySQL} databases and tables * mysqlimport:: Importing data from text files * mysqlshow:: Showing databases, tables and columns +* perror:: Displaying error messages * myisampack:: The @strong{MySQL} compressed read-only table generator @end menu @@ -28559,7 +28560,7 @@ mysqldump --all-databases > all_databases.sql @cindex files, text @cindex text files, importing @cindex @code{mysqlimport} -@node mysqlimport, mysqlshow, mysqldump, Tools +@node mysqlimport, perror, mysqldump, Tools @section Importing Data from Text Files @code{mysqlimport} provides a command-line interface to the @code{LOAD DATA @@ -28696,12 +28697,34 @@ $ mysql -e 'SELECT * FROM imptest' test +------+---------------+ @end example +@cindex error messages, displaying +@cindex perror +@node perror, mysqlshow, mysqlimport, Tools +@section Converting an error code to the corresponding error message + +@code{perror} can be used to print error message(s). @code{perror} can +be invoked like this: + +@example +shell> perror [OPTIONS] [ERRORCODE [ERRORCODE...]] + +For example: + +shell> perror 64 79 +Error code 64: Machine is not on the network +Error code 79: Can not access a needed shared library +@end example + +@code{perror} can be used to display a description for a system error +code, or an MyISAM/ISAM table handler error code. The error messages +are mostly system dependent. + @cindex databases, displaying @cindex displaying, database information @cindex tables, displaying @cindex columns, displaying @cindex showing, database information -@node mysqlshow, myisampack, mysqlimport, Tools +@node mysqlshow, myisampack, perror, Tools @section Showing Databases, Tables, and Columns @code{mysqlshow} can be used to quickly look at which databases exist, @@ -32091,6 +32114,14 @@ tmpdir=C:/temp assuming that the @file{c:\\temp} directory exists. @xref{Option files}. +Check also the error code that you get with @code{perror}. One reason +may also be a disk full error; + +@example +shell >perror 28 +Error code 28: No space left on device +@end example + @cindex commands out of sync @node Commands out of sync, Ignoring user, Cannot create, Common errors @subsection @code{Commands out of sync} error in client @@ -38932,10 +38963,12 @@ though, so Version 3.23 is not released as a stable version yet. Automatically remove Berkeley DB transaction logs that are no longer in use. @item +Added a warning if number of rows changes on @code{REPAIR}/@code{OPTIMIZE}. +@item Applied patches for OS2 by @code{Yuri Dario}. @item -@code{FLUSH TABLES table_name} didn't always flush table properly to -disk; One some cases the index tree wasn't completely written to disk. +@code{FLUSH TABLES table_name} didn't always flush the index tree +properly to disk. @item @code{--bootstrap} is now run in a separate thread. This fixes the problem that @code{mysql_install_db} core dumped on some Linux machines. diff --git a/myisam/mi_check.c b/myisam/mi_check.c index ec9320f6104..cbfc5d3878c 100644 --- a/myisam/mi_check.c +++ b/myisam/mi_check.c @@ -108,7 +108,7 @@ int chk_status(MI_CHECK *param, register MI_INFO *info) else if (mi_is_crashed(info)) mi_check_print_warning(param, "Table is marked as crashed"); - if (share->state.open_count != (info->s->global_changed ? 1 : 0)) + if (share->state.open_count != (uint) (info->s->global_changed ? 1 : 0)) { mi_check_print_warning(param, "%d clients is using or hasn't closed the table properly", diff --git a/scripts/mysqlhotcopy.sh b/scripts/mysqlhotcopy.sh index fc69ab01b9f..735fbdcf2aa 100644 --- a/scripts/mysqlhotcopy.sh +++ b/scripts/mysqlhotcopy.sh @@ -36,7 +36,8 @@ WARNING: THIS IS VERY MUCH A FIRST-CUT ALPHA. Comments/patches welcome. # Documentation continued at end of file -my $VERSION = "1.8"; +my $VERSION = "1.9"; +my $opt_tmpdir= $main::env{TMPDIR}; my $OPTIONS = <<"_OPTIONS"; @@ -50,7 +51,7 @@ Usage: $0 db_name [new_db_name | directory] --allowold don't abort if target already exists (rename it _old) --keepold don't delete previous (now renamed) target when done - --indices include index files in copy + --noindices don't include full index files in copy --method=# method for copy (only "cp" currently supported) -q, --quiet be silent except for errors @@ -61,6 +62,7 @@ Usage: $0 db_name [new_db_name | directory] --suffix=# suffix for names of copied databases --checkpoint=# insert checkpoint entry into specified db.table --flushlog flush logs once all tables are locked + --tmpdir=# temporary directory (instead of $opt_tmpdir) Try 'perldoc $0 for more complete documentation' _OPTIONS @@ -71,7 +73,7 @@ sub usage { my %opt = ( user => getpwuid($>), - indices => 1, # for safety + noindices => 0, allowold => 0, # for safety keepold => 0, method => "cp", @@ -86,7 +88,7 @@ GetOptions( \%opt, "socket|S=s", "allowold!", "keepold!", - "indices!", + "noindices!", "method=s", "debug", "quiet|q", @@ -95,6 +97,7 @@ GetOptions( \%opt, "suffix=s", "checkpoint=s", "flushlog", + "tmpdir|t=s", "dryrun|n", ) or usage("Invalid option"); @@ -133,6 +136,7 @@ else { my $mysqld_help; my %mysqld_vars; my $start_time = time; +my $opt_tmpdir= $opt{tempdir} ? $opt{tmpdir} : $main::env{TMPDIR}; $0 = $1 if $0 =~ m:/([^/]+)$:; $opt{quiet} = 0 if $opt{debug}; $opt{allowold} = 1 if $opt{keepold}; @@ -238,13 +242,16 @@ foreach my $rdb ( @db_desc ) { my @db_files = sort ( $negated ? grep { $db_files{$_} !~ $t_regex } keys %db_files : grep { $db_files{$_} =~ $t_regex } keys %db_files ); + my @index_files=(); ## remove indices unless we're told to keep them - unless ($opt{indices}) { + if ($opt{noindices}) { + @index_files= grep { /\.(ISM|MYI)$/ } @db_files; @db_files = grep { not /\.(ISM|MYI)$/ } @db_files; } $rdb->{files} = [ @db_files ]; + $rdb->{index} = [ @index_files ]; my @hc_tables = map { "$db.$_" } @dbh_tables; $rdb->{tables} = [ @hc_tables ]; @@ -369,27 +376,78 @@ else { my @failed = (); -foreach my $rdb ( @db_desc ) { - my @files = map { "$datadir/$rdb->{src}/$_" } @{$rdb->{files}}; - next unless @files; - eval { copy_files($opt{method}, \@files, $rdb->{target} ); }; - - push @failed, "$rdb->{src} -> $rdb->{target} failed: $@" - if ( $@ ); - - if ( $opt{checkpoint} ) { - my $msg = ( $@ ) ? "Failed: $@" : "Succeeded"; - - eval { - $dbh->do( qq{ insert into $opt{checkpoint} (src, dest, msg) - VALUES ( '$rdb->{src}', '$rdb->{target}', '$msg' ) - } ); - }; - - if ( $@ ) { - warn "Failed to update checkpoint table: $@\n"; - } +foreach my $rdb ( @db_desc ) +{ + my @files = map { "$datadir/$rdb->{src}/$_" } @{$rdb->{files}}; + next unless @files; + + eval { copy_files($opt{method}, \@files, $rdb->{target} ); }; + push @failed, "$rdb->{src} -> $rdb->{target} failed: $@" + if ( $@ ); + + @files = map { "$datadir/$rdb->{src}/$_" } @{$rdb->{index}}; + if ($rdb->{index}) + { + # + # Copy only the header of the index file + # + + my $tmpfile="$opt_tmpdir/mysqlhotcopy$$"; + foreach my $file ($rdb->{index}) + { + my $from="$datadir/$rdb->{src}/$file"; + my $to="$rdb->{target}/$file"; + my $buff; + open(INPUT, $from) || die "Can't open file $from: $!\n"; + my $length=read INPUT, $buff, 2048; + die "Can't read index header from $from\n" if ($length <= 1024); + close INPUT; + + if ( $opt{dryrun} ) + { + print '$opt{method}-header $from $to\n'; + } + elsif ($opt{method} eq 'cp') + { + !open(OUTPUT,$to) || die "Can\'t create file $to: $!\n"; + if (write(OUTPUT,$buff) != length($buff)) + { + die "Error when writing data to $to: $!\n"; + } + close OUTPUT || die "Error on close of $to: $!\n"; + } + elsif ($opt{method} eq 'scp') + { + my $tmp=$tmpfile; + open(OUTPUT,"$tmp") || die "Can\'t create file $tmp: $!\n"; + if (write(OUTPUT,$buff) != length($buff)) + { + die "Error when writing data to $tmp: $!\n"; + } + close OUTPUT || die "Error on close of $tmp: $!\n"; + safe_system('scp $tmp $to'); + } + else + { + die "Can't use unsupported method '$opt{method}'\n"; + } + } + unlink "$opt_tmpdir/mysqlhotcopy$$"; + } + + if ( $opt{checkpoint} ) { + my $msg = ( $@ ) ? "Failed: $@" : "Succeeded"; + + eval { + $dbh->do( qq{ insert into $opt{checkpoint} (src, dest, msg) + VALUES ( '$rdb->{src}', '$rdb->{target}', '$msg' ) + } ); + }; + + if ( $@ ) { + warn "Failed to update checkpoint table: $@\n"; } + } } if ( $opt{dryrun} ) { @@ -469,25 +527,34 @@ sub copy_files { # add files to copy and the destination directory push @cmd, @$files, $target; } - else { + else + { die "Can't use unsupported method '$method'\n"; } + safe_system (@cmd); +} - if ( $opt{dryrun} ) { - print "@cmd\n"; - next; - } +sub safe_system +{ + my @cmd=shift; - ## for some reason system fails but backticks works ok for scp... - print "Executing '@cmd'\n" if $opt{debug}; - my $cp_status = system @cmd; - if ($cp_status != 0) { - warn "Burp ('scuse me). Trying backtick execution...\n" if $opt{debug}; #' - ## try something else - `@cmd` && die "Error: @cmd failed ($cp_status) while copying files.\n"; - } + if ( $opt{dryrun} ) + { + print "@cmd\n"; + return; + } + + ## for some reason system fails but backticks works ok for scp... + print "Executing '@cmd'\n" if $opt{debug}; + my $cp_status = system @cmd; + if ($cp_status != 0) { + warn "Burp ('scuse me). Trying backtick execution...\n" if $opt{debug}; #' + ## try something else + `@cmd` && die "Error: @cmd failed ($cp_status) while copying files.\n"; + } } + sub retire_directory { my ( @dir ) = @_; @@ -611,9 +678,9 @@ port to use when connecting to local server UNIX domain socket to use when connecting to local server -=item --indices +=item --noindices -include index files in copy +don't include index files in copy =item --method=# @@ -677,9 +744,6 @@ Add support for other copy methods (eg tar to single file?). Add support for forthcoming MySQL ``RAID'' table subdirectory layouts. -Add option to only copy the first 65KB of index files. That simplifies -recovery (recovery with no index file at all is complicated). - =head1 AUTHOR Tim Bunce @@ -689,3 +753,5 @@ Martin Waite - added checkpoint, flushlog, regexp and dryrun options Ralph Corderoy - added synonyms for commands Scott Wiersdorf - added table regex and scp support + +Monty - working --noindex (copy only first 2048 bytes of index file) diff --git a/sql-bench/Results/ATIS-mysql-Linux_2.2.13_SMP_alpha b/sql-bench/Results/ATIS-mysql-Linux_2.2.13_SMP_alpha index 05c922f77bf..9f9c00dbc4f 100644 --- a/sql-bench/Results/ATIS-mysql-Linux_2.2.13_SMP_alpha +++ b/sql-bench/Results/ATIS-mysql-Linux_2.2.13_SMP_alpha @@ -1,4 +1,4 @@ -Testing server 'MySQL 3.23.28 gamma' at 2000-11-18 15:05:04 +Testing server 'MySQL 3.23.29 gamma' at 2000-11-28 17:24:55 ATIS table test @@ -6,14 +6,14 @@ 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.68 usr 0.60 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time to insert (9768): 4 wallclock secs ( 0.64 usr 0.64 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Retrieving data -Time for select_simple_join (500): 2 wallclock secs ( 0.62 usr 0.39 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for select_join (200): 12 wallclock secs ( 4.31 usr 3.11 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for select_distinct (800): 11 wallclock secs ( 1.72 usr 0.95 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for select_group (2800): 10 wallclock secs ( 1.58 usr 0.66 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_simple_join (500): 1 wallclock secs ( 0.66 usr 0.38 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_join (200): 12 wallclock secs ( 4.45 usr 3.14 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_distinct (800): 11 wallclock secs ( 1.77 usr 0.97 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_group (2800): 10 wallclock secs ( 1.59 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 ( 8.93 usr 5.72 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Total time: 38 wallclock secs ( 9.13 usr 5.79 sys + 0.00 cusr 0.00 csys = 0.00 CPU) diff --git a/sql-bench/Results/RUN-mysql-Linux_2.2.13_SMP_alpha b/sql-bench/Results/RUN-mysql-Linux_2.2.13_SMP_alpha index 6cd4861215b..69853f363bc 100644 --- a/sql-bench/Results/RUN-mysql-Linux_2.2.13_SMP_alpha +++ b/sql-bench/Results/RUN-mysql-Linux_2.2.13_SMP_alpha @@ -1,92 +1,92 @@ -Benchmark DBD suite: 2.9 -Date of test: 2000-11-18 18:20:34 +Benchmark DBD suite: 2.10 +Date of test: 2000-11-28 17:24:55 Running tests on: Linux 2.2.13-SMP alpha Arguments: Comments: Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; gcc 2.95.2 + ccc Limits from: -Server version: MySQL 3.23.28 gamma +Server version: MySQL 3.23.29 gamma -ATIS: Total time: 38 wallclock secs ( 8.93 usr 5.72 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -alter-table: Total time: 375 wallclock secs ( 0.30 usr 0.15 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -big-tables: Total time: 42 wallclock secs ( 9.09 usr 11.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -connect: Total time: 77 wallclock secs (34.21 usr 17.98 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -create: Total time: 134 wallclock secs (10.66 usr 4.31 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -insert: Total time: 1851 wallclock secs (450.58 usr 224.15 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -select: Total time: 1215 wallclock secs (57.43 usr 28.03 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -wisconsin: Total time: 19 wallclock secs ( 3.77 usr 2.78 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +ATIS: Total time: 38 wallclock secs ( 9.13 usr 5.79 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +alter-table: Total time: 391 wallclock secs ( 0.31 usr 0.17 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +big-tables: Total time: 41 wallclock secs ( 8.35 usr 10.24 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +connect: Total time: 76 wallclock secs (31.66 usr 19.05 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +create: Total time: 133 wallclock secs (10.24 usr 4.48 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +insert: Total time: 1821 wallclock secs (430.65 usr 226.65 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +select: Total time: 1170 wallclock secs (57.76 usr 27.85 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +wisconsin: Total time: 18 wallclock secs ( 3.70 usr 2.82 sys + 0.00 cusr 0.00 csys = 0.00 CPU) All 8 test executed successfully Totals per operation: Operation seconds usr sys cpu tests -alter_table_add 205.00 0.17 0.07 0.00 992 -alter_table_drop 161.00 0.07 0.03 0.00 496 -connect 14.00 8.15 2.36 0.00 10000 -connect+select_1_row 17.00 8.55 3.39 0.00 10000 -connect+select_simple 16.00 8.31 3.17 0.00 10000 -count 49.00 0.03 0.01 0.00 100 -count_distinct 86.00 0.71 0.21 0.00 2000 -count_distinct_big 140.00 7.24 8.69 0.00 120 -count_distinct_group 72.00 1.07 0.63 0.00 1000 -count_distinct_group_on_key 42.00 0.45 0.15 0.00 1000 -count_distinct_group_on_key_parts 72.00 1.08 0.62 0.00 1000 -count_group_on_key_parts 39.00 0.99 0.61 0.00 1000 -count_on_key 454.00 15.83 4.45 0.00 50100 -create+drop 13.00 2.86 0.85 0.00 10000 -create_MANY_tables 91.00 1.85 0.61 0.00 10000 +alter_table_add 213.00 0.17 0.07 0.00 992 +alter_table_drop 170.00 0.07 0.03 0.00 496 +connect 14.00 7.49 2.43 0.00 10000 +connect+select_1_row 17.00 7.59 3.33 0.00 10000 +connect+select_simple 15.00 7.61 3.24 0.00 10000 +count 48.00 0.03 0.01 0.00 100 +count_distinct 92.00 0.69 0.21 0.00 2000 +count_distinct_big 135.00 7.24 8.53 0.00 120 +count_distinct_group 64.00 1.06 0.66 0.00 1000 +count_distinct_group_on_key 42.00 0.43 0.14 0.00 1000 +count_distinct_group_on_key_parts 63.00 1.10 0.62 0.00 1000 +count_group_on_key_parts 40.00 1.00 0.61 0.00 1000 +count_on_key 428.00 15.76 4.53 0.00 50100 +create+drop 13.00 2.68 1.04 0.00 10000 +create_MANY_tables 90.00 1.79 0.64 0.00 10000 create_index 4.00 0.00 0.00 0.00 8 -create_key+drop 17.00 4.39 1.33 0.00 10000 +create_key+drop 17.00 4.18 1.32 0.00 10000 create_table 0.00 0.00 0.00 0.00 31 delete_all 11.00 0.00 0.00 0.00 12 -delete_all_many_keys 49.00 0.01 0.01 0.00 1 +delete_all_many_keys 49.00 0.02 0.01 0.00 1 delete_big 0.00 0.00 0.00 0.00 1 -delete_big_many_keys 49.00 0.01 0.01 0.00 128 -delete_key 4.00 0.65 0.54 0.00 10000 +delete_big_many_keys 49.00 0.02 0.01 0.00 128 +delete_key 4.00 0.66 0.53 0.00 10000 drop_index 4.00 0.00 0.00 0.00 8 drop_table 0.00 0.00 0.00 0.00 28 -drop_table_when_MANY_tables 7.00 0.63 0.62 0.00 10000 -insert 137.00 26.71 20.07 0.00 350768 -insert_duplicates 39.00 5.58 6.03 0.00 100000 -insert_key 93.00 8.08 5.73 0.00 100000 -insert_many_fields 14.00 0.34 0.16 0.00 2000 -insert_select_1_key 4.00 0.00 0.00 0.00 1 -insert_select_2_keys 7.00 0.00 0.00 0.00 1 -min_max 21.00 0.02 0.00 0.00 60 -min_max_on_key 186.00 25.42 7.61 0.00 85000 -multiple_value_insert 7.00 2.19 0.05 0.00 100000 -order_by_big 54.00 22.86 21.67 0.00 10 -order_by_big_key 37.00 22.01 14.79 0.00 10 -order_by_big_key2 37.00 22.02 14.86 0.00 10 -order_by_big_key_desc 37.00 22.03 14.87 0.00 10 -order_by_big_key_diff 52.00 23.11 21.71 0.00 10 -order_by_key 3.00 1.17 0.64 0.00 500 -order_by_key2_diff 5.00 2.05 1.25 0.00 500 -order_by_range 5.00 1.17 0.65 0.00 500 -outer_join 61.00 0.01 0.00 0.00 10 -outer_join_found 55.00 0.00 0.00 0.00 10 -outer_join_not_found 35.00 0.01 0.00 0.00 500 -outer_join_on_key 40.00 0.00 0.00 0.00 10 -select_1_row 3.00 0.41 1.01 0.00 10000 -select_2_rows 3.00 0.38 0.89 0.00 10000 -select_big 57.00 30.30 20.70 0.00 10080 -select_column+column 3.00 0.27 0.75 0.00 10000 -select_diff_key 154.00 0.23 0.06 0.00 500 -select_distinct 11.00 1.72 0.95 0.00 800 -select_group 52.00 1.62 0.67 0.00 2911 -select_group_when_MANY_tables 6.00 0.92 0.90 0.00 10000 -select_join 12.00 4.31 3.11 0.00 200 -select_key 137.00 75.62 20.87 0.00 200000 -select_key2 144.00 76.78 20.52 0.00 200000 -select_key_prefix 144.00 76.89 20.33 0.00 200000 -select_many_fields 28.00 8.73 10.85 0.00 2000 -select_range 228.00 8.51 5.59 0.00 410 -select_range_key2 20.00 6.50 2.29 0.00 25010 -select_range_prefix 18.00 6.46 2.33 0.00 25010 -select_simple 2.00 0.29 0.75 0.00 10000 -select_simple_join 2.00 0.62 0.39 0.00 500 -update_big 25.00 0.00 0.00 0.00 10 -update_of_key 47.00 3.41 2.97 0.00 50256 -update_of_key_big 18.00 0.04 0.04 0.00 501 -update_with_key 134.00 21.08 18.70 0.00 300000 -wisc_benchmark 4.00 1.92 0.94 0.00 114 -TOTALS 3797.00 574.84 294.06 0.00 1946237 +drop_table_when_MANY_tables 7.00 0.62 0.61 0.00 10000 +insert 137.00 24.96 21.11 0.00 350768 +insert_duplicates 38.00 5.63 6.17 0.00 100000 +insert_key 94.00 7.67 5.66 0.00 100000 +insert_many_fields 14.00 0.35 0.12 0.00 2000 +insert_select_1_key 5.00 0.00 0.00 0.00 1 +insert_select_2_keys 6.00 0.00 0.00 0.00 1 +min_max 20.00 0.02 0.00 0.00 60 +min_max_on_key 175.00 25.68 7.59 0.00 85000 +multiple_value_insert 7.00 2.15 0.05 0.00 100000 +order_by_big 54.00 22.33 21.66 0.00 10 +order_by_big_key 36.00 21.23 14.75 0.00 10 +order_by_big_key2 37.00 21.94 15.04 0.00 10 +order_by_big_key_desc 37.00 21.53 14.74 0.00 10 +order_by_big_key_diff 51.00 22.21 21.67 0.00 10 +order_by_key 2.00 1.14 0.63 0.00 500 +order_by_key2_diff 5.00 1.99 1.23 0.00 500 +order_by_range 5.00 1.14 0.64 0.00 500 +outer_join 57.00 0.00 0.00 0.00 10 +outer_join_found 52.00 0.00 0.00 0.00 10 +outer_join_not_found 34.00 0.00 0.00 0.00 500 +outer_join_on_key 38.00 0.01 0.00 0.00 10 +select_1_row 2.00 0.35 0.95 0.00 10000 +select_2_rows 3.00 0.34 1.00 0.00 10000 +select_big 56.00 28.86 21.57 0.00 10080 +select_column+column 3.00 0.26 0.67 0.00 10000 +select_diff_key 148.00 0.21 0.05 0.00 500 +select_distinct 11.00 1.77 0.97 0.00 800 +select_group 49.00 1.63 0.66 0.00 2911 +select_group_when_MANY_tables 6.00 0.96 0.87 0.00 10000 +select_join 12.00 4.45 3.14 0.00 200 +select_key 137.00 73.10 21.05 0.00 200000 +select_key2 142.00 72.16 21.15 0.00 200000 +select_key_prefix 143.00 72.60 21.07 0.00 200000 +select_many_fields 26.00 7.99 10.11 0.00 2000 +select_range 229.00 8.56 5.62 0.00 410 +select_range_key2 19.00 6.47 2.33 0.00 25010 +select_range_prefix 20.00 6.51 2.25 0.00 25010 +select_simple 2.00 0.28 0.77 0.00 10000 +select_simple_join 1.00 0.66 0.38 0.00 500 +update_big 27.00 0.00 0.00 0.00 10 +update_of_key 48.00 3.45 3.04 0.00 50256 +update_of_key_big 18.00 0.04 0.03 0.00 501 +update_with_key 134.00 18.92 18.69 0.00 300000 +wisc_benchmark 4.00 1.88 0.93 0.00 114 +TOTALS 3733.00 551.64 296.93 0.00 1946237 diff --git a/sql-bench/Results/alter-table-mysql-Linux_2.2.13_SMP_alpha b/sql-bench/Results/alter-table-mysql-Linux_2.2.13_SMP_alpha index 2e2126c04c2..329f27b8acb 100644 --- a/sql-bench/Results/alter-table-mysql-Linux_2.2.13_SMP_alpha +++ b/sql-bench/Results/alter-table-mysql-Linux_2.2.13_SMP_alpha @@ -1,16 +1,16 @@ -Testing server 'MySQL 3.23.28 gamma' at 2000-11-18 15:05:42 +Testing server 'MySQL 3.23.29 gamma' at 2000-11-28 17:25:34 Testing of ALTER TABLE Testing with 1000 columns and 1000 rows in 20 steps Insert data into the table -Time for insert (1000) 1 wallclock secs ( 0.06 usr 0.04 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for insert (1000) 0 wallclock secs ( 0.06 usr 0.06 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for alter_table_add (992): 205 wallclock secs ( 0.17 usr 0.07 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for alter_table_add (992): 213 wallclock secs ( 0.17 usr 0.07 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): 161 wallclock secs ( 0.07 usr 0.03 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for alter_table_drop (496): 170 wallclock secs ( 0.07 usr 0.03 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Total time: 375 wallclock secs ( 0.30 usr 0.15 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Total time: 391 wallclock secs ( 0.31 usr 0.17 sys + 0.00 cusr 0.00 csys = 0.00 CPU) diff --git a/sql-bench/Results/big-tables-mysql-Linux_2.2.13_SMP_alpha b/sql-bench/Results/big-tables-mysql-Linux_2.2.13_SMP_alpha index 8ab20319026..073e2f2b4d2 100644 --- a/sql-bench/Results/big-tables-mysql-Linux_2.2.13_SMP_alpha +++ b/sql-bench/Results/big-tables-mysql-Linux_2.2.13_SMP_alpha @@ -1,19 +1,19 @@ -Testing server 'MySQL 3.23.28 gamma' at 2000-11-18 15:11:57 +Testing server 'MySQL 3.23.29 gamma' at 2000-11-28 17:32:05 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): 12 wallclock secs ( 4.18 usr 5.43 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time to select_many_fields(1000): 10 wallclock secs ( 3.93 usr 5.07 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): 16 wallclock secs ( 4.55 usr 5.42 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time to select_many_fields(1000): 16 wallclock secs ( 4.06 usr 5.04 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Testing insert VALUES() -Time to insert_many_fields(1000): 5 wallclock secs ( 0.30 usr 0.08 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time to insert_many_fields(1000): 5 wallclock secs ( 0.33 usr 0.07 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Testing insert (all_fields) VALUES() -Time to insert_many_fields(1000): 9 wallclock secs ( 0.04 usr 0.08 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time to insert_many_fields(1000): 9 wallclock secs ( 0.02 usr 0.05 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Total time: 42 wallclock secs ( 9.09 usr 11.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Total time: 41 wallclock secs ( 8.35 usr 10.24 sys + 0.00 cusr 0.00 csys = 0.00 CPU) diff --git a/sql-bench/Results/connect-mysql-Linux_2.2.13_SMP_alpha b/sql-bench/Results/connect-mysql-Linux_2.2.13_SMP_alpha index bf89d8f6bed..2704a8a38ff 100644 --- a/sql-bench/Results/connect-mysql-Linux_2.2.13_SMP_alpha +++ b/sql-bench/Results/connect-mysql-Linux_2.2.13_SMP_alpha @@ -1,30 +1,30 @@ -Testing server 'MySQL 3.23.28 gamma' at 2000-11-18 15:12:39 +Testing server 'MySQL 3.23.29 gamma' at 2000-11-28 17:32:46 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 ( 8.15 usr 2.36 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time to connect (10000): 14 wallclock secs ( 7.49 usr 2.43 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.31 usr 3.17 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for connect+select_simple (10000): 15 wallclock secs ( 7.61 usr 3.24 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Test simple select -Time for select_simple (10000): 2 wallclock secs ( 0.29 usr 0.75 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_simple (10000): 2 wallclock secs ( 0.28 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.55 usr 3.39 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time to connect+select_1_row (10000): 17 wallclock secs ( 7.59 usr 3.33 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Testing select 1 row from table -Time to select_1_row (10000): 3 wallclock secs ( 0.41 usr 1.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time to select_1_row (10000): 2 wallclock secs ( 0.35 usr 0.95 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.38 usr 0.89 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time to select_2_rows (10000): 3 wallclock secs ( 0.34 usr 1.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Test select with aritmetic (+) -Time for select_column+column (10000): 3 wallclock secs ( 0.27 usr 0.75 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_column+column (10000): 3 wallclock secs ( 0.26 usr 0.67 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.84 usr 5.67 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time to select_big (10000): 20 wallclock secs ( 7.74 usr 6.67 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Total time: 77 wallclock secs (34.21 usr 17.98 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Total time: 76 wallclock secs (31.66 usr 19.05 sys + 0.00 cusr 0.00 csys = 0.00 CPU) diff --git a/sql-bench/Results/create-mysql-Linux_2.2.13_SMP_alpha b/sql-bench/Results/create-mysql-Linux_2.2.13_SMP_alpha index 566dcce6077..aeb309681f4 100644 --- a/sql-bench/Results/create-mysql-Linux_2.2.13_SMP_alpha +++ b/sql-bench/Results/create-mysql-Linux_2.2.13_SMP_alpha @@ -1,18 +1,18 @@ -Testing server 'MySQL 3.23.28 gamma' at 2000-11-18 15:13:56 +Testing server 'MySQL 3.23.29 gamma' at 2000-11-28 17:34:02 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): 91 wallclock secs ( 1.85 usr 0.61 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for create_MANY_tables (10000): 90 wallclock secs ( 1.79 usr 0.64 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Accessing tables -Time to select_group_when_MANY_tables (10000): 6 wallclock secs ( 0.92 usr 0.90 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time to select_group_when_MANY_tables (10000): 6 wallclock secs ( 0.96 usr 0.87 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Testing drop -Time for drop_table_when_MANY_tables (10000): 7 wallclock secs ( 0.63 usr 0.62 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for drop_table_when_MANY_tables (10000): 7 wallclock secs ( 0.62 usr 0.61 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Testing create+drop -Time for create+drop (10000): 13 wallclock secs ( 2.86 usr 0.85 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for create_key+drop (10000): 17 wallclock secs ( 4.39 usr 1.33 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Total time: 134 wallclock secs (10.66 usr 4.31 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for create+drop (10000): 13 wallclock secs ( 2.68 usr 1.04 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for create_key+drop (10000): 17 wallclock secs ( 4.18 usr 1.32 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Total time: 133 wallclock secs (10.24 usr 4.48 sys + 0.00 cusr 0.00 csys = 0.00 CPU) diff --git a/sql-bench/Results/insert-mysql-Linux_2.2.13_SMP_alpha b/sql-bench/Results/insert-mysql-Linux_2.2.13_SMP_alpha index ad448190c98..e2dc57577bb 100644 --- a/sql-bench/Results/insert-mysql-Linux_2.2.13_SMP_alpha +++ b/sql-bench/Results/insert-mysql-Linux_2.2.13_SMP_alpha @@ -1,4 +1,4 @@ -Testing server 'MySQL 3.23.28 gamma' at 2000-11-18 15:16:11 +Testing server 'MySQL 3.23.29 gamma' at 2000-11-28 17:36:15 Testing the speed of inserting data into 1 table and do some selects on it. The tests are done with a table that has 100000 rows. @@ -8,78 +8,78 @@ Creating tables Inserting 100000 rows in order Inserting 100000 rows in reverse order Inserting 100000 rows in random order -Time for insert (300000): 116 wallclock secs (23.42 usr 16.99 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for insert (300000): 115 wallclock secs (21.74 usr 18.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Testing insert of duplicates -Time for insert_duplicates (100000): 39 wallclock secs ( 5.58 usr 6.03 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for insert_duplicates (100000): 38 wallclock secs ( 5.63 usr 6.17 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Retrieving data from the table -Time for select_big (10:3000000): 37 wallclock secs (22.33 usr 14.93 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for order_by_big_key (10:3000000): 37 wallclock secs (22.01 usr 14.79 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for order_by_big_key_desc (10:3000000): 37 wallclock secs (22.03 usr 14.87 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for order_by_big_key2 (10:3000000): 37 wallclock secs (22.02 usr 14.86 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for order_by_big_key_diff (10:3000000): 52 wallclock secs (23.11 usr 21.71 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for order_by_big (10:3000000): 54 wallclock secs (22.86 usr 21.67 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for order_by_range (500:125750): 5 wallclock secs ( 1.17 usr 0.65 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for order_by_key (500:125750): 3 wallclock secs ( 1.17 usr 0.64 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for order_by_key2_diff (500:250500): 5 wallclock secs ( 2.05 usr 1.25 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for select_diff_key (500:1000): 154 wallclock secs ( 0.23 usr 0.06 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for select_range_prefix (5010:42084): 10 wallclock secs ( 2.79 usr 0.99 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for select_range_key2 (5010:42084): 11 wallclock secs ( 2.80 usr 1.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for select_key_prefix (200000): 144 wallclock secs (76.89 usr 20.33 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for select_key (200000): 137 wallclock secs (75.62 usr 20.87 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for select_key2 (200000): 144 wallclock secs (76.78 usr 20.52 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_big (10:3000000): 35 wallclock secs (20.98 usr 14.81 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for order_by_big_key (10:3000000): 36 wallclock secs (21.23 usr 14.75 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for order_by_big_key_desc (10:3000000): 37 wallclock secs (21.53 usr 14.74 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for order_by_big_key2 (10:3000000): 37 wallclock secs (21.94 usr 15.04 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for order_by_big_key_diff (10:3000000): 51 wallclock secs (22.21 usr 21.67 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for order_by_big (10:3000000): 54 wallclock secs (22.33 usr 21.66 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for order_by_range (500:125750): 5 wallclock secs ( 1.14 usr 0.64 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for order_by_key (500:125750): 2 wallclock secs ( 1.14 usr 0.63 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for order_by_key2_diff (500:250500): 5 wallclock secs ( 1.99 usr 1.23 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_diff_key (500:1000): 148 wallclock secs ( 0.21 usr 0.05 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_range_prefix (5010:42084): 11 wallclock secs ( 2.83 usr 0.97 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_range_key2 (5010:42084): 10 wallclock secs ( 2.80 usr 1.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_key_prefix (200000): 143 wallclock secs (72.60 usr 21.07 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_key (200000): 137 wallclock secs (73.10 usr 21.05 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_key2 (200000): 142 wallclock secs (72.16 usr 21.15 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Test of compares with simple ranges -Time for select_range_prefix (20000:43500): 8 wallclock secs ( 3.67 usr 1.34 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for select_range_key2 (20000:43500): 9 wallclock secs ( 3.70 usr 1.29 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for select_group (111): 42 wallclock secs ( 0.04 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for min_max_on_key (15000): 9 wallclock secs ( 4.71 usr 1.26 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for min_max (60): 21 wallclock secs ( 0.02 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for count_on_key (100): 41 wallclock secs ( 0.04 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for count (100): 49 wallclock secs ( 0.03 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for count_distinct_big (20): 58 wallclock secs ( 0.00 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_range_prefix (20000:43500): 9 wallclock secs ( 3.68 usr 1.28 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_range_key2 (20000:43500): 9 wallclock secs ( 3.67 usr 1.33 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_group (111): 39 wallclock secs ( 0.04 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for min_max_on_key (15000): 9 wallclock secs ( 4.64 usr 1.33 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for min_max (60): 20 wallclock secs ( 0.02 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for count_on_key (100): 39 wallclock secs ( 0.04 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for count (100): 48 wallclock secs ( 0.03 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for count_distinct_big (20): 55 wallclock secs ( 0.01 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Testing update of keys with functions -Time for update_of_key (50000): 26 wallclock secs ( 3.38 usr 2.96 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for update_of_key_big (501): 18 wallclock secs ( 0.04 usr 0.04 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for update_of_key (50000): 27 wallclock secs ( 3.43 usr 3.03 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for update_of_key_big (501): 18 wallclock secs ( 0.04 usr 0.03 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Testing update with key -Time for update_with_key (300000): 134 wallclock secs (21.08 usr 18.70 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for update_with_key (300000): 134 wallclock secs (18.92 usr 18.69 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Testing update of all rows -Time for update_big (10): 25 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for update_big (10): 27 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Testing left outer join -Time for outer_join_on_key (10:10): 40 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for outer_join (10:10): 61 wallclock secs ( 0.01 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for outer_join_found (10:10): 55 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for outer_join_not_found (500:10): 35 wallclock secs ( 0.01 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for outer_join_on_key (10:10): 38 wallclock secs ( 0.01 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for outer_join (10:10): 57 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for outer_join_found (10:10): 52 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for outer_join_not_found (500:10): 34 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Testing INSERT INTO ... SELECT -Time for insert_select_1_key (1): 4 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for insert_select_2_keys (1): 7 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for drop table(2): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for insert_select_1_key (1): 5 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for insert_select_2_keys (1): 6 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for drop table(2): 1 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Testing delete -Time for delete_key (10000): 4 wallclock secs ( 0.65 usr 0.54 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for delete_key (10000): 4 wallclock secs ( 0.66 usr 0.53 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for delete_all (12): 11 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Insert into table with 16 keys and with a primary key with 16 parts -Time for insert_key (100000): 93 wallclock secs ( 8.08 usr 5.73 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for insert_key (100000): 94 wallclock secs ( 7.67 usr 5.66 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Testing update of keys -Time for update_of_key (256): 21 wallclock secs ( 0.03 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for update_of_key (256): 21 wallclock secs ( 0.02 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Deleting rows from the table -Time for delete_big_many_keys (128): 49 wallclock secs ( 0.01 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for delete_big_many_keys (128): 49 wallclock secs ( 0.02 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Deleting everything from table -Time for delete_all_many_keys (1): 49 wallclock secs ( 0.01 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for delete_all_many_keys (1): 49 wallclock secs ( 0.02 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Inserting 100000 rows with multiple values -Time for multiple_value_insert (100000): 7 wallclock secs ( 2.19 usr 0.05 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for multiple_value_insert (100000): 7 wallclock secs ( 2.15 usr 0.05 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Time for drop table(1): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Total time: 1851 wallclock secs (450.58 usr 224.15 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Total time: 1821 wallclock secs (430.65 usr 226.65 sys + 0.00 cusr 0.00 csys = 0.00 CPU) diff --git a/sql-bench/Results/select-mysql-Linux_2.2.13_SMP_alpha b/sql-bench/Results/select-mysql-Linux_2.2.13_SMP_alpha index 67dbf08fa05..15746c34a1a 100644 --- a/sql-bench/Results/select-mysql-Linux_2.2.13_SMP_alpha +++ b/sql-bench/Results/select-mysql-Linux_2.2.13_SMP_alpha @@ -1,23 +1,23 @@ -Testing server 'MySQL 3.23.28 gamma' at 2000-11-18 17:02:47 +Testing server 'MySQL 3.23.29 gamma' at 2000-11-28 18:06:37 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): 3 wallclock secs ( 0.76 usr 0.64 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time to insert (10000): 4 wallclock secs ( 0.76 usr 0.58 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.13 usr 0.10 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for select_range (410:1057904): 228 wallclock secs ( 8.51 usr 5.59 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for min_max_on_key (70000): 177 wallclock secs (20.71 usr 6.35 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for count_on_key (50000): 413 wallclock secs (15.79 usr 4.45 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_big (70:17207): 1 wallclock secs ( 0.14 usr 0.09 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for select_range (410:1057904): 229 wallclock secs ( 8.56 usr 5.62 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for min_max_on_key (70000): 166 wallclock secs (21.04 usr 6.26 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for count_on_key (50000): 389 wallclock secs (15.72 usr 4.52 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for count_group_on_key_parts (1000:100000): 39 wallclock secs ( 0.99 usr 0.61 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for count_group_on_key_parts (1000:100000): 40 wallclock secs ( 1.00 usr 0.61 sys + 0.00 cusr 0.00 csys = 0.00 CPU) Testing count(distinct) on the table -Time for count_distinct (2000:2000): 86 wallclock secs ( 0.71 usr 0.21 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for count_distinct_group_on_key (1000:6000): 42 wallclock secs ( 0.45 usr 0.15 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for count_distinct_group_on_key_parts (1000:100000): 72 wallclock secs ( 1.08 usr 0.62 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for count_distinct_group (1000:100000): 72 wallclock secs ( 1.07 usr 0.63 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Time for count_distinct_big (100:1000000): 82 wallclock secs ( 7.24 usr 8.68 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Total time: 1215 wallclock secs (57.43 usr 28.03 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for count_distinct (2000:2000): 92 wallclock secs ( 0.69 usr 0.21 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for count_distinct_group_on_key (1000:6000): 42 wallclock secs ( 0.43 usr 0.14 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for count_distinct_group_on_key_parts (1000:100000): 63 wallclock secs ( 1.10 usr 0.62 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for count_distinct_group (1000:100000): 64 wallclock secs ( 1.06 usr 0.66 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for count_distinct_big (100:1000000): 80 wallclock secs ( 7.23 usr 8.53 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Total time: 1170 wallclock secs (57.76 usr 27.85 sys + 0.00 cusr 0.00 csys = 0.00 CPU) diff --git a/sql-bench/Results/wisconsin-mysql-Linux_2.2.13_SMP_alpha b/sql-bench/Results/wisconsin-mysql-Linux_2.2.13_SMP_alpha index 4d467ff9045..f94cecbed8e 100644 --- a/sql-bench/Results/wisconsin-mysql-Linux_2.2.13_SMP_alpha +++ b/sql-bench/Results/wisconsin-mysql-Linux_2.2.13_SMP_alpha @@ -1,14 +1,14 @@ -Testing server 'MySQL 3.23.28 gamma' at 2000-11-18 16:16:05 +Testing server 'MySQL 3.23.29 gamma' at 2000-11-28 18:26:07 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): 15 wallclock secs ( 1.85 usr 1.84 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time to insert (31000): 14 wallclock secs ( 1.82 usr 1.89 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.92 usr 0.94 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Time for wisc_benchmark (114): 4 wallclock secs ( 1.88 usr 0.93 sys + 0.00 cusr 0.00 csys = 0.00 CPU) -Total time: 19 wallclock secs ( 3.77 usr 2.78 sys + 0.00 cusr 0.00 csys = 0.00 CPU) +Total time: 18 wallclock secs ( 3.70 usr 2.82 sys + 0.00 cusr 0.00 csys = 0.00 CPU) diff --git a/sql-bench/bench-init.pl.sh b/sql-bench/bench-init.pl.sh index af292257bab..af292257bab 100755..100644 --- a/sql-bench/bench-init.pl.sh +++ b/sql-bench/bench-init.pl.sh diff --git a/sql-bench/compare-results.sh b/sql-bench/compare-results.sh index d8a358ed171..d8a358ed171 100755..100644 --- a/sql-bench/compare-results.sh +++ b/sql-bench/compare-results.sh diff --git a/sql-bench/copy-db.sh b/sql-bench/copy-db.sh index 245aa4e79b6..f5394b09923 100755 --- a/sql-bench/copy-db.sh +++ b/sql-bench/copy-db.sh @@ -127,7 +127,7 @@ foreach $table (@ARGV) $columns=$sth->{NUM_OF_FIELDS}; $columns_to_quote=get_columns_to_quote($sth); - $multi_value_insert=$sth->{'multi_value_insert'}; + $insert_multi_value=$sth->{'insert_multi_value'}; $query="insert into $table values"; $result=""; print "- copying $table\n" if ($opt_verbose); @@ -146,7 +146,7 @@ foreach $table (@ARGV) } } substr($tmp,-1)=")"; # Remove last ',' - if ($multi_value_insert) + if ($insert_multi_value) { $to_dbh->do($query . $tmp) || die "Can't insert row: $DBI::errstr"; } diff --git a/sql-bench/crash-me.sh b/sql-bench/crash-me.sh index 5dd49d4d3bf..a62e042ffda 100755 --- a/sql-bench/crash-me.sh +++ b/sql-bench/crash-me.sh @@ -38,7 +38,7 @@ # as such, and clarify ones such as "mediumint" with comments such as # "3-byte int" or "same as xxx". -$version="1.53"; +$version="1.54"; use DBI; use Getopt::Long; @@ -275,7 +275,7 @@ check_and_report("Order by DESC is remembered",'order_by_remember_desc', ["drop table crash_q $drop_attr"],[3,2,1],7,undef(),3); report("Compute",'compute', "select a from crash_me order by a compute sum(a) by a"); -report("Value lists in INSERT",'multi_value_insert', +report("INSERT with Value lists",'insert_multi_value', "create table crash_q (s char(10))", "insert into crash_q values ('a'),('b')", "drop table crash_q $drop_attr"); @@ -372,11 +372,11 @@ if ($dbh->do("create table crash_q (a integer, b integer,c1 CHAR(10))") && $dbh->do("drop table crash_q $drop_attr"); $dbh->do("drop table crash_q1 $drop_attr"); -check_and_report("case insensitive compare","case_insensitive_strings", +check_and_report("Case insensitive compare","case_insensitive_strings", [],"select b from crash_me where b = 'A'",[],'a',1); -check_and_report("ignore end space in compare","ignore_end_space", +check_and_report("Ignore end space in compare","ignore_end_space", [],"select b from crash_me where b = 'a '",[],'a',1); -check_and_report("group on column with null values",'group_by_null', +check_and_report("Group on column with null values",'group_by_null', ["create table crash_q (s char(10))", "insert into crash_q values(null)", "insert into crash_q values(null)"], @@ -733,7 +733,7 @@ try_and_report("Type for row id", "rowid", ["serial", "create table crash_q (a serial, primary key(a))","drop table crash_q $drop_attr"]); -try_and_report("Automatic rowid", "automatic_rowid", +try_and_report("Automatic row id", "automatic_rowid", ["_rowid", "create table crash_q (a int not null, primary key(a))", "insert into crash_q values (1)", @@ -1318,7 +1318,7 @@ report("default value function for column",'create_default_func', "create table crash_q (q integer not null,q1 integer default (1+1)", "drop table crash_q $drop_attr"); -report("temporary tables",'tempoary_table', +report("temporary tables",'temporary_table', "create temporary table crash_q (q integer not null)", "drop table crash_q $drop_attr"); @@ -1399,7 +1399,7 @@ if ($limits{'unique_in_create'} eq 'yes') "insert into crash_q (q) values(NULL)", "drop table crash_q $drop_attr"); report("null combination in unique index",'nulls_in_unique', - create_table("crash_q",["q integer,q1 integer"],["unique(q)"]), + create_table("crash_q",["q integer,q1 integer"],["unique(q,q1)"]), "insert into crash_q (q,q1) values(1,NULL)", "insert into crash_q (q,q1) values(1,NULL)", "drop table crash_q $drop_attr"); diff --git a/sql-bench/limits/Adabas.cfg b/sql-bench/limits/Adabas.cfg index 939d1731006..99aaa36ab52 100644 --- a/sql-bench/limits/Adabas.cfg +++ b/sql-bench/limits/Adabas.cfg @@ -302,7 +302,7 @@ multi_drop=no # many tables to drop table multi_strings=no # Multiple line strings multi_table_delete=no # DELETE FROM table1,table2... multi_table_update=no # Update with many tables -multi_value_insert=no # Value lists in INSERT +insert_multi_value=no # Value lists in INSERT natural_join=no # natural join natural_left_outer_join=no # natural left outer join no_primary_key=yes # Tables without primary key diff --git a/sql-bench/limits/access.cfg b/sql-bench/limits/access.cfg index 19e59e98168..86d43bdee6a 100644 --- a/sql-bench/limits/access.cfg +++ b/sql-bench/limits/access.cfg @@ -343,7 +343,7 @@ multi_null_in_unique=yes # null in unique index multi_strings=no # Multiple line strings multi_table_delete=yes # DELETE FROM table1,table2... multi_table_update=yes # Update with many tables -multi_value_insert=no # Value lists in INSERT +insert_multi_value=no # Value lists in INSERT natural_join=no # natural join natural_join_incompat=no # natural join (incompatible lists) natural_left_outer_join=no # natural left outer join diff --git a/sql-bench/limits/access_odbc.cfg b/sql-bench/limits/access_odbc.cfg index fc06ce97fac..cc2e05c0154 100644 --- a/sql-bench/limits/access_odbc.cfg +++ b/sql-bench/limits/access_odbc.cfg @@ -309,7 +309,7 @@ multi_drop=yes # many tables to drop table multi_strings=no # Multiple line strings
multi_table_delete=yes # DELETE FROM table1,table2...
multi_table_update=yes # Update with many tables
-multi_value_insert=no # Value lists in INSERT
+insert_multi_value=no # Value lists in INSERT natural_join=no # natural join
natural_left_outer_join=no # natural left outer join
no_primary_key=yes # Tables without primary key
diff --git a/sql-bench/limits/frontbase.cfg b/sql-bench/limits/frontbase.cfg index af7d9c55168..f8aad442131 100644 --- a/sql-bench/limits/frontbase.cfg +++ b/sql-bench/limits/frontbase.cfg @@ -349,7 +349,7 @@ multi_drop=no # many tables to drop table multi_strings=yes # Multiple line strings multi_table_delete=no # DELETE FROM table1,table2... multi_table_update=no # Update with many tables -multi_value_insert=yes # Value lists in INSERT +insert_multi_value=yes # Value lists in INSERT natural_join=no # natural join natural_join_incompat=no # natural join (incompatible lists) natural_left_outer_join=yes # natural left outer join @@ -388,14 +388,14 @@ select_limit2=no # SELECT with LIMIT #,# select_string_size=4199664 # constant string size in SELECT select_table_update=yes # Update with sub select select_without_from=no # SELECT without FROM -server_version=2.1 # server version +server_version=FrontBase 2.1 # server version simple_joins=yes # ANSI SQL simple joins storage_of_float=round # Storage of float values subqueries=yes # subqueries table_alias=yes # Table alias table_name_case=yes # case independent table names table_wildcard=yes # Select table_name.* -tempoary_table=no # temporary tables +temporary_table=no # temporary tables transactions=error # transactions truncate_table=no # truncate type_extra_abstime=no # Type abstime diff --git a/sql-bench/limits/interbase.cfg b/sql-bench/limits/interbase.cfg index 7427208df5d..994799e5ea0 100644 --- a/sql-bench/limits/interbase.cfg +++ b/sql-bench/limits/interbase.cfg @@ -315,7 +315,7 @@ multi_drop=no # many tables to drop table multi_strings=no # Multiple line strings multi_table_delete=no # DELETE FROM table1,table2... multi_table_update=no # Update with many tables -multi_value_insert=no # Value lists in INSERT +insert_multi_value=no # Value lists in INSERT natural_join=no # natural join natural_left_outer_join=no # natural left outer join no_primary_key=yes # Tables without primary key diff --git a/sql-bench/limits/mimer.cfg b/sql-bench/limits/mimer.cfg index d18e43aa892..b3369f9a622 100644 --- a/sql-bench/limits/mimer.cfg +++ b/sql-bench/limits/mimer.cfg @@ -334,7 +334,7 @@ multi_drop=no # many tables to drop table multi_strings=yes # Multiple line strings multi_table_delete=no # DELETE FROM table1,table2... multi_table_update=no # Update with many tables -multi_value_insert=no # Value lists in INSERT +insert_multi_value=no # Value lists in INSERT natural_join=yes # natural join natural_left_outer_join=yes # natural left outer join no_primary_key=yes # Tables without primary key diff --git a/sql-bench/limits/ms-sql.cfg b/sql-bench/limits/ms-sql.cfg index b9cad41c1a1..9307590cd40 100644 --- a/sql-bench/limits/ms-sql.cfg +++ b/sql-bench/limits/ms-sql.cfg @@ -345,7 +345,7 @@ multi_drop=no # many tables to drop table multi_strings=no # Multiple line strings multi_table_delete=no # DELETE FROM table1,table2... multi_table_update=no # Update with many tables -multi_value_insert=no # Value lists in INSERT +insert_multi_value=no # Value lists in INSERT natural_join=no # natural join natural_join_incompat=no # natural join (incompatible lists) natural_left_outer_join=no # natural left outer join diff --git a/sql-bench/limits/msql.cfg b/sql-bench/limits/msql.cfg index 028eb4cd399..382f3e2ae81 100644 --- a/sql-bench/limits/msql.cfg +++ b/sql-bench/limits/msql.cfg @@ -97,7 +97,7 @@ multi_drop=no # many tables to drop table multi_strings=no # Multiple line strings multi_table_delete=no # DELETE FROM table1,table2... multi_table_update=no # Update with many tables -multi_value_insert=no # Value lists in INSERT +insert_multi_value=no # Value lists in INSERT natural_join=no # natural join natural_left_outer_join=no # natural left outer join no_primary_key=yes # Tables without primary key diff --git a/sql-bench/limits/mysql-3.22.cfg b/sql-bench/limits/mysql-3.22.cfg index 6f0ee740c5a..395673ee1e1 100644 --- a/sql-bench/limits/mysql-3.22.cfg +++ b/sql-bench/limits/mysql-3.22.cfg @@ -310,7 +310,7 @@ multi_drop=yes # many tables to drop table multi_strings=yes # Multiple line strings multi_table_delete=no # DELETE FROM table1,table2... multi_table_update=no # Update with many tables -multi_value_insert=yes # Value lists in INSERT +insert_multi_value=yes # Value lists in INSERT natural_join=no # natural join natural_left_outer_join=yes # natural left outer join no_primary_key=yes # Tables without primary key diff --git a/sql-bench/limits/mysql-3.23.cfg b/sql-bench/limits/mysql-3.23.cfg index 759208ad713..19bb3c67cc1 100644 --- a/sql-bench/limits/mysql-3.23.cfg +++ b/sql-bench/limits/mysql-3.23.cfg @@ -1,4 +1,4 @@ -#This file is automaticly generated by crash-me 1.51 +#This file is automaticly generated by crash-me 1.54 NEG=yes # update of column= -column Need_cast_for_null=no # Need to cast NULL for arithmetic @@ -18,10 +18,10 @@ alter_drop_unique=with drop key # Alter table drop unique alter_modify_col=yes # Alter table modify column alter_rename_table=yes # Alter table rename table atomic_updates=no # atomic updates -automatic_rowid=_rowid # Automatic rowid +automatic_rowid=_rowid # Automatic row id binary_numbers=no # binary numbers (0b1001) binary_strings=no # binary strings (b'0110') -case_insensitive_strings=yes # case insensitive compare +case_insensitive_strings=yes # Case insensitive compare char_is_space_filled=no # char are space filled column_alias=yes # Column alias columns_in_group_by=+64 # number of columns in group by @@ -36,7 +36,7 @@ constraint_check=no # Column constraints constraint_check_table=no # Table constraints constraint_null=yes # NULL constraint (SyBase style) crash_me_safe=yes # crash me safe -crash_me_version=1.51 # crash me version +crash_me_version=1.54 # crash me version create_default=yes # default value for column create_default_func=no # default value function for column create_if_not_exists=yes # create table if not exists @@ -55,6 +55,8 @@ dont_require_cast_to_float=yes # No need to cast from integer to float double_quotes=yes # Double '' as ' in strings drop_if_exists=yes # drop table if exists drop_index=with 'ON' # drop index +drop_requires_cascade=no # drop table require cascade/restrict +drop_restrict=yes # drop table with cascade/restrict end_colon=yes # allows end ';' except=no # except except_all=no # except all @@ -275,7 +277,7 @@ func_where_unique=no # Function UNIQUE functions=yes # Functions group_by=yes # Group by group_by_alias=yes # Group by alias -group_by_null=yes # group on column with null values +group_by_null=yes # Group on column with null values group_by_position=yes # Group by position group_distinct_functions=yes # Group functions with distinct group_func_extra_bit_and=yes # Group function BIT_AND @@ -297,18 +299,20 @@ group_func_sql_min_str=yes # Group function MIN on strings group_func_sql_some=no # Group function SOME group_func_sql_sum=yes # Group function SUM group_functions=yes # Group functions +group_on_unused=yes # Group on unused column has_true_false=no # TRUE and FALSE having=yes # Having having_with_alias=yes # Having on alias having_with_group=yes # Having with group function hex_numbers=yes # hex numbers (0x41) hex_strings=no # hex strings (x'1ace') -ignore_end_space=yes # ignore end space in compare +ignore_end_space=yes # Ignore end space in compare index_in_create=yes # index in create table index_namespace=yes # different namespace for index index_parts=yes # index on column part (extension) inner_join=yes # inner join insert_empty_string=yes # insert empty string +insert_multi_value=yes # INSERT with Value lists insert_select=yes # insert INTO ... SELECT ... insert_with_set=yes # INSERT with set syntax intersect=no # intersect @@ -351,7 +355,6 @@ multi_null_in_unique=yes # null in unique index multi_strings=yes # Multiple line strings multi_table_delete=no # DELETE FROM table1,table2... multi_table_update=no # Update with many tables -multi_value_insert=yes # Value lists in INSERT natural_join=yes # natural join natural_join_incompat=yes # natural join (incompatible lists) natural_left_outer_join=yes # natural left outer join @@ -360,6 +363,7 @@ null_concat_expr=yes # Is concat('a',NULL) = NULL null_in_index=yes # null in index null_in_unique=yes # null in unique index null_num_expr=yes # Is 1+NULL = NULL +nulls_in_unique=yes # null combination in unique index odbc_left_outer_join=yes # left outer join odbc style operating_system=Linux 2.2.13-SMP alpha # crash-me tested on order_by=yes # Order by @@ -367,6 +371,7 @@ order_by_alias=yes # Order by alias order_by_function=yes # Order by function order_by_position=yes # Order by position order_by_remember_desc=no # Order by DESC is remembered +order_on_unused=yes # Order by on unused column primary_key_in_create=yes # primary key in create table psm_functions=no # PSM functions (ANSI SQL) psm_modules=no # PSM modules (ANSI SQL) @@ -389,14 +394,14 @@ select_limit2=yes # SELECT with LIMIT #,# select_string_size=1048565 # constant string size in SELECT select_table_update=no # Update with sub select select_without_from=yes # SELECT without FROM -server_version=MySQL 3.23.28 gamma # server version +server_version=MySQL 3.23.29 gamma # server version simple_joins=yes # ANSI SQL simple joins storage_of_float=round # Storage of float values subqueries=no # subqueries table_alias=yes # Table alias table_name_case=no # case independent table names table_wildcard=yes # Select table_name.* -tempoary_table=yes # temporary tables +temporary_table=yes # temporary tables transactions=no # transactions truncate_table=yes # truncate type_extra_abstime=no # Type abstime @@ -515,4 +520,4 @@ unique_in_create=yes # unique in create table unique_null_in_create=yes # unique null in create user_comment=Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; ccc + cxx # comment views=no # views -where_string_size=1048540 # constant string size in where +where_string_size=1048539 # constant string size in where diff --git a/sql-bench/limits/mysql.cfg b/sql-bench/limits/mysql.cfg index 759208ad713..19bb3c67cc1 100644 --- a/sql-bench/limits/mysql.cfg +++ b/sql-bench/limits/mysql.cfg @@ -1,4 +1,4 @@ -#This file is automaticly generated by crash-me 1.51 +#This file is automaticly generated by crash-me 1.54 NEG=yes # update of column= -column Need_cast_for_null=no # Need to cast NULL for arithmetic @@ -18,10 +18,10 @@ alter_drop_unique=with drop key # Alter table drop unique alter_modify_col=yes # Alter table modify column alter_rename_table=yes # Alter table rename table atomic_updates=no # atomic updates -automatic_rowid=_rowid # Automatic rowid +automatic_rowid=_rowid # Automatic row id binary_numbers=no # binary numbers (0b1001) binary_strings=no # binary strings (b'0110') -case_insensitive_strings=yes # case insensitive compare +case_insensitive_strings=yes # Case insensitive compare char_is_space_filled=no # char are space filled column_alias=yes # Column alias columns_in_group_by=+64 # number of columns in group by @@ -36,7 +36,7 @@ constraint_check=no # Column constraints constraint_check_table=no # Table constraints constraint_null=yes # NULL constraint (SyBase style) crash_me_safe=yes # crash me safe -crash_me_version=1.51 # crash me version +crash_me_version=1.54 # crash me version create_default=yes # default value for column create_default_func=no # default value function for column create_if_not_exists=yes # create table if not exists @@ -55,6 +55,8 @@ dont_require_cast_to_float=yes # No need to cast from integer to float double_quotes=yes # Double '' as ' in strings drop_if_exists=yes # drop table if exists drop_index=with 'ON' # drop index +drop_requires_cascade=no # drop table require cascade/restrict +drop_restrict=yes # drop table with cascade/restrict end_colon=yes # allows end ';' except=no # except except_all=no # except all @@ -275,7 +277,7 @@ func_where_unique=no # Function UNIQUE functions=yes # Functions group_by=yes # Group by group_by_alias=yes # Group by alias -group_by_null=yes # group on column with null values +group_by_null=yes # Group on column with null values group_by_position=yes # Group by position group_distinct_functions=yes # Group functions with distinct group_func_extra_bit_and=yes # Group function BIT_AND @@ -297,18 +299,20 @@ group_func_sql_min_str=yes # Group function MIN on strings group_func_sql_some=no # Group function SOME group_func_sql_sum=yes # Group function SUM group_functions=yes # Group functions +group_on_unused=yes # Group on unused column has_true_false=no # TRUE and FALSE having=yes # Having having_with_alias=yes # Having on alias having_with_group=yes # Having with group function hex_numbers=yes # hex numbers (0x41) hex_strings=no # hex strings (x'1ace') -ignore_end_space=yes # ignore end space in compare +ignore_end_space=yes # Ignore end space in compare index_in_create=yes # index in create table index_namespace=yes # different namespace for index index_parts=yes # index on column part (extension) inner_join=yes # inner join insert_empty_string=yes # insert empty string +insert_multi_value=yes # INSERT with Value lists insert_select=yes # insert INTO ... SELECT ... insert_with_set=yes # INSERT with set syntax intersect=no # intersect @@ -351,7 +355,6 @@ multi_null_in_unique=yes # null in unique index multi_strings=yes # Multiple line strings multi_table_delete=no # DELETE FROM table1,table2... multi_table_update=no # Update with many tables -multi_value_insert=yes # Value lists in INSERT natural_join=yes # natural join natural_join_incompat=yes # natural join (incompatible lists) natural_left_outer_join=yes # natural left outer join @@ -360,6 +363,7 @@ null_concat_expr=yes # Is concat('a',NULL) = NULL null_in_index=yes # null in index null_in_unique=yes # null in unique index null_num_expr=yes # Is 1+NULL = NULL +nulls_in_unique=yes # null combination in unique index odbc_left_outer_join=yes # left outer join odbc style operating_system=Linux 2.2.13-SMP alpha # crash-me tested on order_by=yes # Order by @@ -367,6 +371,7 @@ order_by_alias=yes # Order by alias order_by_function=yes # Order by function order_by_position=yes # Order by position order_by_remember_desc=no # Order by DESC is remembered +order_on_unused=yes # Order by on unused column primary_key_in_create=yes # primary key in create table psm_functions=no # PSM functions (ANSI SQL) psm_modules=no # PSM modules (ANSI SQL) @@ -389,14 +394,14 @@ select_limit2=yes # SELECT with LIMIT #,# select_string_size=1048565 # constant string size in SELECT select_table_update=no # Update with sub select select_without_from=yes # SELECT without FROM -server_version=MySQL 3.23.28 gamma # server version +server_version=MySQL 3.23.29 gamma # server version simple_joins=yes # ANSI SQL simple joins storage_of_float=round # Storage of float values subqueries=no # subqueries table_alias=yes # Table alias table_name_case=no # case independent table names table_wildcard=yes # Select table_name.* -tempoary_table=yes # temporary tables +temporary_table=yes # temporary tables transactions=no # transactions truncate_table=yes # truncate type_extra_abstime=no # Type abstime @@ -515,4 +520,4 @@ unique_in_create=yes # unique in create table unique_null_in_create=yes # unique null in create user_comment=Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; ccc + cxx # comment views=no # views -where_string_size=1048540 # constant string size in where +where_string_size=1048539 # constant string size in where diff --git a/sql-bench/limits/oracle.cfg b/sql-bench/limits/oracle.cfg index b910f91fb05..ad2faf22971 100644 --- a/sql-bench/limits/oracle.cfg +++ b/sql-bench/limits/oracle.cfg @@ -345,7 +345,7 @@ multi_null_in_unique=yes # null in unique index multi_strings=no # Multiple line strings multi_table_delete=no # DELETE FROM table1,table2... multi_table_update=no # Update with many tables -multi_value_insert=no # Value lists in INSERT +insert_multi_value=no # Value lists in INSERT natural_join=no # natural join natural_join_incompat=no # natural join (incompatible lists) natural_left_outer_join=no # natural left outer join diff --git a/sql-bench/limits/pg.cfg b/sql-bench/limits/pg.cfg index 493d5f68150..1675cff71ef 100644 --- a/sql-bench/limits/pg.cfg +++ b/sql-bench/limits/pg.cfg @@ -343,7 +343,7 @@ multi_null_in_unique=yes # null in unique index multi_strings=yes # Multiple line strings multi_table_delete=no # DELETE FROM table1,table2... multi_table_update=no # Update with many tables -multi_value_insert=no # Value lists in INSERT +insert_multi_value=no # Value lists in INSERT natural_join=yes # natural join natural_join_incompat=yes # natural join (incompatible lists) natural_left_outer_join=no # natural left outer join diff --git a/sql-bench/print-limit-table b/sql-bench/print-limit-table index 183f2453175..53b62ae3397 100755 --- a/sql-bench/print-limit-table +++ b/sql-bench/print-limit-table @@ -163,10 +163,14 @@ print_match("String handling","string|select_constant|quote_with|double_quotes|e print_match("Quoting","quote"); print_match("Name limits","name","alter"); print_match("Index limits",'index|primary|unique'); -print_match("Type limits",'char|float|binary|text_size|date|end_space'); -print_match("Expression limits",'expression|conditions|select_limit'); +print_match("Type limits",'char|float|text_size|date|end_space','atomic'); +print_match("Expressions",'expression|conditions|select_limit|binary|hex|cast|logical|true_false'); print_match("Comments",'comment'); print_match("ALTER TABLE",'alter'); +print_match("CREATE and DROP",'create|drop|rowid|temporary|domains|truncate'); +print_match("SELECT",'alias|compute|select|table_wildcard'); +print_match("Sets",'intersect|minus|union|except'); +print_match("INSERT",'insert'); print_options("Other features"); print_match("Other limits",'\S'); diff --git a/sql-bench/run-all-tests.sh b/sql-bench/run-all-tests.sh index cbcafce3117..cbcafce3117 100755..100644 --- a/sql-bench/run-all-tests.sh +++ b/sql-bench/run-all-tests.sh diff --git a/sql-bench/server-cfg.sh b/sql-bench/server-cfg.sh index 8cc4e051220..661a9766a2d 100755 --- a/sql-bench/server-cfg.sh +++ b/sql-bench/server-cfg.sh @@ -151,7 +151,7 @@ sub new $limits{'alter_table'} = 1; # Have ALTER TABLE $limits{'alter_add_multi_col'}= 1; #Have ALTER TABLE t add a int,add b int; $limits{'alter_table_dropcol'}= 1; # Have ALTER TABLE DROP column - $limits{'multi_value_insert'} = 1; # Have INSERT ... values (1,2),(3,4) + $limits{'insert_multi_value'} = 1; # Have INSERT ... values (1,2),(3,4) $limits{'group_func_extra_std'} = 1; # Have group function std(). @@ -2775,7 +2775,7 @@ sub new $limits{'alter_table'} = 1; # Have ALTER TABLE $limits{'alter_add_multi_col'}= 0; # Have ALTER TABLE t add a int,add b int; $limits{'alter_table_dropcol'}= 1; # Have ALTER TABLE DROP column - $limits{'multi_value_insert'} = 0; # Does not have INSERT ... values (1,2),(3,4) + $limits{'insert_multi_value'} = 0; # Does not have INSERT ... values (1,2),(3,4) $limits{'group_func_extra_std'} = 0; # Does not have group function std(). @@ -2975,7 +2975,7 @@ sub new $limits{'alter_table'} = 1; # Have ALTER TABLE $limits{'alter_add_multi_col'}= 1; # Have ALTER TABLE t add a int,add b int; $limits{'alter_table_dropcol'}= 1; # Have ALTER TABLE DROP column - $limits{'multi_value_insert'} = 0; # Does not have INSERT ... values (1,2),(3,4) + $limits{'insert_multi_value'} = 0; # Does not have INSERT ... values (1,2),(3,4) $limits{'group_func_extra_std'} = 0; # Does not have group function std(). @@ -3186,7 +3186,7 @@ sub new $limits{'alter_table'} = 1; # Have ALTER TABLE $limits{'alter_add_multi_col'}= 0; # Have ALTER TABLE t add a int,add b int; $limits{'alter_table_dropcol'}= 0; # Have ALTER TABLE DROP column - $limits{'multi_value_insert'} = 1; + $limits{'insert_multi_value'} = 1; $limits{'group_func_extra_std'} = 0; # Does not have group function std(). @@ -3227,7 +3227,7 @@ sub version # Pick up SQLGetInfo option SQL_DBMS_VER (18) # #$version = $dbh->func(18, GetInfo); - $version="2.1"; + $version="FrontBase 2.1"; $dbh->disconnect; return $version; } diff --git a/sql-bench/test-ATIS.sh b/sql-bench/test-ATIS.sh index 3ec6a4c6ed8..3ec6a4c6ed8 100755..100644 --- a/sql-bench/test-ATIS.sh +++ b/sql-bench/test-ATIS.sh diff --git a/sql-bench/test-alter-table.sh b/sql-bench/test-alter-table.sh index 276c4863d8c..276c4863d8c 100755..100644 --- a/sql-bench/test-alter-table.sh +++ b/sql-bench/test-alter-table.sh diff --git a/sql-bench/test-big-tables.sh b/sql-bench/test-big-tables.sh index ac942f2b571..ac942f2b571 100755..100644 --- a/sql-bench/test-big-tables.sh +++ b/sql-bench/test-big-tables.sh diff --git a/sql-bench/test-connect.sh b/sql-bench/test-connect.sh index cddb32e2775..cddb32e2775 100755..100644 --- a/sql-bench/test-connect.sh +++ b/sql-bench/test-connect.sh diff --git a/sql-bench/test-create.sh b/sql-bench/test-create.sh index 09d79c67b04..09d79c67b04 100755..100644 --- a/sql-bench/test-create.sh +++ b/sql-bench/test-create.sh diff --git a/sql-bench/test-insert.sh b/sql-bench/test-insert.sh index daccd678b56..7bed5f18c3d 100755 --- a/sql-bench/test-insert.sh +++ b/sql-bench/test-insert.sh @@ -130,7 +130,7 @@ else $query="insert into bench1 (id,id2,id3,dummy1) values "; } -if (($opt_fast || $opt_fast_insert) && $limits->{'multi_value_insert'}) +if (($opt_fast || $opt_fast_insert) && $limits->{'insert_multi_value'}) { $query_size=$server->{'limits'}->{'query_size'}; @@ -1177,7 +1177,7 @@ if ($server->small_rollback_segment()) $loop_time=new Benchmark; $fields=$#fields; -if (($opt_fast || $opt_fast_insert) && $limits->{'multi_value_insert'}) +if (($opt_fast || $opt_fast_insert) && $limits->{'insert_multi_value'}) { $query_size=$server->{'limits'}->{'query_size'}; $query="insert into bench1 values "; @@ -1331,7 +1331,7 @@ if ($opt_fast && defined($server->{vacuum})) # Test multi value inserts if the server supports it # -if ($limits->{'multi_value_insert'}) +if ($limits->{'insert_multi_value'}) { $query_size=$limits->{'query_size'}; # Same limit for all databases diff --git a/sql-bench/test-select.sh b/sql-bench/test-select.sh index e75ee26fff8..e75ee26fff8 100755..100644 --- a/sql-bench/test-select.sh +++ b/sql-bench/test-select.sh diff --git a/sql-bench/test-wisconsin.sh b/sql-bench/test-wisconsin.sh index a017120259e..a017120259e 100755..100644 --- a/sql-bench/test-wisconsin.sh +++ b/sql-bench/test-wisconsin.sh diff --git a/sql/ha_myisam.cc b/sql/ha_myisam.cc index 21cfab6b701..223e14b06c7 100644 --- a/sql/ha_myisam.cc +++ b/sql/ha_myisam.cc @@ -483,6 +483,7 @@ int ha_myisam::repair(THD *thd, MI_CHECK ¶m, bool optimize) char fixed_name[FN_REFLEN]; const char *old_proc_info=thd->proc_info; MYISAM_SHARE* share = file->s; + ha_rows rows= file->state->records; DBUG_ENTER("ha_myisam::repair"); param.table_name = table->table_name; @@ -559,6 +560,13 @@ int ha_myisam::repair(THD *thd, MI_CHECK ¶m, bool optimize) T_STATISTICS ? UPDATE_STAT : 0)); info(HA_STATUS_NO_LOCK | HA_STATUS_TIME | HA_STATUS_VARIABLE | HA_STATUS_CONST); + if (rows != file->state->records) + { + char llbuff[22],llbuff2[22]; + mi_check_print_warning(¶m,"Number of rows changed from %s to %s", + llstr(rows,llbuff), + llstr(file->state->records,llbuff2)); + } } else { diff --git a/sql/mysqlbinlog.cc b/sql/mysqlbinlog.cc index 0fe9ab21987..087d1029afb 100644 --- a/sql/mysqlbinlog.cc +++ b/sql/mysqlbinlog.cc @@ -388,7 +388,9 @@ int main(int argc, char** argv) if(use_remote) { +#ifndef __WIN__ init_thr_alarm(10); // need to do this manually +#endif mysql = safe_connect(); } diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 88b60ef92ad..810cd3e3b17 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -170,6 +170,7 @@ static struct rand_struct sql_rand; static int cleanup_done; static char **defaults_argv,time_zone[30]; static const char *default_table_type_name; +static char glob_hostname[FN_REFLEN]; #ifdef HAVE_OPENSSL static bool opt_use_ssl = FALSE; @@ -356,6 +357,7 @@ static void close_connections(void) #if defined(AIX_3_2) || defined(HAVE_DEC_3_2_THREADS) if (ip_sock != INVALID_SOCKET) { + DBUG_PRINT("error",("closing TCP/IP and socket files")); VOID(shutdown(ip_sock,2)); VOID(closesocket(ip_sock)); VOID(shutdown(unix_sock,2)); @@ -607,12 +609,15 @@ void clean_up(void) free_defaults(defaults_argv); my_free(mysql_tmpdir,MYF(0)); x_free(opt_bin_logname); +#ifndef __WIN__ (void) my_delete(pidfile_name,MYF(0)); // This may not always exist - my_end(opt_endinfo ? MY_CHECK_ERROR | MY_GIVE_INFO : 0); +#endif + my_thread_end(); /* Tell main we are ready */ (void) pthread_mutex_lock(&LOCK_thread_count); ready_to_exit=1; + /* do the broadcast inside the lock to ensure that my_end() is not called */ (void) pthread_cond_broadcast(&COND_thread_count); (void) pthread_mutex_unlock(&LOCK_thread_count); } /* clean_up */ @@ -926,8 +931,8 @@ void end_thread(THD *thd, bool put_in_cache) DBUG_PRINT("info", ("sending a broadcast")) /* Tell main we are ready */ - (void) pthread_cond_broadcast(&COND_thread_count); (void) pthread_mutex_unlock(&LOCK_thread_count); + (void) pthread_cond_broadcast(&COND_thread_count); DBUG_PRINT("info", ("unlocked thread_count mutex")) #ifdef ONE_THREAD if (!(test_flags & TEST_NO_THREADS)) // For debugging under Linux @@ -1308,7 +1313,6 @@ int main(int argc, char **argv) #endif { DEBUGGER_OFF; - char hostname[FN_REFLEN]; my_umask=0660; // Default umask for new files my_umask_dir=0700; // Default umask for new directories @@ -1332,9 +1336,9 @@ int main(int argc, char **argv) #endif #endif - if (gethostname(hostname,sizeof(hostname)-4) < 0) - strmov(hostname,"mysql"); - strmov(pidfile_name,hostname); + if (gethostname(glob_hostname,sizeof(glob_hostname)-4) < 0) + strmov(glob_hostname,"mysql"); + strmov(pidfile_name,glob_hostname); strmov(strcend(pidfile_name,'.'),".pid"); // Add extension #ifdef DEMO_VERSION strcat(server_version,"-demo"); @@ -1488,9 +1492,9 @@ int main(int argc, char **argv) /* Setup log files */ if (opt_log) - open_log(&mysql_log, hostname, opt_logname, ".log", LOG_NORMAL); + open_log(&mysql_log, glob_hostname, opt_logname, ".log", LOG_NORMAL); if (opt_update_log) - open_log(&mysql_update_log, hostname, opt_update_logname, "", + open_log(&mysql_update_log, glob_hostname, opt_update_logname, "", LOG_NEW); if (opt_bin_log) { @@ -1499,12 +1503,12 @@ int main(int argc, char **argv) if (!opt_bin_logname) { char tmp[FN_REFLEN]; - strnmov(tmp,hostname,FN_REFLEN-5); + strnmov(tmp,glob_hostname,FN_REFLEN-5); strmov(strcend(tmp,'.'),"-bin"); opt_bin_logname=my_strdup(tmp,MYF(MY_WME)); } mysql_bin_log.set_index_file_name(opt_binlog_index_name); - open_log(&mysql_bin_log, hostname, opt_bin_logname, "-bin", + open_log(&mysql_bin_log, glob_hostname, opt_bin_logname, "-bin", LOG_BIN); } else @@ -1512,7 +1516,7 @@ int main(int argc, char **argv) } if (opt_slow_log) - open_log(&mysql_slow_log, hostname, opt_slow_logname, "-slow.log", + open_log(&mysql_slow_log, glob_hostname, opt_slow_logname, "-slow.log", LOG_NORMAL); if (ha_init()) { @@ -1711,10 +1715,7 @@ int main(int argc, char **argv) pthread_cond_wait(&COND_thread_count,&LOCK_thread_count); } (void) pthread_mutex_unlock(&LOCK_thread_count); -#ifndef __WIN__ - (void) my_delete(pidfile_name,MYF(0)); // Not neaded anymore -#endif - my_thread_end(); + my_end(opt_endinfo ? MY_CHECK_ERROR | MY_GIVE_INFO : 0); exit(0); return(0); /* purecov: deadcode */ } @@ -2089,8 +2090,8 @@ pthread_handler_decl(handle_connections_sockets,arg __attribute__((unused))) #ifdef __NT__ pthread_mutex_lock(&LOCK_thread_count); handler_count--; - pthread_cond_signal(&COND_handler_count); pthread_mutex_unlock(&LOCK_thread_count); + pthread_cond_signal(&COND_handler_count); #endif DBUG_RETURN(0); } diff --git a/sql/share/swedish/errmsg.OLD b/sql/share/swedish/errmsg.OLD index f1a8062e390..78dfa51a806 100644 --- a/sql/share/swedish/errmsg.OLD +++ b/sql/share/swedish/errmsg.OLD @@ -197,5 +197,4 @@ "Okänd system variabel '%-.64'", "Tabell '%-.64s' är crashad och bör repareras med REPAIR TABLE", "Tabell '%-.64s' är crashad och senast (automatiska?) reparation misslyckades", -#ER_WARNING_NOT_COMPLETE_ROLLBACK "Warning: Några icke transaktionella tabeller kunde inte återställas vid ROLLBACK", diff --git a/sql/sql_base.cc b/sql/sql_base.cc index f582b4a85af..75add1e7a5f 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -669,12 +669,11 @@ TABLE *open_table(THD *thd,const char *db,const char *table_name, DBUG_RETURN(0); key_length= (uint) (strmov(strmov(key,db)+1,table_name)-key)+1; int4store(key + key_length, thd->slave_proxy_id); - key_length += 4; for (table=thd->temporary_tables; table ; table=table->next) { - if (table->key_length == key_length && - !memcmp(table->table_cache_key,key,key_length)) + if (table->key_length == key_length+4 && + !memcmp(table->table_cache_key,key,key_length+4)) { if (table->query_id == thd->query_id) { diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index c54bf0dc9c1..bfa8e2e1ae2 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1404,8 +1404,11 @@ mysql_execute_command(void) #endif break; } - case SQLCOM_DELETE: case SQLCOM_TRUNCATE: + lex->where=0; + lex->select_limit=HA_POS_ERROR; + /* Fall through */ + case SQLCOM_DELETE: { if (check_access(thd,DELETE_ACL,tables->db,&tables->grant.privilege)) goto error; /* purecov: inspected */ @@ -1589,7 +1592,10 @@ mysql_execute_command(void) } } else + { + thd->options&= ~(ulong) (OPTION_STATUS_NO_TRANS_UPDATE); thd->server_status&= ~SERVER_STATUS_AUTOCOMMIT; + } } send_ok(&thd->net); break; @@ -1755,9 +1761,17 @@ mysql_execute_command(void) } break; case SQLCOM_BEGIN: - thd->options|= OPTION_BEGIN; - thd->server_status|= SERVER_STATUS_IN_TRANS; - send_ok(&thd->net); + if (end_active_trans(thd)) + { + res= -1; + } + else + { + thd->options= ((thd->options & (ulong) (OPTION_STATUS_NO_TRANS_UPDATE)) | + OPTION_BEGIN); + thd->server_status|= SERVER_STATUS_IN_TRANS; + send_ok(&thd->net); + } break; case SQLCOM_COMMIT: /* diff --git a/sql/sql_show.cc b/sql/sql_show.cc index a9e43198d5a..c5f1eec7cde 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -23,7 +23,8 @@ #include "sql_select.h" // For select_describe #include "sql_acl.h" #include <my_dir.h> -extern "C" pthread_mutex_t THR_LOCK_keycache; + +/* extern "C" pthread_mutex_t THR_LOCK_keycache; */ static const char *grant_names[]={ "select","insert","update","delete","create","drop","reload","shutdown", @@ -988,7 +989,7 @@ int mysqld_show(THD *thd, const char *wild, show_var_st *variables) if (send_fields(thd,field_list,1)) DBUG_RETURN(1); /* purecov: inspected */ - pthread_mutex_lock(&THR_LOCK_keycache); + /* pthread_mutex_lock(&THR_LOCK_keycache); */ pthread_mutex_lock(&LOCK_status); for (i=0; variables[i].name; i++) { @@ -1037,13 +1038,13 @@ int mysqld_show(THD *thd, const char *wild, show_var_st *variables) } } pthread_mutex_unlock(&LOCK_status); - pthread_mutex_unlock(&THR_LOCK_keycache); + /* pthread_mutex_unlock(&THR_LOCK_keycache); */ send_eof(&thd->net); DBUG_RETURN(0); err: pthread_mutex_unlock(&LOCK_status); - pthread_mutex_unlock(&THR_LOCK_keycache); + /* pthread_mutex_unlock(&THR_LOCK_keycache); */ DBUG_RETURN(1); } diff --git a/vio/docs/COPYING.dbug b/vio/docs/COPYING.dbug new file mode 100644 index 00000000000..e1b6463c09b --- /dev/null +++ b/vio/docs/COPYING.dbug @@ -0,0 +1,29 @@ +/****************************************************************************** + * * + * N O T I C E * + * * + * Copyright Abandoned, 1987, Fred Fish * + * * + * * + * This previously copyrighted work has been placed into the public * + * domain by the author and may be freely used for any purpose, * + * private or commercial. * + * * + * Because of the number of inquiries I was receiving about the use * + * of this product in commercially developed works I have decided to * + * simply make it public domain to further its unrestricted use. I * + * specifically would be most happy to see this material become a * + * part of the standard Unix distributions by AT&T and the Berkeley * + * Computer Science Research Group, and a standard part of the GNU * + * system from the Free Software Foundation. * + * * + * I would appreciate it, as a courtesy, if this notice is left in * + * all copies and derivative works. Thank you. * + * * + * The author makes no warranty of any kind with respect to this * + * product and explicitly disclaims any implied warranties of mer- * + * chantability or fitness for any particular purpose. * + * * + ****************************************************************************** + */ + diff --git a/vio/docs/COPYING.mysql b/vio/docs/COPYING.mysql new file mode 100644 index 00000000000..c2028f07298 --- /dev/null +++ b/vio/docs/COPYING.mysql @@ -0,0 +1,193 @@ +The *MySQL* server license for non Microsoft operating systems +************************************************************** + + *MySQL FREE PUBLIC LICENSE* + + (Version 4, March 5, 1995) + + Copyright (C) 1995, 1996 TcX AB & Monty Program KB & Detron HB + + Stockholm SWEDEN, Helsingfors FINLAND and Uppsala SWEDEN + + All rights reserved. + +NOTE: This license is not the same as any of the GNU Licenses published +by the Free Software Foundation. Its terms are substantially different +from those of the GNU Licenses. If you are familiar with the GNU +Licenses, please read this license with extra care. + +This License applies to the computer program known as "MySQL". The +"Program", below, refers to such program, and a "work based on the +Program" means either the Program or any derivative work of the Program, +as defined in the United States Copyright Act of 1976, such as a +translation or a modification. The Program is a copyrighted work whose +copyright is held by TcX Datakonsult AB and Monty Program KB and Detron +HB. + +This License does not apply when running "MySQL" on any Microsoft +operating system. Microsoft operating systems include all versions of +Microsoft Windows NT and Microsoft Windows. + +BY MODIFYING OR DISTRIBUTING THE PROGRAM (OR ANY WORK BASED ON THE +PROGRAM), YOU INDICATE YOUR ACCEPTANCE OF THIS LICENSE TO DO SO, AND ALL +ITS TERMS AND CONDITIONS FOR COPYING, DISTRIBUTING OR MODIFYING THE +PROGRAM OR WORKS BASED ON IT. NOTHING OTHER THAN THIS LICENSE GRANTS +YOU PERMISSION TO MODIFY OR DISTRIBUTE THE PROGRAM OR ITS DERIVATIVE +WORKS. THESE ACTIONS ARE PROHIBITED BY LAW. IF YOU DO NOT ACCEPT THESE +TERMS AND CONDITIONS, DO NOT MODIFY OR DISTRIBUTE THE PROGRAM. + + 1. Licenses. + + Licensor hereby grants you the following rights, provided that you + comply with all of the restrictions set forth in this License and + provided, further, that you distribute an unmodified copy of this + License with the Program: + + a. You may copy and distribute literal (i.e., verbatim) copies + of the Program's source code as you receive it throughout the + world, in any medium. + + b. You may modify the Program, create works based on the Program + and distribute copies of such throughout the world, in any + medium. + + 2. Restrictions. + + This license is subject to the following restrictions: + a. Distribution of the Program or any work based on the Program + by a commercial organization to any third party is prohibited + if any payment is made in connection with such distribution, + whether directly (as in payment for a copy of the Program) or + indirectly (as in payment for some service related to the + Program, or payment for some product or service that includes + a copy of the Program "without charge"; these are only + examples, and not an exhaustive enumeration of prohibited + activities). However, the following methods of distribution + involving payment shall not in and of themselves be a + violation of this restriction: + + A. Posting the Program on a public access information + storage and retrieval service for which a fee is + received for retrieving information (such as an on-line + service), provided that the fee is not content-dependent + (i.e., the fee would be the same for retrieving the same + volume of information consisting of random data). + + B. Distributing the Program on a CD-ROM, provided that the + files containing the Program are reproduced entirely and + verbatim on such CD-ROM, and provided further that all + information on such CD-ROM be redistributable for + non-commercial purposes without charge. + + b. Activities other than copying, distribution and modification + of the Program are not subject to this License and they are + outside its scope. Functional use (running) of the Program + is not restricted, and any output produced through the use of + the Program is subject to this license only if its contents + constitute a work based on the Program (independent of having + been made by running the Program). + + c. You must meet all of the following conditions with respect to + the distribution of any work based on the Program: + A. If you have modified the Program, you must cause your + work to carry prominent notices stating that you have + modified the Program's files and the date of any change; + + B. You must cause any work that you distribute or publish, + that in whole or in part contains or is derived from the + Program or any part thereof, to be licensed as a whole + and at no charge to all third parties under the terms of + this License; + + C. If the modified program normally reads commands + interactively when run, you must cause it, at each time + the modified program commences operation, to print or + display an announcement including an appropriate + copyright notice and a notice that there is no warranty + (or else, saying that you provide a warranty). Such + notice must also state that users may redistribute the + Program only under the conditions of this License and + tell the user how to view the copy of this License + included with the Program. (Exception: if the Program + itself is interactive but does not normally print such + an announcement, your work based on the Program is not + required to print an announcement.); + + D. You must accompany any such work based on the Program + with the complete corresponding machine-readable source + code, delivered on a medium customarily used for + software interchange. The source code for a work means + the preferred form of the work for making modifications + to it. For an executable work, complete source code + means all the source code for all modules it contains, + plus any associated interface definition files, plus the + scripts used to control compilation and installation of + the executable code. However, the source code + distributed need not include anything that is normally + distributed (in either source or binary form) with the + major components (compiler, kernel, and so on) of the + operating system on which the executable runs, unless + that component itself accompanies the executable code; + + E. If you distribute any written or printed material at all + with the Program or any work based on the Program, such + material must include either a written copy of this + License, or a prominent written indication that the + Program or the work based on the Program is covered by + this License and written instructions for printing + and/or displaying the copy of the License on the + distribution medium; + + F. You may not impose any further restrictions on the + recipient's exercise of the rights granted herein. + + If distribution of executable or object code is made by + offering the equivalent ability to copy from a + designated place, then offering equivalent ability to + copy the source code from the same place counts as + distribution of the source code, even though third + parties are not compelled to copy the source code along + with the object code. + + 3. Reservation of Rights. + + No rights are granted to the Program except as expressly set forth + herein. You may not copy, modify, sublicense, or distribute the + Program except as expressly provided under this License. Any + attempt otherwise to copy, modify, sublicense or distribute the + Program is void, and will automatically terminate your rights + under this License. However, parties who have received copies, or + rights, from you under this License will not have their licenses + terminated so long as such parties remain in full compliance. + + 4. Other Restrictions. + + If the distribution and/or use of the Program is restricted in + certain countries for any reason, Licensor may add an explicit + geographical distribution limitation excluding those countries, so + that distribution is permitted only in or among countries not thus + excluded. In such case, this License incorporates the limitation + as if written in the body of this License. + + 5. Limitations. + + THE PROGRAM IS PROVIDED TO YOU "AS IS," WITHOUT WARRANTY. THERE IS + NO WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ENTIRE RISK AS TO THE + QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE + PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY + SERVICING, REPAIR OR CORRECTION. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN + WRITING WILL LICENSOR, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR + REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR + DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR + CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE + THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA + BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD + PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER + PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF + THE POSSIBILITY OF SUCH DAMAGES. + diff --git a/vio/docs/COPYING.openssl b/vio/docs/COPYING.openssl new file mode 100644 index 00000000000..b9e18d5e7bf --- /dev/null +++ b/vio/docs/COPYING.openssl @@ -0,0 +1,127 @@ + + LICENSE ISSUES + ============== + + The OpenSSL toolkit stays under a dual license, i.e. both the conditions of + the OpenSSL License and the original SSLeay license apply to the toolkit. + See below for the actual license texts. Actually both licenses are BSD-style + Open Source licenses. In case of any license issues related to OpenSSL + please contact openssl-core@openssl.org. + + OpenSSL License + --------------- + +/* ==================================================================== + * Copyright (c) 1998-1999 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + + Original SSLeay License + ----------------------- + +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + diff --git a/vio/docs/INSTALL b/vio/docs/INSTALL new file mode 100644 index 00000000000..bab073d6417 --- /dev/null +++ b/vio/docs/INSTALL @@ -0,0 +1,3 @@ +As the Vio is currently used only as part of MySQL, separate +installation isn't currently supported. + diff --git a/vio/docs/README b/vio/docs/README new file mode 100644 index 00000000000..9fb3255236f --- /dev/null +++ b/vio/docs/README @@ -0,0 +1,18 @@ +Virtual IO library. +IO wrappers for sockets, fd-s, SSL. +Languages:C++ + +This library is based on work of many others. +They have different policies and I haven't thought up +about resulting licence - GPL, L(essen)GPL, BSD-style, whatever. +The licences are here for reference: +COPYING.mysql: MySQL licence. Some socket functions. +COPYING.dbug: Fred Fish's dbug library. I use it extensively ;=) +COPYING.openssl:OpenSSL licence. SSL wrappers. + +At the moment there is no real 'Makefile', just config.mk/targets.mk +and Makefile.am to build it as a module in MySQL. Therefore, there +is currently no possibility to build it as a separate library, but +with MySQL-s root Makefile it should just a matter of leaving +everything else out. + diff --git a/vio/docs/TODO b/vio/docs/TODO new file mode 100644 index 00000000000..7296ab73a10 --- /dev/null +++ b/vio/docs/TODO @@ -0,0 +1,3 @@ +* Consistent error handling. May be the initialization should + be taken out of constructors and be put into virtual method open(). +* The open() method is named very misleadingly(). |