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 the file if the file 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.
LOAD DATA INFILE ... REPLACE INTO
now.
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_field3This can be used to skip over extra columns in the text file, or update columns based on expressions of the read data.
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 crash_me LEFT JOIN crash_me2 USING (a)
; in this
case a
is assumed to come from the crash_me
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.
DEFAULT
values to columns. Give an error
when using an INSERT
that doesn't contain a column that doesn't
have a 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/expressions by applying: value == 0 -> FALSE and
value <> 0 -> TRUE.
MAX(column)
is 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;
INSERT ... SELECT
to optionally use concurrent inserts.
pread()
/pwrite()
on Windows to enable
concurrent inserts.
SELECT MIN(column) ... GROUP BY
.
long_query_time
with a granularity
in microseconds.
myisampack
code into the server, enabling a PACK or
COMPRESS command on the server.
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.
DATE/DATETIME
type that handles time zone information
properly so that dealing with dates in different time zones is easier.
MyISAM
)
without threads.
LIMIT
, like in LIMIT @a,@b
.
mysql
to a web browser.
LOCK DATABASES
(with various options).
SHOW STATUS
. Records reads and
updates. Selects on 1 table and selects with joins. Mean number of
tables in select. Number of ORDER BY
and GROUP BY
queries.
mysqladmin copy database new-database
; requires COPY
command 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.
Posted by Charles Holmes on Thursday January 9 2003, @11:15pm | [Delete] [Edit] |
I think the Oracle-like CONNECT BY PRIOR function would be very helpful. Thank you.
Posted by [name withheld] on Friday February 7 2003, @12:24am | [Delete] [Edit] |
I also think that CONNECT BY would solve many functional problems.
thx, tomaz
Posted by Bob Donahue on Friday February 7 2003, @10:13am | [Delete] [Edit] |
If CONNECT BY isn't going to be implemented SOON, can someone reference a work around? Unfortunately most of what's on the WWW also requires features not present in MySQL (procedures, subselects [for V3.23], etc.).
Posted by Alexei Novakov on Friday March 21 2003, @12:52pm | [Delete] [Edit] |
Why "connect by"? SQL99 allows recursive queries with "WITH clause" which is standard way of doing the same thing.
Posted by Jon Scharff on Wednesday July 2 2003, @8:34am | [Delete] [Edit] |
How about an easier way of modifying a set/enum definition? There are times when I want to add an additional option to one of these types and to do so I must type in the whole enum over again, plus the additional value.