SQLite 3.40 utgivelse

Utgivelsen av SQLite 3.40, et lett DBMS designet som et plug-in-bibliotek, har blitt publisert. SQLite-koden er distribuert i det offentlige domene, dvs. kan brukes uten begrensninger og gratis til ethvert formål. Økonomisk støtte til SQLite-utviklere gis av et spesielt opprettet konsortium, som inkluderer selskaper som Adobe, Oracle, Mozilla, Bentley og Bloomberg.

Hovedendringer:

  • En eksperimentell funksjon er implementert for å kompilere SQLite til WebAssembly-mellomkode, som kan kjøres i en nettleser og er egnet for å jobbe med databasen fra JavaScript-webapplikasjoner. Webutviklere får tilgang til et objektorientert grensesnitt på høyt nivå for å jobbe med data i stil med sql.js eller Node.js, en wrapper rundt et lavnivå C API og et API basert på Web Worker-mekanismen, som tillater opprettelse av asynkrone prosessorer som kjører i separate tråder. Data lagret av webapplikasjoner i WASM-versjonen av SQLite kan lagres på klientsiden ved hjelp av OPFS (Origin-Private FileSystem) eller window.localStorage API.
  • Gjenopprettingsutvidelsen er lagt til for å gjenopprette data fra skadede databasefiler. Kommandoen "recover" brukes til gjenoppretting i kommandolinjegrensesnittet.
  • Ytelsen til spørreplanleggeren er forbedret. Restriksjoner på bruk av indekser med tabeller med mer enn 63 kolonner er fjernet (tidligere ble ikke indeksering brukt på operasjoner med kolonner med ordinaltall større enn 63). Indeksering av verdier brukt i uttrykk er forbedret. Lasting av store rader og klatter fra disken når operatorene NOT NULL og IS NULL behandles, er stoppet. Materialisering av visninger som bare utføres en fullstendig skanning for én gang, er eliminert.
  • I kodebasen brukes en separat sqlite3_filename-type til å representere filnavn i stedet for typen «char *».
  • La til intern funksjon sqlite3_value_encoding().
  • La til SQLITE_DBCONFIG_DEFENSIVE-modus, som forbyr endring av versjonen av datalagringsskjemaet.
  • Ytterligere kontroller er lagt til implementeringen av parameteren «PRAGMA integrity_check». For eksempel må ikke tabeller uten STRICT-flagget inneholde numeriske verdier i TEXT-kolonner eller strengverdier med tall i NUMERIC-kolonner. En kontroll for riktig radrekkefølge er også lagt til for tabeller med flagget «WITHOUT ROWID».
  • Uttrykket «VACUUM INTO» tar hensyn til innstillingene for «PRAGMA synkron».
  • La til byggealternativet SQLITE_MAX_ALLOCATION_SIZE, som lar deg begrense størrelsen på blokker når du allokerer minne.
  • SQLites innebygde algoritme for generering av pseudotilfeldige tall har blitt migrert fra å bruke RC4-strømchifferen til Chacha20.
  • Det er tillatt å bruke indekser med samme navn i forskjellige dataskjemaer.
  • Ytelsesoptimaliseringer er gjort som reduserer CPU-belastningen med omtrent 1 % under typisk aktivitet.

Kilde: opennet.ru