[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
CONNECT BY PRIOR ...
to search tree-like (hierarchical)
structures.
SUM(DISTINCT)
.
INSERT SQL_CONCURRENT
and mysqld --concurrent-insert
to do
a concurrent insert at the end of a table if the table is read-locked.
UPDATE
statements. For example:
UPDATE TABLE foo SET @a=a+b,a=@a, b=@a+c
.
GROUP BY
, as in the following example:
SELECT id, @a:=COUNT(*), SUM(sum_col)/@a FROM table_name GROUP BY id
.
IMAGE
option to LOAD DATA INFILE
to not update
TIMESTAMP
and AUTO_INCREMENT
fields.
LOAD DATA INFILE ... UPDATE
syntax that works like this:
LOAD DATA INFILE ... REPLACE INTO
.
LOAD DATA INFILE
understand syntax like:
LOAD DATA INFILE 'file_name.txt' INTO TABLE tbl_name TEXT_FIELDS (text_field1, text_field2, text_field3) SET table_field1=CONCAT(text_field1, text_field2), table_field3=23 IGNORE text_field3 |
SET
type columns:
ADD_TO_SET(value,set)
REMOVE_FROM_SET(value,set)
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.
SELECT a FROM table_name1 LEFT JOIN table_name2 USING (a)
; in this
case a
is assumed to come from the table_name1
table.
DELETE
and REPLACE
options to the UPDATE
statement
(this will delete rows when one gets a duplicate key error while updating).
DATETIME
to store fractions of seconds.
regexp
library instead of the current
one (the new library should be much faster than the current one).
DEFAULT
values to columns. Produce an error for
any INSERT
statement that is missing a value for a column that has no
DEFAULT
.
ANY()
, EVERY()
, and SOME()
group functions. In
standard SQL, these work only on boolean columns, but we can extend these to
work on any columns or expressions by treating 0 values as FALSE and non-zero
values as TRUE.
MAX(column)
to be the same as the column type:
mysql> CREATE TABLE t1 (a DATE); mysql> INSERT INTO t1 VALUES (NOW()); mysql> CREATE TABLE t2 SELECT MAX(a) FROM t1; mysql> SHOW COLUMNS FROM t2; |
MyISAM
recovery at the same time.
INSERT ... SELECT
to optionally use concurrent inserts.
SELECT MIN(column) ... GROUP BY
.
long_query_time
with a granularity
in microseconds.
myisampack
code into the server so that it can perform
PACK
or COMPRESS
operations.
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 that disk.
DATE/DATETIME
type that handles time zone information
properly, to make dealing with dates in different time zones easier.
configure
so that one can compile all libraries (like MyISAM
)
without threads.
LIMIT
arguments, for example,
LIMIT @a,@b
.
mysql
to a web browser.
LOCK DATABASES
(with various options).
SHOW STATUS
. Records reads and
updates. Selects on a single table and selects with joins. Mean number of
tables in select. Number of ORDER BY
and GROUP BY
queries.
mysqladmin copy database new-database
; this requires a COPY
operation to be added to mysqld
.
SHOW HOSTS
for printing information about the hostname cache.
NULL
for calculated columns.
Item_copy_string
on numerical values to avoid
number->string->number conversion in case of:
SELECT COUNT(*)*(id+0) FROM table_name GROUP BY id
ALTER TABLE
doesn't abort clients
that execute INSERT DELAYED
.
UPDATE
clause,
they contain the old values from before the update started.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |