Llançament de DBMS SQLite 3.31 amb suport per a columnes generades

publicat alliberament SQLite 3.31.0, un SGBD lleuger dissenyat com a biblioteca de connectors. El codi SQLite es distribueix com a domini públic, és a dir. es pot utilitzar sense restriccions i de forma gratuïta per a qualsevol propòsit. El suport financer per als desenvolupadors de SQLite és proporcionat per un consorci creat especialment, que inclou empreses com Adobe, Oracle, Mozilla, Bentley i Bloomberg.

El principal canvis:

  • Suport afegit columnes generades (columnes calculades), que permeten definir una columna quan es crea una taula el valor de la qual es calcula automàticament en funció del contingut d'una altra columna. Les columnes generades poden ser virtuals (generades sobre la marxa amb cada accés) o emmagatzemades a la base de dades (desades cada vegada que s'actualitzen les columnes relacionades). El contingut de les columnes generades només està disponible en mode de lectura (els canvis només es realitzen mitjançant la modificació del valor en una altra columna implicada en el càlcul). Per exemple:

    CREA LA TAULA t1(
    una CLAU PRIMÀRIA ENTERA,
    b INT,
    c TEXT,
    d INT GENERAT SEMPRE COM (a*abs(b)) VIRTUAL,
    e TEXT GENERAT SEMPRE COM (substr(c,b,b+1)) emmagatzemat
    );

  • S'ha afegit PRAGMA esquema_confiable, configuració SQLITE_DBCONFIG_TRUSTED_SCHEMA i l'opció de muntatge “-DSQLITE_TRUSTED_SCHEMA”, que permeten controlar la inclusió de protecció contra atacs mitjançant la modificació de l'esquema de dades a la base de dades. La protecció activa restringeix l'ús de funcions SQL (no marcades SQLITE_INNOCUOUS) en activadors, visualitzacions, sentències CHECK i DEFAULT, índexs i columnes generades. L'ús de taules virtuals en activadors i vistes també està desactivat tret que la taula virtual es declari explícitament amb el senyalador SQLITE_VTAB_INNOCUOUS.
  • S'ha implementat la capacitat d'assignar propietats a les funcions SQL definides a les aplicacions SQLITE_INNOCUOUS (funcions inofensives que no depenen de paràmetres externs i que no es poden utilitzar per realitzar accions malicioses) i SQLITE_DIRECTONLY (només trucada directa en consultes SQL, sense possibilitat d'utilitzar en activadors, vistes i diagrames d'estructura de dades);
  • Mòdul afegit uuid amb implementació de funcions per processar UUID (RFC-4122);
  • S'ha afegit PRAGMA límit_difícil_de_munt i la funció sqlite3_hard_heap_limit64() per controlar la mida màxima del munt;
  • A PRAGMA llista_funcions sortida afegida del tipus, propietats i nombre d'arguments de cada funció;
  • A la taula virtual DBSTAT afegit mode d'agregació de dades;
  • sqlite3_open_v2() implementa l'opció SQLITE_OPEN_NOFOLLOW, que permet desactivar l'obertura d'enllaços simbòlics;
  • Per argumentar CAMÍ, passat a les funcions JSON, va afegir suport per a la notació de matriu "#-N";
  • En el sistema de distribució de la memòria mira al costat S'ha implementat suport per a dues agrupacions de memòria separades, cadascuna de les quals es pot utilitzar per assignar blocs de diferents mides (la separació permet ampliar l'ús del sistema Lookaside, alhora que redueix la mida de la memòria intermèdia assignada a cada connexió de 120 a 48). KB);
  • El suport de PRAGMA s'ha interromput format_de_fitxer_legat, que era incompatible amb VACUUM, columnes generades i índexs descendents (el suport de format heretat es pot retornar mitjançant el senyalador SQLITE_DBCONFIG_LEGACY_FILE_FORMAT a sqlite3_db_config()).

Font: opennet.ru

Afegeix comentari