Foi lançado o SQLite 3.53, um banco de dados leve apresentado como uma biblioteca de conexão. A versão 3.52 foi cancelada. O código do SQLite é distribuído como domínio público, ou seja, pode ser utilizado sem restrições e gratuitamente para qualquer finalidade. O suporte financeiro aos desenvolvedores do SQLite é fornecido por um consórcio especificamente criado.
Principais mudanças:
- Corrigido um erro que poderia corromper o banco de dados. O problema estava presente desde a versão 3.7.0 do SQLite (2010), afetando bancos de dados no modo WAL (Write-Ahead Logging) e manifestando-se devido a uma condição de corrida ao abrir simultaneamente duas ou mais conexões ao banco de dados que tentavam gravar ou confirmar transações em uma única instância do banco de dados. Afirma-se que a sequência de eventos que leva à falha ocorre muito raramente e foi conseguida somente em um cenário de teste especialmente criado.
- Na instrução "ALTER TABLE", agora é permitido remover as verificações "NOT NULL" e "CHECK".
- Adicionada a instrução "REINDEX EXPRESSIONS" para reconstruir índices baseados em expressões, nas quais uma função sobre uma coluna ou operações sobre colunas é usada como elemento do índice. A instrução pode ser aplicada para restaurar índices danificados.
- Dentro de gatilhos temporários criados pela instrução "CREATE TEMP TRIGGER" e aplicados a tabelas em outros bancos de dados, agora é permitido modificar tabelas ou consultar dados de tabelas.
- Na instrução "VACUUM INTO", ao especificar um arquivo de destino via URL, foi implementado o uso do parâmetro "reserve=N" para determinar o número de cópias de backup que estão sendo criadas do banco de dados.
- Implementadas novas funções SQL json_array_insert() e jsonb_array_insert() para inserir elementos em arrays JSON.
- Adicionada e ativada na utilidade de linha de comando a biblioteca QRF (Query Result Formatter) para formatar os resultados da execução de consultas SQL em um formato legível.
- Mudanças na utilidade de linha de comando:
- A instrução " .mode " foi significativamente expandida.
- A melhoria da saída foi aprimorada, por exemplo, a renderização de bordas agora é ativada por padrão, e os valores numéricos agora são alinhados à direita na saída tabulada.
- As vírgulas após as instruções agora são ignoradas.
- O conteúdo dos arquivos especificados na linha de comando com as extensões *.sql e *.txt é agora lido e interpretado como conjuntos de expressões SQL e instruções dot.
- O comando «.timer» agora suporta o valor «once» para aplicar o temporizador apenas à próxima expressão SQL.
- No comando «.progress», foi adicionada a opção «—timeout S» para forçar a interrupção da expressão SQL após a expiração do tempo limite.
- No comando «.indexes», o comportamento dos padrões foi alterado para que agora se apliquem aos nomes dos índices em vez dos nomes das tabelas indexadas.
- Foram feitas otimizações no planejador de consultas, acelerando o merge de tabelas e operações EXCEPT, INTERSECT e UNION.
- Aumentada a performance das funções que convertem números de ponto flutuante em representação de texto.
- Na implementação compilada em código intermediário WebAssembly, foi adicionada a VFS «opfs-wl», que é idêntica à VFS «opfs», mas usa a API Web Locks para gerenciar bloqueios.
- No utilitário sqlite3_rsync, foi adicionada a opção «-p|—port».
- O suporte à plataforma Windows RT foi descontinuado.
Fonte: opennet.ru
