This is what has to be done in the real near future....
Everything in this list is in the order it will be done.
If you want to affect the priority order, please register a licence or
support us and tell us your what you want to have done more quickly.

Fix all bugs in the 3.20.x version.

In next major release (version 3.21.0):

- Move the WHERE optimization from UNIREG to MySQL
- Fix a full WHERE clause (expressions)
- Change fields to classes.
- Implement binary fields.

To be done soon after that:

- ALPHA and HPUX port
- Fix support of calculation in filesort		(1 day)
  Add support of NULL fields in filesort
- Add optimized operation IN				(1 day)
- Fix ODBC to 3.0.
- INNER/OUTER JOINS in some form.
- Fix that temporary HEAP tables is automaticly converted to NISAM if one
  they get to big.
- Split item_func.cc in two tables to get around that gcc uses too much memory
  compiling it.
- Fix libmysql.c to allow two preceding mysql_query() command without
  reading results or give a nice error message.
- Fix mysqlperl to use mysql_real_query, but I don't know enough of the
  Perl API to fix this.
- Change COUNT(),MIN() functions to return a row of 0 and NULLS when not
  used with a GROUP BY.
- Allow SUM functions to be used anywhere in expression
  (eg select SUM(number)/10 from table)
- A distributable test/benchmark/example suite for MySQL. Preferable
  using the DBD perl interface. This so that results can be verifyed
  by running the same queries on different databases and comparing the
  results.
- Use IP of client if hostname can't be found.
- Change conv_blob to handle blob as a text field.
- Entry for DECRYPT() and ENCRYPT();
- Logging of why one gets 'access denied'
- Remove THD->packet and make it dynamic.
- Make dynamic packets for client.
- Add option to mysqldump to dump data with 'SELECT * INTO OUTFILE...'

This has to be done sometimes:

- Return error number for error messages to client.
- Alarm round client connect/read/write functions.
- Subqueries. 'select id from t where grp in (select grp from g where u > 100)'
- Fix sorting and grouping of blobs.
- Add command EXPLAIN to see what the optimizer has done.
- Change sql_yacc.y to a inline parser to get down it's size and get better
  error messages (5 days)
- Atomic updates
- Change reading through tables to use memmap when possible. Now
  only compressed tables use memmap.
- Grant table for tables.
- Make a SQL standard GRANT command with MySQL extensions.
- Fix completion of table names, column names and functions in MySQL
  (Should be easy with gnu readline).
- mysqladmin kill thread
- group on results not in the column part.
- Change CREATE INDEX to use ALTER TABLE or add secondary indexes
- Change DROP INDEX to use ALTER TABLE or use secondary indexes.
- Support for BINARY data.
- Recode flush_key_blocks for more speed.
- Make a mysqld version with isn't multithreaded (2-4 days)
- Fix up the automatic timestamp code.
 
Time is given according to amount of work, not real time. I am doing this on
my spare time, but TCX is a very flexible company and it have given me a lot
of time to put into this.

SOME THINGS WE DON'T HAVE ANY PLANS TO INCLUDE:

- Transactions with rollback (we mainly do selects, and because we don't do
  transactions we can be much quicker on everything else). We will support
  some kind of atomic operations on multiple tables.
