Alterações na distribuição 4.1.1 (01 de Dez de 2003)
Funcionalidades adicionadas ou alteradas:
- Added
IGNORE
option forDELETE
statement. - 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-1
if there are no more result sets. - Renamed
CLIENT_MULTI_QUERIES
connect option flag toCLIENT_MULTI_STATEMENTS
. To allow for a transition period, the old option will continue to be recognized for a while. - Require
DEFAULT
before table and database default character set. This enables us to useALTER TABLE table_name ... CHARACTER SET=...
to change the character set for allCHAR
,VARCHAR
, andTEXT
columns in a table. - Added
MATCH ... AGAINST( ... WITH QUERY EXPANSION)
and theft_query_expansion_limit
server variable. - Removed unused
ft_max_word_len_for_sort
server variable. - Full-text search now supports multi-byte character sets and the Unicode
utf8
character set. (The Unicodeucs2
character 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 SLAVE
statement now supports anUNTIL
clause 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
INSERT
statements, not just for multiple-rowINSERT
statements. Previously, it was necessary to setSQL_WARNINGS=1
to generate warnings for single-row statements. - Added
delimiter
(\d
) command to theMariaDB
command-line client for changing the statement delimiter (terminator). The default delimiter is semicolon. CHAR
,VARCHAR
, andTEXT
columns 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.LIMIT
no longer accepts negative arguments (they used to be treated as very big positive numbers before).- The
DATABASE()
function now returnsNULL
rather than the empty string if there is no database selected. - Added
--sql-mode=NO_AUTO_VALUE_ON_ZERO
option to suppress the usual behaviour of generating the next sequence number when zero is stored in anAUTO_INCREMENT
column. With this mode enabled, zero is stored as zero; only storingNULL
generates a sequence number. - Warning: Incompatible change! Client authentication now is based on 41-byte passwords in the
user
table, 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_tables
script. - 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
type
valuesDAY_MICROSECOND
,HOUR_MICROSECOND
,MINUTE_MICROSECOND
,SECOND_MICROSECOND
, andMICROSECOND
forDATE_ADD()
,DATE_SUB()
, andEXTRACT()
. - Added new
%f
microseconds format specifier forDATE_FORMAT()
andTIME_FORMAT()
. - All queries in which at least one
SELECT
does 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
MERGE
table fromMyISAM
tables in different databases. Formerly, all theMyISAM
tables had to be in the same database, and theMERGE
table 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_MODE
para incluir todas as opções que o modo exige. - Adicionada a função
ROLLUP
OLAP (Online Analytical Processing - Processamento Analítico Online), que lhe dá um resumo para cada nívelGROUP BY
. - Adicionado os códigos
SQLSTATE
para todos os erros do servidor. - Adicionado
mysql_sqlstate()
emysql_stmt_sqlstate()
que retornam o código de erroSQLSTATE
para o último erro. --lower-case-table-names=1
agora também faz a aliases caso insensitivo. (Bug#534)- Colunas
TIME
com valor de horas maior do que 24 eram retornadas incorretamente para o cliente. - As instruções
ANALYZE
,OPTIMIZE
,REPAIR
eFLUSH
sã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 SLAVE
eFLUSH 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_PURGE
para habilitar ou desabilitar automaticamente a remoção de relay logs. LOAD DATA
agora 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_engine
agora 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 LOGS
statement that was added in in version 4.1.0. The statement now should be issued asPURGE MASTER LOGS
orPURGE BINARY LOGS
. - Added
SHOW BDB LOGS
as 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_State
andSeconds_Behind_Master
columns to the output ofSHOW SLAVE STATUS
.Slave_IO_State
indicates the state of the slave I/O thread, andSeconds_Behind_Master
indicates the number of seconds by which the slave is late compared to the master. --lower-case-table-names=1
now 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] ... SELECT
statements. HASH
,BTREE
,RTREE
,ERRORS
, andWARNINGS
no longer are reserved words. (Bug#724)- Fix for bug in
ROLLUP
when all tables wereconst
tables. (Bug#714) - Fixed a bug in
UNION
that prohibitedNULL
values from being inserted into result set columns where the firstSELECT
of theUNION
retrievedNOT NULL
columns. - Fixed name resolution of columns of reduced subqueries in unions. (Bug#745)
- Fixed memory overrun in subqueries in select list with
WHERE
clause bigger than outer queryWHERE
clause. (Bug#726) - Fixed a bug that caused
MyISAM
tables withFULLTEXT
indexes created in 4.0.x to be unreadable in 4.1.x. - Fixed a data loss bug in
REPAIR TABLE ... USE_FRM
when used with tables that containedTIMESTAMP
columns and were created in 4.0.x. - Fixed reduced subquery processing in
ORDER BY
/GROUP BY
clauses. (Bug#442) - Fixed name resolution of outer columns of subquery in
INSERT
/REPLACE
statements. (Bug#446) - Fixed bug in marking columns of reduced subqueries. (Bug#679)
- Fixed a bug that made
CREATE FULLTEXT INDEX
syntax illegal. - Fixed a crash when a
SELECT
that required a temporary table (marked byUsing temporary
inEXPLAIN
output) was used as a derived table inEXPLAIN
command. (Bug#251) - Fixed a rare table corruption bug in
DELETE
from a big table with a new (created by MySQL-4.1) fulltext index. LAST_INSERT_ID()
now returns 0 if the lastINSERT
statement 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
UNION
envolvendo tabelas temporárias. - Corrigido um erro de falha em
DERIVED TABLES
quandoEXPLAIN
é usado em umDERIVED TABLES
com um join - Corrigido um erro de falha no
DELETE
comORDER BY
eLIMIT
causado 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
GEOMETRY
com um mecanismo de armazenamenti que não a suporta. - Corrigido um erro de falha no
UNION
causado pela lista de select vazia e um campo não existente sendo usado em algumas das instruçõesSELECTs
individuais. - 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 LOGS
era 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 SSL
especificado 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@a
nunca 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)