|
-
You cannot build in another directory when using
MIT-pthreads. Since this requires changes to MIT-pthreads, we are not
likely to fix this.
-
BLOB values can't ``reliably'' be used in GROUP BY or
ORDER BY or DISTINCT . Only the first max_sort_length
bytes (default 1024) are used when comparing BLOB bs in these cases.
This can be changed with the -O max_sort_length option to
mysqld . A workaround for most cases is to use a substring:
SELECT DISTINCT LEFT(blob,2048) FROM tbl_name .
-
Calculation is done with
BIGINT or DOUBLE (both are
normally 64 bits long). It depends on the function which precision one
gets. The general rule is that bit functions are done with BIGINT
precision, IF , and ELT() with BIGINT or DOUBLE
precision and the rest with DOUBLE precision. One should try to
avoid using bigger unsigned long long values than 63 bits
(9223372036854775807) for anything else than bit fields!
-
Before MySQL 3.23 all numeric types where treated as fixed-point
fields. That means you had to specify how many decimals a floating-point
field shall have. All results was returned with the correct number of
decimals.
-
All string columns, except
BLOB and TEXT columns, automatically
have all trailing spaces removed when retrieved. For CHAR types this
is okay, and may be regarded as a feature according to ANSI SQL92. The bug is
that in MySQL, VARCHAR columns are treated the same way.
-
You can only have up to 255
ENUM and SET columns in one table.
-
Before MySQL 3.23.2 an
UPDATE that updated a key with
a WHERE on the same key may have failed because the key was used to
search for records and the same row may have been found multiple times:
UPDATE tbl_name SET KEY=KEY+1 WHERE KEY > 100;
A workaround is to use:
mysql> UPDATE tbl_name SET KEY=KEY+1 WHERE KEY+0 > 100;
This will work because MySQL will not use index on expressions in
the WHERE clause.
-
safe_mysqld re-directs all messages from mysqld to the
mysqld log. One problem with this is that if you execute
mysqladmin refresh to close and reopen the log,
stdout and stderr are still redirected to the old log.
If you use --log extensively, you should edit safe_mysqld to
log to `'hostname'.err' instead of `'hostname'.log' so you can
easily reclaim the space for the old log by deleting the old one and
executing mysqladmin refresh .
-
In the
UPDATE statement, columns are updated from left to right.
If you refer to a updated column, you will get the updated value instead of the
original value. For example:
mysql> UPDATE tbl_name SET KEY=KEY+1,KEY=KEY+1
will update KEY with 2 instead of with 1 .
For platform-specific bugs, see the sections about compiling and porting.
|