Megjelent az SQLite 3.42 és a DuckDB 0.8.0. CG/SQL tárolt eljárások megvalósításával az SQLite számára.

Megjelent az SQLite 3.42, egy könnyűsúlyú DBMS, amely plug-in könyvtárrá van formázva. Az SQLite kódja közkincs (public domain), azaz korlátozások nélkül használható és ingyenesen bármilyen célra. Az SQLite fejlesztőinek pénzügyi támogatását egy külön létrehozott konzorcium biztosítja, amelyben olyan cégek szerepelnek, mint az Adobe, Oracle, Mozilla, Bentley és Bloomberg.

Főbb változások:

  • A FTS5 teljes szöveges indexekhez a secure-delete parancs valósítja meg a törlés utáni maradványadatok teljes eltávolítását.
  • A JSON formátumú adatok feldolgozására szolgáló funkciókban a JSON5 kiterjesztések támogatása valósult meg.
  • Javították a lekérdezés-tervezőt. Alapértelmezés szerint engedélyezve van a «count-of-view» optimalizáció. Kizárásra kerültek a nem használt oszlopok kezelése a melléklekérdezésekben. Javult a push-down optimalizáció megvalósítása.
  • A parancssori felülethez hozzáadták az «—unsafe-testing» opciót, amely lehetővé teszi bizonyos veszélyes parancsok, például a «.testctrl» használatát, amelyek tesztelésre szolgálnak. Biztonságos módban («—safe») engedélyezve van a «.log on» és «.log off» parancsok használata. Hozzáadták a «—» elválasztót, amely után az opciók kezelését leállítják az argumentumoknál. Hozzáadták a «:inf» és «:nan» paramétereket, amelyek a végtelen és NaN értékekhez kapcsolódnak.
  • Az alkalmazásoldalon definiált SQL-funkciók neveiben megengedett a kereszteződés a CROSS, FULL, INNER, LEFT, NATURAL, OUTER és RIGHT kulcsszavakkal.
  • Kibővítették a PRAGMA integrity_check lehetőségeit. Hozzáadták a NaN érték megadásának ellenőrzését a NOT NULL feltétellel rendelkező oszlopokban. Javult a hibaüzenetek tájékoztató jellege.
  • A session kiegészítésben engedélyezve van a ROWID nélküli táblákból származó változások elfogása.
  • Az idő- és dátumkezelő funkciókhoz hozzáadták a «subsec» módosítót a másodpercek töredékeinek használatához.
  • A JSON tömbök és objektumok rekurzió mélysége alapértelmezés szerint 2000-ről 1000-re csökkent.

Ezen kívül elkészült a DuckDB 0.8.0 kiadása, amely az SQLite továbbfejlesztett változata, optimalizálva az analitikai lekérdezések futtatására, amelyek a tárolt adatok jelentős részét lefedik, például az összes táblázat tartalmának aggregálását vagy több nagy táblázat egyesítését. Az SQL nyelv kiterjesztett dialektusát biztosítja, amely további lehetőségeket tartalmaz nagyon bonyolult és hosszú ideig tartó lekérdezések kezelésére, valamint támogatja a bonyolult típusokat (tömbök, struktúrák, uniók), több lekérdezés párhuzamos végrehajtását és a lekérdezések közvetlen végrehajtását CSV, JSON és Parquet formátumú fájlokból. Lehetséges importálni a PostgreSQL adatbázisból.

A SQLite burkoló kódján kívül a projekt egy külön könyvtárba kiemelt PostgreSQL parser-t, MonetDB-ból származó Date Math komponenst, saját implementációt az ablakos funkciókhoz (a Segment Tree Aggregation algoritmus alapjain), a RE2 könyvtáron alapuló reguláris kifejezés kezelőt, egy saját lekérdezés optimalizálót, MVCC feladatkezelési mechanizmust (Multi-Version Concurrency Control), valamint egy Hyper-Pipelining Query Execution algoritmuson alapuló vektorizált lekérdezés végrehajtó motort is használ, amely lehetővé teszi nagy adatértékhalmazok párhuzamos feldolgozását egyetlen művelet során. A projekt kódja MIT licenc alatt kerül forgalomba.

Az új DuckDB verzióban:

  • Új "PIVOT" és "UNPIVOT" kifejezéseket adtak hozzá, amelyek lehetővé teszik a sorok oszlopokká alakítását és fordítva.
  • Javult az adatok importálásának és exportálásának párhuzamosítása. Alapértelmezés szerint a CSV formátumú fájlok olvasása több szálon, míg a Parquet, CSV és JSON formátumok esetén több szálon történik a írás.
  • Hozzáadták a "**" operátort, amely lehetővé teszi a könyvtárak rekurzív átvizsgálását a fájlok útvonalainak meghatározásakor (például: FROM 'data/glob/crawl/stackoverflow/**/*.csv';).
  • Hozzáadva a csatlakozási (JOIN) műveletek támogatása időbeli sorozatként ábrázolt adatok esetén (parameter vágás megfelelő időközönként), ahol a rekordok összekapcsolásának kritériuma nem pontos, hanem megközelítőleges értékek egyeztetése az időmezőben (például lehetőség van összevonni azokat a rekordokat, amelyek időpontja legfeljebb 1 perccel különbözik).
  • Megvalósították az adatbázis metainformációinak késleltetett betöltését, amely több tízszeresére gyorsította az adatbázis elindítását.
  • Támogatás került hozzáadásra a felhasználói funkciók Python nyelven történő csatlakoztatásához.
  • Hozzáadva az ADBC (Arrow Database Connectivity) API támogatása az adatok Apache Arrow használatával történő továbbításához.
  • Megvalósítva a Swift nyelvű kódokkal való integrációs kötelék.
  • Megváltozott a osztás operátor viselkedése ("/\
  • A nullás rekordok figyelembevételének módja a rendezéskor "NULLS FIRST"-ről "NULLS LAST"-ra változott, azaz a NULL értékek most a lista végén jelennek meg, nem az elején. A régi viselkedést a "SET default_null_order='nulls_first';" beállítással lehet visszaállítani.

Továbbá említhető a Facebook által fejlesztett CG/SQL projekt, amely tárolt eljárások használatára kódgenerálót biztosít SQLite-hoz. A CG/SQL lehetővé teszi a tárolt eljárások megfogalmazását egy speciális T-SQL (Transact-SQL) dialektusban, amely lehetővé teszi a szabványos C könyvtár függvényeinek hívását és az adatok elérését SQLite-ban. A létrehozott tárolt eljárások C nyelven kódolódnak, és SQLite C API-t használnak a megadott műveletek végrehajtására és összetett lekérdezések kezelésére. A lefordított tárolt eljárások csatlakoztathatók C, Java és Objective-C nyelven írt programokhoz. A projekt kódja C nyelven van kidolgozva és MIT licenc alatt terjesztik.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster