Loading Docs/manual.texi +41 −31 Original line number Diff line number Diff line Loading @@ -3903,8 +3903,8 @@ This can be used to skip over extra columns in the text file, or update columns based on expressions of the read data... @item @code{LOAD DATA INFILE 'file_name' INTO TABLE 'table_name' ERRORS TO err_table_name} This would cause any errors and warnings to be logged into the err_table_name table. That table would have a structure like: This would cause any errors and warnings to be logged into the @code{err_table_name} table. That table would have a structure like: @example line_number - line number in data file Loading @@ -3913,9 +3913,10 @@ and maybe data_line - the line from the data file @end example @item Add true @code{VARCHAR} support (There is already support for this in MyISAM). Add true @code{VARCHAR} support (There is already support for this in @code{MyISAM}). @item Automatic output from @code{mysql} to netscape. Automatic output from @code{mysql} to Netscape. @item @code{LOCK DATABASES}. (with various options) @item Loading Loading @@ -6954,18 +6955,19 @@ version 4.0; @itemize @bullet @item @code{LOCATE()} and @code{INSTR()} are case sensitive if neither argument is a binary string. binary strings. argument is a binary string. @item @code{INSERT INTO ... SELECT} had in 3.23 always @code{IGNORE} enabled. In 4.0.1 MySQL will stop (and possible rollback) in case of an error if you In 3.23, @code{INSERT INTO ... SELECT} always had @code{IGNORE} enabled. In 4.0.1, MySQL will stop (and possibly roll back) in case of an error if you don't specify @code{IGNORE}. @item @file{safe_mysqld} is renamed to @file{mysqld_safe}. @item The old C API functions @code{mysql_drop_db}, @code{mysql_create_db} and @code{mysql_connect} are not supported anymore, unless one compiles @code{mysql_connect} are not supported anymore, unless you compile MySQL with @code{CFLAGS=-DUSE_OLD_FUNCTIONS}. Instead of doing this, one should change the client to use the new 4.0 API. it is preferable to change the client to use the new 4.0 API. @item In the @code{MYSQL_FIELD} structure, @code{length} and @code{max_length} has changed from @code{unsigned int} to @code{unsigned long}. This should not Loading @@ -6989,7 +6991,7 @@ Format of @code{SHOW OPEN TABLE} has changed. Multithreaded clients should use @code{mysql_thread_init()} and @code{mysql_thread_end()}. @xref{Threaded clients}. @item If you want to recompile the perl DBD-MySQL module, you must get If you want to recompile the Perl DBD::mysql module, you must get Msql-Mysql-modules version 1.2218 or newer, because the older DBD modules used the deprecated @code{drop_db()} call. @item Loading Loading @@ -8346,7 +8348,7 @@ we may find some way to work around this problem.) @item @code{DROP TABLE} on a table that is in use by a @code{MERGE} table will not work on windows becasue @code{MERGE} handler does the table mapping not work on Windows because @code{MERGE} handler does the table mapping hidden from the upper layer of MySQL. Because Windows doesn't allow you to drop files that are open, you first must flush all @code{MERGE} tables (with @code{FLUSH TABLES}) or drop the @code{MERGE} table before Loading @@ -8354,7 +8356,7 @@ dropping the table. We will fix this at the same time we introduce @code{VIEW}s. @item @code{DATA DIRECTORY} and @code{INDEX DIRECTORY} directives in @code{CREATE TABLE} is ignored on windows, because windows doesn't support @code{CREATE TABLE} is ignored on Windows, because Windows doesn't support symbolic links. @end table Loading Loading @@ -34740,20 +34742,20 @@ corrupt the table. This will be fixed in MySQL 4.0.x. @item Creation of a table of type @code{MERGE} doesn't check if the underlying tables are of compatible types. If you use @code{MERGE} tables in this fasion you are very likely to run into strange problems. fashion, you are very likely to run into strange problems. @item If you use @code{ALTER TABLE} to first add an @code{UNIQUE} index to a table used in a @code{MERGE} table and then use @code{ALTER TABLE} to add a normal index on the @code{MERGE} table, the key order will be different for the tables if there was an old not-unique key in the different for the tables if there was an old non-unique key in the table. This is because @code{ALTER TABLE} puts @code{UNIQUE} keys before normal keys to be able to detect duplicate keys as early as possible. @item The range optimizer can't yet use @code{MERGE} table efficiently and may sometimes produce not optimal joins. This will be fixed in MySQL 4.0.x. sometimes produce non-optimal joins. This will be fixed in MySQL 4.0.x. @item @code{DROP TABLE} on a table that is in use by a @code{MERGE} table will not work on windows becasue @code{MERGE} handler does the table mapping not work on Windows because the @code{MERGE} handler does the table mapping hidden from the upper layer of MySQL. Because Windows doesn't allow you to drop files that are open, you first must flush all @code{MERGE} tables (with @code{FLUSH TABLES}) or drop the @code{MERGE} table before Loading @@ -34766,12 +34768,12 @@ dropping the table. We will fix this at the same time we introduce @cindex tables, ISAM You can also use the deprecated ISAM table type. This will disappear You can also use the deprecated @code{ISAM} table type. This will disappear rather soon (probably in MySQL 4.1) because @code{MyISAM} is a better implementation of the same thing. ISAM uses a @code{B-tree} index. The implementation of the same thing. @code{ISAM} uses a @code{B-tree} index. The index is stored in a file with the @code{.ISM} extension, and the data is stored in a file with the @code{.ISD} extension. You can check/repair ISAM tables with the @code{isamchk} utility. @xref{Crash check/repair @code{ISAM} tables with the @code{isamchk} utility. @xref{Crash recovery}. @code{ISAM} has the following features/properties: Loading @@ -34789,7 +34791,7 @@ tables. @xref{MyISAM}. The major differences compared to @code{MyISAM} tables are: @itemize @bullet @item ISAM tables are not binary portable across OS/Platforms. @item @code{ISAM} tables are not binary portable across OS/Platforms. @item Can't handle tables > 4G. @item Only support prefix compression on strings. @item Smaller key limits. Loading @@ -34805,7 +34807,7 @@ TABLE} statement: mysql> ALTER TABLE tbl_name TYPE = MYISAM; @end example The embedded MySQL versions doesn't support ISAM tables. The embedded MySQL versions doesn't support @code{ISAM} tables. @node HEAP, InnoDB, ISAM, Table types @section HEAP Tables Loading @@ -34816,7 +34818,7 @@ The embedded MySQL versions doesn't support ISAM tables. makes them very fast, but if MySQL crashes you will lose all data stored in them. @code{HEAP} is very useful for temporary tables! The MySQL internal HEAP tables use 100% dynamic hashing The MySQL internal @code{HEAP} tables use 100% dynamic hashing without overflow areas. There is no extra space needed for free lists. @code{HEAP} tables also don't have problems with delete + inserts, which normally is common with hashed tables: Loading Loading @@ -35331,6 +35333,12 @@ your job again, rather than wait for millions of disk i/os to complete. InnoDB version 3.23.44 features foreign key constraints. InnoDB is the first MySQL table type which allows you to define foreign key constraints to guard the integrity of your data. The syntax of a foreign key constraint definition in InnoDB: @example FOREIGN KEY (index_col_name, ...) REFERENCES table_name (index_col_name, ...) @end example An example: @example Loading @@ -35351,6 +35359,8 @@ The size and the signedness of integer types has to be same. When doing foreign key checks InnoDB sets shared row level locks on child or parent records it has to look at. InnoDB checks foreign key constraints immediately: the check is not deferred to transaction commit. InnoDB allows you to drop any table even though that would break the foreign key constraints which reference Loading Loading @@ -44837,7 +44847,7 @@ Some features: @item Import wizard to import structure and data from MS Access, MS Excel, Dbase, FoxPro, Paradox, and ODBC Databases. @item @uref{http://www.mysql.com/Downloads/Contrib/KMYENG113.zip} An administrator GUI for MySQL. Works only on windows, no source. An administrator GUI for MySQL. Works only on Windows, no source. Available in English and Japanese. By Mitunobu Kaneko. Home page: @uref{http://sql.jnts.ne.jp/} @end itemize Loading Loading @@ -45858,9 +45868,9 @@ argument is a binary string. @item Fixed core dump bug in @code{UPDATE ... ORDER BY}. @item Changed @code{INSERT INTO .. SELECT} to by default stop on errors. Changed @code{INSERT INTO .. SELECT} to stop on errors by default. @item Ignore @code{DATA DIRECTORY} and @code{INDEX DIRECTORY} directives on windows. Ignore @code{DATA DIRECTORY} and @code{INDEX DIRECTORY} directives on Windows. @item Added boolean fulltext search code. It should be considered early alpha. @item Loading Loading @@ -45892,7 +45902,7 @@ be able to handle these. Secure connections (with SSL). @item Unsigned @code{BIGINT} constants now work. @code{MIN()} and @code{MAX()} now handles signed and unsigned @code{BIGINT} numbers correctly. now handle signed and unsigned @code{BIGINT} numbers correctly. @item New character set @code{latin_de} which provides correct German sorting. @item Loading @@ -45901,7 +45911,7 @@ functions. One bonus is that @code{DELETE FROM table_name} now returns the number of deleted rows. @item @code{DROP DATABASE} now executes a @code{DROP TABLE} on all tables in the database, which fixes a problem with InnoDB tables. the database, which fixes a problem with @code{InnoDB} tables. @item Added support for @code{UNION}. @item Loading Loading @@ -46127,7 +46137,7 @@ Fixed problem with sjis character strings used within quoted table names. Fixed coredump when using @code{CREATE ... FULLTEXT} keys with other table handlers than MyISAM. @item Don't use @code{signal()} on windows because this appears to not be Don't use @code{signal()} on Windows because this appears to not be 100 % reliable. @item Fixed bug when doing @code{WHERE column_name=NULL} on an indexed column Loading Loading @@ -46278,7 +46288,7 @@ Don't force everything to lower cases on Windows. (To fix problem with Windows and @code{ALTER TABLE}). Now @code{--lower_case_names} also works on Unix. @item Fixed that automatic rollback that is done when thread end doesn't lock Fixed that automatic rollback is done when thread end doesn't lock other threads. @end itemize Loading Loading @@ -52222,7 +52232,7 @@ Pros for row locking: @item Fewer lock conflicts when accessing different rows in many threads. @item Less changes for rollbacks. Fewer changes for rollbacks. @item Makes it possible to lock a single row a long time. @end itemize Loading
Docs/manual.texi +41 −31 Original line number Diff line number Diff line Loading @@ -3903,8 +3903,8 @@ This can be used to skip over extra columns in the text file, or update columns based on expressions of the read data... @item @code{LOAD DATA INFILE 'file_name' INTO TABLE 'table_name' ERRORS TO err_table_name} This would cause any errors and warnings to be logged into the err_table_name table. That table would have a structure like: This would cause any errors and warnings to be logged into the @code{err_table_name} table. That table would have a structure like: @example line_number - line number in data file Loading @@ -3913,9 +3913,10 @@ and maybe data_line - the line from the data file @end example @item Add true @code{VARCHAR} support (There is already support for this in MyISAM). Add true @code{VARCHAR} support (There is already support for this in @code{MyISAM}). @item Automatic output from @code{mysql} to netscape. Automatic output from @code{mysql} to Netscape. @item @code{LOCK DATABASES}. (with various options) @item Loading Loading @@ -6954,18 +6955,19 @@ version 4.0; @itemize @bullet @item @code{LOCATE()} and @code{INSTR()} are case sensitive if neither argument is a binary string. binary strings. argument is a binary string. @item @code{INSERT INTO ... SELECT} had in 3.23 always @code{IGNORE} enabled. In 4.0.1 MySQL will stop (and possible rollback) in case of an error if you In 3.23, @code{INSERT INTO ... SELECT} always had @code{IGNORE} enabled. In 4.0.1, MySQL will stop (and possibly roll back) in case of an error if you don't specify @code{IGNORE}. @item @file{safe_mysqld} is renamed to @file{mysqld_safe}. @item The old C API functions @code{mysql_drop_db}, @code{mysql_create_db} and @code{mysql_connect} are not supported anymore, unless one compiles @code{mysql_connect} are not supported anymore, unless you compile MySQL with @code{CFLAGS=-DUSE_OLD_FUNCTIONS}. Instead of doing this, one should change the client to use the new 4.0 API. it is preferable to change the client to use the new 4.0 API. @item In the @code{MYSQL_FIELD} structure, @code{length} and @code{max_length} has changed from @code{unsigned int} to @code{unsigned long}. This should not Loading @@ -6989,7 +6991,7 @@ Format of @code{SHOW OPEN TABLE} has changed. Multithreaded clients should use @code{mysql_thread_init()} and @code{mysql_thread_end()}. @xref{Threaded clients}. @item If you want to recompile the perl DBD-MySQL module, you must get If you want to recompile the Perl DBD::mysql module, you must get Msql-Mysql-modules version 1.2218 or newer, because the older DBD modules used the deprecated @code{drop_db()} call. @item Loading Loading @@ -8346,7 +8348,7 @@ we may find some way to work around this problem.) @item @code{DROP TABLE} on a table that is in use by a @code{MERGE} table will not work on windows becasue @code{MERGE} handler does the table mapping not work on Windows because @code{MERGE} handler does the table mapping hidden from the upper layer of MySQL. Because Windows doesn't allow you to drop files that are open, you first must flush all @code{MERGE} tables (with @code{FLUSH TABLES}) or drop the @code{MERGE} table before Loading @@ -8354,7 +8356,7 @@ dropping the table. We will fix this at the same time we introduce @code{VIEW}s. @item @code{DATA DIRECTORY} and @code{INDEX DIRECTORY} directives in @code{CREATE TABLE} is ignored on windows, because windows doesn't support @code{CREATE TABLE} is ignored on Windows, because Windows doesn't support symbolic links. @end table Loading Loading @@ -34740,20 +34742,20 @@ corrupt the table. This will be fixed in MySQL 4.0.x. @item Creation of a table of type @code{MERGE} doesn't check if the underlying tables are of compatible types. If you use @code{MERGE} tables in this fasion you are very likely to run into strange problems. fashion, you are very likely to run into strange problems. @item If you use @code{ALTER TABLE} to first add an @code{UNIQUE} index to a table used in a @code{MERGE} table and then use @code{ALTER TABLE} to add a normal index on the @code{MERGE} table, the key order will be different for the tables if there was an old not-unique key in the different for the tables if there was an old non-unique key in the table. This is because @code{ALTER TABLE} puts @code{UNIQUE} keys before normal keys to be able to detect duplicate keys as early as possible. @item The range optimizer can't yet use @code{MERGE} table efficiently and may sometimes produce not optimal joins. This will be fixed in MySQL 4.0.x. sometimes produce non-optimal joins. This will be fixed in MySQL 4.0.x. @item @code{DROP TABLE} on a table that is in use by a @code{MERGE} table will not work on windows becasue @code{MERGE} handler does the table mapping not work on Windows because the @code{MERGE} handler does the table mapping hidden from the upper layer of MySQL. Because Windows doesn't allow you to drop files that are open, you first must flush all @code{MERGE} tables (with @code{FLUSH TABLES}) or drop the @code{MERGE} table before Loading @@ -34766,12 +34768,12 @@ dropping the table. We will fix this at the same time we introduce @cindex tables, ISAM You can also use the deprecated ISAM table type. This will disappear You can also use the deprecated @code{ISAM} table type. This will disappear rather soon (probably in MySQL 4.1) because @code{MyISAM} is a better implementation of the same thing. ISAM uses a @code{B-tree} index. The implementation of the same thing. @code{ISAM} uses a @code{B-tree} index. The index is stored in a file with the @code{.ISM} extension, and the data is stored in a file with the @code{.ISD} extension. You can check/repair ISAM tables with the @code{isamchk} utility. @xref{Crash check/repair @code{ISAM} tables with the @code{isamchk} utility. @xref{Crash recovery}. @code{ISAM} has the following features/properties: Loading @@ -34789,7 +34791,7 @@ tables. @xref{MyISAM}. The major differences compared to @code{MyISAM} tables are: @itemize @bullet @item ISAM tables are not binary portable across OS/Platforms. @item @code{ISAM} tables are not binary portable across OS/Platforms. @item Can't handle tables > 4G. @item Only support prefix compression on strings. @item Smaller key limits. Loading @@ -34805,7 +34807,7 @@ TABLE} statement: mysql> ALTER TABLE tbl_name TYPE = MYISAM; @end example The embedded MySQL versions doesn't support ISAM tables. The embedded MySQL versions doesn't support @code{ISAM} tables. @node HEAP, InnoDB, ISAM, Table types @section HEAP Tables Loading @@ -34816,7 +34818,7 @@ The embedded MySQL versions doesn't support ISAM tables. makes them very fast, but if MySQL crashes you will lose all data stored in them. @code{HEAP} is very useful for temporary tables! The MySQL internal HEAP tables use 100% dynamic hashing The MySQL internal @code{HEAP} tables use 100% dynamic hashing without overflow areas. There is no extra space needed for free lists. @code{HEAP} tables also don't have problems with delete + inserts, which normally is common with hashed tables: Loading Loading @@ -35331,6 +35333,12 @@ your job again, rather than wait for millions of disk i/os to complete. InnoDB version 3.23.44 features foreign key constraints. InnoDB is the first MySQL table type which allows you to define foreign key constraints to guard the integrity of your data. The syntax of a foreign key constraint definition in InnoDB: @example FOREIGN KEY (index_col_name, ...) REFERENCES table_name (index_col_name, ...) @end example An example: @example Loading @@ -35351,6 +35359,8 @@ The size and the signedness of integer types has to be same. When doing foreign key checks InnoDB sets shared row level locks on child or parent records it has to look at. InnoDB checks foreign key constraints immediately: the check is not deferred to transaction commit. InnoDB allows you to drop any table even though that would break the foreign key constraints which reference Loading Loading @@ -44837,7 +44847,7 @@ Some features: @item Import wizard to import structure and data from MS Access, MS Excel, Dbase, FoxPro, Paradox, and ODBC Databases. @item @uref{http://www.mysql.com/Downloads/Contrib/KMYENG113.zip} An administrator GUI for MySQL. Works only on windows, no source. An administrator GUI for MySQL. Works only on Windows, no source. Available in English and Japanese. By Mitunobu Kaneko. Home page: @uref{http://sql.jnts.ne.jp/} @end itemize Loading Loading @@ -45858,9 +45868,9 @@ argument is a binary string. @item Fixed core dump bug in @code{UPDATE ... ORDER BY}. @item Changed @code{INSERT INTO .. SELECT} to by default stop on errors. Changed @code{INSERT INTO .. SELECT} to stop on errors by default. @item Ignore @code{DATA DIRECTORY} and @code{INDEX DIRECTORY} directives on windows. Ignore @code{DATA DIRECTORY} and @code{INDEX DIRECTORY} directives on Windows. @item Added boolean fulltext search code. It should be considered early alpha. @item Loading Loading @@ -45892,7 +45902,7 @@ be able to handle these. Secure connections (with SSL). @item Unsigned @code{BIGINT} constants now work. @code{MIN()} and @code{MAX()} now handles signed and unsigned @code{BIGINT} numbers correctly. now handle signed and unsigned @code{BIGINT} numbers correctly. @item New character set @code{latin_de} which provides correct German sorting. @item Loading @@ -45901,7 +45911,7 @@ functions. One bonus is that @code{DELETE FROM table_name} now returns the number of deleted rows. @item @code{DROP DATABASE} now executes a @code{DROP TABLE} on all tables in the database, which fixes a problem with InnoDB tables. the database, which fixes a problem with @code{InnoDB} tables. @item Added support for @code{UNION}. @item Loading Loading @@ -46127,7 +46137,7 @@ Fixed problem with sjis character strings used within quoted table names. Fixed coredump when using @code{CREATE ... FULLTEXT} keys with other table handlers than MyISAM. @item Don't use @code{signal()} on windows because this appears to not be Don't use @code{signal()} on Windows because this appears to not be 100 % reliable. @item Fixed bug when doing @code{WHERE column_name=NULL} on an indexed column Loading Loading @@ -46278,7 +46288,7 @@ Don't force everything to lower cases on Windows. (To fix problem with Windows and @code{ALTER TABLE}). Now @code{--lower_case_names} also works on Unix. @item Fixed that automatic rollback that is done when thread end doesn't lock Fixed that automatic rollback is done when thread end doesn't lock other threads. @end itemize Loading Loading @@ -52222,7 +52232,7 @@ Pros for row locking: @item Fewer lock conflicts when accessing different rows in many threads. @item Less changes for rollbacks. Fewer changes for rollbacks. @item Makes it possible to lock a single row a long time. @end itemize