Commit 90933cc7 authored by serg@serg.mysql.com's avatar serg@serg.mysql.com

Merge work:/home/bk/mysql-4.0

into serg.mysql.com:/usr/home/serg/Abk/mysql-4.0
parents 163f0c85 c1120d05
......@@ -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
......@@ -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
......@@ -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
......@@ -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
......@@ -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
......@@ -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
......@@ -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
......@@ -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:
......@@ -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.
......@@ -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
......@@ -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:
......@@ -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
......@@ -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
......@@ -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
......@@ -45856,11 +45866,11 @@ able to use boolean fulltext search}.
@code{LOCATE()} and @code{INSTR()} are case sensitive if neither
argument is a binary string.
@item
Fixed core dump bug in @code{UPDATE ... ORDER BY }.
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
......@@ -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
......@@ -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
......@@ -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
......@@ -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
......@@ -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
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