SQLite 3.45 er blevet frigivet, en letvægts DBMS, der er designet som et plug-in bibliotek. Koden til SQLite er offentlig ejendom, hvilket betyder, at den kan bruges uden begrænsninger og gratis til enhver formål. Den finansielle støtte til SQLite-udviklerne gives af et særligt konsortium, der inkluderer virksomheder som Bentley, Bloomberg, Expensify og Navigation Data Standard.
Vigtige ændringer:
- Alle SQL-funktioner til arbejde med JSON-formatet er blevet omskrevet og konverteret til et nyt internt format for JSONB-parsetræet, som kan serialiseres og gemmes i databasen for at undgå gentagen parsing ved brug af JSON-værdier. De nye versioner af funktionerne, der genererer JSON, producerer nu det binære JSONB-format i stedet for tekstformatet. Den valgfri anden parameter er blevet tilføjet til funktionen json_valid(), som kan specificeres med en bitmaske, der definerer egenskaberne ved korrekt JSON (for eksempel vil en angivelse af 0x04 anerkende en blob JSONB som korrekt, ved 0x01 vil tekst JSON i RFC-8259-formatet blive anerkendt, og ved 0x05 begge varianter).
- Til den virtuelle tabel FTS5, der anvendes til fuldtekstsøgning, er der tilføjet muligheden for tokendata, som muliggør brug af egne tokenizere.
- Som standard er SQLITE_DIRECT_OVERFLOW_READ-optimeringen aktiveret, hvor overflow-sider, der er større end den standard b-tree side størrelse, læses direkte fra filen, omgå cache. For at deaktivere denne ved kompilering kan indstillingen "-DSQLITE_DIRECT_OVERFLOW_READ=0" bruges.
- I forespørgselsplanlæggeren er effektiviteten af optimeringen af transitive begrænsninger forbedret, og der er forbedret ignorering af indekser, som betragtes som lavkvalitets under gennemførelsen af ANALYZE-operationen.
- I kommandolinjegrænsefladen er visningen af indholdet i UTF-8-kodning forbedret på Windows-platformen. Der er sikret automatisk genkendelse af brugen af CLI-grænsefladen ved afspilning af ".dump"-scripts og indeholdt de nødvendige ændringer i indstillingerne, såsom " .dbconfig defensive off" og ".dbconfig dqs_dll on".
- Det er tilføjet en egenskab SQLITE_RESULT_SUBTYPE til SQL-funktioner defineret på applikationssiden, hvilket giver mulighed for at kalde sqlite3_result_subtype() for inspektion af argumenternes undertyper.
Derudover kan man bemærke udviklingen af en ny transaktionslogtilstand i eksperimentelle SQLite-versioner — WAL2 ("PRAGMA journal_mode = wal2"), hvor der anvendes to wal-filer ("database-wal" og "database-wal2") i stedet for én. Når data skrives til databasen, tilføjes de nye data til den første wal-fil. Hvis den første wal-fil når en tilstrækkelig stor størrelse, skifter systemet til at skrive til den anden fil. Efter skiftet til den anden wal-fil, bliver den første tilgængelig for commit af ændringer (checkpoint) og overskrivning. Når den anden wal-fil når en stor størrelse, skifter man tilbage til den første, osv., hvilket løser problemet med ukontrolleret vækst af wal-filen i situationer, hvor transaktionen ikke bliver committet over længere tid eller når der udføres lange læseprocesser.
Kilde: opennet.ru
