Vrystelling van DBMS SQLite 3.31 met ondersteuning vir gegenereerde kolomme

gepubliseer vrylating SQLite 3.31.0, 'n liggewig DBMS wat ontwerp is as 'n inprop-biblioteek. Die SQLite-kode word as 'n publieke domein versprei, d.w.s. mag sonder beperkings en gratis vir enige doel gebruik word. Finansiële ondersteuning vir SQLite-ontwikkelaars word verskaf deur 'n spesiaal geskepte konsortium, wat maatskappye soos Adobe, Oracle, Mozilla, Bentley en Bloomberg insluit.

Die belangrikste veranderinge:

  • Bygevoeg ondersteuning gegenereerde kolomme (berekende kolomme), wat jou toelaat om 'n kolom te definieer wanneer jy 'n tabel skep waarvan die waarde outomaties op grond van die inhoud van 'n ander kolom bereken word. Die gegenereerde kolomme kan óf virtueel wees (op die vlug gegenereer met elke toegang) óf in die databasis gestoor word (gestoor elke keer as die verwante kolomme opgedateer word). Die inhoud van die gegenereerde kolomme is slegs beskikbaar in leesmodus (veranderinge word slegs aangebring deur verandering van die waarde in 'n ander kolom wat by die berekening betrokke is). Byvoorbeeld:

    SKEP TABEL t1(
    'n HEELGETAL PRIMÊRE SLEUTEL,
    b INT,
    c TEKS,
    d INT ALTYD GEgenereer AS (a*abs(b)) VIRTUAL,
    e TEKS ALTYD GEgenereer AS (substr(c,b,b+1)) GESTOOR
    );

  • Bygevoeg PRAGMA vertroude_skema, instelling SQLITE_DBCONFIG_TRUSTED_SCHEMA en die samestelling opsie "-DSQLITE_TRUSTED_SCHEMA", wat jou toelaat om die insluiting van beskerming teen aanvalle deur wysiging van die dataskema in die databasis. Aktiewe beskerming beperk die gebruik van SQL-funksies (nie gemerk SQLITE_INNOCUOUS nie) in snellers, aansigte, CHECK- en DEFAULT-stellings, indekse en gegenereerde kolomme. Die gebruik van virtuele tabelle in snellers en aansigte is ook gedeaktiveer tensy die virtuele tabel uitdruklik verklaar word met die SQLITE_VTAB_INNOCUOUS vlag.
  • Implementeer die vermoë om eienskappe toe te ken aan SQL-funksies wat in toepassings gedefinieer is SQLITE_ONNOCUOUUS (skadelose funksies wat nie van eksterne parameters afhanklik is nie en nie gebruik kan word om kwaadwillige handelinge uit te voer nie) en SQLITE_DIRECTONLY (slegs direkte oproep in SQL-navrae, sonder die moontlikheid om in snellers, aansigte en datastruktuurdiagramme te gebruik);
  • Bygevoeg module uuid met implementering van funksies vir die verwerking van UUID (RFC-4122);
  • Bygevoeg PRAGMA harde_hoop_limiet en funksie sqlite3_hard_heap_limit64() om die maksimum hoopgrootte te beheer;
  • In PRAGMA funksie_lys bygevoegde uitset van tipe, eienskappe en aantal argumente van elke funksie;
  • Vir virtuele tabel DBSTAT bygevoeg data samevoeging modus;
  • sqlite3_open_v2() implementeer die SQLITE_OPEN_NOFOLLOW opsie, wat jou toelaat om die opening van simboliese skakels te deaktiveer;
  • Vir argument PATH, oorgedra na JSON-funksies, het ondersteuning bygevoeg vir "#-N" skikkingsnotasie;
  • In die geheueverspreidingstelsel eenkant toe kyk ondersteuning vir twee afsonderlike geheuepoele is geïmplementeer, wat elkeen gebruik kan word om blokke van verskillende groottes toe te wys (skeiding laat jou toe om die gebruik van die kyk-sy-stelsel uit te brei, terwyl die grootte van die buffer wat aan elke verbinding toegewys is van 120 tot 48 verminder word KB);
  • PRAGMA-ondersteuning is gestaak legacy_file_format, wat onversoenbaar was met VACUUM, gegenereerde kolomme en dalende indekse (ondersteuning van ouditformaat kan teruggestuur word via die SQLITE_DBCONFIG_LEGACY_FILE_FORMAT vlag in sqlite3_db_config()).

Bron: opennet.ru

Voeg 'n opmerking