Releasen av SQLite 3.46, ett lätt DBMS designat som ett plugin-bibliotek, har publicerats. SQLite-koden distribueras som en offentlig domän, d.v.s. kan användas utan begränsningar och kostnadsfritt för alla ändamål. Ekonomiskt stöd för SQLite-utvecklare tillhandahålls av ett speciellt skapat konsortium.
Huvudändringar:
- Det är möjligt att använda avgränsaren "_" i siffror för en mer visuell representation av numeriska bokstaver (till exempel 1_234_567).
- Lade till json_pretty() SQL-funktion för att generera mer läsbar JSON-utdata formaterad med blockindrag.
- Funktionerna för "PRAGMA optimize"-operationen har utökats, vilket optimerar databasen och alla datascheman för att uppnå bästa frågeprestanda. En automatiskt tillämpad gräns för databasanalysens varaktighet har implementerats, vilket eliminerar alltför lång behandlingstid för stora databaser. Lade till en ny bitmask "PRAGMA optimize(0x10000)" för att separat söka efter uppdateringar i alla tabeller. Tillhandahöll automatisk omanalys av tabeller som saknar sqlite_stat1-poster.
- Lade till stöd för %G, %g, %U och %V substitutioner till SQL-funktionen strftime().
- Nya modifierare tak och golv har lagts till i SQL-funktioner för att arbeta med datum och tider för att kontrollera hanteringen av oklara datum som uppstår under operationer som flyttar datum med ett visst antal månader eller år. Se till att utc- och lokaltidsmodifierare ignoreras om SQLite vet att tiden redan är i UTC- eller lokaltidsrepresentation.
- Optimering har gjorts av frågeplaneraren. För INSERT-uttryck som innehåller tusentals värden i VALUES-sektionen är optimeringen "VALUES-as-coroutine" aktiverad som standard, vilket gör att tolka sådana uttryck ungefär dubbelt så snabbt och minskar minnesförbrukningen med hälften. För frågor av formen “SELECT count(DISTINCT col) FROM …” är användningen av index tillåten, även om storleken på posterna i indexet inte är mindre än posterna i tabellen. Logiken för att bestämma situationer där konstanter anges i argumenten för SQL-funktioner har förbättrats. Aktiverad push-down-optimering för att tillämpas på WHERE-satser som innehåller orelaterade underfrågor.
- Logiken för att hantera stack overflow har ändrats - när den upptäcker otillräckligt minne för stacken, försöker parsern nu allokera ytterligare minne från heapen, istället för att visa felet "parser stack overflow".
- JSON tillåter att kontrolltecken anges i JSON5-strängliteraler. Operationslogiken för operatorerna "->" och "->>" har ändrats, när strängoperanden på höger sida endast innehåller siffror (i analogi med PostgreSQL behandlas sådana operander nu som en sträng).
- DEFAULT-värdet tillåter att stora hexadecimala bokstaver anges i tabellkolumner.
Källa: opennet.ru
