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_field3
This 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.