|
Go to the first, previous,
next, last
section, table of contents.
Everything in this list is in the order it will be done. If you
want to affect the priority order, please register a license or
support us and tell us what you want to have done more quickly.
See section 3 MySQL licensing
and support.
- One way replication
- Transactions
- Subqueries.
select id from t where grp in (select grp
from g where u > 100)
- Allow
mysqld to support many character sets at
the same time.
- If you perform an
ALTER TABLE on a table that is
symlinked to another disk, create temporary tables on this disk.
RENAME table as table, table as table [,...]
- FreeBSD and MIT-pthreads; Do sleeping threads take CPU?
- Allow join on key parts (optimization issue).
- Entry for
DECRYPT() .
- Remember
FOREIGN key definitions in the `.frm'
file.
- Server side cursors.
- Allow users to change startup options.
- Add --ansi option to MySQL (to change || -> CONCAT())
- Don't add automatic
DEFAULT values to columns.
Give an error when using an INSERT that doesn't contain
a column that doesn't have a DEFAULT .
- Caching of queries and results. This should be done as a separated
module that examines each query and if this is query is in the
cache the cached result should be returned. When one updates a
table one should remove as few queries as possible from the cache.
This should give a big speed bost on machines with much RAM where
queries are often repeated (like WWW applications). One idea would
be to only cache queries of type:
SELECT CACHED ....
- Fix `libmysql.c' to allow two
mysql_query()
commands in a row without reading results or give a nice error
message when one does this.
- Optimize
BIT type to take 1 bit (now BIT
takes 1 char).
- Check why MIT-pthreads
ctime() doesn't work on
some FreeBSD systems.
- Check if locked threads take any CPU.
- Add
ORDER BY to update. This would be handy with
functions like: generate_id(start,step) .
- Add an
IMAGE option to LOAD DATA INFILE
to not update TIMESTAMP and AUTO_INCREMENT
fields.
- Make
LOAD DATA INFILE understand a syntax like:
LOAD DATA INFILE 'file_name.txt' INTO TABLE tbl_name
TEXT_FIELDS (text_field1, text_field2, text_field3)
SET table_field1=concatenate(text_field1, text_field2), table_field3=23
IGNORE text_field3
- Add true
VARCHAR support (There is already support
for this in MyISAM).
- Automatic output from
mysql to netscape.
LOCK DATABASES . (with various options)
NATURAL JOIN .
- Change sort to allocate memory in ``hunks'' to get better memory
utilization.
DECIMAL and NUMERIC types can't read
exponential numbers; Field_decimal::store(const char *from,uint
len) must be recoded to fix this.
- Fix
mysql.cc to do fewer malloc()
calls when hashing field names.
- Functions: ADD_TO_SET(value,set) and REMOVE_FROM_SET(value,set)
- Add use of
t1 JOIN t2 ON ... and t1 JOIN
t2 USING ... Currently, you can only use this syntax with
LEFT JOIN .
- Add full support for
unsigned long long type.
- Function
CASE .
- Many more variables for
show status . Counts for:
INSERT /DELETE /UPDATE statements.
Records reads and updated. Selects on 1 table and selects with
joins. Mean number of tables in select. Key buffer read/write
hits (logical and real). ORDER BY , GROUP BY ,
temporary tables created.
- 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 handler interface for table information so 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.
- Add support for UNICODE.
NATURAL JOIN .
- Oracle like
CONNECT BY PRIOR ... to search hierarchy
structures.
RENAME DATABASE
mysqladmin copy database new-database .
- Processlist should show number of queries/thread.
IGNORE option to the UPDATE statement
(this will delete all rows that gets a dupplicate key error while
updating).
- Change the format of
DATETIME to store fractions
of seconds.
- Add all missing ANSI92 and ODBC 3.0 types.
- Change table names from empty strings to
NULL for
calculated columns.
- 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.
- Transactions with rollback (we mainly do
SELECT s,
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, though. Currently atomic operations can be
done with LOCK TABLES /UNLOCK TABLES
but we will make this more automatic in the future.
Go to the first, previous,
next, last
section, table of contents.
|