Lëshimi i SQLite 3.40

Është publikuar publikimi i SQLite 3.40, 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.

Ndryshimet kryesore:

  • Një veçori eksperimentale është zbatuar për të përpiluar SQLite në kodin e ndërmjetëm WebAssembly, i aftë për të ekzekutuar në një shfletues uebi dhe i përshtatshëm për organizimin e punës me bazën e të dhënave nga aplikacionet në internet në JavaScript. Zhvilluesit e uebit pajisen me një ndërfaqe të nivelit të lartë të orientuar nga objekti për të punuar me të dhëna në stilin e sql.js ose Node.js, një lidhje me API-në e nivelit të ulët C dhe një API të bazuar në mekanizmin Web Worker, i cili lejon ju të krijoni mbajtës asinkron të ekzekutuar në fije të veçanta. Të dhënat që aplikacionet në ueb ruajnë në versionin WASM të SQLite mund të ruhen në anën e klientit duke përdorur OPFS (Origin-Private FileSystem) ose API window.localStorage.
  • Shtesa e rikuperimit e shtuar, e krijuar për të rikuperuar të dhënat nga skedarët e dëmtuar nga baza e të dhënave. Në ndërfaqen e linjës së komandës, komanda ".recover" përdoret për rikuperim.
  • Performanca e përmirësuar e planifikuesit të pyetjeve. Kufizimet janë hequr kur përdoren indekse me tabela me më shumë se 63 kolona (më parë, indeksimi nuk zbatohej kur operacionet me kolona, ​​numri rendor i të cilave kalon 63). Indeksimi i përmirësuar i vlerave të përdorura në shprehje. Ndaloi ngarkimin e vargjeve dhe pikave të mëdha nga disku gjatë përpunimit të operatorëve NOT NULL dhe IS NULL. Përjashtohet materializimi i pamjeve për të cilat kryhet një skanim i plotë vetëm një herë.
  • Në bazën e kodeve, në vend të tipit "char *", përdoret një lloj i veçantë sqlite3_filename për të përfaqësuar emrat e skedarëve.
  • Funksioni i brendshëm u shtua sqlite3_value_encoding().
  • U shtua modaliteti SQLITE_DBCONFIG_DEFENSIVE, i cili ndalon ndryshimin e versionit të skemës së ruajtjes së të dhënave.
  • Zbatimit të parametrit “PRAGMA integrity_check” i janë shtuar kontrolle shtesë. Për shembull, tabelat pa atributin STRICT nuk duhet të përmbajnë vlera numerike në kolonat e tipit TEXT dhe vlera vargu me numra në kolonat e tipit NUMERIC. Është shtuar gjithashtu një kontroll për rendin e saktë të rreshtave në tabela me atributin "PA ROWID".
  • Shprehja "VACUUM INTO" merr parasysh cilësimet "PRAGMA sinkron".
  • U shtua opsioni i montimit SQLITE_MAX_ALLOCATION_SIZE, i cili ju lejon të kufizoni madhësinë e blloqeve kur shpërndani memorie.
  • Algoritmi i integruar i gjenerimit të numrave pseudo të rastësishëm të SQLite është zhvendosur nga përdorimi i shifrës së transmetimit RC4 në Chacha20.
  • Lejohet përdorimi i indekseve me emra të njëjtë në skema të ndryshme të dhënash.
  • Janë bërë optimizime të performancës për të reduktuar ngarkesën e CPU-së me afërsisht 1% gjatë aktivitetit tipik.

Burimi: opennet.ru

Shto një koment