summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <monty@donna.mysql.com>2000-11-29 05:09:28 +0200
committerunknown <monty@donna.mysql.com>2000-11-29 05:09:28 +0200
commit2c036ff7b95fd7350d9cb207470ae0022b81e76f (patch)
treeee9a533ec9c7faa983b88519569d772d4c829bc1
parent2c660371c9a8930883bdf8d8b1b46d57b5f6265c (diff)
downloadmariadb-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'
-rw-r--r--Docs/manual.texi41
-rw-r--r--myisam/mi_check.c2
-rw-r--r--scripts/mysqlhotcopy.sh152
-rw-r--r--sql-bench/Results/ATIS-mysql-Linux_2.2.13_SMP_alpha14
-rw-r--r--sql-bench/Results/RUN-mysql-Linux_2.2.13_SMP_alpha152
-rw-r--r--sql-bench/Results/alter-table-mysql-Linux_2.2.13_SMP_alpha10
-rw-r--r--sql-bench/Results/big-tables-mysql-Linux_2.2.13_SMP_alpha12
-rw-r--r--sql-bench/Results/connect-mysql-Linux_2.2.13_SMP_alpha20
-rw-r--r--sql-bench/Results/create-mysql-Linux_2.2.13_SMP_alpha14
-rw-r--r--sql-bench/Results/insert-mysql-Linux_2.2.13_SMP_alpha88
-rw-r--r--sql-bench/Results/select-mysql-Linux_2.2.13_SMP_alpha26
-rw-r--r--sql-bench/Results/wisconsin-mysql-Linux_2.2.13_SMP_alpha8
-rw-r--r--[-rwxr-xr-x]sql-bench/bench-init.pl.sh0
-rw-r--r--[-rwxr-xr-x]sql-bench/compare-results.sh0
-rwxr-xr-xsql-bench/copy-db.sh4
-rwxr-xr-xsql-bench/crash-me.sh16
-rw-r--r--sql-bench/limits/Adabas.cfg2
-rw-r--r--sql-bench/limits/access.cfg2
-rw-r--r--sql-bench/limits/access_odbc.cfg2
-rw-r--r--sql-bench/limits/frontbase.cfg6
-rw-r--r--sql-bench/limits/interbase.cfg2
-rw-r--r--sql-bench/limits/mimer.cfg2
-rw-r--r--sql-bench/limits/ms-sql.cfg2
-rw-r--r--sql-bench/limits/msql.cfg2
-rw-r--r--sql-bench/limits/mysql-3.22.cfg2
-rw-r--r--sql-bench/limits/mysql-3.23.cfg25
-rw-r--r--sql-bench/limits/mysql.cfg25
-rw-r--r--sql-bench/limits/oracle.cfg2
-rw-r--r--sql-bench/limits/pg.cfg2
-rwxr-xr-xsql-bench/print-limit-table8
-rw-r--r--[-rwxr-xr-x]sql-bench/run-all-tests.sh0
-rwxr-xr-xsql-bench/server-cfg.sh10
-rw-r--r--[-rwxr-xr-x]sql-bench/test-ATIS.sh0
-rw-r--r--[-rwxr-xr-x]sql-bench/test-alter-table.sh0
-rw-r--r--[-rwxr-xr-x]sql-bench/test-big-tables.sh0
-rw-r--r--[-rwxr-xr-x]sql-bench/test-connect.sh0
-rw-r--r--[-rwxr-xr-x]sql-bench/test-create.sh0
-rwxr-xr-xsql-bench/test-insert.sh6
-rw-r--r--[-rwxr-xr-x]sql-bench/test-select.sh0
-rw-r--r--[-rwxr-xr-x]sql-bench/test-wisconsin.sh0
-rw-r--r--sql/ha_myisam.cc8
-rw-r--r--sql/mysqlbinlog.cc2
-rw-r--r--sql/mysqld.cc33
-rw-r--r--sql/share/swedish/errmsg.OLD1
-rw-r--r--sql/sql_base.cc5
-rw-r--r--sql/sql_parse.cc22
-rw-r--r--sql/sql_show.cc9
-rw-r--r--vio/docs/COPYING.dbug29
-rw-r--r--vio/docs/COPYING.mysql193
-rw-r--r--vio/docs/COPYING.openssl127
-rw-r--r--vio/docs/INSTALL3
-rw-r--r--vio/docs/README18
-rw-r--r--vio/docs/TODO3
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 &param, 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 &param, 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(&param,"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().