Die vrystelling van SQLite 3.42, 'n liggewig DBMS wat ontwerp is as 'n inprop-biblioteek, is gepubliseer. Die SQLite-kode word in die publieke domein versprei, d.w.s. kan sonder beperkings en gratis vir enige doel gebruik word. Finansiële ondersteuning vir SQLite-ontwikkelaars word verskaf deur 'n spesiaal geskepte konsortium, wat maatskappye soos Adobe, Oracle, Mozilla, Bentley en Bloomberg insluit.
Belangrikste veranderinge:
- Vir FTS5-volteksindekse is die veilige-vee-opdrag geïmplementeer, wat alle oorblywende data heeltemal uitvee na uitvee.
- Funksies vir die verwerking van JSON-data ondersteun nou JSON5-uitbreidings.
- Verbeterde navraagbeplanner. By verstek is die telling van kyke-optimering geaktiveer. Verwerking van ongebruikte kolomme in subnavrae word uitgeskakel. Verbeterde implementering van afdrukoptimering.
- Bygevoeg "--onveilige-toets" opsie by die opdrag lyn koppelvlak, wat die gebruik van 'n paar gevaarlike opdragte, soos ".testctrl", bedoel vir gebruik in toetsing toelaat. In veilige modus ("-veilig"), word die gebruik van die ".log on" en ".log off" opdragte toegelaat. Bygevoeg ondersteuning vir die "—" skeier, vir argumente waarna opsieverwerking gedeaktiveer is. Bygevoeg ":inf" en ":nan" parameters wat verband hou met die oneindigheid en NaN waardes.
- Toepassing-gedefinieerde SQL funksie name word toegelaat om te oorvleuel met die KRUIS, VOL, BINNE, LINKS, NATUURLIK, BUITE, en REGS sleutelwoorde.
- Die vermoëns van PRAGMA integrity_check is uitgebrei. Bygevoeg kontrolering vir die spesifiseer van NaN waardes in kolomme met die NIE NULL voorwaarde. Verbeterde inligtinginhoud van foutboodskappe.
- Die sessie-byvoeging maak dit moontlik om veranderinge vanaf tabelle sonder ROWID te onderskep.
- Die "subsec" wysiger is bygevoeg by funksies om met tye en datums te werk om breukdele van sekondes te gebruik.
- Die verstek rekursie-diepte vir skikkings en JSON-voorwerpe is van 2000 tot 1000 verminder.
Daarbenewens is die vrystelling van die DuckDB 0.8.0 DBMS geskep, wat 'n weergawe van SQLite ontwikkel, uitgebrei met vermoëns en optimalisering vir die uitvoering van analitiese navrae wat 'n beduidende deel van die gestoorde data dek, byvoorbeeld die samevoeging van die hele inhoud van tafels of die samevoeging van verskeie groot tafels. Verskaf 'n gevorderde dialek van SQL wat bykomende vermoëns insluit vir die verwerking van baie komplekse en tydrowende navrae, en ondersteun ook komplekse tipes (skikkings, strukture, vakbonde), loop verskeie navrae gelyktydig en hardloop navrae direk vanaf CSV-, JSON- en Parquet-lêers . Dit is moontlik om vanaf die PostgreSQL DBMS in te voer.
Benewens die dopkode van SQLite, gebruik die projek 'n ontleder van PostgreSQL in 'n aparte biblioteek, die Date Math-komponent van MonetDB, sy eie implementering van vensterfunksies (gebaseer op die Segment Tree Aggregation-algoritme), 'n gereelde uitdrukkingverwerker gebaseer op die RE2-biblioteek, sy eie navraagoptimeerder, en 'n MVCC-beheermeganisme gelyktydige uitvoering van take (Multi-Version Concurrency Control), sowel as 'n gevektoriseerde navraaguitvoering-enjin gebaseer op die Hyper-Pipelining Query Execution-algoritme, wat groot stelle waardes toelaat. om gelyktydig in een operasie verwerk te word. Die projekkode word onder die MIT-lisensie versprei.
In die nuwe weergawe van DuckDB:
- Nuwe uitdrukkings "PIVOT" en "UNPIVOT" bygevoeg om rye in kolomme te omskep en omgekeerd.
- Verbeterde parallellisering by die invoer en uitvoer van data. By verstek word multi-draadlees vanaf CSV-lêers en multi-threaded skrif geïmplementeer wanneer Parket-, CSV- en JSON-formate gebruik word.
- "**"-operateur bygevoeg om rekursief deur gidse te herhaal wanneer lêerpaaie bepaal word (byvoorbeeld VANAF "'data/glob/crawl/stackoverflow/**/*.csv';").
- Bygevoegde ondersteuning vir samesmeltingsoperasies (JOIN) vir data in die vorm van 'n tydreeks (stukke parameterwaardes op gespesifiseerde tydintervalle), waarin die kriterium vir die samevoeging van rekords nie 'n presiese, maar 'n benaderde samevalling van waardes is nie in 'n veld met tyd (jy kan byvoorbeeld rekords saamvoeg, tyd wat nie meer as 1 minuut verskil nie).
- Het lui laai van databasis-metadata geïmplementeer, wat dit moontlik gemaak het om die bekendstelling van die DBMS tienvoudig te bespoedig.
- Bygevoeg ondersteuning vir die koppeling van pasgemaakte funksies in Python.
- Bygevoeg ondersteuning vir die ADBC (Arrow Database Connectivity) API vir die oordrag van data met Apache Arrow.
- 'n Binding is geïmplementeer vir integrasie met Swift-kode.
- Het die gedrag van die afdelingsoperateur ("/") verander om swaaipuntberekeninge in plaas van heelgetalbewerkings by verstek uit te voer. 'n Nuwe operateur "//" word voorgestel vir heelgetalverdeling. Die ou gedrag kan teruggestuur word deur “SET integer_division=true;” in te stel.
- Die metode om nul rekords in ag te neem wanneer sortering is verander van “NULLS FIRST” na “NULLS LAST”, m.a.w. NULL-waardes sal nou aan die einde eerder as die begin van die lys gedruk word. Die ou gedrag kan teruggestuur word deur "SET default_null_order='nulls_first';" in te stel.
Boonop kan ons let op die CG/SQL-projek wat deur Facebook ontwikkel is, wat 'n kodegenerator verskaf vir die gebruik van gestoorde prosedures met SQLite. CG/SQL laat jou toe om gestoorde prosedures in 'n spesiale dialek van T-SQL (Transact-SQL) te skryf, wat die oproepfunksies van die standaard C-biblioteek en toegang tot data in SQLite moontlik maak. Die gegenereerde gestoorde prosedures word saamgestel in C-kode wat die SQLite C API gebruik om gespesifiseerde aksies uit te voer en komplekse navrae te verwerk. Saamgestelde gestoorde prosedures kan gekoppel word aan C-, Java- en Objective-C-programme. Die projekkode is in C geskryf en word onder die MIT-lisensie versprei.
Bron: opennet.ru
