Alterações na distribuição 4.1.1 (01 de Dez de 2003)
Funcionalidades adicionadas ou alteradas:
- Added
IGNOREoption forDELETEstatement. - The MariaDB source distribution now also includes the MariaDB Internals Manual
internals.texi. - Added
mysql_set_server_option()C API client function to allow multiple statement handling in the server to be enabled or disabled. - The
mysql_next_result()C API function now returns-1if there are no more result sets. - Renamed
CLIENT_MULTI_QUERIESconnect option flag toCLIENT_MULTI_STATEMENTS. To allow for a transition period, the old option will continue to be recognized for a while. - Require
DEFAULTbefore table and database default character set. This enables us to useALTER TABLE table_name ... CHARACTER SET=...to change the character set for allCHAR,VARCHAR, andTEXTcolumns in a table. - Added
MATCH ... AGAINST( ... WITH QUERY EXPANSION)and theft_query_expansion_limitserver variable. - Removed unused
ft_max_word_len_for_sortserver variable. - Full-text search now supports multi-byte character sets and the Unicode
utf8character set. (The Unicodeucs2character set is not yet supported.) - Phrase search in
MATCH ... AGAINST ( ... IN BOOLEAN MODE)no longer matches partial words. - Added aggregate function
BIT_XOR()for bitwise XOR operations. - Replication over SSL now works.
- The
START SLAVEstatement now supports anUNTILclause for specifying that the slave SQL thread should be started but run only until it reaches a given position in the master's binary logs or in the slave's relay logs. - Produce warnings even for single-row
INSERTstatements, not just for multiple-rowINSERTstatements. Previously, it was necessary to setSQL_WARNINGS=1to generate warnings for single-row statements. - Added
delimiter(\d) command to theMariaDBcommand-line client for changing the statement delimiter (terminator). The default delimiter is semicolon. CHAR,VARCHAR, andTEXTcolumns now have lengths measured in characters rather than in bytes. The character size depends on the column's character set. This means, for example, that aCHAR(n)column for a multi-byte character set will take more storage than before. Similarly, index values on such columns are measured in characters, not bytes.LIMITno longer accepts negative arguments (they used to be treated as very big positive numbers before).- The
DATABASE()function now returnsNULLrather than the empty string if there is no database selected. - Added
--sql-mode=NO_AUTO_VALUE_ON_ZEROoption to suppress the usual behaviour of generating the next sequence number when zero is stored in anAUTO_INCREMENTcolumn. With this mode enabled, zero is stored as zero; only storingNULLgenerates a sequence number. - Warning: Incompatible change! Client authentication now is based on 41-byte passwords in the
usertable, not 45-byte passwords as in 4.1.0. Any 45-byte passwords created for 4.1.0 must be reset after running themysql_fix_privilege_tablesscript. - Added MariaDB Server option and global variable 'secure-auth' that disallows authentication for accounts that have old (pre-4.1.1) passwords.
- Added MariaDB command line client option 'secure-auth'. If this option is set, client will refuse to send password in old (pre-4.1.1) format.
- Warning: Incompatible change! Renamed the C API
mysql_prepare_result()function tomysql_get_metadata()as the old name was confusing. - Added
DROP USER 'username'@'hostname'statement to drop an account that has no privileges. - The interface to aggregated UDF functions has changed a bit. You must now declare a
xxx_clear()function for each aggregate functionXXX(). - The
CONCAT_WS()function no longer skips empty strings. - Added new
ADDTIME(),DATE(),DATEDIFF(),LAST_DAY(),MAKEDATE(),MAKETIME(),MICROSECOND(),SUBTIME(),TIME(),TIMEDIFF(),TIMESTAMP(),UTC_DATE(),UTC_TIME(),UTC_TIMESTAMP(), andWEEKOFYEAR()functions. - Added new syntax for
ADDDATE()andSUBDATE(). The second argument now may be a number representing the number of days to be added to or subtracted from the first date argument. - Added new
typevaluesDAY_MICROSECOND,HOUR_MICROSECOND,MINUTE_MICROSECOND,SECOND_MICROSECOND, andMICROSECONDforDATE_ADD(),DATE_SUB(), andEXTRACT(). - Added new
%fmicroseconds format specifier forDATE_FORMAT()andTIME_FORMAT(). - All queries in which at least one
SELECTdoes not use indexes properly now are written to the slow query log when long log format is used. - It is now possible to create a
MERGEtable fromMyISAMtables in different databases. Formerly, all theMyISAMtables had to be in the same database, and theMERGEtable had to be created in that database as well. - Adicionada as novas funções
COMPRESS(),UNCOMPRESS()eUNCOMPRESSED_LENGTH(). - Ao fazer
SQL SQL_MODE=#, para um modo complexo (comoANSI) agora atualizamos a variávelSQL_MODEpara incluir todas as opções que o modo exige. - Adicionada a função
ROLLUPOLAP (Online Analytical Processing - Processamento Analítico Online), que lhe dá um resumo para cada nívelGROUP BY. - Adicionado os códigos
SQLSTATEpara todos os erros do servidor. - Adicionado
mysql_sqlstate()emysql_stmt_sqlstate()que retornam o código de erroSQLSTATEpara o último erro. --lower-case-table-names=1agora também faz a aliases caso insensitivo. (Bug#534)- Colunas
TIMEcom valor de horas maior do que 24 eram retornadas incorretamente para o cliente. - As instruções
ANALYZE,OPTIMIZE,REPAIReFLUSHsão agora armazenados no log binário e assim replicados para o slave. Este registro não ocorre se a palavra chave opcionalNO_WRITE_TO_BINLOG(ou seu aliasLOCAL) for usada. As exceções são queFLUSH LOGS,FLUSH MASTER,FLUSH SLAVEeFLUSH TABLES WITH READ LOCK, não são registrados no log em qualquer caso. Para uma sintaxe completa, veja "Sintaxe deFLUSH". - Nova variável global
RELAY_LOG_PURGEpara habilitar ou desabilitar automaticamente a remoção de relay logs. LOAD DATAagora produz avisos que podem ser buscados comSHOW WARNINGS.- Adicionado o suporte a sintaxe
CREATE TABLE nome_tabela (LIKE nome_tabela2). CREATE TABLE nome_tabela (...) TYPE=storage_engineagora gera um aviso se o mecanismo de armazenamento não for respeitado. A tabela ainda é criada comoMyISAM, como antes.- Muitas sub selectas são muito mais rápidas que antes.
- Disabled the
PURGE LOGSstatement that was added in in version 4.1.0. The statement now should be issued asPURGE MASTER LOGSorPURGE BINARY LOGS. - Added
SHOW BDB LOGSas an alias forSHOW LOGS. - Added
SHOW MASTER LOGS(which had been deleted in version 4.1.0) as an alias forSHOW BINARY LOGS. - Added
Slave_IO_StateandSeconds_Behind_Mastercolumns to the output ofSHOW SLAVE STATUS.Slave_IO_Stateindicates the state of the slave I/O thread, andSeconds_Behind_Masterindicates the number of seconds by which the slave is late compared to the master. --lower-case-table-names=1now also makes aliases case insensitive. (Bug#534)
Bugs corrigidos:
- Fixed merging types and length of fields in
UNION - Fixed a bug in privilege handling that caused connections from certain IP addresses to be assigned incorrect database-level privileges. A connection could be assigned the database privileges of the previous successful authentication from one of those IP addresses, even if the IP address username and database name were different. (Bug#1636)
- Error-handling functions were not called properly when an error resulted from
[CREATE | REPLACE| INSERT] ... SELECTstatements. HASH,BTREE,RTREE,ERRORS, andWARNINGSno longer are reserved words. (Bug#724)- Fix for bug in
ROLLUPwhen all tables wereconsttables. (Bug#714) - Fixed a bug in
UNIONthat prohibitedNULLvalues from being inserted into result set columns where the firstSELECTof theUNIONretrievedNOT NULLcolumns. - Fixed name resolution of columns of reduced subqueries in unions. (Bug#745)
- Fixed memory overrun in subqueries in select list with
WHEREclause bigger than outer queryWHEREclause. (Bug#726) - Fixed a bug that caused
MyISAMtables withFULLTEXTindexes created in 4.0.x to be unreadable in 4.1.x. - Fixed a data loss bug in
REPAIR TABLE ... USE_FRMwhen used with tables that containedTIMESTAMPcolumns and were created in 4.0.x. - Fixed reduced subquery processing in
ORDER BY/GROUP BYclauses. (Bug#442) - Fixed name resolution of outer columns of subquery in
INSERT/REPLACEstatements. (Bug#446) - Fixed bug in marking columns of reduced subqueries. (Bug#679)
- Fixed a bug that made
CREATE FULLTEXT INDEXsyntax illegal. - Fixed a crash when a
SELECTthat required a temporary table (marked byUsing temporaryinEXPLAINoutput) was used as a derived table inEXPLAINcommand. (Bug#251) - Fixed a rare table corruption bug in
DELETEfrom a big table with a new (created by MySQL-4.1) fulltext index. LAST_INSERT_ID()now returns 0 if the lastINSERTstatement didn't insert any rows.- Corrigido a perda dos últimos caracteres na saída da função (Bug#447)
- Corrigido um erro de replicação raro quando um transação extendia em dois ou mais relay logs e o escravo era parada enquanto ele estava executando a parte da transação que estava no segundo relay log ou em um adicional. Então a replicação parava no inicio do segundo relay log ou adicional, o que estava incorreto. (ele deve parar no
BEGIN, no primeiro relay log). (Bug#53) - Agora
CONNECTION_ID()é replicado apropriadamente (Bug#177). - A nova função
PASSWORD()na versão 4.1 é replicada apropriadamente (Bug#344). - Corrigida a dupla liberação de memória
- Corrigido um erro em
UNIONenvolvendo tabelas temporárias. - Corrigido um erro de falha em
DERIVED TABLESquandoEXPLAINé usado em umDERIVED TABLEScom um join - Corrigido um erro de falha no
DELETEcomORDER BYeLIMITcausado pala inicialização do vetor do ponteiro de referências. - Corrigido um erro na função
USER()causado pelo erro no tamanho da string alocada - Corrigido um erro de falha quando se tentava criar uma tabela com coluna do tipo
GEOMETRYcom um mecanismo de armazenamenti que não a suporta. - Corrigido um erro de falha no
UNIONcausado pela lista de select vazia e um campo não existente sendo usado em algumas das instruçõesSELECTsindividuais. - Corrigido um erro de replicação com um master na versão 3.23 e um slave na 4.0: o slave perdia a replicação de tabelas temporárias se
FLUSH LOGSera executado no master (Bug#254). - Corrigido um bug de segurança: Um servidor compilado ser suporte a SSL ainda permitia conexões de usuários que possuiam a opção
REQUIRE SSLespecificado para as suas contas. - Quando um usuário indefinido era usado em uma atualização de consulta no master (como
INSERT INTO t VALUES(@a)onde@anunca havia sido definido por esta conexão), então o slave podia replicar a consulta de forma incorreta se uma transação anterior no master usava uma variável de usuário de mesmo nome. (Bug#1331) - Corrigido um erro com instruções preparadas: O uso do parâmetro
?de instruções preparadas como argumento de certas funções e cláusulas fazia com que o servidor falhasse durante chamadasmysql_prepare(). (Bug#1500) - Corrigido um erro com instruções preparadas: depois da chamada de mysql_stmt_prepare, colchetes são permitidos em todas as instruções consequentes, mesmo se eles não forem preparados (Bug#1946)