A DBMS SQLite 3.31 kiadása a generált oszlopok támogatásával

közzétett kiadás SQLite 3.31.0, egy plug-in könyvtárként tervezett könnyű DBMS. Az SQLite kódot nyilvános domainként terjesztik, azaz. korlátozás nélkül és ingyenesen felhasználható bármilyen célra. Az SQLite fejlesztőinek pénzügyi támogatását egy speciálisan létrehozott konzorcium biztosítja, amelyben olyan cégek szerepelnek, mint az Adobe, az Oracle, a Mozilla, a Bentley és a Bloomberg.

A főbb változások:

  • Hozzáadott támogatás generált oszlopok (számított oszlopok), amely lehetővé teszi egy oszlop definiálását, amikor olyan táblázatot hoz létre, amelynek értéke automatikusan egy másik oszlop tartalma alapján kerül kiszámításra. A generált oszlopok lehetnek virtuálisak (minden hozzáféréssel menet közben jönnek létre), vagy az adatbázisban tárolhatók (a kapcsolódó oszlopok minden frissítése alkalmával mentésre kerülnek). A generált oszlopok tartalma csak olvasási módban érhető el (változtatás csak a számításba bevont másik oszlop értékének módosításával történik). Például:

    TÁBLÁZAT LÉTREHOZÁSA t1(
    egy EGÉSZ SZÁMÚ ELSŐDLEGES KULCS,
    b INT,
    c SZÖVEG,
    d INT MINDIG LÉTREHOZOTT (a*abs(b)) VIRTUÁLIS,
    e SZÖVEG MINDIG MINDIG MINDIG LÉTREHOZOTT (substr(c,b,b+1)) TÁROLVA
    );

  • PRAGMA hozzáadva megbízható_séma, beállítás SQLITE_DBCONFIG_TRUSTED_SCHEMA és a „-DSQLITE_TRUSTED_SCHEMA” összeállítási opció, amely lehetővé teszi a védelem beépítésének szabályozását. támadások az adatbázisban lévő adatséma módosításával. Az aktív védelem korlátozza az SQL-függvények (az SQLITE_INNOCUOUS jelölés nélkül) használatát triggerekben, nézetekben, CHECK és DEFAULT utasításokban, indexekben és generált oszlopokban. A virtuális táblák használata triggerekben és nézetekben szintén le van tiltva, hacsak a virtuális tábla nincs kifejezetten deklarálva az SQLITE_VTAB_INNOCUOUS jelzővel.
  • Megvalósította a tulajdonságok hozzárendelését az alkalmazásokban definiált SQL-függvényekhez SQLITE_INNOCUOUS (ártalmatlan funkciók, amelyek nem függenek külső paraméterektől és nem használhatók rosszindulatú műveletek végrehajtására) és SQLITE_DIRECTONLY (csak közvetlen hívás SQL lekérdezésekben, triggerekben, nézetekben és adatszerkezeti diagramokban való felhasználás lehetősége nélkül);
  • Hozzáadott modul uuid az UUID feldolgozására szolgáló funkciók megvalósításával (RFC-4122);
  • PRAGMA hozzáadva hard_heap_limit és funkció sqlite3_hard_heap_limit64() a maximális kupacméret szabályozására;
  • A PRAGMA-ban function_list az egyes függvények típusának, tulajdonságainak és argumentumainak hozzáadott kimenete;
  • A DBSTAT virtuális táblához - tette hozzá adatgyűjtő mód;
  • Az sqlite3_open_v2() megvalósítja az SQLITE_OPEN_NOFOLLOW opciót, amely lehetővé teszi a szimbolikus hivatkozások megnyitásának letiltását;
  • Érvelésre PATH, átadva a JSON-függvényeknek, hozzáadva a „#-N” tömbjelölés támogatását;
  • A memóriaelosztó rendszerben félrenézett két különálló memóriatár támogatása valósult meg, amelyek mindegyike különböző méretű blokkok lefoglalására használható (a szétválasztás lehetővé teszi a külső rendszer használatának bővítését, miközben az egyes kapcsolatokhoz lefoglalt puffer mérete 120-ról 48-ra csökken KB);
  • A PRAGMA támogatása megszűnt legacy_file_format, amely nem volt kompatibilis a VACUUM-mal, a generált oszlopokkal és a csökkenő indexekkel (a régi formátumok támogatása az sqlite3_db_config() SQLITE_DBCONFIG_LEGACY_FILE_FORMAT jelzőjén keresztül visszaadható).

Forrás: opennet.ru

Hozzászólás