Some style and consistency cleanups.

Adjusting target versions for implementation of new features.
Removed already implemented features from todo.
parent fcc8e364
...@@ -1829,7 +1829,7 @@ possible to know how many rows a query would have returned without a ...@@ -1829,7 +1829,7 @@ possible to know how many rows a query would have returned without a
@node Nutshell Future features, Nutshell 4.1 development release, Nutshell Other features, MySQL 4.0 In A Nutshell @node Nutshell Future features, Nutshell 4.1 development release, Nutshell Other features, MySQL 4.0 In A Nutshell
@subsection Future MySQL 4.0 Features @subsection Future MySQL 4.0 Features
For the upcoming MySQL Server 4.0 releases (4.0.1, 4.0.2, and onward), For the upcoming MySQL Server 4.x releases,
expect the following features now still under development: expect the following features now still under development:
@itemize @bullet @itemize @bullet
...@@ -2876,7 +2876,7 @@ extra conditions in this case. ...@@ -2876,7 +2876,7 @@ extra conditions in this case.
@end itemize @end itemize
@menu @menu
* ANSI diff Sub-selects:: Sub-@code{SELECT}s * ANSI diff Sub-selects:: Sub@code{SELECT}s
* ANSI diff SELECT INTO TABLE:: @code{SELECT INTO TABLE} * ANSI diff SELECT INTO TABLE:: @code{SELECT INTO TABLE}
* ANSI diff Transactions:: Transactions and Atomic Operations * ANSI diff Transactions:: Transactions and Atomic Operations
* ANSI diff Triggers:: Stored Procedures and Triggers * ANSI diff Triggers:: Stored Procedures and Triggers
...@@ -2892,16 +2892,16 @@ That is the latest version of the TODO list in this manual. @xref{TODO}. ...@@ -2892,16 +2892,16 @@ That is the latest version of the TODO list in this manual. @xref{TODO}.
@node ANSI diff Sub-selects, ANSI diff SELECT INTO TABLE, Differences from ANSI, Differences from ANSI @node ANSI diff Sub-selects, ANSI diff SELECT INTO TABLE, Differences from ANSI, Differences from ANSI
@subsubsection Sub-@code{SELECT}s @subsubsection Sub@code{SELECT}s
@cindex sub-selects @cindex sub@code{SELECT}s
MySQL Server currently only supports nested queries of the form MySQL Server currently only supports nested queries of the form
@code{INSERT ... SELECT ...} and @code{REPLACE ... SELECT ...}. @code{INSERT ... SELECT ...} and @code{REPLACE ... SELECT ...}.
You can, however, use the function @code{IN()} in other contexts. You can, however, use the function @code{IN()} in other contexts.
Sub-selects are scheduled for implementation in Version 4.x. Subselects are currently being implemented in the 4.1 development tree.
Meanwhile, you can often rewrite the query without a sub-select: Meanwhile, you can often rewrite the query without a subselect:
@example @example
SELECT * FROM table1 WHERE id IN (SELECT id FROM table2); SELECT * FROM table1 WHERE id IN (SELECT id FROM table2);
...@@ -2931,7 +2931,7 @@ For more complicated subqueries you can often create temporary tables ...@@ -2931,7 +2931,7 @@ For more complicated subqueries you can often create temporary tables
to hold the subquery. In some cases, however, this option will not to hold the subquery. In some cases, however, this option will not
work. The most frequently encountered of these cases arises with work. The most frequently encountered of these cases arises with
@code{DELETE} statements, for which standard SQL does not support joins @code{DELETE} statements, for which standard SQL does not support joins
(except in sub-selects). For this situation there are two options (except in subselects). For this situation there are two options
available until subqueries are supported by MySQL Server. available until subqueries are supported by MySQL Server.
The first option is to use a procedural programming language (such as The first option is to use a procedural programming language (such as
...@@ -3202,7 +3202,7 @@ transactions are deleted. ...@@ -3202,7 +3202,7 @@ transactions are deleted.
The planned update language will be able to handle stored procedures. The planned update language will be able to handle stored procedures.
Our aim is to have stored procedures implemented in MySQL Server around Our aim is to have stored procedures implemented in MySQL Server around
version 4.1. We are also looking at triggers. version 5.0. We are also looking at triggers.
@node ANSI diff Foreign Keys, ANSI diff Views, ANSI diff Triggers, Differences from ANSI @node ANSI diff Foreign Keys, ANSI diff Views, ANSI diff Triggers, Differences from ANSI
...@@ -3296,7 +3296,7 @@ to back up or restore individual tables. ...@@ -3296,7 +3296,7 @@ to back up or restore individual tables.
@cindex views @cindex views
It is planned to implement views in MySQL Server around version 4.1. It is planned to implement views in MySQL Server around version 5.0.
Views are mostly useful for letting users access a set of relations as one Views are mostly useful for letting users access a set of relations as one
table (in read-only mode). Many SQL databases don't allow one to update table (in read-only mode). Many SQL databases don't allow one to update
...@@ -3673,7 +3673,7 @@ For platform-specific bugs, see the sections about compiling and porting. ...@@ -3673,7 +3673,7 @@ For platform-specific bugs, see the sections about compiling and porting.
* TODO unplanned:: Things We Don't Plan To Do * TODO unplanned:: Things We Don't Plan To Do
@end menu @end menu
This appendix lists the features that we plan to implement in MySQL Server. This section lists the features that we plan to implement in MySQL Server.
Everything in this list is approximately in the order it will be done. If you Everything in this list is approximately in the order it will be done. If you
want to affect the priority order, please register a license or support us and want to affect the priority order, please register a license or support us and
...@@ -3681,7 +3681,7 @@ tell us what you want to have done more quickly. @xref{Licensing and Support}. ...@@ -3681,7 +3681,7 @@ tell us what you want to have done more quickly. @xref{Licensing and Support}.
The plan is that we in the future will support the full ANSI SQL99 The plan is that we in the future will support the full ANSI SQL99
standard, but with a lot of useful extensions. The challenge is to do standard, but with a lot of useful extensions. The challenge is to do
this without sacrifying the speed or compromising the code. this without sacrificing the speed or compromising the code.
@node TODO MySQL 4.0, TODO MySQL 4.1, TODO, TODO @node TODO MySQL 4.0, TODO MySQL 4.1, TODO, TODO
...@@ -3737,9 +3737,11 @@ Some of the work on MySQL 4.1 is already in progress. ...@@ -3737,9 +3737,11 @@ Some of the work on MySQL 4.1 is already in progress.
@itemize @bullet @itemize @bullet
@item @item
Subqueries. Subqueries.
@code{SELECT id FROM t WHERE grp IN (SELECT grp FROM g WHERE u > 100)} @example
SELECT id FROM t WHERE grp IN (SELECT grp FROM g WHERE u > 100);
@end example
@item @item
Foreign keys, including cascading delete. Foreign keys for @code{MyISAM} tables, including cascading delete.
@item @item
Fail-safe replication. Fail-safe replication.
@item @item
...@@ -3773,13 +3775,13 @@ able to choose the right index when there are many to choose from. We should ...@@ -3773,13 +3775,13 @@ able to choose the right index when there are many to choose from. We should
also extend the info interface to get the key distribution for each index, also extend the info interface to get the key distribution for each index,
if @code{analyze} is run on all subtables. if @code{analyze} is run on all subtables.
@item @item
@code{RENAME TABLE} on a table used in an active @code{MERGE} table may Resolving the issue of @code{RENAME TABLE} on a table used in an active
corrupt the table. @code{MERGE} table possibly corrupting the table.
@item @item
A faster, smaller embedded MySQL library. (Compatible with the old one.) A faster, smaller embedded MySQL library (compatible with the old one).
@item @item
Stable openssl support. (MySQL 4.0 supports rudimentary, not 100% tested, Stable OpenSSL support (MySQL 4.0 supports rudimentary, not 100% tested,
support for openssl). support for OpenSSL).
@item @item
Add support for sorting on @code{UNICODE}. Add support for sorting on @code{UNICODE}.
@item @item
...@@ -3835,8 +3837,11 @@ Faster row handling (less copying) ...@@ -3835,8 +3837,11 @@ Faster row handling (less copying)
@itemize @bullet @itemize @bullet
@item @item
Atomic multi-table updates@-e.g., @code{update items,month set Atomic multi-table updates:
items.price=month.price where items.id=month.id;}; @example
UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;
@end example
@item @item
Don't allow more than a defined number of threads to run MyISAM recover Don't allow more than a defined number of threads to run MyISAM recover
at the same time. at the same time.
...@@ -3851,9 +3856,6 @@ Multiple result sets. ...@@ -3851,9 +3856,6 @@ Multiple result sets.
Make it possible to specify @code{long_query_time} with a granularity Make it possible to specify @code{long_query_time} with a granularity
in microseconds. in microseconds.
@item @item
Add a configurable prompt to the @code{mysql} command-line client, with
options like database in use, time and date...
@item
Link the @code{myisampack} code into the server. Link the @code{myisampack} code into the server.
@item @item
Port of the MySQL code to QNX. Port of the MySQL code to QNX.
...@@ -4061,8 +4063,8 @@ log with @code{SET TIMESTAMP=#;}. ...@@ -4061,8 +4063,8 @@ log with @code{SET TIMESTAMP=#;}.
@item @item
Use read/write mutex in some places to get more speed. Use read/write mutex in some places to get more speed.
@item @item
Full foreign key support. One probably wants to implement a procedural Full foreign key support in for @code{MyISAM} tables, probably after
language first. the implementation of stored procedures with triggers.
@item @item
Simple views (first on one table, later on any expression). Simple views (first on one table, later on any expression).
@item @item
...@@ -4092,9 +4094,9 @@ Use of full calculation names in the order part (for ACCESS97). ...@@ -4092,9 +4094,9 @@ Use of full calculation names in the order part (for ACCESS97).
@item @item
@code{SQL_OPTION MAX_SELECT_TIME=#} to put a time limit on a query. @code{SQL_OPTION MAX_SELECT_TIME=#} to put a time limit on a query.
@item @item
Make the update log to a database. Make the update log write to a database.
@item @item
Negative @code{LIMIT} to retrieve data from the end. Add to @code{LIMIT} to allow retrieval of data from the end of a result set.
@item @item
Alarm around client connect/read/write functions. Alarm around client connect/read/write functions.
@item @item
...@@ -13360,7 +13362,7 @@ SELECT MAX(article) AS article FROM shop ...@@ -13360,7 +13362,7 @@ SELECT MAX(article) AS article FROM shop
``Find number, dealer, and price of the most expensive article.'' ``Find number, dealer, and price of the most expensive article.''
In ANSI SQL this is easily done with a sub-query: In ANSI SQL this is easily done with a subquery:
@example @example
SELECT article, dealer, price SELECT article, dealer, price
...@@ -13368,7 +13370,7 @@ FROM shop ...@@ -13368,7 +13370,7 @@ FROM shop
WHERE price=(SELECT MAX(price) FROM shop) WHERE price=(SELECT MAX(price) FROM shop)
@end example @end example
In MySQL (which does not yet have sub-selects), just do it in In MySQL (which does not yet have subselects), just do it in
two steps: two steps:
@enumerate @enumerate
...@@ -13423,7 +13425,7 @@ GROUP BY article ...@@ -13423,7 +13425,7 @@ GROUP BY article
``For each article, find the dealer(s) with the most expensive price.'' ``For each article, find the dealer(s) with the most expensive price.''
In ANSI SQL, I'd do it with a sub-query like this: In ANSI SQL, I'd do it with a subquery like this:
@example @example
SELECT article, dealer, price SELECT article, dealer, price
...@@ -15035,7 +15037,7 @@ to make things much harder. To make things even more secure you should use ...@@ -15035,7 +15037,7 @@ to make things much harder. To make things even more secure you should use
@uref{http://www.ssh.com/}. With this, you can get an encrypted TCP/IP @uref{http://www.ssh.com/}. With this, you can get an encrypted TCP/IP
connection between a MySQL server and a MySQL client. connection between a MySQL server and a MySQL client.
If you are using MySQL 4.0, you can also use internal openssl support. If you are using MySQL 4.0, you can also use internal OpenSSL support.
@xref{Secure connections}. @xref{Secure connections}.
To make a MySQL system secure, you should strongly consider the To make a MySQL system secure, you should strongly consider the
...@@ -17366,7 +17368,7 @@ file. ...@@ -17366,7 +17368,7 @@ file.
@node Secure connections, , Password security, User Account Management @node Secure connections, , Password security, User Account Management
@subsection Using Secure Connections @subsection Using Secure Connections
@cindex openssl @cindex OpenSSL
@cindex SSL and X509 Basics @cindex SSL and X509 Basics
@menu @menu
...@@ -17431,7 +17433,7 @@ To get secure connections to work with MySQL you must do the following: ...@@ -17431,7 +17433,7 @@ To get secure connections to work with MySQL you must do the following:
@enumerate @enumerate
@item @item
Install the openssl library. We have tested MySQL with openssl 0.9.6. Install the OpenSSL library. We have tested MySQL with OpenSSL 0.9.6.
@uref{http://www.openssl.org/}. @uref{http://www.openssl.org/}.
@item @item
Configure MySQL with @code{--with-vio --with-openssl}. Configure MySQL with @code{--with-vio --with-openssl}.
...@@ -17440,7 +17442,7 @@ If you are using an old MySQL installation, you have to update your ...@@ -17440,7 +17442,7 @@ If you are using an old MySQL installation, you have to update your
@code{mysql.user} table with some new columns. You can do this by @code{mysql.user} table with some new columns. You can do this by
running the @code{mysql_fix_privilege_tables.sh} script. running the @code{mysql_fix_privilege_tables.sh} script.
@item @item
You can check if a running mysqld server supports @code{openssl} by You can check if a running mysqld server supports OpenSSL by
examining if @code{SHOW VARIABLES LIKE 'have_openssl'} returns @code{YES}. examining if @code{SHOW VARIABLES LIKE 'have_openssl'} returns @code{YES}.
@end enumerate @end enumerate
...@@ -34158,7 +34160,7 @@ The target table of the @code{INSERT} statement cannot appear in the ...@@ -34158,7 +34160,7 @@ The target table of the @code{INSERT} statement cannot appear in the
forbidden in ANSI SQL to @code{SELECT} from the same table into which you are forbidden in ANSI SQL to @code{SELECT} from the same table into which you are
inserting. (The problem is that the @code{SELECT} possibly would inserting. (The problem is that the @code{SELECT} possibly would
find records that were inserted earlier during the same run. When using find records that were inserted earlier during the same run. When using
sub-select clauses, the situation could easily be very confusing!) subselect clauses, the situation could easily be very confusing!)
@item @item
@code{AUTO_INCREMENT} columns work as usual. @code{AUTO_INCREMENT} columns work as usual.
...@@ -47757,7 +47759,7 @@ decide which rows from the result set should be used. ...@@ -47757,7 +47759,7 @@ decide which rows from the result set should be used.
@cindex rows, deleting @cindex rows, deleting
@cindex tables, deleting rows @cindex tables, deleting rows
As MySQL doesn't yet support sub-selects, nor the use of more than one As MySQL doesn't yet support subselects, nor the use of more than one
table in the @code{DELETE} statement (prior to Version 4.0), you should table in the @code{DELETE} statement (prior to Version 4.0), you should
use the following approach to delete rows from 2 related tables: use the following approach to delete rows from 2 related tables:
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