SQLite 3.40-release

De release van SQLite 3.40, een lichtgewicht DBMS ontworpen als een plug-in-bibliotheek, is gepubliceerd. De SQLite-code wordt gedistribueerd in het publieke domein, d.w.z. kan zonder beperkingen en gratis voor elk doel worden gebruikt. Financiële ondersteuning voor SQLite-ontwikkelaars wordt geleverd door een speciaal opgericht consortium, waaronder bedrijven als Adobe, Oracle, Mozilla, Bentley en Bloomberg.

Grote veranderingen:

  • De experimentele mogelijkheid geïmplementeerd om SQLite te compileren tot een tussenliggende WebAssembly-code die kan worden uitgevoerd in een webbrowser en geschikt is voor het organiseren van werk met de database vanuit webapplicaties in de JavaScript-taal. Webontwikkelaars krijgen een objectgeoriënteerde interface op hoog niveau voor het werken met gegevens in de stijl van sql.js of Node.js, waarbij een low-level C API wordt omwikkeld, en een API gebaseerd op het Web Worker-mechanisme waarmee u om asynchrone handlers te maken die op afzonderlijke threads draaien. De gegevens die webapplicaties opslaan in de WASM-versie van SQLite kunnen aan de clientzijde worden opgeslagen met behulp van OPFS (Origin-Private FileSystem) of de window.localStorage API.
  • De herstelextensie is toegevoegd, ontworpen om gegevens van beschadigde bestanden uit de database te herstellen. De opdrachtregelinterface gebruikt de opdracht ".recover" om te herstellen.
  • Verbeterde prestaties van queryplanner. Beperkingen zijn verwijderd bij het gebruik van indexen met tabellen met meer dan 63 kolommen (voorheen werd indexering niet toegepast voor bewerkingen met kolommen waarvan het rangtelwoord hoger was dan 63). Verbeterde indexering van waarden die in uitdrukkingen worden gebruikt. Gestopt met het laden van grote tekenreeksen en blobs van de schijf bij het verwerken van NOT NULL- en IS NULL-operators. Uitgesloten materialisatie van weergaven waarvoor slechts één keer een volledige scan wordt uitgevoerd.
  • In de codebase wordt in plaats van het type "char *" een afzonderlijk type sqlite3_filename gebruikt om bestandsnamen weer te geven.
  • Interne functie sqlite3_value_encoding() toegevoegd.
  • De SQLITE_DBCONFIG_DEFENSIVE-modus toegevoegd, die het wijzigen van de versie van het opslagschema verbiedt.
  • Er zijn extra controles toegevoegd aan de implementatie van de parameter "PRAGMA integrity_check". Tabellen zonder het STRICT-attribuut mogen bijvoorbeeld geen numerieke waarden in TEXT-kolommen en tekenreekswaarden met getallen in NUMERIC-kolommen bevatten. Ook toegevoegd controleer de juistheid van de volgorde van rijen in tabellen met het attribuut "ZONDER ROWID".
  • De "VACUUM INTO"-uitdrukking respecteert de "PRAGMA synchronous"-instellingen.
  • Bouwoptie SQLITE_MAX_ALLOCATION_SIZE toegevoegd om de blokgrootte te beperken bij het toewijzen van geheugen.
  • Het algoritme voor het genereren van pseudo-willekeurige getallen dat in SQLite is ingebouwd, is verplaatst van het gebruik van het RC4-stroomcijfer naar Chacha20.
  • Het is toegestaan ​​om indexen met dezelfde naam in verschillende gegevensschema's te gebruiken.
  • Er zijn prestatie-optimalisaties doorgevoerd om de belasting van de CPU tijdens normale activiteit met ongeveer 1% te verminderen.

Bron: opennet.ru

Voeg een reactie