summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <monty@donna.mysql.com>2000-11-27 02:28:41 +0200
committerunknown <monty@donna.mysql.com>2000-11-27 02:28:41 +0200
commit1b337e01d5d0a97b3a66eb98bcad658cfecb65b6 (patch)
treeedb54aec005b494e1195e3b4c62ef7b81153a705
parentc754d3318624c31e84772edb7d053da4628fd7ca (diff)
downloadmariadb-git-1b337e01d5d0a97b3a66eb98bcad658cfecb65b6.tar.gz
Added connect_timeout and fix for transactions per statement
BitKeeper/deleted/.del-ATIS-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-alter-table-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-alter-table-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-alter-table-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-alter-table-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-alter-table-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-alter-table-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-mysql-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-mysql-Linux_2.2.12_20smp_i686: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-mysql-Linux_2.2.1_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-mysql_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-pg-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-pg_fast-Linux_2.2.10_i686-cmp-mysql,pg: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-mysql-Linux_dynamic: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-mysql-Linux_pgcc: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-mysql-Linux_static: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-ATIS-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-mysql-Linux_dynamic: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-mysql-Linux_pgcc: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-mysql-Linux_static: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-RUN-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-mysql-Linux_dynamic: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-mysql-Linux_pgcc: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-mysql-Linux_static: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-big-tables-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-mysql-Linux_dynamic: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-mysql-Linux_pgcc: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-mysql-Linux_static: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-connect-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-mysql-Linux_dynamic: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-mysql-Linux_pgcc: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-mysql-Linux_static: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-create-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-mysql-Linux_dynamic: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-mysql-Linux_pgcc: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-mysql-Linux_static: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-insert-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-mysql-Linux_dynamic: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-mysql-Linux_pgcc: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-mysql-Linux_static: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-select-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-mysql-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-mysql-Linux_dynamic: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-mysql-Linux_pgcc: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-mysql-Linux_static: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-mysql_fast-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-mysql_local_tcp-Linux_2.0.33_i586: ***MISSING WEAVE*** BitKeeper/deleted/.del-wisconsin-mysql_new-Linux_2.0.33_i586: ***MISSING WEAVE*** Docs/Makefile.am: Removed manual.pdf from the standard distribution Docs/manual.texi: Updated table maintaince and timeouts Makefile.am: Added missing targets client/mysql.cc: Added -O connect_timeout client/mysqladmin.c: Added -O connect_timeout configure.in: 3.23.29 libmysql/libmysql.c: Added connect_timeout myisam/mi_check.c: Fixed warning i CHECK TABLE myisam/mi_create.c: cleanup sql-bench/bench-init.pl.sh: Updated version sql/ha_berkeley.cc: Fixed bug in transaction pre statement sql/sql_select.cc: removed 'explain' from slow query log support-files/mysql.server.sh: Added locks
-rw-r--r--Docs/Makefile.am6
-rw-r--r--Docs/manual.texi123
-rw-r--r--Makefile.am2
-rw-r--r--client/mysql.cc18
-rw-r--r--client/mysqladmin.c37
-rw-r--r--configure.in2
-rw-r--r--libmysql/libmysql.c2
-rw-r--r--myisam/mi_check.c2
-rw-r--r--myisam/mi_create.c2
-rw-r--r--sql-bench/Results/ATIS-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql27
-rw-r--r--sql-bench/Results/RUN-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql41
-rw-r--r--sql-bench/Results/alter-table-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql14
-rw-r--r--sql-bench/Results/big-tables-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql16
-rw-r--r--sql-bench/Results/connect-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql21
-rw-r--r--sql-bench/Results/create-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql16
-rw-r--r--sql-bench/Results/insert-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql59
-rw-r--r--sql-bench/Results/select-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql11
-rw-r--r--sql-bench/Results/wisconsin-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql11
-rwxr-xr-xsql-bench/bench-init.pl.sh2
-rw-r--r--sql/ha_berkeley.cc8
-rw-r--r--sql/sql_select.cc15
-rw-r--r--support-files/mysql.server.sh10
22 files changed, 377 insertions, 68 deletions
diff --git a/Docs/Makefile.am b/Docs/Makefile.am
index 2840bdae38d..1e0c8e9665a 100644
--- a/Docs/Makefile.am
+++ b/Docs/Makefile.am
@@ -18,7 +18,7 @@ noinst_SCRIPTS = Support/texi2html Support/generate-text-files.pl \
Support/generate-mirror-listing.pl
info_TEXINFOS = manual.texi
-targets = manual.txt mysql.info manual.html $(PDFMANUAL)
+targets = manual.txt mysql.info manual.html
BUILT_SOURCES = $(targets) manual_toc.html include.texi
EXTRA_DIST = $(noinst_SCRIPTS) $(BUILT_SOURCES) mysqld_error.txt INSTALL-BINARY
@@ -30,9 +30,9 @@ txt_files: ../INSTALL-SOURCE ../COPYING ../COPYING.LIB \
CLEAN_FILES: manual.ps
-# The PostScript version is so big that is not included in the
+# The PostScript and PDF version are so big that they are not included in the
# standard distribution. It is available for download from the home page.
-paper: manual_a4.ps manual_letter.ps
+paper: manual_a4.ps manual_letter.ps $(PDFMANUAL)
#########################################################################
diff --git a/Docs/manual.texi b/Docs/manual.texi
index ee37c581f31..c2a1368f794 100644
--- a/Docs/manual.texi
+++ b/Docs/manual.texi
@@ -9401,6 +9401,11 @@ password=my_password
[mysql]
no-auto-rehash
+set-variable = connect_timeout=2
+
+[mysql-hot-copy]
+interactive-timeout
+
@end example
@tindex .my.cnf file
@@ -16971,6 +16976,7 @@ mysql> select CONNECTION_ID();
-> 1
@end example
+@cindex timeout
@findex GET_LOCK()
@item GET_LOCK(str,timeout)
Tries to obtain a lock with a name given by the string @code{str}, with a
@@ -18009,6 +18015,8 @@ exist.
@code{RESTRICT} and @code{CASCADE} are allowed to make porting easier.
For the moment they don't do anything.
+@cindex tables, defragment
+@cindex tables, fragmentation
@findex OPTIMIZE TABLE
@node OPTIMIZE TABLE, CHECK TABLE, DROP TABLE, Reference
@section @code{OPTIMIZE TABLE} Syntax
@@ -18022,7 +18030,7 @@ table or if you have made many changes to a table with variable-length rows
(tables that have @code{VARCHAR}, @code{BLOB}, or @code{TEXT} columns).
Deleted records are maintained in a linked list and subsequent @code{INSERT}
operations reuse old record positions. You can use @code{OPTIMIZE TABLE} to
-reclaim the unused space.
+reclaim the unused space and to defragment the data file.
For the moment @code{OPTIMIZE TABLE} only works on @strong{MyISAM}
tables. You can get optimize table to work on other table types by
@@ -18892,6 +18900,8 @@ After every @code{delayed_insert_limit} rows are written, the handler checks
whether or not any @code{SELECT} statements are still pending. If so, it
allows these to execute before continuing.
+@cindex delayed_insert_limit
+@cindex timeout
@item
When the handler has no more rows in its queue, the table is unlocked. If no
new @code{INSERT DELAYED} commands are received within
@@ -18962,7 +18972,8 @@ the old record is deleted before the new record is inserted.
@xref{INSERT, , @code{INSERT}}.
In other words, you can't access the values of the old row from a
-@code{REPLACE} statement.
+@code{REPLACE} statement. In some old @strong{MySQL} version it looked
+like you could do this, but that was a bug that has been corrected.
@findex LOAD DATA INFILE
@node LOAD DATA, UPDATE, REPLACE, Reference
@@ -20019,6 +20030,7 @@ on @code{MyISAM} tables at the same time as you run @code{SELECT} queries
on them. You can turn this option off by starting mysqld with @code{--safe}
or @code{--skip-new}.
+@cindex timeout
@item @code{connect_timeout}
The number of seconds the @code{mysqld} server is waiting for a connect
packet before responding with @code{Bad handshake}.
@@ -21837,6 +21849,7 @@ This format is a litte more complex because each row has to have a header
that says how long it is. One record can also end up at more than one
location when it is made longer at an update.
+@cindex tables, defragment
You can use @code{OPTIMIZE table} or @code{myisamchk} to defragment a
table. If you have static data that you access/change a lot in the same
table as some @code{VARCHAR} or @code{BLOB} columns, it might be a good
@@ -21938,10 +21951,10 @@ Can be uncompressed with @code{myisamchk}.
@node MERGE, ISAM, MyISAM, Table types
@section MERGE Tables
-@code{MERGE} tables are new in @strong{MySQL} Version 3.23.25. The code is still
-in alpha, but should stabilize soon! The one thing that is currently
-missing is a way for the SQL prompt to say which tables are part of the
-@code{MERGE} table.
+@code{MERGE} tables are new in @strong{MySQL} Version 3.23.25. The code
+is still in alpha, but should stabilize soon! The one thing that is
+currently missing is a way for the SQL prompt to say which tables are
+part of the @code{MERGE} table.
A @code{MERGE} table is a collection of identical @code{MyISAM} tables
that can be used as one. You can only @code{SELECT}, @code{DELETE}, and
@@ -28092,6 +28105,19 @@ Output version information and exit.
Wait and retry if connection is down instead of aborting.
@end table
+You can also set the following variables with @code{-O} or
+@code{--set-variable}:
+
+@cindex timeout
+@multitable @columnfractions .3 .2 .5
+@item Variablename @tab Default @tab Description
+@item connect_timeout @tab 0 @tab Number of seconds before timeout connection.
+@item max_allowed_packet @tab 16777216 @tab Max packetlength to send/receive from to server
+@item net_buffer_length @tab 16384 @tab Buffer for TCP/IP and socket communication
+@item select_limit @tab 1000 @tab Automatic limit for SELECT when using --i-am-a-dummy
+@item max_join_size @tab 1000000 @tab Automatic limit for rows in a join when using --i-am-a-dummy.
+@end multitable
+
If you type 'help' on the command line, @code{mysql} will print out the
commands that it supports:
@@ -29068,9 +29094,9 @@ to start using the new table.
@node Table maintenance, Maintenance regimen, Maintenance, Maintenance
@section Using @code{myisamchk} for table maintenance and crash recovery
-Starting with @strong{MySQL} Version 3.23.13, you can check MyISAM tables with the
-@code{CHECK TABLE} command. @xref{CHECK TABLE}. You can repair tables
-with the @code{REPAIR TABLE} command. @xref{REPAIR TABLE}.
+Starting with @strong{MySQL} Version 3.23.13, you can check MyISAM
+tables with the @code{CHECK TABLE} command. @xref{CHECK TABLE}. You can
+repair tables with the @code{REPAIR TABLE} command. @xref{REPAIR TABLE}.
To check/repair MyISAM tables (@code{.MYI} and @code{.MYD}) you should
use the @code{myisamchk} utility. To check/repair ISAM tables
@@ -29146,6 +29172,13 @@ with the path to the @strong{MySQL} data directory:
shell> myisamchk /path/to/datadir/*/*.MYI
@end example
+The recommended way to quickly check all tables is:
+
+@example
+myisamchk --fast --silent /path/to/datadir/*/*.MYI
+isamchk --silent /path/to/datadir/*/*.ISM
+@end example
+
@code{myisamchk} supports the following options:
@menu
@@ -29405,18 +29438,18 @@ If you have a problem with disk space during repair, you can try to use
@node Maintenance regimen, Table-info, Table maintenance, Maintenance
@section Setting up a table maintenance regimen
-Starting with @strong{MySQL} Version 3.23.13, you can check MyISAM tables with the
-@code{CHECK TABLE} command. @xref{CHECK TABLE}. You can repair tables
-with the @code{REPAIR TABLE} command. @xref{REPAIR TABLE}.
+Starting with @strong{MySQL} Version 3.23.13, you can check MyISAM
+tables with the @code{CHECK TABLE} command. @xref{CHECK TABLE}. You can
+repair tables with the @code{REPAIR TABLE} command. @xref{REPAIR TABLE}.
It is a good idea to perform table checks on a regular basis rather than
waiting for problems to occur. For maintenance purposes, you can use
-@code{myisamchk -s} to check tables. The @code{-s} option causes
-@code{myisamchk} to run in silent mode, printing messages only when errors
-occur.
+@code{myisamchk -s} to check tables. The @code{-s} option (short for
+@code{--silent}) causes @code{myisamchk} to run in silent mode, printing
+messages only when errors occur.
@tindex .pid (process ID) file
-It's a good idea to check tables when the server starts up.
+It's also a good idea to check tables when the server starts up.
For example, whenever the machine has done a reboot in the middle of an
update, you usually need to check all the tables that could have been
affected. (This is an ``expected crashed table''.) You could add a test to
@@ -29435,7 +29468,7 @@ operation. At MySQL AB, we run a @code{cron} job to check all our important
tables once a week, using a line like this in a @file{crontab} file:
@example
-35 0 * * 0 /path/to/myisamchk -s /path/to/datadir/*/*.MYI
+35 0 * * 0 /path/to/myisamchk --fast --silent /path/to/datadir/*/*.MYI
@end example
This prints out information about crashed tables so we can examine and repair
@@ -29450,6 +29483,21 @@ We recommend that to start with, you execute @code{myisamchk -s} each
night on all tables that have been updated during the last 24 hours,
until you come to trust @strong{MySQL} as much as we do.
+@cindex tables, defragment
+Normally you don't need to maintain MySQL tables that much. If you are
+changing tables with dynamic size rows (tables with @code{VARCHAR},
+@code{BLOB} or @code{TEXT} columns) or have tables with many deleted rows
+you may want to from time to time (once a month?) defragment/reclaim space
+from the tables.
+
+You can do this by using @code{OPTIMIZE TABLE} on the tables in question or
+if you can take the @code{mysqld} server down for a while do:
+
+@example
+isamchk -r --silent --sort-index -O sort_buffer_size=16M */*.ISM
+myisamchk -r --silent --sort-index -O sort_buffer_size=16M */*.MYI
+@end example
+
@cindex tables, information
@node Table-info, Crash recovery, Maintenance regimen, Maintenance
@section Getting information about a table
@@ -29459,11 +29507,12 @@ below. We explain some of the information in more detail later.
@table @code
@item myisamchk -d tbl_name
-Runs @code{myisamchk} in ``describe mode'' to produce a description of your
-table. If you start the @strong{MySQL} server using the @code{--skip-locking}
-option, @code{myisamchk} may report an error for a table that is updated while
-it runs. However, because @code{myisamchk} doesn't change the table in describe
-mode, there isn't any risk of destroying data.
+Runs @code{myisamchk} in ``describe mode'' to produce a description of
+your table. If you start the @strong{MySQL} server using the
+@code{--skip-locking} option, @code{myisamchk} may report an error for a
+table that is updated while it runs. However, because @code{myisamchk}
+doesn't change the table in describe mode, there isn't any risk of
+destroying data.
@item myisamchk -d -v tbl_name
To produce more information about what @code{myisamchk} is doing, add @code{-v}
@@ -29482,9 +29531,9 @@ This is like @code{-eis}, but tells you what is being done.
Example of @code{myisamchk -d} output:
@example
MyISAM file: company.MYI
-Record format: Fixed length
-Data records: 1403698 Deleted blocks: 0
-Recordlength: 226
+Record format: Fixed length
+Data records: 1403698 Deleted blocks: 0
+Recordlength: 226
table description:
Key Start Len Index Type
@@ -35032,6 +35081,7 @@ Note that the group @code{client} is always read if you use
The specified group in the option file may contain the following options:
@multitable @columnfractions .3 .7
+@item @code{connect_timeout} @tab Connect timeout in seconds. On Linux this timeout is also used for waiting for the first answer from the server.
@item @code{compress} @tab Use the compressed client/server protocol.
@item @code{database} @tab Connect to this database if no database was specified in the connect command.
@item @code{debug} @tab Debug options.
@@ -35044,11 +35094,12 @@ The specified group in the option file may contain the following options:
@item @code{return-found-rows} @tab Tell @code{mysql_info()} to return found rows instead of updated rows when using @code{UPDATE}.
@item @code{socket} @tab Default socket number.
@item
-@code{timeout} @tab Connect timeout in seconds. On Linux this timeout also
-is used for waiting for the first answer from the server.
@item @code{user} @tab Default user.
@end multitable
+Note that @code{timeout} has been replaced by @code{connect_timeout}, but
+@code{timeout} will still work for a while.
+
For more information about option files, see @ref{Option files}.
@subsubheading Return values
@@ -35268,8 +35319,8 @@ Failed to wait for a named pipe on Windows.
Failed to get a pipe handler on Windows.
@item CR_SERVER_LOST
-If @code{timeout} > 0 and it took longer then @code{timeout} seconds to
-connect to the server or if the server died while executing the
+If @code{connect_timeout} > 0 and it took longer then @code{connect_timeout}
+seconds to connect to the server or if the server died while executing the
@code{init-command}.
@end table
@@ -38846,6 +38897,11 @@ If you do a @code{ROLLBACK} when you have updated a non-transactional table
you will get an error as a warning.
@item
Reset status variable which could cause problem if one used @code{--slow-log}.
+@item
+Added variable @code{connect_timeout} to @code{mysql} and @code{mysqladmin}.
+@item
+Added @code{connect_timeout} as an alias for @code{timeout} for config files
+read by @code{mysql_options()}.
@end itemize
@node News-3.23.28, News-3.23.27, News-3.23.29, News-3.23.x
@@ -38864,7 +38920,7 @@ Fixed a major performance bug in the table locking code when one
constantly had a LOT of @code{SELECT}, @code{UPDATE} and @code{INSERT}
statements running. The symptom was that the @code{UPDATE} and
@code{INSERT} queries was locked a long time while new @code{SELECT}
-statements where executed without locks.
+statements where executed before the updates.
@item
When reading options_files with @code{mysql_options()} the
@code{return-found-rows} option was ignored.
@@ -38874,9 +38930,10 @@ is read by @code{mysql_options()}. This makes it possible to force
programs that runs for a long time (like @code{mysqlhotcopy}) to use
@code{interactive_timeout} instead of @code{wait_timeout}.
@item
-We now always print when the query was made and who made it in the 'slow
-query log'. If you are using @code{--log-long-format} then also queries
-that are not using indexes are printed.
+Added to the slow query log the time and the user name for each logged
+query. If you are using @code{--log-long-format} then also queries that
+are not using indexes are logged, even the query takes less than
+@code{long_query_time} seconds.
@item
Fixed problem in @code{LEFT JOIN} which caused all columns in reference
table to be NULL.
diff --git a/Makefile.am b/Makefile.am
index bedcdbf7386..cc8a387ca4f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -30,7 +30,7 @@ SUBDIRS = include @docs_dirs@ @readline_dir@ \
CLEANFILES = linked_client_sources linked_server_sources linked_libmysql_sources linked_libmysql_r_sources linked_include_sources
# This is just so that the linking is done early.
-config.h: linked_include_sources linked_client_sources linked_server_sources
+config.h: linked_include_sources linked_client_sources linked_server_sources linked_libmysql_sources linked_libmysql_r_sources
linked_include_sources:
cd include; $(MAKE) link_sources
diff --git a/client/mysql.cc b/client/mysql.cc
index b7a41a122eb..76eed7e2548 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -109,7 +109,7 @@ static HashTable ht;
enum enum_info_type { INFO_INFO,INFO_ERROR,INFO_RESULT};
typedef enum enum_info_type INFO_TYPE;
-const char *VER="11.6";
+const char *VER="11.7";
static MYSQL mysql; /* The connection */
static bool info_flag=0,ignore_errors=0,wait_flag=0,quick=0,
@@ -118,7 +118,7 @@ static bool info_flag=0,ignore_errors=0,wait_flag=0,quick=0,
opt_compress=0,
vertical=0,skip_line_numbers=0,skip_column_names=0,opt_html=0,
opt_nopager=1, opt_outfile=0, no_named_cmds=1;
-static uint verbose=0,opt_silent=0,opt_mysql_port=0,opt_connect_timeout=0;
+static uint verbose=0,opt_silent=0,opt_mysql_port=0;
static my_string opt_mysql_unix_port=0;
static int connect_flag=CLIENT_INTERACTIVE;
static char *current_host,*current_db,*current_user=0,*opt_password=0,
@@ -126,7 +126,7 @@ static char *current_host,*current_db,*current_user=0,*opt_password=0,
static char *histfile;
static String glob_buffer,old_buffer;
static STATUS status;
-static ulong select_limit,max_join_size;
+static ulong select_limit,max_join_size,opt_connect_timeout=0;
static char default_pager[FN_REFLEN];
char pager[FN_REFLEN], outfile[FN_REFLEN];
FILE *PAGER, *OUTFILE;
@@ -371,7 +371,7 @@ sig_handler mysql_end(int sig)
exit(status.exit_status);
}
-enum options {OPT_CHARSETS_DIR=256, OPT_DEFAULT_CHARSET, OPT_TIMEOUT,
+enum options {OPT_CHARSETS_DIR=256, OPT_DEFAULT_CHARSET,
OPT_PAGER, OPT_NOPAGER, OPT_TEE, OPT_NOTEE} ;
@@ -420,7 +420,6 @@ static struct option long_options[] =
{"socket", required_argument, 0, 'S'},
#include "sslopt-longopts.h"
{"table", no_argument, 0, 't'},
- {"timeout", required_argument, 0, OPT_TIMEOUT},
#ifndef DONT_ALLOW_USER_CHANGE
{"user", required_argument, 0, 'u'},
#endif
@@ -434,6 +433,7 @@ static struct option long_options[] =
CHANGEABLE_VAR changeable_vars[] = {
+ { "connect_timeout", (long*) &opt_connect_timeout, 0, 0, 3600*12, 0, 1},
{ "max_allowed_packet", (long*) &max_allowed_packet,16*1024L*1024L,4096,
24*1024L*1024L, MALLOC_OVERHEAD,1024},
{ "net_buffer_length",(long*) &net_buffer_length,16384,1024,24*1024*1024L,
@@ -697,9 +697,6 @@ static int get_options(int argc, char **argv)
opt_mysql_unix_port=my_strdup(MYSQL_NAMEDPIPE,MYF(0));
#endif
break;
- case OPT_TIMEOUT:
- opt_connect_timeout=atoi(optarg);
- break;
case 'V': usage(1); exit(0);
case 'I':
case '?':
@@ -2045,8 +2042,11 @@ sql_real_connect(char *host,char *database,char *user,char *password,
}
mysql_init(&mysql);
if (opt_connect_timeout)
+ {
+ uint timeout=opt_connect_timeout;
mysql_options(&mysql,MYSQL_OPT_CONNECT_TIMEOUT,
- (char*) &opt_connect_timeout);
+ (char*) &timeout);
+ }
if (opt_compress)
mysql_options(&mysql,MYSQL_OPT_COMPRESS,NullS);
#ifdef HAVE_OPENSSL
diff --git a/client/mysqladmin.c b/client/mysqladmin.c
index 4622e94eb9c..6488d012c1a 100644
--- a/client/mysqladmin.c
+++ b/client/mysqladmin.c
@@ -28,7 +28,7 @@
#include <my_pthread.h> /* because of signal() */
#endif
-#define ADMIN_VERSION "8.12"
+#define ADMIN_VERSION "8.13"
#define MAX_MYSQL_VAR 64
#define MAX_TIME_TO_WAIT 3600 /* Wait for shutdown */
#define MAX_TRUNC_LENGTH 3
@@ -40,6 +40,7 @@ static int interval=0;
static my_bool option_force=0,interrupted=0,new_line=0,option_silent=0,
opt_compress=0, opt_relative=0, opt_verbose=0, opt_vertical=0;
static uint tcp_port = 0, option_wait = 0;
+static ulong opt_connect_timeout;
static my_string unix_port=0;
/* When using extended-status relatively, ex_val_max_len is the estimated
@@ -116,11 +117,12 @@ static struct option long_options[] = {
#endif
{"port", required_argument, 0, 'P'},
{"relative", no_argument, 0, 'r'},
+ {"set-variable", required_argument, 0, 'O'},
{"silent", no_argument, 0, 's'},
{"socket", required_argument, 0, 'S'},
{"sleep", required_argument, 0, 'i'},
#include "sslopt-longopts.h"
- {"timeout", required_argument, 0, 't'},
+ {"connect-timeout", required_argument, 0, 't'},
#ifndef DONT_ALLOW_USER_CHANGE
{"user", required_argument, 0, 'u'},
#endif
@@ -131,6 +133,11 @@ static struct option long_options[] = {
{0, 0, 0, 0}
};
+CHANGEABLE_VAR changeable_vars[] = {
+ { "connect_timeout", (long*) &opt_connect_timeout, 0, 0, 3600*12, 0, 1},
+ { 0, 0, 0, 0, 0, 0, 0}
+};
+
static const char *load_default_groups[]= { "mysqladmin","client",0 };
int main(int argc,char *argv[])
@@ -143,7 +150,7 @@ int main(int argc,char *argv[])
mysql_init(&mysql);
load_defaults("my",load_default_groups,&argc,&argv);
- while ((c=getopt_long(argc,argv,"h:i:p::u:#::P:sS:Ct:fq?vVw::WrE",
+ while ((c=getopt_long(argc,argv,"h:i:p::u:#::P:sS:Ct:fq?vVw::WrEO:",
long_options, &option_index)) != EOF)
{
switch(c) {
@@ -187,6 +194,13 @@ int main(int argc,char *argv[])
case 'E':
opt_vertical = 1;
break;
+ case 'O':
+ if (set_changeable_var(optarg, changeable_vars))
+ {
+ usage();
+ return(1);
+ }
+ break;
case 's':
option_silent = 1;
break;
@@ -198,12 +212,6 @@ int main(int argc,char *argv[])
unix_port=MYSQL_NAMEDPIPE;
#endif
break;
- case 't':
- {
- uint tmp=atoi(optarg);
- mysql_options(&mysql,MYSQL_OPT_CONNECT_TIMEOUT, (char*) &tmp);
- break;
- }
case '#':
DBUG_PUSH(optarg ? optarg : "d:t:o,/tmp/mysqladmin.trace");
break;
@@ -253,6 +261,11 @@ int main(int argc,char *argv[])
if (opt_compress)
mysql_options(&mysql,MYSQL_OPT_COMPRESS,NullS);
+ if (opt_connect_timeout)
+ {
+ uint tmp=opt_connect_timeout;
+ mysql_options(&mysql,MYSQL_OPT_CONNECT_TIMEOUT, (char*) &tmp);
+ }
#ifdef HAVE_OPENSSL
if (opt_use_ssl)
mysql_ssl_set(&mysql, opt_ssl_key, opt_ssl_cert, opt_ssl_ca,
@@ -763,6 +776,7 @@ static void print_version(void)
static void usage(void)
{
+ uint i;
print_version();
puts("Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB");
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license\n");
@@ -804,6 +818,11 @@ static void usage(void)
-V, --version Output version information and exit\n\
-w, --wait[=retries] Wait and retry if connection is down\n");
print_defaults("my",load_default_groups);
+ printf("\nPossible variables for option --set-variable (-O) are:\n");
+ for (i=0 ; changeable_vars[i].name ; i++)
+ printf("%-20s current value: %lu\n",
+ changeable_vars[i].name,
+ (ulong) *changeable_vars[i].varptr);
puts("\nWhere command is a one or more of: (Commands may be shortened)\n\
create databasename Create a new database\n\
diff --git a/configure.in b/configure.in
index 6811404bc35..f75f88fc408 100644
--- a/configure.in
+++ b/configure.in
@@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script.
AC_INIT(sql/mysqld.cc)
AC_CANONICAL_SYSTEM
# The Docs Makefile.am parses this line!
-AM_INIT_AUTOMAKE(mysql, 3.23.28-gamma)
+AM_INIT_AUTOMAKE(mysql, 3.23.29-gamma)
AM_CONFIG_HEADER(config.h)
PROTOCOL_VERSION=10
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c
index b7afcf8a25c..37e656edb96 100644
--- a/libmysql/libmysql.c
+++ b/libmysql/libmysql.c
@@ -686,6 +686,7 @@ static const char *default_options[]=
"init-command", "host", "database", "debug", "return-found-rows",
"ssl-key" ,"ssl-cert" ,"ssl-ca" ,"ssl-capath",
"character-set-dir", "default-character-set", "interactive-timeout",
+ "connect_timeout",
NullS
};
@@ -745,6 +746,7 @@ static void mysql_read_default_options(struct st_mysql_options *options,
case 5: /* pipe */
options->named_pipe=1; /* Force named pipe */
break;
+ case 20: /* connect_timeout */
case 6: /* timeout */
if (opt_arg)
options->connect_timeout=atoi(opt_arg);
diff --git a/myisam/mi_check.c b/myisam/mi_check.c
index a38a45f9438..ec9320f6104 100644
--- a/myisam/mi_check.c
+++ b/myisam/mi_check.c
@@ -108,7 +108,7 @@ int chk_status(MI_CHECK *param, register MI_INFO *info)
else if (mi_is_crashed(info))
mi_check_print_warning(param,
"Table is marked as crashed");
- if (share->state.open_count)
+ if (share->state.open_count != (info->s->global_changed ? 1 : 0))
{
mi_check_print_warning(param,
"%d clients is using or hasn't closed the table properly",
diff --git a/myisam/mi_create.c b/myisam/mi_create.c
index 89bdcdf3fbc..92aef5e25de 100644
--- a/myisam/mi_create.c
+++ b/myisam/mi_create.c
@@ -465,7 +465,7 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs,
share.state.create_time= (long) time((time_t*) 0);
if ((file = my_create(fn_format(buff,name,"",MI_NAME_IEXT,4),0,
- O_RDWR | O_TRUNC,MYF(MY_WME))) < 0)
+ O_RDWR | O_TRUNC,MYF(MY_WME))) < 0)
goto err;
errpos=1;
VOID(fn_format(buff,name,"",MI_NAME_DEXT,2+4));
diff --git a/sql-bench/Results/ATIS-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql b/sql-bench/Results/ATIS-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
new file mode 100644
index 00000000000..3d819682d26
--- /dev/null
+++ b/sql-bench/Results/ATIS-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
@@ -0,0 +1,27 @@
+Testing server '2.1' at 2000-11-23 16:03:39
+
+ATIS table test
+
+Creating tables
+Time for create_table (28): 1 wallclock secs ( 0.03 usr 0.02 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Inserting data
+Time to insert (9768): 33 wallclock secs ( 3.61 usr 2.85 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Retrieving data
+Warning: Query 'select flight.flight_code,aircraft.aircraft_type from flight,aircraft where flight.aircraft_code=aircraft.aircraft_code' returned 100 rows when it should have returned 579 rows
+Time for select_simple_join (500): 28 wallclock secs ( 0.35 usr 0.17 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Warning: Query 'select airline.airline_name,aircraft.aircraft_type from aircraft,airline,flight where flight.aircraft_code=aircraft.aircraft_code and flight.airline_code=airline.airline_code' returned 100 rows when it should have returned 579 rows
+Warning: Query 'select fare.fare_code from restrict_carrier,airline,fare where restrict_carrier.airline_code=airline.airline_code and fare.restrict_code=restrict_carrier.restrict_code' returned 100 rows when it should have returned 5692 rows
+Time for select_join (200): 97 wallclock secs ( 0.25 usr 0.08 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Note: Query took longer then time-limit: 600
+Estimating end time based on:
+520 queries in 65 loops of 100 loops took 609 seconds
+Estimated time for select_distinct (800): 936 wallclock secs ( 1.20 usr 0.31 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Warning: Query 'select flight_number,range_miles,fare_class FROM aircraft,flight,flight_class WHERE flight.flight_code=flight_class.flight_code AND flight.aircraft_code=aircraft.aircraft_code AND range_miles<>0 AND (stops=1 OR stops=2) GROUP BY flight_number,range_miles,fare_class' returned 100 rows when it should have returned 150 rows
+Warning: Query 'select from_airport,to_airport,range_miles,time_elapsed FROM aircraft,flight WHERE aircraft.aircraft_code=flight.aircraft_code AND to_airport NOT LIKE from_airport AND range_miles<>0 AND time_elapsed<>0 GROUP BY from_airport,to_airport,range_miles,time_elapsed' returned 100 rows when it should have returned 409 rows
+Time for select_group (2200): 359 wallclock secs ( 1.35 usr 0.82 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Removing tables
+Time to drop_table (28): 7 wallclock secs ( 0.01 usr 0.02 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Estimated total time: 1461 wallclock secs ( 6.81 usr 4.27 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
diff --git a/sql-bench/Results/RUN-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql b/sql-bench/Results/RUN-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
new file mode 100644
index 00000000000..edd7aabce63
--- /dev/null
+++ b/sql-bench/Results/RUN-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
@@ -0,0 +1,41 @@
+Benchmark DBD suite: 2.9
+Date of test: 2000-11-24 15:36:25
+Running tests on: Linux 2.2.14-my-SMP i686
+Arguments: --tcpip
+Comments:
+Limits from: frontbase,mysql
+Server version: 2.1
+
+ATIS: Estimated total time: 1461 wallclock secs ( 6.81 usr 4.27 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+alter-table: Total time: 1033 wallclock secs ( 1.13 usr 0.72 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+big-tables: Total time: 49 wallclock secs ( 2.66 usr 1.08 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+connect: Total time: 16 wallclock secs ( 3.38 usr 3.09 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+create: Failed (output/create-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql)
+insert: Failed (output/insert-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql)
+select: Failed (output/select-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql)
+wisconsin: Failed (output/wisconsin-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql)
+
+Of 8 tests, 4 tests didn't work
+Tests with estimated time have a + at end of line
+Tests with didn't return the correct result have a ? at end of line
+
+Totals per operation:
+Operation seconds usr sys cpu tests
+alter_table_add 1018.00 0.71 0.41 0.00 992
+connect 4.00 0.87 0.74 0.00 1000
+connect+select_1_row 7.00 1.37 1.41 0.00 1000
+create_index 5.00 0.00 0.01 0.00 8
+create_table 1.00 0.03 0.02 0.00 28
+drop_index 0.00 0.00 0.01 0.00 8
+drop_table 7.00 0.01 0.02 0.00 28
+insert 33.00 3.61 2.85 0.00 9768
+insert_many_fields 37.00 0.69 0.74 0.00 2000
+select_1_row 2.00 0.37 0.28 0.00 1000
+select_2_rows 1.00 0.41 0.35 0.00 1000
+select_column+column 2.00 0.35 0.31 0.00 1000
+select_distinct 936.00 1.20 0.31 0.00 800 +
+select_group 359.00 1.35 0.82 0.00 2200 ?
+select_join 97.00 0.25 0.08 0.00 200 ?
+select_many_fields 11.00 1.97 0.34 0.00 1000
+select_simple_join 28.00 0.35 0.17 0.00 500 ?
+TOTALS 2548.00 13.54 8.87 0.00 22532 +???
diff --git a/sql-bench/Results/alter-table-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql b/sql-bench/Results/alter-table-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
new file mode 100644
index 00000000000..0213c1a4d01
--- /dev/null
+++ b/sql-bench/Results/alter-table-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
@@ -0,0 +1,14 @@
+Testing server '2.1' at 2000-11-23 16:22:34
+
+Testing of ALTER TABLE
+Testing with 1000 columns and 1000 rows in 20 steps
+Insert data into the table
+Time for insert (1000) 4 wallclock secs ( 0.42 usr 0.29 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Time for alter_table_add (992): 1018 wallclock secs ( 0.71 usr 0.41 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Time for create_index (8): 5 wallclock secs ( 0.00 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Time for drop_index (8): 0 wallclock secs ( 0.00 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Total time: 1033 wallclock secs ( 1.13 usr 0.72 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
diff --git a/sql-bench/Results/big-tables-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql b/sql-bench/Results/big-tables-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
new file mode 100644
index 00000000000..02e00ce61a5
--- /dev/null
+++ b/sql-bench/Results/big-tables-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
@@ -0,0 +1,16 @@
+Testing server '2.1' at 2000-11-23 17:15:31
+
+Testing of some unusual tables
+All tests are done 1000 times with 150 fields
+
+Testing table with 150 fields
+Testing select * from table with 1 record
+Time to select_many_fields(1000): 11 wallclock secs ( 1.97 usr 0.34 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Testing insert VALUES()
+Time to insert_many_fields(1000): 14 wallclock secs ( 0.35 usr 0.38 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Testing insert (all_fields) VALUES()
+Time to insert_many_fields(1000): 23 wallclock secs ( 0.34 usr 0.36 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Total time: 49 wallclock secs ( 2.66 usr 1.08 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
diff --git a/sql-bench/Results/connect-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql b/sql-bench/Results/connect-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
new file mode 100644
index 00000000000..23d263a7076
--- /dev/null
+++ b/sql-bench/Results/connect-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
@@ -0,0 +1,21 @@
+Testing server '2.1' at 2000-11-23 19:22:47
+
+Testing the speed of connecting to the server and sending of data
+All tests are done 1000 times
+
+Testing connection/disconnect
+Time to connect (1000): 4 wallclock secs ( 0.87 usr 0.74 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Testing connect/select 1 row from table/disconnect
+Time to connect+select_1_row (1000): 7 wallclock secs ( 1.37 usr 1.41 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Testing select 1 row from table
+Time to select_1_row (1000): 2 wallclock secs ( 0.37 usr 0.28 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Testing select 2 rows from table
+Time to select_2_rows (1000): 1 wallclock secs ( 0.41 usr 0.35 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Test select with aritmetic (+)
+Time for select_column+column (1000): 2 wallclock secs ( 0.35 usr 0.31 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Total time: 16 wallclock secs ( 3.38 usr 3.09 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
diff --git a/sql-bench/Results/create-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql b/sql-bench/Results/create-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
new file mode 100644
index 00000000000..bd988d7fad9
--- /dev/null
+++ b/sql-bench/Results/create-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
@@ -0,0 +1,16 @@
+Testing server '2.1' at 2000-11-23 21:30:54
+
+Testing the speed of creating and droping tables
+Testing with 1000 tables and 10000 loop count
+
+Testing create of tables
+Time for create_MANY_tables (1000): 27 wallclock secs ( 0.63 usr 0.24 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Accessing tables
+Time to select_group_when_MANY_tables (1000): 5 wallclock secs ( 0.29 usr 0.29 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Testing drop
+Time for drop_table_when_MANY_tables (1000): 799 wallclock secs ( 0.81 usr 0.38 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Testing create+drop
+Time for create+drop (10000): 2122 wallclock secs (12.59 usr 6.29 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
diff --git a/sql-bench/Results/insert-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql b/sql-bench/Results/insert-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
new file mode 100644
index 00000000000..bee9e6173d5
--- /dev/null
+++ b/sql-bench/Results/insert-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
@@ -0,0 +1,59 @@
+Testing server '2.1' at 2000-11-23 23:33:36
+
+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.
+
+Generating random keys
+Creating tables
+Inserting 100000 rows in order
+Inserting 100000 rows in reverse order
+Inserting 100000 rows in random order
+Time for insert (300000): 1077 wallclock secs (121.99 usr 88.83 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Retrieving data from the table
+Warning: Got 100 rows when selecting a whole table of 300000 rows
+Contact the database or DBD author!
+Time for select_big (10:1000): 0 wallclock secs ( 0.01 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Time for order_by_big_key (10:1000): 206 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Time for order_by_big_key_desc (10:1000): 217 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Time for order_by_big_key2 (10:1000): 200 wallclock secs ( 0.00 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Time for order_by_big_key_diff (10:1000): 201 wallclock secs ( 0.04 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Time for order_by_big (10:1000): 204 wallclock secs ( 0.04 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Note: Query took longer then time-limit: 600
+Estimating end time based on:
+214 queries in 214 loops of 500 loops took 601 seconds
+Estimated time for order_by_range (500:16549): 1404 wallclock secs ( 0.89 usr 0.14 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Note: Query took longer then time-limit: 600
+Estimating end time based on:
+213 queries in 213 loops of 500 loops took 601 seconds
+Estimated time for order_by_key (500:16449): 1410 wallclock secs ( 0.56 usr 0.21 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Note: Query took longer then time-limit: 600
+Estimating end time based on:
+209 queries in 209 loops of 500 loops took 601 seconds
+Estimated time for order_by_key2_diff (500:20900): 1437 wallclock secs ( 1.03 usr 0.26 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Note: Query took longer then time-limit: 600
+Estimating end time based on:
+201 queries in 201 loops of 500 loops took 602 seconds
+Estimated time for select_diff_key (500:402): 1497 wallclock secs ( 0.42 usr 0.27 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Note: Query took longer then time-limit: 600
+Estimating end time based on:
+20 queries in 20 loops of 5000 loops took 626 seconds
+Estimated time for select_range_prefix (5000:252): 156500 wallclock secs ( 5.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Note: Query took longer then time-limit: 600
+Estimating end time based on:
+20 queries in 20 loops of 5000 loops took 608 seconds
+Estimated time for select_range_key2 (5000:252): 152000 wallclock secs ( 2.50 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Note: Query took longer then time-limit: 600
+Estimating end time based on:
+318 queries in 159 loops of 100000 loops took 603 seconds
+Estimated time for select_key_prefix (200000): 379245 wallclock secs (132.08 usr 31.45 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Note: Query took longer then time-limit: 600
+Estimating end time based on:
+314 queries in 157 loops of 100000 loops took 602 seconds
+Estimated time for select_key (200000): 383439 wallclock secs (159.24 usr 89.17 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Note: Query took longer then time-limit: 600
+Estimating end time based on:
+312 queries in 156 loops of 100000 loops took 604 seconds
+Estimated time for select_key2 (200000): 387179 wallclock secs (173.08 usr 57.69 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Test of compares with simple ranges
diff --git a/sql-bench/Results/select-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql b/sql-bench/Results/select-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
new file mode 100644
index 00000000000..34f8895e787
--- /dev/null
+++ b/sql-bench/Results/select-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
@@ -0,0 +1,11 @@
+Testing server '2.1' at 2000-11-24 12:38:06
+
+Testing the speed of selecting on keys that consist of many parts
+The test-table has 10000 rows and the test is done with 150 ranges.
+
+Creating table
+Inserting 10000 rows
+Time to insert (10000): 36 wallclock secs ( 3.58 usr 2.67 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Testing big selects on the table
+Time for select_big (70:17207): 11 wallclock secs ( 0.22 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
diff --git a/sql-bench/Results/wisconsin-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql b/sql-bench/Results/wisconsin-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
new file mode 100644
index 00000000000..06f8a2a2251
--- /dev/null
+++ b/sql-bench/Results/wisconsin-frontbase-Linux_2.2.14_my_SMP_i686-cmp-frontbase,mysql
@@ -0,0 +1,11 @@
+Testing server '2.1' at 2000-11-24 13:53:57
+
+Wisconsin benchmark test
+
+Time for create_table (3): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Inserting data
+Time to insert (31000): 140 wallclock secs (13.88 usr 9.10 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Time to delete_big (1): 1 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Running actual benchmark
diff --git a/sql-bench/bench-init.pl.sh b/sql-bench/bench-init.pl.sh
index 7d78a7ef3a2..af292257bab 100755
--- a/sql-bench/bench-init.pl.sh
+++ b/sql-bench/bench-init.pl.sh
@@ -31,7 +31,7 @@
# $server Object for current server
# $limits Hash reference to limits for benchmark
-$benchmark_version="2.9";
+$benchmark_version="2.10";
use Getopt::Long;
require "$pwd/server-cfg" || die "Can't read Configuration file: $!\n";
diff --git a/sql/ha_berkeley.cc b/sql/ha_berkeley.cc
index 8545f5015bd..60830f4df37 100644
--- a/sql/ha_berkeley.cc
+++ b/sql/ha_berkeley.cc
@@ -171,7 +171,8 @@ bool berkeley_flush_logs()
int berkeley_commit(THD *thd, void *trans)
{
DBUG_ENTER("berkeley_commit");
- DBUG_PRINT("trans",("ending transaction"));
+ DBUG_PRINT("trans",("ending transaction %s",
+ trans == thd->transaction.stmt.bdb_tid ? "stmt" : "all"));
int error=txn_commit((DB_TXN*) trans,0);
#ifndef DBUG_OFF
if (error)
@@ -183,7 +184,8 @@ int berkeley_commit(THD *thd, void *trans)
int berkeley_rollback(THD *thd, void *trans)
{
DBUG_ENTER("berkeley_rollback");
- DBUG_PRINT("trans",("aborting transaction"));
+ DBUG_PRINT("trans",("aborting transaction %s",
+ trans == thd->transaction.stmt.bdb_tid ? "stmt" : "all"));
int error=txn_abort((DB_TXN*) trans);
DBUG_RETURN(error);
}
@@ -1350,7 +1352,7 @@ int ha_berkeley::external_lock(THD *thd, int lock_type)
if (!thd->transaction.bdb_lock_count++)
{
/* First table lock, start transaction */
- if (!(thd->options & (OPTION_NOT_AUTO_COMMIT | OPTION_BEGIN)) &&
+ if ((thd->options & (OPTION_NOT_AUTO_COMMIT | OPTION_BEGIN)) &&
!thd->transaction.all.bdb_tid)
{
/* We have to start a master transaction */
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 7e668d60876..29ef01e8196 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -138,7 +138,7 @@ static void init_sum_functions(Item_sum **func);
static bool update_sum_func(Item_sum **func);
static void select_describe(JOIN *join, bool need_tmp_table, bool need_order,
bool distinct);
-static void describe_info(const char *info);
+static void describe_info(THD *thd, const char *info);
/*****************************************************************************
** check fields, find best join, do the select and output fields.
@@ -336,7 +336,7 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds,
}
if (select_options & SELECT_DESCRIBE)
{
- describe_info("Select tables optimized away");
+ describe_info(thd,"Select tables optimized away");
delete procedure;
DBUG_RETURN(0);
}
@@ -347,7 +347,7 @@ mysql_select(THD *thd,TABLE_LIST *tables,List<Item> &fields,COND *conds,
{ // Only test of functions
error=0;
if (select_options & SELECT_DESCRIBE)
- describe_info("No tables used");
+ describe_info(thd,"No tables used");
else
{
result->send_fields(fields,1);
@@ -2726,7 +2726,7 @@ return_zero_rows(select_result *result,TABLE_LIST *tables,List<Item> &fields,
if (select_options & SELECT_DESCRIBE)
{
- describe_info(info);
+ describe_info(current_thd, info);
DBUG_RETURN(0);
}
if (procedure)
@@ -6421,6 +6421,8 @@ static void select_describe(JOIN *join, bool need_tmp_table, bool need_order,
THD *thd=join->thd;
DBUG_ENTER("select_describe");
+ /* Don't log this into the slow query log */
+ join->thd->lex.options&= ~(QUERY_NO_INDEX_USED | QUERY_NO_GOOD_INDEX_USED);
field_list.push_back(new Item_empty_string("table",NAME_LEN));
field_list.push_back(new Item_empty_string("type",10));
field_list.push_back(item=new Item_empty_string("possible_keys",
@@ -6573,12 +6575,13 @@ static void select_describe(JOIN *join, bool need_tmp_table, bool need_order,
}
-static void describe_info(const char *info)
+static void describe_info(THD *thd, const char *info)
{
List<Item> field_list;
- THD *thd=current_thd;
String *packet= &thd->packet;
+ /* Don't log this into the slow query log */
+ thd->lex.options&= ~(QUERY_NO_INDEX_USED | QUERY_NO_GOOD_INDEX_USED);
field_list.push_back(new Item_empty_string("Comment",80));
if (send_fields(thd,field_list,1))
return; /* purecov: inspected */
diff --git a/support-files/mysql.server.sh b/support-files/mysql.server.sh
index 2663ab36b66..b28cff66b24 100644
--- a/support-files/mysql.server.sh
+++ b/support-files/mysql.server.sh
@@ -83,6 +83,11 @@ case "$mode" in
# be overwritten at next upgrade.
$bindir/safe_mysqld \
--datadir=$datadir --pid-file=$pid_file &
+ # Make lock for RedHat / SuSE
+ if test -d /var/lock/subsys
+ then
+ touch /var/lock/subsys/mysql
+ fi
else
echo "Can't execute $bindir/safe_mysqld"
fi
@@ -109,6 +114,11 @@ case "$mode" in
elif [ -n "$flags" ]
then echo " done"
fi
+ # delete lock for RedHat / SuSE
+ if test -d /var/lock/subsys
+ then
+ rm /var/lock/subsys/mysql
+ fi
else
echo "No mysqld pid file found. Looked for $pid_file."
fi