Versão SQLite 3.40

O lançamento do SQLite 3.40, um DBMS leve projetado como uma biblioteca de plug-ins, foi publicado. O código SQLite é distribuído em domínio público, ou seja, pode ser usado sem restrições e gratuitamente para qualquer finalidade. O suporte financeiro para desenvolvedores SQLite é fornecido por um consórcio especialmente criado, que inclui empresas como Adobe, Oracle, Mozilla, Bentley e Bloomberg.

Grandes mudanças:

  • Implementou a capacidade experimental de compilar o SQLite em um código WebAssembly intermediário que pode ser executado em um navegador da Web e é adequado para organizar o trabalho com o banco de dados de aplicativos da Web na linguagem JavaScript. Os desenvolvedores da Web recebem uma interface orientada a objetos de alto nível para trabalhar com dados no estilo sql.js ou Node.js, envolvendo uma API C de baixo nível e uma API baseada no mecanismo Web Worker que permite para criar manipuladores assíncronos executados em threads separados. Os dados que os aplicativos da Web armazenam na versão WASM do SQLite podem ser armazenados no lado do cliente usando OPFS (Origin-Private FileSystem) ou a API window.localStorage.
  • A extensão de recuperação foi adicionada, projetada para recuperar dados de arquivos danificados do banco de dados. A interface de linha de comando usa o comando ".recover" para restaurar.
  • Melhor desempenho do planejador de consulta. Foram removidas as restrições ao uso de índices com tabelas com mais de 63 colunas (anteriormente, a indexação não era aplicada para operações com colunas cujo número ordinal excedia 63). Melhoria na indexação dos valores usados ​​nas expressões. Parou de carregar strings e blobs grandes do disco ao processar operadores NOT NULL e IS NULL. Excluída a materialização de visualizações para as quais uma verificação completa é executada apenas uma vez.
  • Na base de código, em vez de usar o tipo "char *", um tipo separado sqlite3_filename é usado para representar nomes de arquivo.
  • Adicionada a função interna sqlite3_value_encoding().
  • Adicionado o modo SQLITE_DBCONFIG_DEFENSIVE, que proíbe a alteração da versão do esquema de armazenamento.
  • Verificações adicionais foram adicionadas à implementação do parâmetro "PRAGMA Integrity_check". Por exemplo, tabelas sem o atributo STRICT não devem conter valores numéricos em colunas TEXT e valores string com números em colunas NUMERIC. Também adicionado verifique a exatidão da ordem das linhas nas tabelas com o atributo "WITHOUT ROWID".
  • A expressão "VACUUM INTO" respeita as configurações de "PRAGMA síncrono".
  • Adicionada a opção de compilação SQLITE_MAX_ALLOCATION_SIZE para limitar o tamanho do bloco ao alocar memória.
  • O algoritmo para gerar números pseudo-aleatórios incorporados ao SQLite foi movido do uso da cifra de fluxo RC4 para Chacha20.
  • É permitido usar índices com o mesmo nome em diferentes esquemas de dados.
  • Otimizações de desempenho foram feitas para reduzir a carga na CPU em cerca de 1% durante a atividade típica.

Fonte: opennet.ru

Adicionar um comentário