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.
select id from t where grp in (select grp from g where u > 100)
mysqld
to support many character sets at the same time.
insert/delete/update
so that we
can gracefully recover if the index file gets full.
ALTER TABLE
on a table that is symlinked to another
disk, create temporary tables on this disk.
RENAME table as table, table as table [,...]
DECRYPT()
.
FOREIGN
key definitions in the `.frm' file.
lockd
works with modern Linux kernels; If not, we have
to fix lockd
! To test this, start mysqld
with
--enable-locking
and run the different fork* test suits. They shouldn't
give any errors if lockd
works.
LIMIT
, like in LIMIT @a,@b
.
DEFAULT
values to columns. Give an error when using
an INSERT
that doesn't contain a column that doesn't have a
DEFAULT
.
SELECT CACHED ....
mysql_query()
commands in a row
without reading results or give a nice error message when one does this.
BIT
type to take 1 bit (now BIT
takes 1 char).
ctime()
doesn't work on some FreeBSD systems.
ORDER BY
to update. This would be handy with functions like:
generate_id(start,step)
.
IMAGE
option to LOAD DATA INFILE
to not update
TIMESTAMP
and AUTO_INCREMENT
fields.
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
LOAD DATA INFILE 'file_name' INTO TABLE 'table_name' ERRORS TO err_table_name
which would cause any errors/warnings to be logged into the err_table_name
table. That table would have a structure like:
line_number - line number in data file error_message - the error/warning message and maybe data_line - the line from the data file
LOAD DATA INFILE
so that we can skip over extra
columns in the text file.
VARCHAR
support (There is already support for this in MyISAM).
mysql
to netscape.
LOCK DATABASES
. (with various options)
DECIMAL
and NUMERIC
types can't read exponential numbers;
Field_decimal::store(const char *from,uint len)
must be recoded
to fix this.
mysql.cc
to do fewer malloc()
calls when hashing field
names.
t1 JOIN t2 ON ...
and t1 JOIN t2 USING ...
Currently, you can only use this syntax with LEFT JOIN
.
unsigned long long
type.
CASE
.
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.
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.
SHOW INFO FROM tbl_name
for basic table information
should be implemented.
NATURAL JOIN
.
CONNECT BY PRIOR ...
to search hierarchy structures.
RENAME DATABASE
mysqladmin copy database new-database
.
DELETE
and REPLACE
options to the UPDATE
statement
(this will delete rows when one gets a dupplicate key error while updating).
DATETIME
to store fractions of seconds.
NULL
for calculated columns.
SELECT COUNT(*)*(id+0) FROM table_name GROUP BY id
ALTER TABLE
doesn't abort clients that executes
INSERT DELAYED
.
select a from crash_me left join crash_me2 using (a)
; In this
case a is assumed to come from the crash_me table.
UPDATE
clause contains the old
values before the update started.
UPDATE
statements. For example:
UPDATE TABLE foo SET @a=a+b,a=@a, b=@a+c
myisamchk
, REPAIR
and OPTIMIZE TABLE
should be able
to handle cases where the data and/or index files are symbolic links.
pread()
/pwrite()
on windows to enable
concurrent inserts.
get_changed_tables(timeout,table1,table2,...)
update items,month set items.price=month.price where items.id=month.id;
SHOW
commands.
SET TIMESTAMP=#;
UNION
, MINUS
, INTERSECT
and FULL OUTER JOIN
.
(Currently only LEFT OUTER JOIN
is supported)
UNIQUE
on fields that can be NULL
.
SQL_OPTION MAX_SELECT_TIME=#
to put a time limit on a query.
LIMIT
to retrieve data from the end.
mysqld
version which isn't multithreaded (3-5 days).
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.
UPDATE SET blob=read_blob_from_file('my_gif') where id=1;
zlib()
for gzip
-ed files to LOAD DATA INFILE
.
BLOB
columns (partly solved now).
AUTO_INCREMENT
value when one sets a column to 0.
Use NULL
instead.
JOIN
with parentheses.
GET_LOCK
. When doing this,
one must also handle the possible deadlocks this change will introduce.
Time is given according to amount of work, not real time.
Go to the first, previous, next, last section, table of contents.