Alterações na distribuição 4.0.13 (16 May 2003)
Funcionalidades adicionadas ou alteradas:
PRIMARY KEY
agora implicaNOT 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
eSHOW SLAVE STATUS
exigem o privilégioSUPER
; agora eles aceitamREPLICATION CLIENT
. (Bug#343)- Adicionada otimização de reparação do MyISAM em multi-threads e a variável
myisam_repair_threads
para habilitá-lo. Leia "SHOW VARIABLES
". - Adicionada a variável
innodb_max_dirty_pages_pct
que controla a quantidade de páginassujas
permitidas na área de buffer doInnoDB
. - As mensagens de erro
CURRENT_USER()
eAccess denied
agora relatam o nome de máquina exatamente como ele está especificado no comandoGRANT
. - 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 suportamANALYZE TABLE
. - O MariaDB agora envia um erro quando ele abre uma tabela que foi criada com o MariaDB 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 paraINTEGER
com umCAST
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 MariaDB 4.1. (Bug#152) - Habilitado
delayed_insert_timeout
no Linux (as bibliotecas glibc mais modernas tem umpthread_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()
eBIT_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 tabelasInnoDB
como ACID por padrão. Leia "Opções de Inicialização do InnoDB". - Adicionado o recurso para
SHOW KEYS
para mostrar chaves que estão disabilitadas pelo comandoALTER 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 utilizarMyISAM
. - Adicionado
MEMORY
como um alias paraHEAP
. - Renomeada a função
rnd
paramy_rnd
já que o nome era muito genérico e é um símbolo exportado nolibmysqlclient
(obrigado a Dennis Haney pelo patch inicial). - Correção de portabilidade: renomeado
include/dbug.h
parainclude/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 ecluirmysql.user
,mysql.host
,mysql.db
,mysql.tables_priv
emysql.columns_priv
da replicação, entãoGRANT
eREVOKE
não serão replicados.
Bugs corrigidos:
- A mensagem de erro
Access denied
ao logar tinha um valorUsing password
incorreto. (Bug#398) - Corrigido um bug com
NATURAL LEFT JOIN
,NATURAL RIGHT JOIN
eRIGHT JOIN
quando usadas muitas tabelas em joins. O problema era que o métodoJOIN
não era sempre associoado com as tabelas envolvida no métodoJOIN
. Se você tiver uma consulta que usa muitosRIGHT JOIN
ouNATURAL ... JOINS
você deve verificar se eles funcionam como você espera depois de atualizar o MariaDB para esta versõa. (Bug#291) - O cliente de linha de comando
MariaDB
não olha mais os comnados\*
dentro de stringd com aspas invertidas. - Corrigido
Unknown error
ao usarUPDATE ... LIMIT
. (Bug#373) - Corrigido o problema com o modo ANSI e
GROUP BY
com constantes. (Bug#387) - Corrigido o erro com
UNION
eOUTER JOIN
. (Bug#386) - Corrigido o erro se é usado um
UPDATE
multi-tabelas e a consulta exige um tabela temporária maior quetmp_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á ler000000
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 (
*
) emMATCH ... 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
andMID
when used with multi-byte character sets and someGROUP BY
queries. (Bug#314) - Fix problem with
ORDER BY
being discarded for someDISTINCT
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 inWHERE 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 afterALTER TABLE
that convertsTEXT
column toCHAR
. (Bug#283)- Fixed a security problem with
SELECT
and wildcarded select list, when user only had partial columnSELECT
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 returnNULL
when there was no rows in result or when all values wasNULL
.- 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
inmysqld_safe
. (Bug#264) - Fixed incorrect hostname for TCP/IP connections displayed in
SHOW PROCESSLIST
. - Fixed a bug with
NAN
inFORMAT(...)
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 readREPLACE
instead ofIGNORE
. 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 oneBLOB/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
: theCHANGE 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''
).