Alterações na distribuição 3.22.5
All table lock handing is changed to avoid some very subtle deadlocks when using DROP TABLE
, ALTER TABLE
, DELETE FROM TABLE
and mysqladmin flush-tables
under heavy usage. Changed locking code to get better handling of locks of different types.
- Updated
DBI
to 1.00 andDBD
to 1.2.0. - Added a check that the error message file contains error messages suitable for the current version of
mysqld
. (To avoid errors if you accidentally try to use an old error message file.) - All count structures in the client (
affected_rows()
,insert_id()
, ...) are now of typeBIGINT
to allow 64-bit values to be used. This required a minor change in the MariaDB protocol which should affect only old clients when using tables withAUTO_INCREMENT
values > 16M. - The return type of
mysql_fetch_lengths()
has changed fromuint *
toulong *
. This may give a warning for old clients but should work on most machines. - Change
mysys
anddbug
libraries to allocate all thread variables in one struct. This makes it easier to make a threadedlibmysql.dll
library. - Use the result from
gethostname()
(instead ofuname()
) when constructing.pid
file names. - New better compressed server/client protocol.
COUNT()
,STD()
andAVG()
are extended to handle more than 4G rows.- You can now store values in the range
-838:59:59
<= x <=838:59:59
in aTIME
column. - Warning: incompatible change!! If you set a
TIME
column to too short a value, MariaDB now assumes the value is given as:[[[D ]HH:]MM:]SS
instead ofHH[:MM[:SS]]
. TIME_TO_SEC()
andSEC_TO_TIME()
can now handle negative times and hours up to 32767.- Added new option
SET SQL_LOG_UPDATE={0|1}
to allow users with thePROCESS
privilege to bypass the update log. (Modified patch from Sergey A Mukhin<violet@rosnet.net>
.) - Fixed fatal bug in
LPAD()
. - Initialise line buffer in
mysql.cc
to makeBLOB
reading from pipes safer. - Added
-O max_connect_errors=#
option tomysqld
. Connect errors are now reset for each correct connection. - Increased the default value of
max_allowed_packet
to1M
inmysqld
. - Added
--low-priority-updates
option tomysqld
, to give table-modifying operations (INSERT
,REPLACE
,UPDATE
,DELETE
) lower priority than retrievals. You can now use{INSERT | REPLACE | UPDATE | DELETE} LOW_PRIORITY ...
You can also useSET SQL_LOW_PRIORITY_UPDATES={0|1}
to change the priority for one thread. One side effect is thatLOW_PRIORITY
is now a reserved word. :( - Add support for
INSERT INTO table ... VALUES(...),(...),(...)
, to allow inserting multiple rows with a single statement. INSERT INTO tbl_name
is now also cached when used withLOCK TABLES
. (Previously onlyINSERT ... SELECT
andLOAD DATA INFILE
were cached.)- Allow
GROUP BY
functions withHAVING
:mysql>
SELECT col FROM table GROUP BY col HAVING COUNT(*)>0;
mysqld
will now ignore trailing ';
' characters in queries. This is to make it easier to migrate from some other SQL servers that require the trailing ';
'.- Fix for corrupted fixed-format output generated by
SELECT INTO OUTFILE
. - Warning: incompatible change! Added Oracle
GREATEST()
andLEAST()
functions. You must now use these instead of theMAX()
andMIN()
functions to get the largest/smallest value from a list of values. These can now handleREAL
,BIGINT
and string (CHAR
orVARCHAR
) values. - Warning: incompatible change!
DAYOFWEEK()
had offset 0 for Sunday. Changed the offset to 1. - Give an error for queries that mix
GROUP BY
columns and fields when there is noGROUP BY
specification. - Added
--vertical
option toMariaDB
, for printing results in vertical mode. - Index-only optimization; some queries are now resolved using only indexes. Until MariaDB 4.0, this works only for numeric columns. Leia "Como o MariaDB Utiliza Índices".
- Lots of new benchmarks.
- A new C API chapter and lots of other improvements in the manual.