This section summarizes the features that we plan to implement in MySQL Server. The items are ordered by release series. Within a list, items are shown in approximately the order they will be done. Note: If you are an enterprise-level user with an urgent need for a particular feature, please contact sales@mysql.com to discuss sponsoring options. Targeted financing by sponsor companies allows us to allocate additional resources for specific purposes. One example of a feature sponsored in the past is replication. 1.6.1 New Features Planned for 4.1 The following features are not yet implemented in MySQL 4.1, but are planned for implementation as MySQL 4.1 moves into its beta phase. For a list what is already done in MySQL 4.1, see Section 1.5.2.1, "Features Available in MySQL 4.1." -
Stable OpenSSL support (MySQL 4.0 supports rudimentary, not 100% tested , support for OpenSSL). -
More testing of prepared statements. -
More testing of multiple character sets for one table. 1.6.2 New Features Planned for 5.0 The following features are planned for inclusion into MySQL 5.0. Some of the features such as stored procedures are complete and are included in MySQL 5.0 alpha, which is available now. Others such as cursors are only partially available. Expect these and other features to mature and be fully supported in upcoming releases. Note that because we have many developers that are working on different projects, there will also be many additional features. There is also a small chance that some of these features will be added to MySQL 4.1. For a list what is already done in MySQL 4.1, see Section 1.5.2.1, "Features Available in MySQL 4.1." For those wishing to take a look at the bleeding edge of MySQL development, we make our BitKeeper repository for MySQL version 5.0 publicly available. As of December 2003, binary builds of version 5.0 are also available. The news section of the online manual includes a more in-depth list of features. See http://dev.mysql.com/doc/mysql/en/News.html. 1.6.3 New Features Planned for 5.1 -
New functionality -
FOREIGN KEY support for all table types, not just InnoDB . -
Column-level constraints. -
Online backup with very low performance penalty. The online backup will make it easy to add a new replication slave without taking down the master. -
Speed enhancements -
New text-based table definition file format ( .frm files) and a table cache for table definitions. This will enable us to do faster queries of table structures and do more efficient foreign key support. -
Optimize the BIT type to take one bit. ( BIT now takes one byte; it is treated as a synonym for TINYINT .) -
Usability enhancements -
Add options to the client/server protocol to get progress notes for long running commands. -
Implement RENAME DATABASE . To make this safe for all storage engines, it should work as follows : -
-
For every table, do a rename of the table to another database, as we do with the RENAME command. -
-
New internal file interface change. This will make all file handling much more general and make it easier to add extensions like RAID. 1.6.4 New Features Planned for the Near Future 1.6.5 New Features Planned for the Mid-Term Future -
Implement function: get_changed_tables( timeout,table1,table2 ,...) . -
Change reading through tables to use mmap() when possible. Now only compressed tables use mmap() . -
Make the automatic timestamp code nicer. Add timestamps to the update log with SET TIMESTAMP= val ; . -
Use read/write mutex in some places to get more speed. -
Automatically close some tables if a table, temporary table, or temporary file gets error 23 (too many open files). -
Better constant propagation. When an occurrence of col_name = n is found in an expression, for some constant n , replace other occurrences of col_name within the expression with n . Currently, this is done only for some simple cases. -
Change all const expressions with calculated expressions if possible. -
Optimize key = expr comparisons. At the moment, only key = column or key = constant comparisons are optimized. -
Join some of the copy functions for nicer code. -
Change sql_yacc.yy to an inline parser to reduce its size and get better error messages. -
Change the parser to use only one rule per different number of arguments in function. -
Use of full calculation names in the order part (for Access97). -
MINUS , INTERSECT , and FULL OUTER JOIN . (Currently UNION and LEFTRIGHT OUTER JOIN are supported.) -
Allow SQL_OPTION MAX_SELECT_TIME= val , for placing a time limit on a query. -
Allow updates to be logged to a database. -
Enhance LIMIT to allow retrieval of data from the end of a result set. -
Alarm around client connect/read/write functions. -
Please note the changes to mysqld_safe : According to FSSTND (which Debian tries to follow), PID files should go into /var/run/<progname>.pid and log files into /var/log . It would be nice if you could put the "DATADIR" in the first declaration of "pidfile" and "log" so that the placement of these files can be changed with a single statement. -
Allow a client to request logging. -
Allow the LOAD DATA INFILE statement to read files that have been compressed with gzip . -
Fix sorting and grouping of BLOB columns (partly solved now). -
Change to use semaphores when counting threads. One should first implement a semaphore library for MIT-pthreads. -
Add full support for JOIN with parentheses. -
As an alternative to the one-thread-per-connection model, manage a pool of threads to handle queries. -
Allow GET_LOCK() to obtain more than one lock. When doing this, it is also necessary to handle the possible deadlocks this change will introduce. 1.6.6 New Features We Don't Plan to Implement We aim toward full compliance with ANSI/ISO SQL. There are no features we plan not to implement. |