Lëshimi i DBMS SQLite 3.31 me mbështetje për kolonat e krijuara

botuar lirimin SQLite 3.31.0, një DBMS i lehtë i krijuar si një bibliotekë shtesë. Kodi SQLite shpërndahet si një domen publik, d.m.th. mund të përdoret pa kufizime dhe pa pagesë për çdo qëllim. Mbështetja financiare për zhvilluesit e SQLite ofrohet nga një konsorcium i krijuar posaçërisht, i cili përfshin kompani të tilla si Adobe, Oracle, Mozilla, Bentley dhe Bloomberg.

Kryesore Ndryshimet:

  • Mbështetje e shtuar kolonat e krijuara (kolonat e llogaritura), të cilat ju lejojnë të përcaktoni një kolonë kur krijoni një tabelë, vlera e së cilës llogaritet automatikisht bazuar në përmbajtjen e një kolone tjetër. Kolonat e krijuara mund të jenë ose virtuale (të gjeneruara në fluturim me çdo akses) ose të ruhen në bazën e të dhënave (të ruhen sa herë që azhurnohen kolonat përkatëse). Përmbajtja e kolonave të gjeneruara është e disponueshme vetëm në modalitetin e leximit (ndryshimet bëhen vetëm përmes modifikimit të vlerës në një kolonë tjetër të përfshirë në llogaritje). Për shembull:

    KRIJO TABELE t1(
    një ÇELËS PRIMAR TË PLOTË,
    b INT,
    c TEKST,
    d GJENERUAR GJITHMONË SI (a*abs(b)) VIRTUAL,
    e TEKSTI I GJERUAR GJITHMONË SI (nënstr(c,b,b+1)) RUAJTUR
    );

  • Shtuar PRAGMA besuar_schema, vendosjen SQLITE_DBCONFIG_TRUSTED_SCHEMA dhe opsioni i montimit "-DSQLITE_TRUSTED_SCHEMA", i cili ju lejon të kontrolloni përfshirjen e mbrojtjes kundër sulm nëpërmjet modifikimit të skemës së të dhënave në bazën e të dhënave. Mbrojtja aktive kufizon përdorimin e funksioneve SQL (të pa shënuara SQLITE_INNOCUOUS) në aktivizuesit, pamjet, deklaratat CHECK dhe DEFAULT, indekset dhe kolonat e krijuara. Përdorimi i tabelave virtuale në aktivizuesit dhe pamjet është gjithashtu i çaktivizuar nëse tabela virtuale nuk deklarohet në mënyrë eksplicite me flamurin SQLITE_VTAB_INNOCUOUS.
  • Zbatoi aftësinë për të caktuar vetitë për funksionet SQL të përcaktuara në aplikacione SQLITE_PANOCUOUS (funksione të padëmshme që nuk varen nga parametrat e jashtëm dhe nuk mund të përdoren për të kryer veprime me qëllim të keq) dhe SQLITE_DIRECTONLY (vetëm thirrje direkte në pyetjet SQL, pa mundësinë e përdorimit në triggers, pamje dhe diagrame të strukturës së të dhënave);
  • Moduli i shtuar uuid me zbatimin e funksioneve për përpunimin e UUID (RFC-4122);
  • Shtuar PRAGMA limit_grumbull_i vështirë dhe funksionin sqlite3_hard_heap_limit64() për të kontrolluar madhësinë maksimale të grumbullit;
  • Në PRAGMA lista_funksionale prodhimi i shtuar i llojit, vetive dhe numrit të argumenteve të secilit funksion;
  • Në tabelën virtuale DBSTAT shtuar mënyra e grumbullimit të të dhënave;
  • sqlite3_open_v2() zbaton opsionin SQLITE_OPEN_NOFOLLOW, i cili ju lejon të çaktivizoni hapjen e lidhjeve simbolike;
  • Për argument RRUGË, kaloi te funksionet JSON, shtoi mbështetje për shënimin e grupit "#-N";
  • Në sistemin e shpërndarjes së memories anash vështrimit është zbatuar mbështetja për dy grupe të veçanta memorie, secila prej të cilave mund të përdoret për të ndarë blloqe me madhësi të ndryshme (ndarja ju lejon të zgjeroni përdorimin e sistemit të pamjes, duke zvogëluar madhësinë e tamponit të caktuar për secilën lidhje nga 120 në 48 KB);
  • Mbështetja e PRAGMA është ndërprerë Formati i skedarit të trashëguar, i cili ishte i papajtueshëm me VACUUM, kolonat e krijuara dhe indekset zbritëse (mbështetja e formatit të trashëguar mund të kthehet nëpërmjet flamurit SQLITE_DBCONFIG_LEGACY_FILE_FORMAT në sqlite3_db_config()).

Burimi: opennet.ru

Shto një koment