Objavljen je izdan SQLite 3.45, lagane SGBD, koja je predstavljena kao dinamička biblioteka. Kod SQLite-a se distribuira kao javno dobro (public domain), što znači da se može koristiti bez ograničenja i besplatno u razne svrhe. Finansijsku podršku razvoju SQLite-a pruža posebno formirani konzorcijum, u kojem su uključene kompanije kao što su Bentley, Bloomberg, Expensify i Navigation Data Standard.
Glavne spremembe:
- Sve SQL funkcije za rad sa JSON formatom su prepisane i prevedene na novi unutrašnji format JSONB stabla, koje se serializuje i može se čuvati u bazi podataka kako bi se izbeglo ponovo parsiranje prilikom korišćenja JSON vrednosti. Nove verzije funkcija za generisanje JSON-a sada generišu binarni format JSONB umesto tekstualnog. U funkciju json_valid() dodat je opcioni drugi argument, putem kojeg se može odrediti bitna maska koja definiše karakteristike ispravnog JSON-a (na primer, kada se koristi 0x04, ispravnim će se smatrati blob JSONB, kada se koristi 0x01 tekstualni JSON u RFC-8259 formatu, a kada se koristi 0x05 oba varijante).
- U virtuelnu tabelu FTS5, koja se koristi za puntekstualno pretraživanje, dodata je opcija tokendata, koja omogućava korišćenje sopstvenih tokenizatora.
- Podrazumevano je uključena optimizacija SQLITE_DIRECT_OVERFLOW_READ, pri kojoj se overflow stranice, koje su veće od standardne veličine b-tree stranice, čitaju direktno iz datoteke, zaobilazeći keš. Za isključivanje tokom kompilacije može se koristiti opcija "-DSQLITE_DIRECT_OVERFLOW_READ=0".
- U planeru zahteva poboljšana je efikasnost optimizacije tranzitivnih ograničenja (transitive constraint) i unapređeno je ignorisanje indeksa koji su ocenjeni kao niskokvalitetni tokom izvršavanja operacije ANALYZE.
- U komandnoj liniji poboljšano je prikazivanje sadržaja u UTF-8 kodiranju na Windows platformi. Osigurano je automatsko prepoznavanje korišćenja CLI interfejsa prilikom reprodukcije "dump" skripti i unošenje odgovarajućih promena u podešavanja, kao što su "dbconfig defensive off" i "dbconfig dqs_dll on".
- U SQL funkcijama definisanim na strani aplikacije dodata je osobina SQLITE_RESULT_SUBTYPE, koja omogućava pozivanje funkcije sqlite3_result_subtype() za inspekciju podtipova argumenata.
Dodatno se može istaknuti razvoj u eksperimentalnim gradnjama SQLite novog načina vođenja dnevnika transakcija — WAL2 («PRAGMA journal_mode = wal2»), pri čemu se koriste dva wal-datoteke («database-wal» i «database-wal2») umesto jedne. Kada se podaci beleže u Bazu podataka, dodaju se novi podaci u prvu wal-datoteku. Ako prva wal-datoteka dostigne dovoljno veliku veličinu, vrši se prebacivanje na unos u drugu datoteku. Nakon prebacivanja na drugu wal-datoteku, prva postaje dostupna za fiksiranje izmena (checkpoint) i prepisivanje. Tako, kada druga wal-datoteka dostigne veliku veličinu, vrši se prebacivanje na prvu i tako dalje, što rešava problem sa nekontrolisanim povećanjem wal-datoteke u situacijama kada dugo ne dolazi do fiksiranja transakcije ili se izvode dugotrajni procesi čitanja.
Izvor: opennet.ru
