MySQL/InnoDB-3.23.52, 16 de Agosto de 2002
O conjunto de recursos da versão 3.23 será congelada a partir desta versão. Novos recursos irão para o branch da versão 4.0, e apenas erros corrigidos serão feitos para o branch da versão 3.23.
- Muitas consultas joins no limite da CPU agora são executadas mais rápido. No Windows também muitas outras consultas no limite da CPU executar mais rápido.
- Um novo comando SQL, SHOW INNODB STATUS retorna a saída do Monitor InnoDB para o cliente. O Monitor InnoDB agora exibe informações detalhadas no último deadlock detectado.
- O InnoDB faz o otimizador de consultas SQL evitar muito mais varreduras apenas na faixa de índice e escolhe a varredura de toda a tabela. Agora isto está corrigido.
- 'BEGIN' e 'COMMIT' estão agora adicionados no log binário das transações A replicação do MariaDB agora respeita as bordas da transação: um usuário não verá mais meia transações na replicação dos slaves.
- Um slave de replicação agora exibe na recuperação de falhas o última posição do log binário do master que ele podia recuperar.
- Uma nova configuração innodb_flush_log_at_trx_commit=2 faz o InnoDB gravar o log para uma cache de arquivo do sistema operacional a cada commit. Isto é quase tão rápido quanto configurar innodb_flush_log_at_trx_commit=0, e configurar com 2 também tem o recurso no qual em uma falha onde o sistema operacional não teve problemas, nenhuma transação cujo commit foi realizado é perdida. Se osistema operacional falhar ou houver um queda de força,então a configurar com 2 não é mais segura que configurar com 0.
- Adicionado campos de checksum ao bloqueio de log.
- SET FOREIGN_KEY_CHECKS=0 ajuda na importação de tabelas numa ordem arbitrária que não respeita as regras de chaves estrangeiras.
- SET UNIQUE_CHECKS=0 aumenta a velocidade da importação das tabelas dentro do InnoDB se você tiver restrições de chave única em índices secundários.
- SHOW TABLE STATUS agora também lista possíveis ON DELETE CASCADE ou ON DELETE SET NULL no campo de comentário da tabela.
- Quando CHECK TABLE está executando em qualquer tipo de tabela InnoDB, ela agora verifica também o índice hash adaptativo para todas as tabelas.
- Se você definiu ON DELETE CASCADE ou SET NULL e atualizou o chave referenciada no registro pai, o InnoDB deletava ou atualizava o registro filho. Isto está alterado conforme o SQL-92: você recebe o erro 'Cannot delete parent row'.
- Melhorado o algoritmo de auto incremento: agora o primeiro inserte ou SHOW TABLE STATUS inicializa o contador de auto incremento para a tabela. Isto remove quase todos os deadlocks causados pelo SHOW TABLE STATUS.
- Alinhado alguns buffers usados na leitura e escrita dos arquivos de dados. Isto permite usar dispositivos raw sem buffer como arquivos de dados no Linux.
- Corrigido um erro: se você atualizasse a chave primária de uma tabela, podia ocorrer uma falha de declaração em page0page.ic line 515.
- Corrigido um erro: se você deleta ou atualiza um registro referenciado em uma restrição de chave estrangeira e a verificação de chave estrangeira esperapor um lock, então a verificação pode relatar um resultado errôneo. Isto também afeta a operação ON DELETE...
- Corrigido um erro: Um deadlock ou um erro de tempo esgotado na espera do lock no InnoDB causa um rollback de toda a transação, mas o MariaDB ainda podia gravar as instruções SQL no log binário, embora o InnoDB faça um rollback delas. Isto podia, por exemplo, fazer a replicação do banco de dados ficar fora de sincronia.
- Corrigido um erro: se o banco de dados falha no meio de um commit, então a recuperação pode perder páginas de tablespace.
- Corrigido um erro: se você especificar um conjunto de caracteres no my.cnf, então, ao contrário do que está no manual, em uma restrição de chave estrangeira uma coluna do tipo string tinha que ter o mesmo tamanho na tabela que faz a referência e na tabela referenciada.
- Corrigido um erro: DROP TABLE ou DROP DATABASE podiam falhar se houvesse um CREATE TABLE executando simultaneamente.
- Corrigido um erro: se você configurasse a área de buffer com mais de 2GB em um computador de 32 bits, o InnoDB falharia no buf0buf.ic linha 214.
- Corrigido um erro: Em cmputadores de 64 bits,atualizando registros que contenham SQL NULL em algumas colunas faziam o undo log e o ordinary log se tornavam corrupto.
- Corrigido um erro: innodb_log_monitor causava um travamento se ele suprimisse a exibição de locks para uma página.
- Corrigido um erro: na versão HP-UX-10.20, mutexes perderiam memória e causariam condições de corrida e falhariam em alguma parte do código do InnoDB.
- Corrigido um erro: se você rodou em modo AUTOCOMMIT, executou um SELECT, e imeditamente depois um RENAME TABLE, então RENAME falharia e o MariaDB reclamaria com o erro 192.
- Corrigido um erro: se compilado no Solaris 64 bits, o InnoDB produiria um erro de bus na inicialização.