Lançamento do SGBD SQLite 3.31 com suporte a colunas geradas

Publicado lançamento SQLite 3.31.0, um banco de dados leve, apresentado como uma biblioteca plugável. 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 para os desenvolvedores do SQLite é fornecido por um consórcio criado especialmente, que inclui empresas como Adobe, Oracle, Mozilla, Bentley e Bloomberg.

Principais mudanças:

  • Suporte adicionado colunas geradas (colunas calculadas), permitindo, ao criar uma tabela, definir uma coluna cujo valor é automaticamente calculado com base no conteúdo de outra coluna. As colunas geradas podem ser virtuais (formadas em tempo real a cada chamada) ou armazenadas no banco de dados (salvas a cada atualização de colunas relacionadas). O conteúdo das colunas geradas é acessível apenas em modo de leitura (a modificação é feita apenas através da mudança do valor em outra coluna envolvida no cálculo). Por exemplo:

    CREATE TABLE t1(
    a INTEGER PRIMARY KEY,
    b INT,
    c TEXT,
    d INT GENERATED ALWAYS AS (a*abs(b)) VIRTUAL,
    e TEXT GENERATED ALWAYS AS (substr(c,b,b+1)) STORED
    );

  • Adicionadas PRAGMA trusted_schema, configuração SQLITE_DBCONFIG_TRUSTED_SCHEMA e opção de compilação “-DSQLITE_TRUSTED_SCHEMA”, permitindo gerenciar a ativação da proteção contra ataques por meio da modificação do esquema de dados no banco de dados. Com a proteção ativada, o uso de funções SQL (não marcadas como SQLITE_INNOCUOUS) em gatilhos, visões, expressões CHECK e DEFAULT, índices e colunas geradas é restringido. Também é desativado o uso de tabelas virtuais em gatilhos e visões, a menos que a tabela virtual seja explicitamente declarada com a flag SQLITE_VTAB_INNOCUOUS.
  • Implementada a possibilidade de atribuir certas propriedades às funções SQL em aplicativos SQLITE_INNOCUOUS (funções inofensivas que não dependem de parâmetros externos e não podem ser utilizadas para ações maliciosas) e SQLITE_DIRECTONLY (somente chamável diretamente em consultas SQL, sem possibilidade de aplicação em gatilhos, visões e esquemas de estrutura de dados);
  • Módulo adicionado uuid com a implementação de funções para manipulação de UUID (RFC-4122);
  • Adicionada PRAGMA hard_heap_limit e a função sqlite3_hard_heap_limit64() para gerenciar o tamanho máximo da heap;
  • Na PRAGMA function_list adicionado a saída do tipo, propriedades e número de argumentos de cada função;
  • Na tabela virtual DBSTAT o sinalizador -k para integração com modo de agregação de dados;
  • Na sqlite3_open_v2() foi implementada a opção SQLITE_OPEN_NOFOLLOW, que proíbe a abertura de links simbólicos;
  • Para o argumento caminhos, passado para as funções JSON, foi adicionada a suportar notação de arrays “#-N”;
  • No sistema de alocação de memória lookaside Foi implementado o suporte a dois pools de memória separados, cada um dos quais pode ser usado para alocar blocos de tamanhos diferentes (a segmentação permite ampliar a aplicação do sistema lookaside, reduzindo ao mesmo tempo o tamanho do buffer alocado para cada conexão de 120 para 48 KB);
  • Suporte para PRAGMA encerrado legacy_file_format, que era incompatível com VACUUM, colunas geradas e índices decrescentes (o suporte ao formato legado pode ser restaurado através da flag SQLITE_DBCONFIG_LEGACY_FILE_FORMAT em sqlite3_db_config()).

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster