Commit e029af11 authored by unknown's avatar unknown

Merge work:/home/bk/mysql-4.0

into serg.mysql.com:/usr/home/serg/Abk/mysql-4.0


Docs/manual.texi:
  Auto merged
parents bf1cd0c4 f7a2939f
...@@ -3903,8 +3903,8 @@ This can be used to skip over extra columns in the text file, ...@@ -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... or update columns based on expressions of the read data...
@item @item
@code{LOAD DATA INFILE 'file_name' INTO TABLE 'table_name' ERRORS TO err_table_name} @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 This would cause any errors and warnings to be logged into the
table. That table would have a structure like: @code{err_table_name} table. That table would have a structure like:
@example @example
line_number - line number in data file line_number - line number in data file
...@@ -3913,9 +3913,10 @@ and maybe ...@@ -3913,9 +3913,10 @@ and maybe
data_line - the line from the data file data_line - the line from the data file
@end example @end example
@item @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 @item
Automatic output from @code{mysql} to netscape. Automatic output from @code{mysql} to Netscape.
@item @item
@code{LOCK DATABASES}. (with various options) @code{LOCK DATABASES}. (with various options)
@item @item
...@@ -6954,18 +6955,19 @@ version 4.0; ...@@ -6954,18 +6955,19 @@ version 4.0;
@itemize @bullet @itemize @bullet
@item @item
@code{LOCATE()} and @code{INSTR()} are case sensitive if neither @code{LOCATE()} and @code{INSTR()} are case sensitive if neither
argument is a binary string. binary strings. argument is a binary string.
@item @item
@code{INSERT INTO ... SELECT} had in 3.23 always @code{IGNORE} enabled. In 3.23,
In 4.0.1 MySQL will stop (and possible rollback) in case of an error if you @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}. don't specify @code{IGNORE}.
@item @item
@file{safe_mysqld} is renamed to @file{mysqld_safe}. @file{safe_mysqld} is renamed to @file{mysqld_safe}.
@item @item
The old C API functions @code{mysql_drop_db}, @code{mysql_create_db} and 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, 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 @item
In the @code{MYSQL_FIELD} structure, @code{length} and @code{max_length} has 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 changed from @code{unsigned int} to @code{unsigned long}. This should not
...@@ -6989,7 +6991,7 @@ Format of @code{SHOW OPEN TABLE} has changed. ...@@ -6989,7 +6991,7 @@ Format of @code{SHOW OPEN TABLE} has changed.
Multithreaded clients should use @code{mysql_thread_init()} and Multithreaded clients should use @code{mysql_thread_init()} and
@code{mysql_thread_end()}. @xref{Threaded clients}. @code{mysql_thread_end()}. @xref{Threaded clients}.
@item @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 Msql-Mysql-modules version 1.2218 or newer, because the older DBD modules
used the deprecated @code{drop_db()} call. used the deprecated @code{drop_db()} call.
@item @item
...@@ -8346,7 +8348,7 @@ we may find some way to work around this problem.) ...@@ -8346,7 +8348,7 @@ we may find some way to work around this problem.)
@item @item
@code{DROP TABLE} on a table that is in use by a @code{MERGE} table will @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 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} 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 tables (with @code{FLUSH TABLES}) or drop the @code{MERGE} table before
...@@ -8354,7 +8356,7 @@ dropping the table. We will fix this at the same time we introduce ...@@ -8354,7 +8356,7 @@ dropping the table. We will fix this at the same time we introduce
@code{VIEW}s. @code{VIEW}s.
@item @item
@code{DATA DIRECTORY} and @code{INDEX DIRECTORY} directives in @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. symbolic links.
@end table @end table
...@@ -34740,20 +34742,20 @@ corrupt the table. This will be fixed in MySQL 4.0.x. ...@@ -34740,20 +34742,20 @@ corrupt the table. This will be fixed in MySQL 4.0.x.
@item @item
Creation of a table of type @code{MERGE} doesn't check if the underlying 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 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 @item
If you use @code{ALTER TABLE} to first add an @code{UNIQUE} index to a 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 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 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 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. normal keys to be able to detect duplicate keys as early as possible.
@item @item
The range optimizer can't yet use @code{MERGE} table efficiently and may 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 @item
@code{DROP TABLE} on a table that is in use by a @code{MERGE} table will @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 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} 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 tables (with @code{FLUSH TABLES}) or drop the @code{MERGE} table before
...@@ -34766,12 +34768,12 @@ dropping the table. We will fix this at the same time we introduce ...@@ -34766,12 +34768,12 @@ dropping the table. We will fix this at the same time we introduce
@cindex tables, ISAM @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 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 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 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}. recovery}.
@code{ISAM} has the following features/properties: @code{ISAM} has the following features/properties:
...@@ -34789,7 +34791,7 @@ tables. @xref{MyISAM}. The major differences compared to @code{MyISAM} ...@@ -34789,7 +34791,7 @@ tables. @xref{MyISAM}. The major differences compared to @code{MyISAM}
tables are: tables are:
@itemize @bullet @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 Can't handle tables > 4G.
@item Only support prefix compression on strings. @item Only support prefix compression on strings.
@item Smaller key limits. @item Smaller key limits.
...@@ -34805,7 +34807,7 @@ TABLE} statement: ...@@ -34805,7 +34807,7 @@ TABLE} statement:
mysql> ALTER TABLE tbl_name TYPE = MYISAM; mysql> ALTER TABLE tbl_name TYPE = MYISAM;
@end example @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 @node HEAP, InnoDB, ISAM, Table types
@section HEAP Tables @section HEAP Tables
...@@ -34816,7 +34818,7 @@ The embedded MySQL versions doesn't support ISAM tables. ...@@ -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 makes them very fast, but if MySQL crashes you will lose all
data stored in them. @code{HEAP} is very useful for temporary tables! 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. without overflow areas. There is no extra space needed for free lists.
@code{HEAP} tables also don't have problems with delete + inserts, which @code{HEAP} tables also don't have problems with delete + inserts, which
normally is common with hashed tables: normally is common with hashed tables:
...@@ -35331,6 +35333,12 @@ your job again, rather than wait for millions of disk i/os to complete. ...@@ -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 InnoDB version 3.23.44 features foreign key constraints. InnoDB is the
first MySQL table type which allows you to define foreign key first MySQL table type which allows you to define foreign key
constraints to guard the integrity of your data. 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: An example:
@example @example
...@@ -35351,6 +35359,8 @@ The size and the signedness of integer types has to be same. ...@@ -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 When doing foreign key checks InnoDB sets shared row
level locks on child or parent records it has to look at. 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 InnoDB allows you to drop any table even though that
would break the foreign key constraints which reference would break the foreign key constraints which reference
...@@ -44837,7 +44847,7 @@ Some features: ...@@ -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 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} @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. Available in English and Japanese. By Mitunobu Kaneko.
Home page: @uref{http://sql.jnts.ne.jp/} Home page: @uref{http://sql.jnts.ne.jp/}
@end itemize @end itemize
...@@ -45856,11 +45866,11 @@ able to use boolean fulltext search}. ...@@ -45856,11 +45866,11 @@ able to use boolean fulltext search}.
@code{LOCATE()} and @code{INSTR()} are case sensitive if neither @code{LOCATE()} and @code{INSTR()} are case sensitive if neither
argument is a binary string. argument is a binary string.
@item @item
Fixed core dump bug in @code{UPDATE ... ORDER BY }. Fixed core dump bug in @code{UPDATE ... ORDER BY}.
@item @item
Changed @code{INSERT INTO .. SELECT} to by default stop on errors. Changed @code{INSERT INTO .. SELECT} to stop on errors by default.
@item @item
Ignore @code{DATA DIRECTORY} and @code{INDEX DIRECTORY} directives on windows. Ignore @code{DATA DIRECTORY} and @code{INDEX DIRECTORY} directives on Windows.
@item @item
Added boolean fulltext search code. It should be considered early alpha. Added boolean fulltext search code. It should be considered early alpha.
@item @item
...@@ -45892,7 +45902,7 @@ be able to handle these. ...@@ -45892,7 +45902,7 @@ be able to handle these.
Secure connections (with SSL). Secure connections (with SSL).
@item @item
Unsigned @code{BIGINT} constants now work. @code{MIN()} and @code{MAX()} 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 @item
New character set @code{latin_de} which provides correct German sorting. New character set @code{latin_de} which provides correct German sorting.
@item @item
...@@ -45901,7 +45911,7 @@ functions. One bonus is that @code{DELETE FROM table_name} now returns ...@@ -45901,7 +45911,7 @@ functions. One bonus is that @code{DELETE FROM table_name} now returns
the number of deleted rows. the number of deleted rows.
@item @item
@code{DROP DATABASE} now executes a @code{DROP TABLE} on all tables in @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 @item
Added support for @code{UNION}. Added support for @code{UNION}.
@item @item
...@@ -46127,7 +46137,7 @@ Fixed problem with sjis character strings used within quoted table names. ...@@ -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 Fixed coredump when using @code{CREATE ... FULLTEXT} keys with other table
handlers than MyISAM. handlers than MyISAM.
@item @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. 100 % reliable.
@item @item
Fixed bug when doing @code{WHERE column_name=NULL} on an indexed column Fixed bug when doing @code{WHERE column_name=NULL} on an indexed column
...@@ -46278,7 +46288,7 @@ Don't force everything to lower cases on Windows. (To fix problem ...@@ -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} with Windows and @code{ALTER TABLE}). Now @code{--lower_case_names}
also works on Unix. also works on Unix.
@item @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. other threads.
@end itemize @end itemize
...@@ -52222,7 +52232,7 @@ Pros for row locking: ...@@ -52222,7 +52232,7 @@ Pros for row locking:
@item @item
Fewer lock conflicts when accessing different rows in many threads. Fewer lock conflicts when accessing different rows in many threads.
@item @item
Less changes for rollbacks. Fewer changes for rollbacks.
@item @item
Makes it possible to lock a single row a long time. Makes it possible to lock a single row a long time.
@end itemize @end itemize
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment