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'
This commit is contained in:
parent
2c660371c9
commit
2c036ff7b9
@ -27761,6 +27761,7 @@ How big a @code{VARCHAR} column can be
|
|||||||
* mysqldump:: Dumping the structure and data from @strong{MySQL} databases and tables
|
* mysqldump:: Dumping the structure and data from @strong{MySQL} databases and tables
|
||||||
* mysqlimport:: Importing data from text files
|
* mysqlimport:: Importing data from text files
|
||||||
* mysqlshow:: Showing databases, tables and columns
|
* mysqlshow:: Showing databases, tables and columns
|
||||||
|
* perror:: Displaying error messages
|
||||||
* myisampack:: The @strong{MySQL} compressed read-only table generator
|
* myisampack:: The @strong{MySQL} compressed read-only table generator
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@ -28559,7 +28560,7 @@ mysqldump --all-databases > all_databases.sql
|
|||||||
@cindex files, text
|
@cindex files, text
|
||||||
@cindex text files, importing
|
@cindex text files, importing
|
||||||
@cindex @code{mysqlimport}
|
@cindex @code{mysqlimport}
|
||||||
@node mysqlimport, mysqlshow, mysqldump, Tools
|
@node mysqlimport, perror, mysqldump, Tools
|
||||||
@section Importing Data from Text Files
|
@section Importing Data from Text Files
|
||||||
|
|
||||||
@code{mysqlimport} provides a command-line interface to the @code{LOAD DATA
|
@code{mysqlimport} provides a command-line interface to the @code{LOAD DATA
|
||||||
@ -28696,12 +28697,34 @@ $ mysql -e 'SELECT * FROM imptest' test
|
|||||||
+------+---------------+
|
+------+---------------+
|
||||||
@end example
|
@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 databases, displaying
|
||||||
@cindex displaying, database information
|
@cindex displaying, database information
|
||||||
@cindex tables, displaying
|
@cindex tables, displaying
|
||||||
@cindex columns, displaying
|
@cindex columns, displaying
|
||||||
@cindex showing, database information
|
@cindex showing, database information
|
||||||
@node mysqlshow, myisampack, mysqlimport, Tools
|
@node mysqlshow, myisampack, perror, Tools
|
||||||
@section Showing Databases, Tables, and Columns
|
@section Showing Databases, Tables, and Columns
|
||||||
|
|
||||||
@code{mysqlshow} can be used to quickly look at which databases exist,
|
@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}.
|
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
|
@cindex commands out of sync
|
||||||
@node Commands out of sync, Ignoring user, Cannot create, Common errors
|
@node Commands out of sync, Ignoring user, Cannot create, Common errors
|
||||||
@subsection @code{Commands out of sync} error in client
|
@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
|
Automatically remove Berkeley DB transaction logs that are no longer in
|
||||||
use.
|
use.
|
||||||
@item
|
@item
|
||||||
|
Added a warning if number of rows changes on @code{REPAIR}/@code{OPTIMIZE}.
|
||||||
|
@item
|
||||||
Applied patches for OS2 by @code{Yuri Dario}.
|
Applied patches for OS2 by @code{Yuri Dario}.
|
||||||
@item
|
@item
|
||||||
@code{FLUSH TABLES table_name} didn't always flush table properly to
|
@code{FLUSH TABLES table_name} didn't always flush the index tree
|
||||||
disk; One some cases the index tree wasn't completely written to disk.
|
properly to disk.
|
||||||
@item
|
@item
|
||||||
@code{--bootstrap} is now run in a separate thread. This fixes the problem
|
@code{--bootstrap} is now run in a separate thread. This fixes the problem
|
||||||
that @code{mysql_install_db} core dumped on some Linux machines.
|
that @code{mysql_install_db} core dumped on some Linux machines.
|
||||||
|
@ -108,7 +108,7 @@ int chk_status(MI_CHECK *param, register MI_INFO *info)
|
|||||||
else if (mi_is_crashed(info))
|
else if (mi_is_crashed(info))
|
||||||
mi_check_print_warning(param,
|
mi_check_print_warning(param,
|
||||||
"Table is marked as crashed");
|
"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,
|
mi_check_print_warning(param,
|
||||||
"%d clients is using or hasn't closed the table properly",
|
"%d clients is using or hasn't closed the table properly",
|
||||||
|
@ -36,7 +36,8 @@ WARNING: THIS IS VERY MUCH A FIRST-CUT ALPHA. Comments/patches welcome.
|
|||||||
|
|
||||||
# Documentation continued at end of file
|
# Documentation continued at end of file
|
||||||
|
|
||||||
my $VERSION = "1.8";
|
my $VERSION = "1.9";
|
||||||
|
my $opt_tmpdir= $main::env{TMPDIR};
|
||||||
|
|
||||||
my $OPTIONS = <<"_OPTIONS";
|
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)
|
--allowold don't abort if target already exists (rename it _old)
|
||||||
--keepold don't delete previous (now renamed) target when done
|
--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)
|
--method=# method for copy (only "cp" currently supported)
|
||||||
|
|
||||||
-q, --quiet be silent except for errors
|
-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
|
--suffix=# suffix for names of copied databases
|
||||||
--checkpoint=# insert checkpoint entry into specified db.table
|
--checkpoint=# insert checkpoint entry into specified db.table
|
||||||
--flushlog flush logs once all tables are locked
|
--flushlog flush logs once all tables are locked
|
||||||
|
--tmpdir=# temporary directory (instead of $opt_tmpdir)
|
||||||
|
|
||||||
Try 'perldoc $0 for more complete documentation'
|
Try 'perldoc $0 for more complete documentation'
|
||||||
_OPTIONS
|
_OPTIONS
|
||||||
@ -71,7 +73,7 @@ sub usage {
|
|||||||
|
|
||||||
my %opt = (
|
my %opt = (
|
||||||
user => getpwuid($>),
|
user => getpwuid($>),
|
||||||
indices => 1, # for safety
|
noindices => 0,
|
||||||
allowold => 0, # for safety
|
allowold => 0, # for safety
|
||||||
keepold => 0,
|
keepold => 0,
|
||||||
method => "cp",
|
method => "cp",
|
||||||
@ -86,7 +88,7 @@ GetOptions( \%opt,
|
|||||||
"socket|S=s",
|
"socket|S=s",
|
||||||
"allowold!",
|
"allowold!",
|
||||||
"keepold!",
|
"keepold!",
|
||||||
"indices!",
|
"noindices!",
|
||||||
"method=s",
|
"method=s",
|
||||||
"debug",
|
"debug",
|
||||||
"quiet|q",
|
"quiet|q",
|
||||||
@ -95,6 +97,7 @@ GetOptions( \%opt,
|
|||||||
"suffix=s",
|
"suffix=s",
|
||||||
"checkpoint=s",
|
"checkpoint=s",
|
||||||
"flushlog",
|
"flushlog",
|
||||||
|
"tmpdir|t=s",
|
||||||
"dryrun|n",
|
"dryrun|n",
|
||||||
) or usage("Invalid option");
|
) or usage("Invalid option");
|
||||||
|
|
||||||
@ -133,6 +136,7 @@ else {
|
|||||||
my $mysqld_help;
|
my $mysqld_help;
|
||||||
my %mysqld_vars;
|
my %mysqld_vars;
|
||||||
my $start_time = time;
|
my $start_time = time;
|
||||||
|
my $opt_tmpdir= $opt{tempdir} ? $opt{tmpdir} : $main::env{TMPDIR};
|
||||||
$0 = $1 if $0 =~ m:/([^/]+)$:;
|
$0 = $1 if $0 =~ m:/([^/]+)$:;
|
||||||
$opt{quiet} = 0 if $opt{debug};
|
$opt{quiet} = 0 if $opt{debug};
|
||||||
$opt{allowold} = 1 if $opt{keepold};
|
$opt{allowold} = 1 if $opt{keepold};
|
||||||
@ -238,13 +242,16 @@ foreach my $rdb ( @db_desc ) {
|
|||||||
my @db_files = sort ( $negated
|
my @db_files = sort ( $negated
|
||||||
? grep { $db_files{$_} !~ $t_regex } keys %db_files
|
? grep { $db_files{$_} !~ $t_regex } keys %db_files
|
||||||
: 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
|
## 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;
|
@db_files = grep { not /\.(ISM|MYI)$/ } @db_files;
|
||||||
}
|
}
|
||||||
|
|
||||||
$rdb->{files} = [ @db_files ];
|
$rdb->{files} = [ @db_files ];
|
||||||
|
$rdb->{index} = [ @index_files ];
|
||||||
my @hc_tables = map { "$db.$_" } @dbh_tables;
|
my @hc_tables = map { "$db.$_" } @dbh_tables;
|
||||||
$rdb->{tables} = [ @hc_tables ];
|
$rdb->{tables} = [ @hc_tables ];
|
||||||
|
|
||||||
@ -369,27 +376,78 @@ else {
|
|||||||
|
|
||||||
my @failed = ();
|
my @failed = ();
|
||||||
|
|
||||||
foreach my $rdb ( @db_desc ) {
|
foreach my $rdb ( @db_desc )
|
||||||
my @files = map { "$datadir/$rdb->{src}/$_" } @{$rdb->{files}};
|
{
|
||||||
next unless @files;
|
my @files = map { "$datadir/$rdb->{src}/$_" } @{$rdb->{files}};
|
||||||
eval { copy_files($opt{method}, \@files, $rdb->{target} ); };
|
next unless @files;
|
||||||
|
|
||||||
push @failed, "$rdb->{src} -> $rdb->{target} failed: $@"
|
eval { copy_files($opt{method}, \@files, $rdb->{target} ); };
|
||||||
if ( $@ );
|
push @failed, "$rdb->{src} -> $rdb->{target} failed: $@"
|
||||||
|
if ( $@ );
|
||||||
|
|
||||||
if ( $opt{checkpoint} ) {
|
@files = map { "$datadir/$rdb->{src}/$_" } @{$rdb->{index}};
|
||||||
my $msg = ( $@ ) ? "Failed: $@" : "Succeeded";
|
if ($rdb->{index})
|
||||||
|
{
|
||||||
|
#
|
||||||
|
# Copy only the header of the index file
|
||||||
|
#
|
||||||
|
|
||||||
eval {
|
my $tmpfile="$opt_tmpdir/mysqlhotcopy$$";
|
||||||
$dbh->do( qq{ insert into $opt{checkpoint} (src, dest, msg)
|
foreach my $file ($rdb->{index})
|
||||||
VALUES ( '$rdb->{src}', '$rdb->{target}', '$msg' )
|
{
|
||||||
} );
|
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 ( $@ ) {
|
if ( $opt{dryrun} )
|
||||||
warn "Failed to update checkpoint table: $@\n";
|
{
|
||||||
}
|
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} ) {
|
if ( $opt{dryrun} ) {
|
||||||
@ -469,25 +527,34 @@ sub copy_files {
|
|||||||
# add files to copy and the destination directory
|
# add files to copy and the destination directory
|
||||||
push @cmd, @$files, $target;
|
push @cmd, @$files, $target;
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
die "Can't use unsupported method '$method'\n";
|
die "Can't use unsupported method '$method'\n";
|
||||||
}
|
}
|
||||||
|
safe_system (@cmd);
|
||||||
if ( $opt{dryrun} ) {
|
|
||||||
print "@cmd\n";
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
|
|
||||||
## 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 safe_system
|
||||||
|
{
|
||||||
|
my @cmd=shift;
|
||||||
|
|
||||||
|
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 {
|
sub retire_directory {
|
||||||
my ( @dir ) = @_;
|
my ( @dir ) = @_;
|
||||||
|
|
||||||
@ -611,9 +678,9 @@ port to use when connecting to local server
|
|||||||
|
|
||||||
UNIX domain socket 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=#
|
=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 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
|
=head1 AUTHOR
|
||||||
|
|
||||||
Tim Bunce
|
Tim Bunce
|
||||||
@ -689,3 +753,5 @@ Martin Waite - added checkpoint, flushlog, regexp and dryrun options
|
|||||||
Ralph Corderoy - added synonyms for commands
|
Ralph Corderoy - added synonyms for commands
|
||||||
|
|
||||||
Scott Wiersdorf - added table regex and scp support
|
Scott Wiersdorf - added table regex and scp support
|
||||||
|
|
||||||
|
Monty - working --noindex (copy only first 2048 bytes of index file)
|
||||||
|
@ -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
|
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)
|
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
|
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
|
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_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.31 usr 3.11 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.72 usr 0.95 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.58 usr 0.66 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
|
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)
|
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)
|
||||||
|
@ -1,92 +1,92 @@
|
|||||||
Benchmark DBD suite: 2.9
|
Benchmark DBD suite: 2.10
|
||||||
Date of test: 2000-11-18 18:20:34
|
Date of test: 2000-11-28 17:24:55
|
||||||
Running tests on: Linux 2.2.13-SMP alpha
|
Running tests on: Linux 2.2.13-SMP alpha
|
||||||
Arguments:
|
Arguments:
|
||||||
Comments: Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; gcc 2.95.2 + ccc
|
Comments: Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; gcc 2.95.2 + ccc
|
||||||
Limits from:
|
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)
|
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: 375 wallclock secs ( 0.30 usr 0.15 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: 42 wallclock secs ( 9.09 usr 11.00 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: 77 wallclock secs (34.21 usr 17.98 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: 134 wallclock secs (10.66 usr 4.31 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: 1851 wallclock secs (450.58 usr 224.15 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: 1215 wallclock secs (57.43 usr 28.03 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: 19 wallclock secs ( 3.77 usr 2.78 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
|
All 8 test executed successfully
|
||||||
|
|
||||||
Totals per operation:
|
Totals per operation:
|
||||||
Operation seconds usr sys cpu tests
|
Operation seconds usr sys cpu tests
|
||||||
alter_table_add 205.00 0.17 0.07 0.00 992
|
alter_table_add 213.00 0.17 0.07 0.00 992
|
||||||
alter_table_drop 161.00 0.07 0.03 0.00 496
|
alter_table_drop 170.00 0.07 0.03 0.00 496
|
||||||
connect 14.00 8.15 2.36 0.00 10000
|
connect 14.00 7.49 2.43 0.00 10000
|
||||||
connect+select_1_row 17.00 8.55 3.39 0.00 10000
|
connect+select_1_row 17.00 7.59 3.33 0.00 10000
|
||||||
connect+select_simple 16.00 8.31 3.17 0.00 10000
|
connect+select_simple 15.00 7.61 3.24 0.00 10000
|
||||||
count 49.00 0.03 0.01 0.00 100
|
count 48.00 0.03 0.01 0.00 100
|
||||||
count_distinct 86.00 0.71 0.21 0.00 2000
|
count_distinct 92.00 0.69 0.21 0.00 2000
|
||||||
count_distinct_big 140.00 7.24 8.69 0.00 120
|
count_distinct_big 135.00 7.24 8.53 0.00 120
|
||||||
count_distinct_group 72.00 1.07 0.63 0.00 1000
|
count_distinct_group 64.00 1.06 0.66 0.00 1000
|
||||||
count_distinct_group_on_key 42.00 0.45 0.15 0.00 1000
|
count_distinct_group_on_key 42.00 0.43 0.14 0.00 1000
|
||||||
count_distinct_group_on_key_parts 72.00 1.08 0.62 0.00 1000
|
count_distinct_group_on_key_parts 63.00 1.10 0.62 0.00 1000
|
||||||
count_group_on_key_parts 39.00 0.99 0.61 0.00 1000
|
count_group_on_key_parts 40.00 1.00 0.61 0.00 1000
|
||||||
count_on_key 454.00 15.83 4.45 0.00 50100
|
count_on_key 428.00 15.76 4.53 0.00 50100
|
||||||
create+drop 13.00 2.86 0.85 0.00 10000
|
create+drop 13.00 2.68 1.04 0.00 10000
|
||||||
create_MANY_tables 91.00 1.85 0.61 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_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
|
create_table 0.00 0.00 0.00 0.00 31
|
||||||
delete_all 11.00 0.00 0.00 0.00 12
|
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 0.00 0.00 0.00 0.00 1
|
||||||
delete_big_many_keys 49.00 0.01 0.01 0.00 128
|
delete_big_many_keys 49.00 0.02 0.01 0.00 128
|
||||||
delete_key 4.00 0.65 0.54 0.00 10000
|
delete_key 4.00 0.66 0.53 0.00 10000
|
||||||
drop_index 4.00 0.00 0.00 0.00 8
|
drop_index 4.00 0.00 0.00 0.00 8
|
||||||
drop_table 0.00 0.00 0.00 0.00 28
|
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
|
drop_table_when_MANY_tables 7.00 0.62 0.61 0.00 10000
|
||||||
insert 137.00 26.71 20.07 0.00 350768
|
insert 137.00 24.96 21.11 0.00 350768
|
||||||
insert_duplicates 39.00 5.58 6.03 0.00 100000
|
insert_duplicates 38.00 5.63 6.17 0.00 100000
|
||||||
insert_key 93.00 8.08 5.73 0.00 100000
|
insert_key 94.00 7.67 5.66 0.00 100000
|
||||||
insert_many_fields 14.00 0.34 0.16 0.00 2000
|
insert_many_fields 14.00 0.35 0.12 0.00 2000
|
||||||
insert_select_1_key 4.00 0.00 0.00 0.00 1
|
insert_select_1_key 5.00 0.00 0.00 0.00 1
|
||||||
insert_select_2_keys 7.00 0.00 0.00 0.00 1
|
insert_select_2_keys 6.00 0.00 0.00 0.00 1
|
||||||
min_max 21.00 0.02 0.00 0.00 60
|
min_max 20.00 0.02 0.00 0.00 60
|
||||||
min_max_on_key 186.00 25.42 7.61 0.00 85000
|
min_max_on_key 175.00 25.68 7.59 0.00 85000
|
||||||
multiple_value_insert 7.00 2.19 0.05 0.00 100000
|
multiple_value_insert 7.00 2.15 0.05 0.00 100000
|
||||||
order_by_big 54.00 22.86 21.67 0.00 10
|
order_by_big 54.00 22.33 21.66 0.00 10
|
||||||
order_by_big_key 37.00 22.01 14.79 0.00 10
|
order_by_big_key 36.00 21.23 14.75 0.00 10
|
||||||
order_by_big_key2 37.00 22.02 14.86 0.00 10
|
order_by_big_key2 37.00 21.94 15.04 0.00 10
|
||||||
order_by_big_key_desc 37.00 22.03 14.87 0.00 10
|
order_by_big_key_desc 37.00 21.53 14.74 0.00 10
|
||||||
order_by_big_key_diff 52.00 23.11 21.71 0.00 10
|
order_by_big_key_diff 51.00 22.21 21.67 0.00 10
|
||||||
order_by_key 3.00 1.17 0.64 0.00 500
|
order_by_key 2.00 1.14 0.63 0.00 500
|
||||||
order_by_key2_diff 5.00 2.05 1.25 0.00 500
|
order_by_key2_diff 5.00 1.99 1.23 0.00 500
|
||||||
order_by_range 5.00 1.17 0.65 0.00 500
|
order_by_range 5.00 1.14 0.64 0.00 500
|
||||||
outer_join 61.00 0.01 0.00 0.00 10
|
outer_join 57.00 0.00 0.00 0.00 10
|
||||||
outer_join_found 55.00 0.00 0.00 0.00 10
|
outer_join_found 52.00 0.00 0.00 0.00 10
|
||||||
outer_join_not_found 35.00 0.01 0.00 0.00 500
|
outer_join_not_found 34.00 0.00 0.00 0.00 500
|
||||||
outer_join_on_key 40.00 0.00 0.00 0.00 10
|
outer_join_on_key 38.00 0.01 0.00 0.00 10
|
||||||
select_1_row 3.00 0.41 1.01 0.00 10000
|
select_1_row 2.00 0.35 0.95 0.00 10000
|
||||||
select_2_rows 3.00 0.38 0.89 0.00 10000
|
select_2_rows 3.00 0.34 1.00 0.00 10000
|
||||||
select_big 57.00 30.30 20.70 0.00 10080
|
select_big 56.00 28.86 21.57 0.00 10080
|
||||||
select_column+column 3.00 0.27 0.75 0.00 10000
|
select_column+column 3.00 0.26 0.67 0.00 10000
|
||||||
select_diff_key 154.00 0.23 0.06 0.00 500
|
select_diff_key 148.00 0.21 0.05 0.00 500
|
||||||
select_distinct 11.00 1.72 0.95 0.00 800
|
select_distinct 11.00 1.77 0.97 0.00 800
|
||||||
select_group 52.00 1.62 0.67 0.00 2911
|
select_group 49.00 1.63 0.66 0.00 2911
|
||||||
select_group_when_MANY_tables 6.00 0.92 0.90 0.00 10000
|
select_group_when_MANY_tables 6.00 0.96 0.87 0.00 10000
|
||||||
select_join 12.00 4.31 3.11 0.00 200
|
select_join 12.00 4.45 3.14 0.00 200
|
||||||
select_key 137.00 75.62 20.87 0.00 200000
|
select_key 137.00 73.10 21.05 0.00 200000
|
||||||
select_key2 144.00 76.78 20.52 0.00 200000
|
select_key2 142.00 72.16 21.15 0.00 200000
|
||||||
select_key_prefix 144.00 76.89 20.33 0.00 200000
|
select_key_prefix 143.00 72.60 21.07 0.00 200000
|
||||||
select_many_fields 28.00 8.73 10.85 0.00 2000
|
select_many_fields 26.00 7.99 10.11 0.00 2000
|
||||||
select_range 228.00 8.51 5.59 0.00 410
|
select_range 229.00 8.56 5.62 0.00 410
|
||||||
select_range_key2 20.00 6.50 2.29 0.00 25010
|
select_range_key2 19.00 6.47 2.33 0.00 25010
|
||||||
select_range_prefix 18.00 6.46 2.33 0.00 25010
|
select_range_prefix 20.00 6.51 2.25 0.00 25010
|
||||||
select_simple 2.00 0.29 0.75 0.00 10000
|
select_simple 2.00 0.28 0.77 0.00 10000
|
||||||
select_simple_join 2.00 0.62 0.39 0.00 500
|
select_simple_join 1.00 0.66 0.38 0.00 500
|
||||||
update_big 25.00 0.00 0.00 0.00 10
|
update_big 27.00 0.00 0.00 0.00 10
|
||||||
update_of_key 47.00 3.41 2.97 0.00 50256
|
update_of_key 48.00 3.45 3.04 0.00 50256
|
||||||
update_of_key_big 18.00 0.04 0.04 0.00 501
|
update_of_key_big 18.00 0.04 0.03 0.00 501
|
||||||
update_with_key 134.00 21.08 18.70 0.00 300000
|
update_with_key 134.00 18.92 18.69 0.00 300000
|
||||||
wisc_benchmark 4.00 1.92 0.94 0.00 114
|
wisc_benchmark 4.00 1.88 0.93 0.00 114
|
||||||
TOTALS 3797.00 574.84 294.06 0.00 1946237
|
TOTALS 3733.00 551.64 296.93 0.00 1946237
|
||||||
|
@ -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 of ALTER TABLE
|
||||||
Testing with 1000 columns and 1000 rows in 20 steps
|
Testing with 1000 columns and 1000 rows in 20 steps
|
||||||
Insert data into the table
|
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 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 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)
|
||||||
|
@ -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
|
Testing of some unusual tables
|
||||||
All tests are done 1000 times with 1000 fields
|
All tests are done 1000 times with 1000 fields
|
||||||
|
|
||||||
Testing table with 1000 fields
|
Testing table with 1000 fields
|
||||||
Testing select * from table with 1 record
|
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
|
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()
|
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()
|
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)
|
||||||
|
@ -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
|
Testing the speed of connecting to the server and sending of data
|
||||||
All tests are done 10000 times
|
All tests are done 10000 times
|
||||||
|
|
||||||
Testing connection/disconnect
|
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
|
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
|
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
|
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
|
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
|
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 (+)
|
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)
|
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)
|
||||||
|
@ -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 the speed of creating and droping tables
|
||||||
Testing with 10000 tables and 10000 loop count
|
Testing with 10000 tables and 10000 loop count
|
||||||
|
|
||||||
Testing create of tables
|
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
|
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
|
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
|
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+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.39 usr 1.33 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: 134 wallclock secs (10.66 usr 4.31 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)
|
||||||
|
@ -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.
|
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.
|
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 order
|
||||||
Inserting 100000 rows in reverse order
|
Inserting 100000 rows in reverse order
|
||||||
Inserting 100000 rows in random 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
|
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
|
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 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): 37 wallclock secs (22.01 usr 14.79 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 (22.03 usr 14.87 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 (22.02 usr 14.86 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): 52 wallclock secs (23.11 usr 21.71 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.86 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.17 usr 0.65 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): 3 wallclock secs ( 1.17 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 ( 2.05 usr 1.25 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): 154 wallclock secs ( 0.23 usr 0.06 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): 10 wallclock secs ( 2.79 usr 0.99 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): 11 wallclock secs ( 2.80 usr 1.00 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): 144 wallclock secs (76.89 usr 20.33 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 (75.62 usr 20.87 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): 144 wallclock secs (76.78 usr 20.52 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
|
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_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.70 usr 1.29 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): 42 wallclock secs ( 0.04 usr 0.01 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.71 usr 1.26 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): 21 wallclock secs ( 0.02 usr 0.00 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): 41 wallclock secs ( 0.04 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): 49 wallclock secs ( 0.03 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): 58 wallclock secs ( 0.00 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
|
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 (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.04 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
|
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
|
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
|
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_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): 61 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): 55 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): 35 wallclock secs ( 0.01 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
|
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_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): 7 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): 0 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
|
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)
|
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
|
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
|
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
|
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
|
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
|
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)
|
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)
|
||||||
|
@ -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
|
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.
|
The test-table has 10000 rows and the test is done with 500 ranges.
|
||||||
|
|
||||||
Creating table
|
Creating table
|
||||||
Inserting 10000 rows
|
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
|
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_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): 228 wallclock secs ( 8.51 usr 5.59 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): 177 wallclock secs (20.71 usr 6.35 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): 413 wallclock secs (15.79 usr 4.45 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
|
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 (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.45 usr 0.15 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): 72 wallclock secs ( 1.08 usr 0.62 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): 72 wallclock secs ( 1.07 usr 0.63 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): 82 wallclock secs ( 7.24 usr 8.68 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: 1215 wallclock secs (57.43 usr 28.03 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)
|
||||||
|
@ -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
|
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)
|
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
|
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)
|
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
|
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)
|
||||||
|
0
sql-bench/bench-init.pl.sh
Executable file → Normal file
0
sql-bench/bench-init.pl.sh
Executable file → Normal file
0
sql-bench/compare-results.sh
Executable file → Normal file
0
sql-bench/compare-results.sh
Executable file → Normal file
@ -127,7 +127,7 @@ foreach $table (@ARGV)
|
|||||||
|
|
||||||
$columns=$sth->{NUM_OF_FIELDS};
|
$columns=$sth->{NUM_OF_FIELDS};
|
||||||
$columns_to_quote=get_columns_to_quote($sth);
|
$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="";
|
$query="insert into $table values"; $result="";
|
||||||
|
|
||||||
print "- copying $table\n" if ($opt_verbose);
|
print "- copying $table\n" if ($opt_verbose);
|
||||||
@ -146,7 +146,7 @@ foreach $table (@ARGV)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
substr($tmp,-1)=")"; # Remove last ','
|
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";
|
$to_dbh->do($query . $tmp) || die "Can't insert row: $DBI::errstr";
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
# as such, and clarify ones such as "mediumint" with comments such as
|
# as such, and clarify ones such as "mediumint" with comments such as
|
||||||
# "3-byte int" or "same as xxx".
|
# "3-byte int" or "same as xxx".
|
||||||
|
|
||||||
$version="1.53";
|
$version="1.54";
|
||||||
|
|
||||||
use DBI;
|
use DBI;
|
||||||
use Getopt::Long;
|
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);
|
["drop table crash_q $drop_attr"],[3,2,1],7,undef(),3);
|
||||||
report("Compute",'compute',
|
report("Compute",'compute',
|
||||||
"select a from crash_me order by a compute sum(a) by a");
|
"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))",
|
"create table crash_q (s char(10))",
|
||||||
"insert into crash_q values ('a'),('b')",
|
"insert into crash_q values ('a'),('b')",
|
||||||
"drop table crash_q $drop_attr");
|
"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_q $drop_attr");
|
||||||
$dbh->do("drop table crash_q1 $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);
|
[],"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);
|
[],"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))",
|
["create table crash_q (s char(10))",
|
||||||
"insert into crash_q values(null)",
|
"insert into crash_q values(null)",
|
||||||
"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",
|
["serial",
|
||||||
"create table crash_q (a serial, primary key(a))","drop table crash_q $drop_attr"]);
|
"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",
|
["_rowid",
|
||||||
"create table crash_q (a int not null, primary key(a))",
|
"create table crash_q (a int not null, primary key(a))",
|
||||||
"insert into crash_q values (1)",
|
"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)",
|
"create table crash_q (q integer not null,q1 integer default (1+1)",
|
||||||
"drop table crash_q $drop_attr");
|
"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)",
|
"create temporary table crash_q (q integer not null)",
|
||||||
"drop table crash_q $drop_attr");
|
"drop table crash_q $drop_attr");
|
||||||
|
|
||||||
@ -1399,7 +1399,7 @@ if ($limits{'unique_in_create'} eq 'yes')
|
|||||||
"insert into crash_q (q) values(NULL)",
|
"insert into crash_q (q) values(NULL)",
|
||||||
"drop table crash_q $drop_attr");
|
"drop table crash_q $drop_attr");
|
||||||
report("null combination in unique index",'nulls_in_unique',
|
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)",
|
||||||
"insert into crash_q (q,q1) values(1,NULL)",
|
"insert into crash_q (q,q1) values(1,NULL)",
|
||||||
"drop table crash_q $drop_attr");
|
"drop table crash_q $drop_attr");
|
||||||
|
@ -302,7 +302,7 @@ multi_drop=no # many tables to drop table
|
|||||||
multi_strings=no # Multiple line strings
|
multi_strings=no # Multiple line strings
|
||||||
multi_table_delete=no # DELETE FROM table1,table2...
|
multi_table_delete=no # DELETE FROM table1,table2...
|
||||||
multi_table_update=no # Update with many tables
|
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=no # natural join
|
||||||
natural_left_outer_join=no # natural left outer join
|
natural_left_outer_join=no # natural left outer join
|
||||||
no_primary_key=yes # Tables without primary key
|
no_primary_key=yes # Tables without primary key
|
||||||
|
@ -343,7 +343,7 @@ multi_null_in_unique=yes # null in unique index
|
|||||||
multi_strings=no # Multiple line strings
|
multi_strings=no # Multiple line strings
|
||||||
multi_table_delete=yes # DELETE FROM table1,table2...
|
multi_table_delete=yes # DELETE FROM table1,table2...
|
||||||
multi_table_update=yes # Update with many tables
|
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=no # natural join
|
||||||
natural_join_incompat=no # natural join (incompatible lists)
|
natural_join_incompat=no # natural join (incompatible lists)
|
||||||
natural_left_outer_join=no # natural left outer join
|
natural_left_outer_join=no # natural left outer join
|
||||||
|
@ -309,7 +309,7 @@ multi_drop=yes # many tables to drop table
|
|||||||
multi_strings=no # Multiple line strings
|
multi_strings=no # Multiple line strings
|
||||||
multi_table_delete=yes # DELETE FROM table1,table2...
|
multi_table_delete=yes # DELETE FROM table1,table2...
|
||||||
multi_table_update=yes # Update with many tables
|
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=no # natural join
|
||||||
natural_left_outer_join=no # natural left outer join
|
natural_left_outer_join=no # natural left outer join
|
||||||
no_primary_key=yes # Tables without primary key
|
no_primary_key=yes # Tables without primary key
|
||||||
|
@ -349,7 +349,7 @@ multi_drop=no # many tables to drop table
|
|||||||
multi_strings=yes # Multiple line strings
|
multi_strings=yes # Multiple line strings
|
||||||
multi_table_delete=no # DELETE FROM table1,table2...
|
multi_table_delete=no # DELETE FROM table1,table2...
|
||||||
multi_table_update=no # Update with many tables
|
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=no # natural join
|
||||||
natural_join_incompat=no # natural join (incompatible lists)
|
natural_join_incompat=no # natural join (incompatible lists)
|
||||||
natural_left_outer_join=yes # natural left outer join
|
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_string_size=4199664 # constant string size in SELECT
|
||||||
select_table_update=yes # Update with sub select
|
select_table_update=yes # Update with sub select
|
||||||
select_without_from=no # SELECT without FROM
|
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
|
simple_joins=yes # ANSI SQL simple joins
|
||||||
storage_of_float=round # Storage of float values
|
storage_of_float=round # Storage of float values
|
||||||
subqueries=yes # subqueries
|
subqueries=yes # subqueries
|
||||||
table_alias=yes # Table alias
|
table_alias=yes # Table alias
|
||||||
table_name_case=yes # case independent table names
|
table_name_case=yes # case independent table names
|
||||||
table_wildcard=yes # Select table_name.*
|
table_wildcard=yes # Select table_name.*
|
||||||
tempoary_table=no # temporary tables
|
temporary_table=no # temporary tables
|
||||||
transactions=error # transactions
|
transactions=error # transactions
|
||||||
truncate_table=no # truncate
|
truncate_table=no # truncate
|
||||||
type_extra_abstime=no # Type abstime
|
type_extra_abstime=no # Type abstime
|
||||||
|
@ -315,7 +315,7 @@ multi_drop=no # many tables to drop table
|
|||||||
multi_strings=no # Multiple line strings
|
multi_strings=no # Multiple line strings
|
||||||
multi_table_delete=no # DELETE FROM table1,table2...
|
multi_table_delete=no # DELETE FROM table1,table2...
|
||||||
multi_table_update=no # Update with many tables
|
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=no # natural join
|
||||||
natural_left_outer_join=no # natural left outer join
|
natural_left_outer_join=no # natural left outer join
|
||||||
no_primary_key=yes # Tables without primary key
|
no_primary_key=yes # Tables without primary key
|
||||||
|
@ -334,7 +334,7 @@ multi_drop=no # many tables to drop table
|
|||||||
multi_strings=yes # Multiple line strings
|
multi_strings=yes # Multiple line strings
|
||||||
multi_table_delete=no # DELETE FROM table1,table2...
|
multi_table_delete=no # DELETE FROM table1,table2...
|
||||||
multi_table_update=no # Update with many tables
|
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=yes # natural join
|
||||||
natural_left_outer_join=yes # natural left outer join
|
natural_left_outer_join=yes # natural left outer join
|
||||||
no_primary_key=yes # Tables without primary key
|
no_primary_key=yes # Tables without primary key
|
||||||
|
@ -345,7 +345,7 @@ multi_drop=no # many tables to drop table
|
|||||||
multi_strings=no # Multiple line strings
|
multi_strings=no # Multiple line strings
|
||||||
multi_table_delete=no # DELETE FROM table1,table2...
|
multi_table_delete=no # DELETE FROM table1,table2...
|
||||||
multi_table_update=no # Update with many tables
|
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=no # natural join
|
||||||
natural_join_incompat=no # natural join (incompatible lists)
|
natural_join_incompat=no # natural join (incompatible lists)
|
||||||
natural_left_outer_join=no # natural left outer join
|
natural_left_outer_join=no # natural left outer join
|
||||||
|
@ -97,7 +97,7 @@ multi_drop=no # many tables to drop table
|
|||||||
multi_strings=no # Multiple line strings
|
multi_strings=no # Multiple line strings
|
||||||
multi_table_delete=no # DELETE FROM table1,table2...
|
multi_table_delete=no # DELETE FROM table1,table2...
|
||||||
multi_table_update=no # Update with many tables
|
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=no # natural join
|
||||||
natural_left_outer_join=no # natural left outer join
|
natural_left_outer_join=no # natural left outer join
|
||||||
no_primary_key=yes # Tables without primary key
|
no_primary_key=yes # Tables without primary key
|
||||||
|
@ -310,7 +310,7 @@ multi_drop=yes # many tables to drop table
|
|||||||
multi_strings=yes # Multiple line strings
|
multi_strings=yes # Multiple line strings
|
||||||
multi_table_delete=no # DELETE FROM table1,table2...
|
multi_table_delete=no # DELETE FROM table1,table2...
|
||||||
multi_table_update=no # Update with many tables
|
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=no # natural join
|
||||||
natural_left_outer_join=yes # natural left outer join
|
natural_left_outer_join=yes # natural left outer join
|
||||||
no_primary_key=yes # Tables without primary key
|
no_primary_key=yes # Tables without primary key
|
||||||
|
@ -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
|
NEG=yes # update of column= -column
|
||||||
Need_cast_for_null=no # Need to cast NULL for arithmetic
|
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_modify_col=yes # Alter table modify column
|
||||||
alter_rename_table=yes # Alter table rename table
|
alter_rename_table=yes # Alter table rename table
|
||||||
atomic_updates=no # atomic updates
|
atomic_updates=no # atomic updates
|
||||||
automatic_rowid=_rowid # Automatic rowid
|
automatic_rowid=_rowid # Automatic row id
|
||||||
binary_numbers=no # binary numbers (0b1001)
|
binary_numbers=no # binary numbers (0b1001)
|
||||||
binary_strings=no # binary strings (b'0110')
|
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
|
char_is_space_filled=no # char are space filled
|
||||||
column_alias=yes # Column alias
|
column_alias=yes # Column alias
|
||||||
columns_in_group_by=+64 # number of columns in group by
|
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_check_table=no # Table constraints
|
||||||
constraint_null=yes # NULL constraint (SyBase style)
|
constraint_null=yes # NULL constraint (SyBase style)
|
||||||
crash_me_safe=yes # crash me safe
|
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=yes # default value for column
|
||||||
create_default_func=no # default value function for column
|
create_default_func=no # default value function for column
|
||||||
create_if_not_exists=yes # create table if not exists
|
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
|
double_quotes=yes # Double '' as ' in strings
|
||||||
drop_if_exists=yes # drop table if exists
|
drop_if_exists=yes # drop table if exists
|
||||||
drop_index=with 'ON' # drop index
|
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 ';'
|
end_colon=yes # allows end ';'
|
||||||
except=no # except
|
except=no # except
|
||||||
except_all=no # except all
|
except_all=no # except all
|
||||||
@ -275,7 +277,7 @@ func_where_unique=no # Function UNIQUE
|
|||||||
functions=yes # Functions
|
functions=yes # Functions
|
||||||
group_by=yes # Group by
|
group_by=yes # Group by
|
||||||
group_by_alias=yes # Group by alias
|
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_by_position=yes # Group by position
|
||||||
group_distinct_functions=yes # Group functions with distinct
|
group_distinct_functions=yes # Group functions with distinct
|
||||||
group_func_extra_bit_and=yes # Group function BIT_AND
|
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_some=no # Group function SOME
|
||||||
group_func_sql_sum=yes # Group function SUM
|
group_func_sql_sum=yes # Group function SUM
|
||||||
group_functions=yes # Group functions
|
group_functions=yes # Group functions
|
||||||
|
group_on_unused=yes # Group on unused column
|
||||||
has_true_false=no # TRUE and FALSE
|
has_true_false=no # TRUE and FALSE
|
||||||
having=yes # Having
|
having=yes # Having
|
||||||
having_with_alias=yes # Having on alias
|
having_with_alias=yes # Having on alias
|
||||||
having_with_group=yes # Having with group function
|
having_with_group=yes # Having with group function
|
||||||
hex_numbers=yes # hex numbers (0x41)
|
hex_numbers=yes # hex numbers (0x41)
|
||||||
hex_strings=no # hex strings (x'1ace')
|
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_in_create=yes # index in create table
|
||||||
index_namespace=yes # different namespace for index
|
index_namespace=yes # different namespace for index
|
||||||
index_parts=yes # index on column part (extension)
|
index_parts=yes # index on column part (extension)
|
||||||
inner_join=yes # inner join
|
inner_join=yes # inner join
|
||||||
insert_empty_string=yes # insert empty string
|
insert_empty_string=yes # insert empty string
|
||||||
|
insert_multi_value=yes # INSERT with Value lists
|
||||||
insert_select=yes # insert INTO ... SELECT ...
|
insert_select=yes # insert INTO ... SELECT ...
|
||||||
insert_with_set=yes # INSERT with set syntax
|
insert_with_set=yes # INSERT with set syntax
|
||||||
intersect=no # intersect
|
intersect=no # intersect
|
||||||
@ -351,7 +355,6 @@ multi_null_in_unique=yes # null in unique index
|
|||||||
multi_strings=yes # Multiple line strings
|
multi_strings=yes # Multiple line strings
|
||||||
multi_table_delete=no # DELETE FROM table1,table2...
|
multi_table_delete=no # DELETE FROM table1,table2...
|
||||||
multi_table_update=no # Update with many tables
|
multi_table_update=no # Update with many tables
|
||||||
multi_value_insert=yes # Value lists in INSERT
|
|
||||||
natural_join=yes # natural join
|
natural_join=yes # natural join
|
||||||
natural_join_incompat=yes # natural join (incompatible lists)
|
natural_join_incompat=yes # natural join (incompatible lists)
|
||||||
natural_left_outer_join=yes # natural left outer join
|
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_index=yes # null in index
|
||||||
null_in_unique=yes # null in unique index
|
null_in_unique=yes # null in unique index
|
||||||
null_num_expr=yes # Is 1+NULL = NULL
|
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
|
odbc_left_outer_join=yes # left outer join odbc style
|
||||||
operating_system=Linux 2.2.13-SMP alpha # crash-me tested on
|
operating_system=Linux 2.2.13-SMP alpha # crash-me tested on
|
||||||
order_by=yes # Order by
|
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_function=yes # Order by function
|
||||||
order_by_position=yes # Order by position
|
order_by_position=yes # Order by position
|
||||||
order_by_remember_desc=no # Order by DESC is remembered
|
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
|
primary_key_in_create=yes # primary key in create table
|
||||||
psm_functions=no # PSM functions (ANSI SQL)
|
psm_functions=no # PSM functions (ANSI SQL)
|
||||||
psm_modules=no # PSM modules (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_string_size=1048565 # constant string size in SELECT
|
||||||
select_table_update=no # Update with sub select
|
select_table_update=no # Update with sub select
|
||||||
select_without_from=yes # SELECT without FROM
|
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
|
simple_joins=yes # ANSI SQL simple joins
|
||||||
storage_of_float=round # Storage of float values
|
storage_of_float=round # Storage of float values
|
||||||
subqueries=no # subqueries
|
subqueries=no # subqueries
|
||||||
table_alias=yes # Table alias
|
table_alias=yes # Table alias
|
||||||
table_name_case=no # case independent table names
|
table_name_case=no # case independent table names
|
||||||
table_wildcard=yes # Select table_name.*
|
table_wildcard=yes # Select table_name.*
|
||||||
tempoary_table=yes # temporary tables
|
temporary_table=yes # temporary tables
|
||||||
transactions=no # transactions
|
transactions=no # transactions
|
||||||
truncate_table=yes # truncate
|
truncate_table=yes # truncate
|
||||||
type_extra_abstime=no # Type abstime
|
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
|
unique_null_in_create=yes # unique null in create
|
||||||
user_comment=Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; ccc + cxx # comment
|
user_comment=Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; ccc + cxx # comment
|
||||||
views=no # views
|
views=no # views
|
||||||
where_string_size=1048540 # constant string size in where
|
where_string_size=1048539 # constant string size in where
|
||||||
|
@ -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
|
NEG=yes # update of column= -column
|
||||||
Need_cast_for_null=no # Need to cast NULL for arithmetic
|
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_modify_col=yes # Alter table modify column
|
||||||
alter_rename_table=yes # Alter table rename table
|
alter_rename_table=yes # Alter table rename table
|
||||||
atomic_updates=no # atomic updates
|
atomic_updates=no # atomic updates
|
||||||
automatic_rowid=_rowid # Automatic rowid
|
automatic_rowid=_rowid # Automatic row id
|
||||||
binary_numbers=no # binary numbers (0b1001)
|
binary_numbers=no # binary numbers (0b1001)
|
||||||
binary_strings=no # binary strings (b'0110')
|
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
|
char_is_space_filled=no # char are space filled
|
||||||
column_alias=yes # Column alias
|
column_alias=yes # Column alias
|
||||||
columns_in_group_by=+64 # number of columns in group by
|
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_check_table=no # Table constraints
|
||||||
constraint_null=yes # NULL constraint (SyBase style)
|
constraint_null=yes # NULL constraint (SyBase style)
|
||||||
crash_me_safe=yes # crash me safe
|
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=yes # default value for column
|
||||||
create_default_func=no # default value function for column
|
create_default_func=no # default value function for column
|
||||||
create_if_not_exists=yes # create table if not exists
|
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
|
double_quotes=yes # Double '' as ' in strings
|
||||||
drop_if_exists=yes # drop table if exists
|
drop_if_exists=yes # drop table if exists
|
||||||
drop_index=with 'ON' # drop index
|
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 ';'
|
end_colon=yes # allows end ';'
|
||||||
except=no # except
|
except=no # except
|
||||||
except_all=no # except all
|
except_all=no # except all
|
||||||
@ -275,7 +277,7 @@ func_where_unique=no # Function UNIQUE
|
|||||||
functions=yes # Functions
|
functions=yes # Functions
|
||||||
group_by=yes # Group by
|
group_by=yes # Group by
|
||||||
group_by_alias=yes # Group by alias
|
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_by_position=yes # Group by position
|
||||||
group_distinct_functions=yes # Group functions with distinct
|
group_distinct_functions=yes # Group functions with distinct
|
||||||
group_func_extra_bit_and=yes # Group function BIT_AND
|
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_some=no # Group function SOME
|
||||||
group_func_sql_sum=yes # Group function SUM
|
group_func_sql_sum=yes # Group function SUM
|
||||||
group_functions=yes # Group functions
|
group_functions=yes # Group functions
|
||||||
|
group_on_unused=yes # Group on unused column
|
||||||
has_true_false=no # TRUE and FALSE
|
has_true_false=no # TRUE and FALSE
|
||||||
having=yes # Having
|
having=yes # Having
|
||||||
having_with_alias=yes # Having on alias
|
having_with_alias=yes # Having on alias
|
||||||
having_with_group=yes # Having with group function
|
having_with_group=yes # Having with group function
|
||||||
hex_numbers=yes # hex numbers (0x41)
|
hex_numbers=yes # hex numbers (0x41)
|
||||||
hex_strings=no # hex strings (x'1ace')
|
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_in_create=yes # index in create table
|
||||||
index_namespace=yes # different namespace for index
|
index_namespace=yes # different namespace for index
|
||||||
index_parts=yes # index on column part (extension)
|
index_parts=yes # index on column part (extension)
|
||||||
inner_join=yes # inner join
|
inner_join=yes # inner join
|
||||||
insert_empty_string=yes # insert empty string
|
insert_empty_string=yes # insert empty string
|
||||||
|
insert_multi_value=yes # INSERT with Value lists
|
||||||
insert_select=yes # insert INTO ... SELECT ...
|
insert_select=yes # insert INTO ... SELECT ...
|
||||||
insert_with_set=yes # INSERT with set syntax
|
insert_with_set=yes # INSERT with set syntax
|
||||||
intersect=no # intersect
|
intersect=no # intersect
|
||||||
@ -351,7 +355,6 @@ multi_null_in_unique=yes # null in unique index
|
|||||||
multi_strings=yes # Multiple line strings
|
multi_strings=yes # Multiple line strings
|
||||||
multi_table_delete=no # DELETE FROM table1,table2...
|
multi_table_delete=no # DELETE FROM table1,table2...
|
||||||
multi_table_update=no # Update with many tables
|
multi_table_update=no # Update with many tables
|
||||||
multi_value_insert=yes # Value lists in INSERT
|
|
||||||
natural_join=yes # natural join
|
natural_join=yes # natural join
|
||||||
natural_join_incompat=yes # natural join (incompatible lists)
|
natural_join_incompat=yes # natural join (incompatible lists)
|
||||||
natural_left_outer_join=yes # natural left outer join
|
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_index=yes # null in index
|
||||||
null_in_unique=yes # null in unique index
|
null_in_unique=yes # null in unique index
|
||||||
null_num_expr=yes # Is 1+NULL = NULL
|
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
|
odbc_left_outer_join=yes # left outer join odbc style
|
||||||
operating_system=Linux 2.2.13-SMP alpha # crash-me tested on
|
operating_system=Linux 2.2.13-SMP alpha # crash-me tested on
|
||||||
order_by=yes # Order by
|
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_function=yes # Order by function
|
||||||
order_by_position=yes # Order by position
|
order_by_position=yes # Order by position
|
||||||
order_by_remember_desc=no # Order by DESC is remembered
|
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
|
primary_key_in_create=yes # primary key in create table
|
||||||
psm_functions=no # PSM functions (ANSI SQL)
|
psm_functions=no # PSM functions (ANSI SQL)
|
||||||
psm_modules=no # PSM modules (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_string_size=1048565 # constant string size in SELECT
|
||||||
select_table_update=no # Update with sub select
|
select_table_update=no # Update with sub select
|
||||||
select_without_from=yes # SELECT without FROM
|
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
|
simple_joins=yes # ANSI SQL simple joins
|
||||||
storage_of_float=round # Storage of float values
|
storage_of_float=round # Storage of float values
|
||||||
subqueries=no # subqueries
|
subqueries=no # subqueries
|
||||||
table_alias=yes # Table alias
|
table_alias=yes # Table alias
|
||||||
table_name_case=no # case independent table names
|
table_name_case=no # case independent table names
|
||||||
table_wildcard=yes # Select table_name.*
|
table_wildcard=yes # Select table_name.*
|
||||||
tempoary_table=yes # temporary tables
|
temporary_table=yes # temporary tables
|
||||||
transactions=no # transactions
|
transactions=no # transactions
|
||||||
truncate_table=yes # truncate
|
truncate_table=yes # truncate
|
||||||
type_extra_abstime=no # Type abstime
|
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
|
unique_null_in_create=yes # unique null in create
|
||||||
user_comment=Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; ccc + cxx # comment
|
user_comment=Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; ccc + cxx # comment
|
||||||
views=no # views
|
views=no # views
|
||||||
where_string_size=1048540 # constant string size in where
|
where_string_size=1048539 # constant string size in where
|
||||||
|
@ -345,7 +345,7 @@ multi_null_in_unique=yes # null in unique index
|
|||||||
multi_strings=no # Multiple line strings
|
multi_strings=no # Multiple line strings
|
||||||
multi_table_delete=no # DELETE FROM table1,table2...
|
multi_table_delete=no # DELETE FROM table1,table2...
|
||||||
multi_table_update=no # Update with many tables
|
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=no # natural join
|
||||||
natural_join_incompat=no # natural join (incompatible lists)
|
natural_join_incompat=no # natural join (incompatible lists)
|
||||||
natural_left_outer_join=no # natural left outer join
|
natural_left_outer_join=no # natural left outer join
|
||||||
|
@ -343,7 +343,7 @@ multi_null_in_unique=yes # null in unique index
|
|||||||
multi_strings=yes # Multiple line strings
|
multi_strings=yes # Multiple line strings
|
||||||
multi_table_delete=no # DELETE FROM table1,table2...
|
multi_table_delete=no # DELETE FROM table1,table2...
|
||||||
multi_table_update=no # Update with many tables
|
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=yes # natural join
|
||||||
natural_join_incompat=yes # natural join (incompatible lists)
|
natural_join_incompat=yes # natural join (incompatible lists)
|
||||||
natural_left_outer_join=no # natural left outer join
|
natural_left_outer_join=no # natural left outer join
|
||||||
|
@ -163,10 +163,14 @@ print_match("String handling","string|select_constant|quote_with|double_quotes|e
|
|||||||
print_match("Quoting","quote");
|
print_match("Quoting","quote");
|
||||||
print_match("Name limits","name","alter");
|
print_match("Name limits","name","alter");
|
||||||
print_match("Index limits",'index|primary|unique');
|
print_match("Index limits",'index|primary|unique');
|
||||||
print_match("Type limits",'char|float|binary|text_size|date|end_space');
|
print_match("Type limits",'char|float|text_size|date|end_space','atomic');
|
||||||
print_match("Expression limits",'expression|conditions|select_limit');
|
print_match("Expressions",'expression|conditions|select_limit|binary|hex|cast|logical|true_false');
|
||||||
print_match("Comments",'comment');
|
print_match("Comments",'comment');
|
||||||
print_match("ALTER TABLE",'alter');
|
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_options("Other features");
|
||||||
print_match("Other limits",'\S');
|
print_match("Other limits",'\S');
|
||||||
|
|
||||||
|
0
sql-bench/run-all-tests.sh
Executable file → Normal file
0
sql-bench/run-all-tests.sh
Executable file → Normal file
@ -151,7 +151,7 @@ sub new
|
|||||||
$limits{'alter_table'} = 1; # Have ALTER TABLE
|
$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_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{'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().
|
$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_table'} = 1; # Have ALTER TABLE
|
||||||
$limits{'alter_add_multi_col'}= 0; # Have ALTER TABLE t add a int,add b int;
|
$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{'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().
|
$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_table'} = 1; # Have ALTER TABLE
|
||||||
$limits{'alter_add_multi_col'}= 1; # Have ALTER TABLE t add a int,add b int;
|
$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{'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().
|
$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_table'} = 1; # Have ALTER TABLE
|
||||||
$limits{'alter_add_multi_col'}= 0; # Have ALTER TABLE t add a int,add b int;
|
$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{'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().
|
$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)
|
# Pick up SQLGetInfo option SQL_DBMS_VER (18)
|
||||||
#
|
#
|
||||||
#$version = $dbh->func(18, GetInfo);
|
#$version = $dbh->func(18, GetInfo);
|
||||||
$version="2.1";
|
$version="FrontBase 2.1";
|
||||||
$dbh->disconnect;
|
$dbh->disconnect;
|
||||||
return $version;
|
return $version;
|
||||||
}
|
}
|
||||||
|
0
sql-bench/test-ATIS.sh
Executable file → Normal file
0
sql-bench/test-ATIS.sh
Executable file → Normal file
0
sql-bench/test-alter-table.sh
Executable file → Normal file
0
sql-bench/test-alter-table.sh
Executable file → Normal file
0
sql-bench/test-big-tables.sh
Executable file → Normal file
0
sql-bench/test-big-tables.sh
Executable file → Normal file
0
sql-bench/test-connect.sh
Executable file → Normal file
0
sql-bench/test-connect.sh
Executable file → Normal file
0
sql-bench/test-create.sh
Executable file → Normal file
0
sql-bench/test-create.sh
Executable file → Normal file
@ -130,7 +130,7 @@ else
|
|||||||
$query="insert into bench1 (id,id2,id3,dummy1) values ";
|
$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'};
|
$query_size=$server->{'limits'}->{'query_size'};
|
||||||
|
|
||||||
@ -1177,7 +1177,7 @@ if ($server->small_rollback_segment())
|
|||||||
|
|
||||||
$loop_time=new Benchmark;
|
$loop_time=new Benchmark;
|
||||||
$fields=$#fields;
|
$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_size=$server->{'limits'}->{'query_size'};
|
||||||
$query="insert into bench1 values ";
|
$query="insert into bench1 values ";
|
||||||
@ -1331,7 +1331,7 @@ if ($opt_fast && defined($server->{vacuum}))
|
|||||||
# Test multi value inserts if the server supports it
|
# 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
|
$query_size=$limits->{'query_size'}; # Same limit for all databases
|
||||||
|
|
||||||
|
0
sql-bench/test-select.sh
Executable file → Normal file
0
sql-bench/test-select.sh
Executable file → Normal file
0
sql-bench/test-wisconsin.sh
Executable file → Normal file
0
sql-bench/test-wisconsin.sh
Executable file → Normal file
@ -483,6 +483,7 @@ int ha_myisam::repair(THD *thd, MI_CHECK ¶m, bool optimize)
|
|||||||
char fixed_name[FN_REFLEN];
|
char fixed_name[FN_REFLEN];
|
||||||
const char *old_proc_info=thd->proc_info;
|
const char *old_proc_info=thd->proc_info;
|
||||||
MYISAM_SHARE* share = file->s;
|
MYISAM_SHARE* share = file->s;
|
||||||
|
ha_rows rows= file->state->records;
|
||||||
DBUG_ENTER("ha_myisam::repair");
|
DBUG_ENTER("ha_myisam::repair");
|
||||||
|
|
||||||
param.table_name = table->table_name;
|
param.table_name = table->table_name;
|
||||||
@ -559,6 +560,13 @@ int ha_myisam::repair(THD *thd, MI_CHECK ¶m, bool optimize)
|
|||||||
T_STATISTICS ? UPDATE_STAT : 0));
|
T_STATISTICS ? UPDATE_STAT : 0));
|
||||||
info(HA_STATUS_NO_LOCK | HA_STATUS_TIME | HA_STATUS_VARIABLE |
|
info(HA_STATUS_NO_LOCK | HA_STATUS_TIME | HA_STATUS_VARIABLE |
|
||||||
HA_STATUS_CONST);
|
HA_STATUS_CONST);
|
||||||
|
if (rows != file->state->records)
|
||||||
|
{
|
||||||
|
char llbuff[22],llbuff2[22];
|
||||||
|
mi_check_print_warning(¶m,"Number of rows changed from %s to %s",
|
||||||
|
llstr(rows,llbuff),
|
||||||
|
llstr(file->state->records,llbuff2));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -388,7 +388,9 @@ int main(int argc, char** argv)
|
|||||||
|
|
||||||
if(use_remote)
|
if(use_remote)
|
||||||
{
|
{
|
||||||
|
#ifndef __WIN__
|
||||||
init_thr_alarm(10); // need to do this manually
|
init_thr_alarm(10); // need to do this manually
|
||||||
|
#endif
|
||||||
mysql = safe_connect();
|
mysql = safe_connect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,6 +170,7 @@ static struct rand_struct sql_rand;
|
|||||||
static int cleanup_done;
|
static int cleanup_done;
|
||||||
static char **defaults_argv,time_zone[30];
|
static char **defaults_argv,time_zone[30];
|
||||||
static const char *default_table_type_name;
|
static const char *default_table_type_name;
|
||||||
|
static char glob_hostname[FN_REFLEN];
|
||||||
|
|
||||||
#ifdef HAVE_OPENSSL
|
#ifdef HAVE_OPENSSL
|
||||||
static bool opt_use_ssl = FALSE;
|
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 defined(AIX_3_2) || defined(HAVE_DEC_3_2_THREADS)
|
||||||
if (ip_sock != INVALID_SOCKET)
|
if (ip_sock != INVALID_SOCKET)
|
||||||
{
|
{
|
||||||
|
DBUG_PRINT("error",("closing TCP/IP and socket files"));
|
||||||
VOID(shutdown(ip_sock,2));
|
VOID(shutdown(ip_sock,2));
|
||||||
VOID(closesocket(ip_sock));
|
VOID(closesocket(ip_sock));
|
||||||
VOID(shutdown(unix_sock,2));
|
VOID(shutdown(unix_sock,2));
|
||||||
@ -607,12 +609,15 @@ void clean_up(void)
|
|||||||
free_defaults(defaults_argv);
|
free_defaults(defaults_argv);
|
||||||
my_free(mysql_tmpdir,MYF(0));
|
my_free(mysql_tmpdir,MYF(0));
|
||||||
x_free(opt_bin_logname);
|
x_free(opt_bin_logname);
|
||||||
|
#ifndef __WIN__
|
||||||
(void) my_delete(pidfile_name,MYF(0)); // This may not always exist
|
(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 */
|
/* Tell main we are ready */
|
||||||
(void) pthread_mutex_lock(&LOCK_thread_count);
|
(void) pthread_mutex_lock(&LOCK_thread_count);
|
||||||
ready_to_exit=1;
|
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_cond_broadcast(&COND_thread_count);
|
||||||
(void) pthread_mutex_unlock(&LOCK_thread_count);
|
(void) pthread_mutex_unlock(&LOCK_thread_count);
|
||||||
} /* clean_up */
|
} /* clean_up */
|
||||||
@ -926,8 +931,8 @@ void end_thread(THD *thd, bool put_in_cache)
|
|||||||
DBUG_PRINT("info", ("sending a broadcast"))
|
DBUG_PRINT("info", ("sending a broadcast"))
|
||||||
|
|
||||||
/* Tell main we are ready */
|
/* Tell main we are ready */
|
||||||
(void) pthread_cond_broadcast(&COND_thread_count);
|
|
||||||
(void) pthread_mutex_unlock(&LOCK_thread_count);
|
(void) pthread_mutex_unlock(&LOCK_thread_count);
|
||||||
|
(void) pthread_cond_broadcast(&COND_thread_count);
|
||||||
DBUG_PRINT("info", ("unlocked thread_count mutex"))
|
DBUG_PRINT("info", ("unlocked thread_count mutex"))
|
||||||
#ifdef ONE_THREAD
|
#ifdef ONE_THREAD
|
||||||
if (!(test_flags & TEST_NO_THREADS)) // For debugging under Linux
|
if (!(test_flags & TEST_NO_THREADS)) // For debugging under Linux
|
||||||
@ -1308,7 +1313,6 @@ int main(int argc, char **argv)
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
DEBUGGER_OFF;
|
DEBUGGER_OFF;
|
||||||
char hostname[FN_REFLEN];
|
|
||||||
|
|
||||||
my_umask=0660; // Default umask for new files
|
my_umask=0660; // Default umask for new files
|
||||||
my_umask_dir=0700; // Default umask for new directories
|
my_umask_dir=0700; // Default umask for new directories
|
||||||
@ -1332,9 +1336,9 @@ int main(int argc, char **argv)
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (gethostname(hostname,sizeof(hostname)-4) < 0)
|
if (gethostname(glob_hostname,sizeof(glob_hostname)-4) < 0)
|
||||||
strmov(hostname,"mysql");
|
strmov(glob_hostname,"mysql");
|
||||||
strmov(pidfile_name,hostname);
|
strmov(pidfile_name,glob_hostname);
|
||||||
strmov(strcend(pidfile_name,'.'),".pid"); // Add extension
|
strmov(strcend(pidfile_name,'.'),".pid"); // Add extension
|
||||||
#ifdef DEMO_VERSION
|
#ifdef DEMO_VERSION
|
||||||
strcat(server_version,"-demo");
|
strcat(server_version,"-demo");
|
||||||
@ -1488,9 +1492,9 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
/* Setup log files */
|
/* Setup log files */
|
||||||
if (opt_log)
|
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)
|
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);
|
LOG_NEW);
|
||||||
if (opt_bin_log)
|
if (opt_bin_log)
|
||||||
{
|
{
|
||||||
@ -1499,12 +1503,12 @@ int main(int argc, char **argv)
|
|||||||
if (!opt_bin_logname)
|
if (!opt_bin_logname)
|
||||||
{
|
{
|
||||||
char tmp[FN_REFLEN];
|
char tmp[FN_REFLEN];
|
||||||
strnmov(tmp,hostname,FN_REFLEN-5);
|
strnmov(tmp,glob_hostname,FN_REFLEN-5);
|
||||||
strmov(strcend(tmp,'.'),"-bin");
|
strmov(strcend(tmp,'.'),"-bin");
|
||||||
opt_bin_logname=my_strdup(tmp,MYF(MY_WME));
|
opt_bin_logname=my_strdup(tmp,MYF(MY_WME));
|
||||||
}
|
}
|
||||||
mysql_bin_log.set_index_file_name(opt_binlog_index_name);
|
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);
|
LOG_BIN);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1512,7 +1516,7 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (opt_slow_log)
|
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);
|
LOG_NORMAL);
|
||||||
if (ha_init())
|
if (ha_init())
|
||||||
{
|
{
|
||||||
@ -1711,10 +1715,7 @@ int main(int argc, char **argv)
|
|||||||
pthread_cond_wait(&COND_thread_count,&LOCK_thread_count);
|
pthread_cond_wait(&COND_thread_count,&LOCK_thread_count);
|
||||||
}
|
}
|
||||||
(void) pthread_mutex_unlock(&LOCK_thread_count);
|
(void) pthread_mutex_unlock(&LOCK_thread_count);
|
||||||
#ifndef __WIN__
|
my_end(opt_endinfo ? MY_CHECK_ERROR | MY_GIVE_INFO : 0);
|
||||||
(void) my_delete(pidfile_name,MYF(0)); // Not neaded anymore
|
|
||||||
#endif
|
|
||||||
my_thread_end();
|
|
||||||
exit(0);
|
exit(0);
|
||||||
return(0); /* purecov: deadcode */
|
return(0); /* purecov: deadcode */
|
||||||
}
|
}
|
||||||
@ -2089,8 +2090,8 @@ pthread_handler_decl(handle_connections_sockets,arg __attribute__((unused)))
|
|||||||
#ifdef __NT__
|
#ifdef __NT__
|
||||||
pthread_mutex_lock(&LOCK_thread_count);
|
pthread_mutex_lock(&LOCK_thread_count);
|
||||||
handler_count--;
|
handler_count--;
|
||||||
pthread_cond_signal(&COND_handler_count);
|
|
||||||
pthread_mutex_unlock(&LOCK_thread_count);
|
pthread_mutex_unlock(&LOCK_thread_count);
|
||||||
|
pthread_cond_signal(&COND_handler_count);
|
||||||
#endif
|
#endif
|
||||||
DBUG_RETURN(0);
|
DBUG_RETURN(0);
|
||||||
}
|
}
|
||||||
|
@ -197,5 +197,4 @@
|
|||||||
"Okänd system variabel '%-.64'",
|
"Okänd system variabel '%-.64'",
|
||||||
"Tabell '%-.64s' är crashad och bör repareras med REPAIR TABLE",
|
"Tabell '%-.64s' är crashad och bör repareras med REPAIR TABLE",
|
||||||
"Tabell '%-.64s' är crashad och senast (automatiska?) reparation misslyckades",
|
"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",
|
"Warning: Några icke transaktionella tabeller kunde inte återställas vid ROLLBACK",
|
||||||
|
@ -669,12 +669,11 @@ TABLE *open_table(THD *thd,const char *db,const char *table_name,
|
|||||||
DBUG_RETURN(0);
|
DBUG_RETURN(0);
|
||||||
key_length= (uint) (strmov(strmov(key,db)+1,table_name)-key)+1;
|
key_length= (uint) (strmov(strmov(key,db)+1,table_name)-key)+1;
|
||||||
int4store(key + key_length, thd->slave_proxy_id);
|
int4store(key + key_length, thd->slave_proxy_id);
|
||||||
key_length += 4;
|
|
||||||
|
|
||||||
for (table=thd->temporary_tables; table ; table=table->next)
|
for (table=thd->temporary_tables; table ; table=table->next)
|
||||||
{
|
{
|
||||||
if (table->key_length == key_length &&
|
if (table->key_length == key_length+4 &&
|
||||||
!memcmp(table->table_cache_key,key,key_length))
|
!memcmp(table->table_cache_key,key,key_length+4))
|
||||||
{
|
{
|
||||||
if (table->query_id == thd->query_id)
|
if (table->query_id == thd->query_id)
|
||||||
{
|
{
|
||||||
|
@ -1404,8 +1404,11 @@ mysql_execute_command(void)
|
|||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SQLCOM_DELETE:
|
|
||||||
case SQLCOM_TRUNCATE:
|
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))
|
if (check_access(thd,DELETE_ACL,tables->db,&tables->grant.privilege))
|
||||||
goto error; /* purecov: inspected */
|
goto error; /* purecov: inspected */
|
||||||
@ -1589,7 +1592,10 @@ mysql_execute_command(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
thd->options&= ~(ulong) (OPTION_STATUS_NO_TRANS_UPDATE);
|
||||||
thd->server_status&= ~SERVER_STATUS_AUTOCOMMIT;
|
thd->server_status&= ~SERVER_STATUS_AUTOCOMMIT;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
send_ok(&thd->net);
|
send_ok(&thd->net);
|
||||||
break;
|
break;
|
||||||
@ -1755,9 +1761,17 @@ mysql_execute_command(void)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SQLCOM_BEGIN:
|
case SQLCOM_BEGIN:
|
||||||
thd->options|= OPTION_BEGIN;
|
if (end_active_trans(thd))
|
||||||
thd->server_status|= SERVER_STATUS_IN_TRANS;
|
{
|
||||||
send_ok(&thd->net);
|
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;
|
break;
|
||||||
case SQLCOM_COMMIT:
|
case SQLCOM_COMMIT:
|
||||||
/*
|
/*
|
||||||
|
@ -23,7 +23,8 @@
|
|||||||
#include "sql_select.h" // For select_describe
|
#include "sql_select.h" // For select_describe
|
||||||
#include "sql_acl.h"
|
#include "sql_acl.h"
|
||||||
#include <my_dir.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[]={
|
static const char *grant_names[]={
|
||||||
"select","insert","update","delete","create","drop","reload","shutdown",
|
"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))
|
if (send_fields(thd,field_list,1))
|
||||||
DBUG_RETURN(1); /* purecov: inspected */
|
DBUG_RETURN(1); /* purecov: inspected */
|
||||||
|
|
||||||
pthread_mutex_lock(&THR_LOCK_keycache);
|
/* pthread_mutex_lock(&THR_LOCK_keycache); */
|
||||||
pthread_mutex_lock(&LOCK_status);
|
pthread_mutex_lock(&LOCK_status);
|
||||||
for (i=0; variables[i].name; i++)
|
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(&LOCK_status);
|
||||||
pthread_mutex_unlock(&THR_LOCK_keycache);
|
/* pthread_mutex_unlock(&THR_LOCK_keycache); */
|
||||||
send_eof(&thd->net);
|
send_eof(&thd->net);
|
||||||
DBUG_RETURN(0);
|
DBUG_RETURN(0);
|
||||||
|
|
||||||
err:
|
err:
|
||||||
pthread_mutex_unlock(&LOCK_status);
|
pthread_mutex_unlock(&LOCK_status);
|
||||||
pthread_mutex_unlock(&THR_LOCK_keycache);
|
/* pthread_mutex_unlock(&THR_LOCK_keycache); */
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
29
vio/docs/COPYING.dbug
Normal file
29
vio/docs/COPYING.dbug
Normal file
@ -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. *
|
||||||
|
* *
|
||||||
|
******************************************************************************
|
||||||
|
*/
|
||||||
|
|
193
vio/docs/COPYING.mysql
Normal file
193
vio/docs/COPYING.mysql
Normal file
@ -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.
|
||||||
|
|
127
vio/docs/COPYING.openssl
Normal file
127
vio/docs/COPYING.openssl
Normal file
@ -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.]
|
||||||
|
*/
|
||||||
|
|
3
vio/docs/INSTALL
Normal file
3
vio/docs/INSTALL
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
As the Vio is currently used only as part of MySQL, separate
|
||||||
|
installation isn't currently supported.
|
||||||
|
|
18
vio/docs/README
Normal file
18
vio/docs/README
Normal file
@ -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.
|
||||||
|
|
3
vio/docs/TODO
Normal file
3
vio/docs/TODO
Normal file
@ -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().
|
Loading…
x
Reference in New Issue
Block a user