Release van de SQLite database 3.40

De release van SQLite 3.40 is gepubliceerd, een lichte databasebeheersysteem, gepresenteerd als een koppelbare bibliotheek. De code van SQLite is beschikbaar als publiek domein, wat betekent dat deze zonder beperkingen en kosteloos voor alle doeleinden kan worden gebruikt. De financiële ondersteuning voor de ontwikkelaars van SQLite wordt verleend door een speciaal opgerichte consortium, waartoe bedrijven als Adobe, Oracle, Mozilla, Bentley en Bloomberg behoren.

Belangrijkste wijzigingen:

  • Een experimentele mogelijkheid om SQLite te compileren naar WebAssembly-intermediaire code, die in webbrowser kan worden uitgevoerd en geschikt is voor databasebeheer vanuit webapplicaties in JavaScript, is geïmplementeerd. Webontwikkelaars krijgen een hoog-niveau object-georiënteerde interface aangeboden voor datamanagement in de stijl van sql.js of Node.js, alsook een laag-niveau C API en een API op basis van de Web Worker-mechanisme, dat het mogelijk maakt om asynchrone handlers te maken die in aparte threads draaien. Gegevens die webapplicaties opslaan in de WASM-versie van SQLite kunnen aan de klantzijde worden opgeslagen met behulp van OPFS (Origin-Private FileSystem) of de API window.localStorage.
  • Een recovery-extensie is toegevoegd, bedoeld voor het herstellen van gegevens uit beschadigde databasebestanden. In de opdrachtregelinterface wordt de '.recover'-opdracht gebruikt voor herstel.
  • De werking van de query-planner is verbeterd. Beperkingen bij het gebruik van indexen met tabellen van meer dan 63 kolommen zijn opgeheven (voorheen werd indexing niet toegepast bij operaties met kolommen waarvan het volgnummer hoger is dan 63). De indexing van waarden die in expressies worden gebruikt is verbeterd. Het laden van grote strings en blobs van schijf bij het verwerken van de NOT NULL en IS NULL operatoren is stopgezet. Materialisatie van views waarvoor een volledige scan slechts één keer wordt uitgevoerd, is uitgesloten.
  • In de codebasis is in plaats van het type 'char *' voor het vertegenwoordigen van bestandsnamen een apart type sqlite3_filename gebruikt.
  • Een interne functie sqlite3_value_encoding() is toegevoegd.
  • De modus SQLITE_DBCONFIG_DEFENSIVE is toegevoegd, die het wijzigen van de versie van het gegevensopslag schema verbiedt.
  • Aan de implementatie van de parameter «PRAGMA integrity_check» zijn extra controles toegevoegd. Zo mogen tabellen zonder de STRICT-indicator geen numerieke waarden bevatten in kolommen van het type TEXT en stringwaarden met cijfers in kolommen van het type NUMERIC. Daarnaast is de controle van de volgorde van rijen in tabellen met de indicator «WITHOUT ROWID» toegevoegd.
  • Bij de instructie «VACUUM INTO» zijn de instellingen «PRAGMA synchronous» in overweging genomen.
  • Een bouwoptie SQLITE_MAX_ALLOCATION_SIZE is toegevoegd, waarmee de grootte van blokken bij geheugentoewijzing kan worden beperkt.
  • Het ingebouwde algoritme voor het genereren van pseudorandom nummers in SQLite is overgestapt van het gebruik van de stroomversleuteling RC4 naar Chacha20.
  • Het gebruik van indexen met dezelfde namen in verschillende dataschema's is toegestaan.
  • Prestatieoptimalisaties zijn doorgevoerd, waardoor de belasting van de CPU met ongeveer 1% is verlaagd bij typische activiteiten.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster