A fejlesztés egy évét követően elérhetővé vált a PostgreSQL 15 új stabil verziója. Az új verzióhoz frissítések folyamatosan érkeznek 2027 novemberéig, összesen öt éven át.
Főbb újítások:
- Bevezetésre került az SQL "MERGE" parancs támogatása, amely hasonló a "INSERT ... ON CONFLICT" szintaxishoz. A MERGE lehetővé teszi, hogy feltételekhez kötött SQL kifejezéseket hozzunk létre, amelyek egyazon kifejezésben egyesítik az INSERT, UPDATE és DELETE műveleteket. Például a MERGE segítségével két táblát egyesíthetünk, beillesztve a hiányzó rekordokat és frissítve a meglévőket. MERGE INTO customer_account ca USING recent_transactions t ON t.customer_id = ca.customer_id WHEN MATCHED THEN UPDATE SET balance = balance + transaction_value WHEN NOT MATCHED THEN INSERT (customer_id, balance) VALUES (t.customer_id, t.transaction_value);
- Jelentősen javultak az adatok memóriában és lemezen történő rendezési algoritmusai. Az adatok típusától függően a tesztek során a rendezési sebesség 25% és 400% közötti mértékben növekedett.
- Felgyorsult az ablakfunkciók futása, használva a row_number(), rank(), dense_rank() és count() függvényeket.
- Lehetségessé vált a párhuzamos lekérdezésvégrehajtás a "SELECT DISTINCT" kifejezéssel.
- A külső táblákhoz való csatlakozást lehetővé tevő Foreign Data Wrapper (postgres_fdw) mechanizmusban bevezetésre került az aszinkron elköteleződés támogatása, a külső szerverekhez való aszinkron lekérdezés feldolgozásának lehetőségéhez hozzáadva.
- Lehetőség nyílt az LZ4 és Zstandard (zstd) algoritmusok alkalmazására a WAL napló tranzakciók tömörítésére, amely bizonyos terhelések mellett egyidejűleg növeli a teljesítményt és csökkenti a lemezhasználatot. A hiba utáni helyreállítási idő csökkentése érdekében támogatás került bevezetésre a WAL naplóban szereplő oldalak előzetes előtöltésére.
- A pg_basebackup segédprogramhoz a fájlok tömörítésének támogatása került hozzáadásra a biztonsági mentések oldalán, a szerver, a gzip, LZ4 vagy zstd módszerek alkalmazásával. Lehetőség van saját archiváló modulok használatára is, amely elkerüli a shell parancsok lefuttatásának szükségességét.
- Új funkciósorozat került bevezetésre a reguláris kifejezésekkel végzett szövegkezeléshez: regexp_count(), regexp_instr(), regexp_like() és regexp_substr().
- A range_agg() függvényhez lehetőség került bevezetésre a több tartományi típusok („multirange”) aggregálására.
- Bevezetésre került a security_invoker üzemmód, amely lehetővé teszi nézetek létrehozását, amelyek a hívó felhasználó jogainak megfelelően futnak, nem pedig a nézet készítőjének jogainak megfelelően.
- A logikai replikációhoz támogatatott a sorok szűrése és oszloplisták megadása, amelyek lehetővé teszik az elküldő oldalon az adatok egy részhalmazának kiemelését a táblázatból a replikációhoz. Ezen kívül az új verzióban egyszerűsítették a konfliktusok kezelését, például lehetőség van a konfliktáló tranzakciók kihagyására és az előfizetés automatikus leállítására, ha hiba lép fel. Logikai replikáció esetén engedélyezett a kétszakaszos elköteleződés (2PC).
- Új naplóformátum került hozzáadásra — jsonlog, amely struktúrált formában, JSON formátumban tárolja az információt.
- Az adminisztrátoroknak lehetőségük nyílt bizonyos jogosultságok delegálására felhasználók számára, hogy módosíthassák a meghatározott paramétereket. a szerver konfigurációja PostgreSQL.
- A psql segédprogramhoz hozzáadták a konfigurációs beállítások (pg_settings) keresésének támogatását a „\dconfig” parancs segítségével.
- Biztosították a megosztott memória használatát a szerver működésének statisztikáinak gyűjtésére, ami lehetővé tette az statisztikai gyűjtő külön folyamatának eltávolítását és az állapot rendszeres lemezre írását.
- Lehetőséget biztosítottak az alapértelmezett ICU helyi beállítások, az „ICU Collation” használatára, korábban csak a libc helyi beállítások használata volt engedélyezett.
- Beépített pg_walinspect kiterjesztést javasoltak, amely lehetővé teszi a WAL-naplófájlok tartalmának SQL-parancsokkal való ellenőrzését.
- A public séma esetében az adatbázis tulajdonosát kivéve minden felhasználónál visszavonták a CREATE parancs végrehajtására vonatkozó jogosultságokat.
- A PL/Pythonból eltávolították a Python 2 támogatását. Eltávolították az elavult exkluzív mentési módot („exclusive backup”).
Kiegészítés: 19:00 és 20:00 (MSK) között webináriumot tartanak az új verzió változásairól Pavel Luzanovval (Postgres Professional). Akik nem tudnak csatlakozni az élő adásra, számára nyitva áll a júniusi előadás felvétele Pavel „PostgreSQL 15: MERGE és mások” című előadásáról a PGConf.Russia-n.
Forrás: opennet.ru
