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
DBIto 1.00 andDBDto 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 typeBIGINTto 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_INCREMENTvalues > 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
mysysanddbuglibraries to allocate all thread variables in one struct. This makes it easier to make a threadedlibmysql.dlllibrary. - Use the result from
gethostname()(instead ofuname()) when constructing.pidfile 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:59in aTIMEcolumn. - Warning: incompatible change!! If you set a
TIMEcolumn to too short a value, MariaDB now assumes the value is given as:[[[D ]HH:]MM:]SSinstead 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 thePROCESSprivilege to bypass the update log. (Modified patch from Sergey A Mukhin<violet@rosnet.net>.) - Fixed fatal bug in
LPAD(). - Initialise line buffer in
mysql.ccto makeBLOBreading 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_packetto1Minmysqld. - Added
--low-priority-updatesoption 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_PRIORITYis now a reserved word. :( - Add support for
INSERT INTO table ... VALUES(...),(...),(...), to allow inserting multiple rows with a single statement. INSERT INTO tbl_nameis now also cached when used withLOCK TABLES. (Previously onlyINSERT ... SELECTandLOAD DATA INFILEwere cached.)- Allow
GROUP BYfunctions withHAVING:mysql>
SELECT col FROM table GROUP BY col HAVING COUNT(*)>0; mysqldwill 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,BIGINTand string (CHARorVARCHAR) values. - Warning: incompatible change!
DAYOFWEEK()had offset 0 for Sunday. Changed the offset to 1. - Give an error for queries that mix
GROUP BYcolumns and fields when there is noGROUP BYspecification. - Added
--verticaloption 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.