Pas një viti zhvillimi, është publikuar një degë e re stabile e DBMS PostgreSQL 15. përditësimet për këtë degë do të dalin për pesë vjet deri në nëntor 2027.
Të rejat kryesore:
- Shtimi i suportit për komandën SQL «MERGE», që i ngjan shprehjes «INSERT … ON CONFLICT». MERGE lejon krijimin e shprehjeve SQL të kushtëzuara, duke bashkuar operacionet INSERT, UPDATE dhe DELETE në një shprehje. Për shembull, me MERGE mund të organizohet bashkimi i dy tabelave, duke futur shënimet e munguar dhe përditësuar ato ekzistuese. 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);
- Algoritmet e renditjes së të dhënave në memorie dhe disk janë përmirësuar ndjeshëm. Në varësi të llojit të të dhënave, në testime vërehet një rritje e shpejtësisë së renditjes nga 25% deri në 400%.
- Puna e funksioneve ndihmëse është përshpejtuar duke përdorur row_number(), rank(), dense_rank() dhe count().
- Është realizuar mundësia e ekzekutimit paralel të pyetjeve me shprehjen «SELECT DISTINCT».
- Në mekanizmin e lidhjes së tabelave të jashtme Foreign Data Wrapper (postgres_fdw) është realizuar mbështetje për angazhimet asinkrone, përveç mundësisë së mëparshme për përpunimin asinkron të kërkesave ndaj serverëve të jashtëm.
- Është shtuar mundësia e aplikimit të algoritmeve LZ4 dhe Zstandard (zstd) për kompresimin e regjistrave WAL të transaksioneve, të cilat nën disa ngarkesa lejojnë të rritet njëkohësisht performanca dhe të kursehet hapësira në disk. Për të shkurtuar kohën e rikuperimit pas një dështimi, është shtuar mbështetje për nxjerrjen e parashikueshme të faqeve që figurojnë në regjistrin WAL.
- Në utilitarin pg_basebackup është shtuar mbështetje për kompresimin e skedarëve me kopje rezervë nga ana server, duke përdorur metodat gzip, LZ4 ose zstd. Është ofruar mundësia e përdorimit të moduleve të personalizuara për arkivimin, duke lejuar të Hiqni nevojën për ekzekutimin e komandave shell.
- Është shtuar një seri funksionesh të reja për përpunimin e rreshtave duke përdorur shprehje të rregullta: regexp_count(), regexp_instr(), regexp_like() dhe regexp_substr().
- Në funksionin range_agg() është shtuar mundësia e agregatimit të tipeve më shumë se dy intervale («multirange»).
- Shtimi i mënyrës security_invoker, e cila lejon krijimin e pamjeve që ekzekutohen me të drejtat e përdoruesit që thërret, jo të krijuesit të pamjes.
- Për replikimin logjik është implementuar përkrahja për filtrimin e rreshtave dhe caktimin e listave të kolonave, të cilat lejojnë dërguesit të përzgjedhin një nëngrup të të dhënave për replikim nga tabela. Për më tepër, versioni i ri thjeshton menaxhimin e konflikteve, për shembull, ka mundësinë për të anashkaluar transaksionet në konflikt dhe për të çaktivizuar automatikisht abonimin kur identifikohet një gabim. Në replikimin logjik, lejohet përdorimi i komiteteve me dy faza (2PC).
- Shtimi i formatit të ri të të dhënave — jsonlog, që ruan informacionin në formë strukturuar duke përdorur formatin JSON.
- Administratori ka mundësinë të delegojë përdoruesve disa të drejta për të ndryshuar parametra të caktuar. konfigurimin e serverit PostgreSQL.
- Në utilitarin psql është shtuar përkrahja për kërkimin e informacionit rreth konfigurimeve (pg_settings) përmes komandës "\dconfig".
- Është siguruar përdorimi i memories së ndarë për grumbullimin e statistikave të funksionimit të serverit, gjë që lehtësoi eliminimin e një procesi të veçantë për grumbullimin e statistikave dhe përmbledhjen periodike të gjendjes në disk.
- Shtuar mundësia e përdorimit të locale-ve të ICU "ICU Collation" si për default, më parë si locale për default mund të përdorej vetëm locale libc.
- E propozuar zgjerimi i integruar pg_walinspect, që lejon inspektimin e përmbajtjes së skedarëve me WAL-loguet përmes kërkesave SQL.
- Për skemën public, të gjithë përdoruesit, përveç pronarit të DB, janë revokuar autorizimet për ekzekutimin e komandës CREATE.
- Në PL/Python është hequr mbështetje për Python 2. Është hequr mënyra e rezervës ekskluzive "exclusive backup" e vjetëruar.
Shtesë: Nga ora 19:00 deri në 20:00 (MSK) do të zhvillohet një webinar-discutim mbi ndryshimet e versionit të ri me Pavel Luzanov (Postgres Professional). Për ata që nuk mund të bashkohen me transmetimin, është e hapur një regjistrim i prezantimit të qershorit të Pavel "PostgreSQL 15: MERGE dhe jo vetëm" në PGConf.Russia.
Burimi: opennet.ru
