Funcionalidades adicionadas ou alteradas:
PRIMARY KEY agora implica NOT
NULL. (Bug#390)
O pacote de binários do Windows agora está compilado com
--enable-local-infile encontrar a
configuraçào de construção do Unix.
Removida a medida do tempo de
mysql-test-run. time
não aceita todos os parâmetros exigidos em muitas
aplicações (por exemplo, QNX) e a medida de tempo não é
reamente necessária (isto não é um benchmark).
SHOW MASTER STATUS e SHOW SLAVE
STATUS exigem o privilégio
SUPER; agora eles aceitam
REPLICATION CLIENT. (Bug#343)
Adicionada otimização de reparação do MyISAM em
multi-threads e a variável
myisam_repair_threads para habilitá-lo.
See Secção 4.6.8.4, “SHOW VARIABLES”.
Adicionada a variável
innodb_max_dirty_pages_pct que controla a
quantidade de páginas ``sujas'' permitidas na área de
buffer do InnoDB.
As mensagens de erro CURRENT_USER() e
Access denied agora relatam o nome de
máquina exatamente como ele está especificado no comando
GRANT.
Removido os resultados de benchmark das distribuições fonte e binárias. Eles ainda estão disponíveis na árvore fonte do BK.
Tabelas InnoDB agora suportam
ANALYZE TABLE.
O MySQL agora envia um erro quando ele abre uma tabela que foi criada com o MySQL 4.1.
A opção --new agora altera altera os
itens binários (0xFFDF) para serem
tratados como strings binárias em vez de números por
padrão. Isto corrige alguns problemas com conjunto de
caracteres onde é conveniente colocar a string como um item
binário. Depois destas alterações você deve converter a
string binária para INTEGER com um
CAST se você quiser comparar dois itens
binários, um com o outro, e saber qual é maior.
SELECT CAST(0xfeff AS UNSIGNED) < CAST(0xff AS
UNSIGNED). Este será o comportamento padrão no
MySQL 4.1. (Bug#152)
Habilitado delayed_insert_timeout no
Linux (as bibliotecas glibc mais modernas tem um
pthread_cond_timedwait corrigido). (Bug#211)
Não cria mais threads de insert delayed que o dado por
max_insert_delayed_threads. (Bug#211)
Alterado o UPDATE ... LIMIT para aplicar
o limite as linhas encontradas, independente de terem sido
alteradas. Anteriormente o limite era aplicado como uma
restrição no número de linhas alteradas.
Ajustado o otimizador para favorecer indíces em cluster em ver de busca na tabela.
BIT_AND() e BIT_OR()
agora retornam um valor de 64 bits sem sinal.
Adicionado avisos ao log de erro do porquê de um falha em
uma conexão segura (quando executando com
--log-warnings).
As opções --skip-symlink e
--use-symbolic-links estão obsoletas e
forma substituídas com --symbolic-links.
A opção padrão para
innodb_flush_log_at_trx_commit foi
alterada de 0 para 1 para tornar tabelas
InnoDB como ACID por padrão. See
Secção 7.5.3, “Opções de Inicialização do InnoDB”.
Adicionado o recurso para SHOW KEYS para
mostrar chaves que estão disabilitadas pelo comando
ALTER TABLE DISABLE KEYS.
Ao usar um tipo de tabela não existente com CREATE
TABLE, primeiro vê se o tipo de tabela padrão
existe antes de utilizar MyISAM.
Adicionado MEMORY como um alias para
HEAP.
Renomeada a função rnd para
my_rnd já que o nome era muito genérico
e é um símbolo exportado no
libmysqlclient (obrigado a Dennis Haney
pelo patch inicial).
Correção de portabilidade: renomeado
include/dbug.h para
include/my_debug.h.
mysqldump não deleta mais o log binário
sem aviso quando chamado com --master-data
ou --first-slave; enquanto este
comportamento era conveniente para alguns usuários, outros
podia sofrer com ele. Agora deve perguntar explicitamente
pela sua deleção com a nova opção
--delete-master-logs.
Se o slave é configurado (usando, por exemplo,
replicate-wild-ignore-table=mysql.%) para
ecluir mysql.user,
mysql.host, mysql.db,
mysql.tables_priv e
mysql.columns_priv da replicação,
então GRANT e REVOKE
não serão replicados.
Bugs corrigidos:
A mensagem de erro Access denied ao logar
tinha um valor Using password incorreto.
(Bug#398)
Corrigido um bug com NATURAL LEFT JOIN,
NATURAL RIGHT JOIN e RIGHT
JOIN quando usadas muitas tabelas em joins. O
problema era que o método JOIN não era
sempre associoado com as tabelas envolvida no método
JOIN. Se você tiver uma consulta que usa
muitos RIGHT JOIN ou NATURAL ...
JOINS você deve verificar se eles funcionam como
você espera depois de atualizar o MySQL para esta versõa.
(Bug#291)
O cliente de linha de comando mysql não
olha mais os comnados \* dentro de
stringd com aspas invertidas.
Corrigido Unknown error ao usar
UPDATE ... LIMIT. (Bug#373)
Corrigido o problema com o modo ANSI e GROUP
BY com constantes. (Bug#387)
Corrigido o erro com UNION e
OUTER JOIN. (Bug#386)
Corrigido o erro se é usado um UPDATE
multi-tabelas e a consulta exige um tabela temporária maior
que tmp_table_size. (Bug#286)
Executa mysql_install_db com a opção
-IN-RPM para a instalação do Mac OS X
não falhar em sistemas com a configuração de nome de
máquina feita de forma inapropriada.
LOAD DATA INFILE agora irá ler
000000 como uma data zerada em vez de
"2000-00-00".
Corrigido um erro que fazia que DELETE FROM table
WHERE const_expression sempre deletasse toda a
tabela (mesmo se o resultado da expressão fosse falso).
(Bug#355)
Corrigido um bug de core dump ao usar
FORMAT('nan',#). (Bug#284)
Corrigido um erro na resolução do nome com HAVING
... COUNT(DISTINCT ...).
Corrigido resultados incorretos da operação de truncamento
(*) em MATCH ...
AGAINST() em alguns joins complexos.
Fixed a crash in REPAIR ... USE_FRM
command, when used on read-only, nonexisting table or a
table with a crashed index file.
Fixed a crashing bug in mysql monitor program. It occurred
if program was started with --no-defaults,
with a prompt that contained hostname and connection to
non-existing db was requested
Fixed problem when comparing a key for a multi-byte-character set. (Bug#152)
Fixed bug in LEFT,
RIGHT and MID when
used with multi-byte character sets and some GROUP
BY queries. (Bug#314)
Fix problem with ORDER BY being discarded
for some DISTINCT queries. (Bug#275)
Fixed that SET SQL_BIG_SELECTS=1 works as
documented (This corrects a new bug introduced in 4.0)
Fixed some serious bugs in UPDATE ... ORDER
BY. (Bug#241)
Fixed unlikely problem in optimising
WHERE clause with constant expression
like in WHERE 1 AND (a=1 AND b=1).
Fixed that SET SQL_BIG_SELECTS=1 works
again.
Introduced proper backtick quoting for db.table in
SHOW GRANTS.
FULLTEXT index stopped working after
ALTER TABLE that converts
TEXT column to CHAR.
(Bug#283)
Fixed a security problem with SELECT and
wildcarded select list, when user only had partial column
SELECT privileges on the table.
Mark a MyISAM table as "analyzed" only when all the keys are indeed analyzed.
Only ignore world-writeable my.cnf
files that are regular files (and not, for example, named
pipes or character devices).
Fixed few smaller issues with SET
PASSWORD.
Fixed error message which contained deprecated text.
Fixed a bug with two NATURAL JOINs in the
query.
SUM() didn't return
NULL when there was no rows in result or
when all values was NULL.
On Unix symbolic links handling was not enabled by default and there was no way to turn this on.
Added missing dashes to parameter
--open-files-limit in
mysqld_safe. (Bug#264)
Fixed incorrect hostname for TCP/IP connections displayed in
SHOW PROCESSLIST.
Fixed a bug with NAN in
FORMAT(...) function ...
Fixed a bug with improperly cached database privileges.
Fixed a bug in ALTER TABLE ENABLE / DISABLE
KEYS which failed to force a refresh of table data
in the cache.
Fixed bugs in replication of LOAD DATA
INFILE for custom parameters
(ENCLOSED, TERMINATED
and so on) and temporary tables. (Bug#183, Bug#222)
Fixed a replication bug when the master is 3.23 and the
slave 4.0: the slave lost the replicated temporary tables if
FLUSH LOGS was issued on the master. (Bug#254)
Fixed a bug when doing LOAD DATA INFILE
IGNORE: When reading the binary log,
mysqlbinlog and the replication code read
REPLACE instead of
IGNORE. This could make the slave's table
become different from the master's table. (Bug#218)
Fixed a deadlock when
relay_log_space_limit was set to a too
small value. (Bug#79)
Fixed a bug in HAVING clause when an alias is used from the select list.
Fixed overflow bug in MyISAM when a row
is inserted into a table with a large number of columns and
at least one BLOB/TEXT column. Bug was
caused by incorrect calculation of the needed buffer to pack
data.
Fixed a bug when SELECT
@nonexistent_variable
caused the error in client - server protocol due to
net_printf() being sent to the client twice.
Fixed a bug in setting SQL_BIG_SELECTS
option.
Fixed a bug in SHOW PROCESSLIST which
only displayed a localhost in the "Host"
column. This was caused by a glitch that only used current
thread information instead of information from the linked
list of threads.
Removed unnecessary Mac OS X helper files from server RPM. (Bug#144)
Allow optimization of multiple-table update for
InnoDB tables as well.
Fixed a bug in multiple-table updates that caused some rows to be updated several times.
Fixed a bug in mysqldump when it was
called with --master-data: the
CHANGE MASTER TO commands appended to the
SQL dump had incorrect coordinates. (Bug#159)
Fixed a bug when an updating query using
USER() was replicated on the slave; this
caused segfault on the slave. (Bug#178).
USER() is still badly replicated on the
slave (it is replicated to "").
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
