Oracle-like CONNECT BY PRIOR ... to search tree-like (hierarchical)
structures.
Add all missing SQL-92 and ODBC 3.0 types.
Add SUM(DISTINCT).
INSERT SQL_CONCURRENT and mysqld --concurrent-insert to do
a concurrent insert at the end of a table if the table is read-locked.
Allow variables to be updated in UPDATE statements. For example:
UPDATE TABLE foo SET @a=a+b,a=@a, b=@a+c.
Change when user variables are updated so that one can use them with
GROUP BY, as in the following example:
SELECT id, @a:=COUNT(*), SUM(sum_col)/@a FROM table_name GROUP BY id.
Add an IMAGE option to LOAD DATA INFILE to not update
TIMESTAMP and AUTO_INCREMENT fields.
Add LOAD DATA INFILE ... UPDATE syntax that works like this:
For tables with primary keys, if an input record contains a primary key
value, existing rows matching that primary key value are updated from the
remainder of the input columns. However, columns corresponding to columns
that are missing from the input record are not touched.
For tables with primary keys, if an input record does not contain the primary
key value or is missing some part of the key, the record is treated as
LOAD DATA INFILE ... REPLACE INTO.
Make LOAD DATA INFILE understand syntax like:
LOAD DATA INFILE 'file_name.txt' INTO TABLE tbl_name
TEXT_FIELDS (text_field1, text_field2, text_field3)
SET table_field1=CONCAT(text_field1, text_field2),
table_field3=23
IGNORE text_field3
This can be used to skip over extra columns in the text file,
or update columns based on expressions of the read data.
New functions for working with SET type columns:
If you abort mysql in the middle of a query, you should open
another connection and kill the old running query.
Alternatively, an attempt should be made to detect this in the server.
Add a storage engine interface for table information so that you can use it as a system
table. This would be a bit slow if you requested information about all tables,
but very flexible. SHOW INFO FROM tbl_name for basic table information
should be implemented.
Allow SELECT a FROM table_name1 LEFT JOIN table_name2 USING (a); in this
case a is assumed to come from the table_name1 table.
DELETE and REPLACE options to the UPDATE statement
(this will delete rows when one gets a duplicate key error while updating).
Change the format of DATETIME to store fractions of seconds.
Make it possible to use the new GNU regexp library instead of the current
one (the new library should be much faster than the current one).