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 licence or support us and
tell us what you want to have done more quickly. 「ライセンス、またはいつ MySQL に代価を支払う必要/要望があるのか?」節参照 .
-
Delayed inserts for log tables.
-
Optimized MIN(key) and MAX(key). Needed for sub select.
-
Subqueries. 'select id from t where grp in (select grp from g where u > 100)'
-
Optimize some queries to only use keys.
-
FreeBSD and MIT-threads; Do sleeping threads take CPU?
-
Allow join on key parts (optimizing issue).
-
Check why 'delete' uses 'record check'
-
Fix that temporary HEAP tables is automatically converted to NISAM if
they get too big. At the moment one gets 'error 135' or 'Table xxx is full'
if one does a query which has to use a big temporary table.
-
Allow one to store MySQL server and client startup options in
global and user files.
-
Add DISTINCT qualifier to COUNT(), SUM()...
-
Binary portable data tables (a new version of ISAM)
-
Change conv_blob to handle blob as a text field.
-
Entry for DECRYPT() and ENCRYPT()
-
Functions << and >> (like in C).
-
Remember FOREIGN key definitions in the .frm file.
-
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 an 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-threads 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 a IMAGE option to LOAD DATA INFILE to not update timestamps and auto
increment fields.
-
Demo procedure: analyze
-
HAVING + group functions without alias:
select name from company group by name having count(*) > 1
-
Automatic output from 'mysql' to netscape.
-
LOCK DATABASES. (with various options)
-
NATURAL JOIN
-
Change sort to alloc memory in 'hunks' to get better memory utilisation.
-
Add functions BIN(),HEX() and CONV(number,base)
-
Add ANSI SQL EXTRACT function.
-
Add functions:
MAKE_SET(set_bits,'aaa,bbb,ccc,ddd,eee") -> Returns a set string.
MAKE_SET(1 | 8, 'aaa,bbb,ccc,ddd,eee") -> 'aaa,ddd'
EXPORT_SET(set_column,'Y','N',[separator],[number_of_set_values])
where separator is ',' as default and number_of_set_values is taken
from the set_column (or is 64 if set_column is an expression)
EXPORT_SET(9,'Y','N',',',5) -> Y,N,N,Y,N
-
Add use of 't1 JOIN t2 ON ...' and 't1 JOIN t2 USING ...'. Currently
one can only use this syntax with LEFT JOIN.
-
Add full support for unsigned long long type.
-
A LOCK DATABASE function (for backup's)
-
Function CASE
-
Functions LPAD and RPAD.
lpad('hi',4,'??') -> '??hi'
rpad('hi',4,'??') -> 'hi??'
-
Much more variables for 'show status'. Counts for:
insert/delete/updates 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 one aborts a 'mysql' in the middle of a query, one should open
another connection and kill the old running query'.
Alternatively one should try to detect this in the server.
-
Implement a table optimiser by a analyze procedure call that returns a
table like show fields with min and max value and the best
MySQL type for that expression.
-
Implement function: get_changed_tables(timeout,table1,table2,...)
Implement function: LAST_UPDATED(table_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.
-
Make a SQL standard GRANT command with MySQL extensions.
-
Add a new privilege 'Show_priv' for 'SHOW' commands.
-
Make the automatic timestamp code nicer. Add timestamps to the update
log with SET TIMESTAMP=#;
-
Optimize the autoincrement code.
-
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).
-
Automatic 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 occurrence of field to #. Now this
is only done for some simple cases.
-
Change all const expression with calculated expressions if possible.
-
Optimize key = expression. At the moment only key = field or key =
constant are optimised.
-
Join some of the copy functions for nicer code.
-
Change sql_yacc.y to an inline parser to get down it's 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 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 round 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.
-
Add '--drop' command to mysqldump to start output with a drop of all tables.
-
Better dynamic record layout to avoid fragmentation.
-
UPDATE SET blob=read_blob_from_file('my.png') where id=1;
-
Allow sorting on RAND():
SELECT email,RAND() AS ran FROM info ORDER BY ran;
-
Allow a client to request logging.
-
insert into bar (yobabyyo) values (1),(2),(3);
-
Add use of zlib() for gziped files to LOAD DATA INFILE.
-
Fix sorting and grouping of blobs (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 makes 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 semafor when counting threads. One should first implement
a semafor library to mit-threads.
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 and we have put a lot of resources
into the development of MySQL.
-
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
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.