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 JOIN
s 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.