diff options
author | unknown <monty@donna.mysql.fi> | 2001-05-09 23:02:58 +0300 |
---|---|---|
committer | unknown <monty@donna.mysql.fi> | 2001-05-09 23:02:58 +0300 |
commit | 6a93aa52637002656773f678a7426c5aed811060 (patch) | |
tree | f09891ad9259c0d9f2bc9e89476771473f46629f /Docs | |
parent | b187dda8bf0054b5713bc6c131492601bbf99f0c (diff) | |
parent | 53011a88c1a9275aa41549cacd069c3d6d77299e (diff) | |
download | mariadb-git-6a93aa52637002656773f678a7426c5aed811060.tar.gz |
Merge work:/home/bk/mysql into donna.mysql.fi:/home/my/bk/mysql
Docs/manual.texi:
Auto merged
Diffstat (limited to 'Docs')
-rw-r--r-- | Docs/manual.texi | 135 |
1 files changed, 92 insertions, 43 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi index 7ed827507b9..57e8e1e6730 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -69,7 +69,7 @@ END-INFO-DIR-ENTRY @sp 10 @center @titlefont{@strong{MySQL} Reference Manual} @sp 10 -@center Copyright @copyright{} 1997-2001 TcX AB, Detron HB and MySQL Finland AB +@center Copyright @copyright{} 1997-2001 MySQL AB @c blank page after title page makes page 1 be a page front. @c also makes the back of the title page blank. @page @@ -2223,7 +2223,7 @@ The Berkeley DB code is very stable, but we are still improving the interface between @strong{MySQL} and BDB tables, so it will take some time before this is as tested as the other table types. -@item Innodb Tables -- Alpha +@item InnoDB Tables -- Alpha This is a very recent addition to @code{MySQL} and is not very tested yet. @item Automatic recovery of MyISAM tables - Beta @@ -10015,7 +10015,7 @@ yourself with the different BDB specific startup options. @xref{BDB start}. If you are using Gemini tables, refer to the Gemini-specific startup options. @xref{GEMINI start}. -If you are using Innodb tables, refer to the Innodb-specific startup +If you are using InnoDB tables, refer to the InnoDB-specific startup options. @xref{InnoDB start}. @node Automatic start, Command-line options, Starting server, Post-installation @@ -10124,6 +10124,10 @@ Chroot mysqld daemon during startup. Recommended security measure. It will somewhat limit @code{LOAD DATA INFILE} and @code{SELECT ... INTO OUTFILE} though. +@item --core-file +Write a core file if @code{mysqld} dies. For some systems you must also +specify @code{--core-file-size} to @code{safe_mysqld}. @xref{safe_mysqld}. + @item -h, --datadir=path Path to the database root. @@ -10278,6 +10282,10 @@ gives everyone @emph{full access} to all databases! (You can tell a running server to start using the grant tables again by executing @code{mysqladmin flush-privileges} or @code{mysqladmin reload}.) +@item --skip-host-cache +Never use host name cache for faster name-ip resolution, but query DNS server +on every connect instead. @xref{DNS}. + @item --skip-locking Don't use system locking. To use @code{isamchk} or @code{myisamchk} you must shut down the server. @xref{Stability}. Note that in @strong{MySQL} Version @@ -10293,14 +10301,14 @@ Don't listen for TCP/IP connections at all. All interaction with @code{mysqld} must be made via Unix sockets. This option is highly recommended for systems where only local requests are allowed. @xref{DNS}. -@item --skip-host-cache -Never use host name cache for faster name-ip resolution, but query DNS server -on every connect instead. @xref{DNS}. - @item --skip-new Don't use new, possible wrong routines. Implies @code{--skip-delay-key-write}. This will also set default table type to @code{ISAM}. @xref{ISAM}. +@item --skip-stack-trace +Don't write stack traces. This option is useful when you are running +@code{mysqld} under a debugger. @xref{Debugging server}. + @item --skip-safemalloc If @strong{MySQL} is configured with @code{--with-debug=full}, all programs will check the memory for overruns for every memory allocation and memory @@ -18752,9 +18760,10 @@ When you insert a value of @code{NULL} (recommended) or @code{0} into an @xref{mysql_insert_id, , @code{mysql_insert_id()}}. If you delete the row containing the maximum value for an -@code{AUTO_INCREMENT} column, the value will be reused with an ISAM -table but not with a @code{MyISAM} table. If you delete all rows in the -table with @code{DELETE FROM table_name} (without a @code{WHERE}) in +@code{AUTO_INCREMENT} column, the value will be reused with an +@code{ISAM}, @code{BDB} or @code{INNODB} table but not with a +@code{MyISAM} table. If you delete all rows in the table with +@code{DELETE FROM table_name} (without a @code{WHERE}) in @code{AUTOCOMMIT} mode, the sequence starts over for both table types. @strong{NOTE:} There can be only one @code{AUTO_INCREMENT} column per @@ -21742,7 +21751,7 @@ if @code{--skip-bdb} is used. @code{YES} if @code{mysqld} supports Gemini tables. @code{DISABLED} if @code{--skip-gemini} is used. @item @code{have_innodb} -@code{YES} if @code{mysqld} supports Innodb tables. @code{DISABLED} +@code{YES} if @code{mysqld} supports InnoDB tables. @code{DISABLED} if @code{--skip-innodb} is used. @item @code{have_raid} @code{YES} if @code{mysqld} supports the @code{RAID} option. @@ -23352,7 +23361,14 @@ the table type, the index and data will be stored in other files. The default table type in @strong{MySQL} is @code{MyISAM}. If you are trying to use a table type that is not compiled-in or activated, -@strong{MySQL} will instead create a table of type @code{MyISAM}. +@strong{MySQL} will instead create a table of type @code{MyISAM}. This +is a very useful feature when you want to copy tables between different +SQL servers that supports different table types (like copying tables to +a slave that is optimized for speed by not having transactional tables). +This automatic table changing can however also be very confusing for new +@strong{MySQL} users. We plan to fix this by introducing warnings in +@strong{MySQL} 4.0 and giving a warning when a table type is automaticly +changed. You can convert tables between different types with the @code{ALTER TABLE} statement. @xref{ALTER TABLE, , @code{ALTER TABLE}}. @@ -23452,7 +23468,7 @@ Internal handling of one @code{AUTO_INCREMENT} column. @code{MyISAM} will automatically update this on @code{INSERT/UPDATE}. The @code{AUTO_INCREMENT} value can be reset with @code{myisamchk}. This will make @code{AUTO_INCREMENT} columns faster (at least 10 %) and old -numbers will not be reused as with the old ISAM. Note that when an +numbers will not be reused as with the old @code{ISAM}. Note that when an @code{AUTO_INCREMENT} is defined on the end of a multi-part-key the old behavior is still present. @item @@ -24086,20 +24102,20 @@ SUM_OVER_ALL_KEYS(max_length_of_key + sizeof(char*) * 2) @section BDB or Berkeley_DB Tables @menu -* BDB overview:: -* BDB install:: -* BDB start:: -* BDB characteristic:: -* BDB TODO:: -* BDB portability:: -* BDB errors:: +* BDB overview:: Overview of BDB Tables +* BDB install:: Installing BDB +* BDB start:: BDB startup options +* BDB characteristic:: Some characteristic of @code{BDB} tables: +* BDB TODO:: Some things we need to fix for BDB in the near future: +* BDB portability:: Operating systems supported by @strong{BDB} +* BDB errors:: Errors You May Get When Using BDB Tables @end menu @node BDB overview, BDB install, BDB, BDB @subsection Overview of BDB Tables Support for BDB tables is included in the @strong{MySQL} source distribution -starting from Version 3.23.34 and will be activated in the @strong{MySQL}-Max +starting from Version 3.23.34 and is activated in the @strong{MySQL}-Max binary. BerkeleyDB, available at @uref{http://www.sleepycat.com/} has provided @@ -25419,15 +25435,16 @@ they roll back the corresponding SQL statement. @subsection Some restrictions on InnoDB tables @itemize @bullet -@item You cannot create an index on a prefix of a column: +@item +If you try to create an unique index on a prefix of a column you will get an +error: @example -@code{CREATE TABLE T (A CHAR(20), B INT, INDEX T_IND (A(5))) TYPE = InnoDB; -} +CREATE TABLE T (A CHAR(20), B INT, UNIQUE (A(5))) TYPE = InnoDB; @end example -The above will not work. For a MyISAM table the above would create an index -where only the first 5 characters from column @code{A} are stored. +If you create a non unique index on a prefix of a column, InnoDB will +create an index over the whole column. @item @code{INSERT DELAYED} is not supported for InnoDB tables. @item @@ -32277,9 +32294,9 @@ the @code{mysql} variables that affect your queries. @cindex @code{safe-mode} command A useful startup option for beginners (introduced in @strong{MySQL} -Version 3.23.11) is @code{--safe-mode} (or @code{--i-am-a-dummy} for +Version 3.23.11) is @code{--safe-updates} (or @code{--i-am-a-dummy} for users that has at some time done a @code{DELETE FROM table_name} but -forgot the @code{WHERE} clause. When using this option, @code{mysql} +forgot the @code{WHERE} clause). When using this option, @code{mysql} sends the following command to the @strong{MySQL} server when opening the connection: @@ -34587,12 +34604,13 @@ functions. Consult this file to see how UDF calling conventions work. For mysqld to be able to use UDF functions, you should configure MySQL with @code{--with-mysqld-ldflags=-rdynamic} The reason is that to on -many platforms you can load a dynamic library (with @code{dlopen()}) -from a static linked program, which you would get if you are using -@code{--with-mysqld-ldflags=-all-static} If you want to use an UDF that -needs to access symbols from mysqld (like the @code{methaphone} example -in @file{sql/udf_example.cc} that uses @code{default_charset_info}), you must -link the program with @code{-rdynamic}. (see @code{man dlopen}). +many platforms (including Linux) you can load a dynamic library (with +@code{dlopen()}) from a static linked program, which you would get if +you are using @code{--with-mysqld-ldflags=-all-static} If you want to +use an UDF that needs to access symbols from mysqld (like the +@code{methaphone} example in @file{sql/udf_example.cc} that uses +@code{default_charset_info}), you must link the program with +@code{-rdynamic}. (see @code{man dlopen}). For each function that you want to use in SQL statements, you should define corresponding C (or C++) functions. In the discussion below, the name @@ -35009,12 +35027,13 @@ one that has been loaded with @code{CREATE FUNCTION} and not removed with @node Adding native function, , Adding UDF, Adding functions @section Adding a New Native Function -The procedure for adding a new native function is described below. Note that -you cannot add native functions to a binary distribution because the procedure -involves modifying @strong{MySQL} source code. You must compile -@strong{MySQL} yourself from a source distribution. Also note that if you -migrate to another version of @strong{MySQL} (for example, when a new version is -released), you will need to repeat the procedure with the new version. +The procedure for adding a new native function is described below. Note +that you cannot add native functions to a binary distribution because +the procedure involves modifying @strong{MySQL} source code. You must +compile @strong{MySQL} yourself from a source distribution. Also note +that if you migrate to another version of @strong{MySQL} (for example, +when a new version is released), you will need to repeat the procedure +with the new version. To add a new native @strong{MySQL} function, follow these steps: @@ -44024,7 +44043,7 @@ A new ISAM library which is tuned for SQL and supports large files. @item @strong{BerkeleyDB} or @strong{BDB} Uses the Berkeley DB library from Sleepycat Software to implement transaction-safe tables. -@item @strong{Innodb} +@item @strong{InnoDB} A transaction-safe table handler that supports row level locking, and many Oracle-like features. @c change "three" to "four" above when uncommenting this @@ -44101,6 +44120,16 @@ not yet 100% confident in this code. @appendixsubsec Changes in release 3.23.38 @itemize @bullet @item +Fixed a bug in @code{REPLACE()} when using the ujis character set. +@item +Applied Sleepycat BDB patches 3.2.9.1 and 3.2.9.2. +@item +Added option @code{--skip-stack-trace} to @code{mysqld}. +@item +@code{CREATE TEMPORARY} now works with @code{InnoDB} tables. +@item +@code{InnoDB} now promotes sub keys to whole keys. +@item Added option @code{CONCURRENT} to @code{LOAD DATA}. @item Better error message when slave @code{max_allowed_packet} is to low to @@ -49411,6 +49440,25 @@ Fail safe replication. Subqueries. @code{select id from t where grp in (select grp from g where u > 100)} @item +Derieved tables. +@example +select a.col1, b.col2 from (select max(col1) as col1 from root_table ) a, +other_table b where a.col1=b.col1 +@end example + +This could be done by automaticly create temporary tables for the +derived tables for the duration of the query. +@item +Add @code{PREPARE} of statements and sending of parameters to @code{mysqld}. +@item +Extend the server/client protocol to support warnings. +@item +Add options to the server/protocol protocol to get progress notes +for long running commands. +@item +Add database and real table name (in case of alias) to the MYSQL_FIELD +structure. +@item Don't allow more than a defined number of threads to run MyISAM recover at the same time. @item @@ -49424,8 +49472,6 @@ Multiple result sets. Change the protocol to allow binary transfer of values. To do this efficiently, we need to add an API to allow binding of variables. @item -Add @code{PREPARE} of statements and sending of parameters to @code{mysqld}. -@item Make it possible to specify @code{long_query_time} with a granularity in microseconds. @item @@ -49937,6 +49983,9 @@ With some older @code{gdb} versions on Linux you must use @code{run --one-thread} if you want to be able to debug @code{mysqld} threads. In this case you can only have one thread active at a time. +When running @code{mysqld} under gdb, you should disable the stack trace +with @code{--skip-stack-trace} to be able to catch segfaults within gdb. + It's very hard to debug @strong{MySQL} under @code{gdb} if you do a lot of new connections the whole time as @code{gdb} doesn't free the memory for old threads. You can avoid this problem by starting @code{mysqld} with |