F.2 Things that have to be done sometime

  • Implement function: get_changed_tables(timeout,table1,table2,...)
  • Implement function: LAST_UPDATED(tbl_name)
  • Atomic updates; This includes a language that one can even use for a set of stored procedures.
  • update items,month set items.price=month.price where items.id=month.id;
  • Change reading through tables to use memmap when possible. Now only compressed tables use memmap.
  • Add a new privilege 'Show_priv' for SHOW commands.
  • Make the automatic timestamp code nicer. Add timestamps to the update log with SET TIMESTAMP=#;
  • Use read/write mutex in some places to get more speed.
  • Full foreign key support. One probably wants to implement a procedural language first.
  • Simple views (first on one table, later on any expression).
  • Automatically close some tables if a table, temporary table or temporary files gets error 23 (not enough open files).
  • When one finds a field=#, change all occurrences of field to #. Now this is only done for some simple cases.
  • Change all const expressions with calculated expressions if possible.
  • Optimize key = expression. At the moment only key = field or key = constant 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 (5 days).
  • 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)
  • UNION, MINUS, INTERSECT and FULL OUTER JOIN. (Currently only LEFT OUTER JOIN is supported)
  • Allow UNIQUE on fields that can be NULL.
  • SQL_OPTION MAX_SELECT_TIME=# to put a time limit on a query.
  • Make the update log to a database.
  • Negative LIMIT to retrieve data from the end.
  • Alarm around client connect/read/write functions.
  • Make a mysqld version which isn't multithreaded (3-5 days).
  • Please note the changes to safe_mysqld: 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 the placement of these files can be changed with a single statement.
  • Better dynamic record layout to avoid fragmentation.
  • UPDATE SET blob=read_blob_from_file('my_gif') where id=1;
  • Allow a client to request logging.
  • Add use of zlib() for gzip-ed files to LOAD DATA INFILE.
  • Fix sorting and grouping of BLOB columns (partly solved now).
  • Stored procedures. This is currently not regarded to be very important as stored procedures are not very standardized yet. Another problem is that true stored procedures make it much harder for the optimizer and in many cases the result is slower than before We will, on the other hand, add a simple (atomic) update language that can be used to write loops and such in the MySQL server.
  • Change to use semaphores when counting threads. One should first implement a semaphore library to MIT-pthreads.
  • Don't assign a new AUTO_INCREMENT value when one sets a column to 0. Use NULL instead.
  • Add full support for JOIN with parentheses.
  • Reuse threads for system with a lot of connections.

Time is given according to amount of work, not real time. TcX's main business is the use of MySQL not the development of it. But since TcX is a very flexible company, we have put a lot of resources into the development of MySQL.