Nakon godinu dana razvoja, objavljena je nova stabilna verzija SDB-a PostgreSQL 15. Ažuriranja za novu verziju izlazit će tijekom pet godina do studenog 2027.
Glavne novine:
- Dodana je podrška za SQL naredbu 'MERGE', koja podsjeća na izraz 'INSERT … ON CONFLICT'. MERGE omogućuje stvaranje uvjetnih SQL izraza koji objedinjuju operacije INSERT, UPDATE i DELETE u jednom izrazu. Na primjer, pomoću MERGE-a moguće je organizirati spajanje dviju tablica, umetajući nedostajuće zapise i ažurirajući postojeće. 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);
- Significantly improved sorting algorithms for data in memory and on disk. Depending on the data type, tests show sorting speed increases from 25% to 400%.
- Značajno je ubrzan rad prozorskih funkcija koristeći row_number(), rank(), dense_rank() i count().
- Implementirana je mogućnost paralelnog izvođenja upita s izrazom 'SELECT DISTINCT'.
- U mehanizmu povezivanja vanjskih tablica Foreign Data Wrapper (postgres_fdw) implementirana je podrška za asinkrone potvrde uz prethodno dodanu mogućnost asinkronog obrade upita prema vanjskim poslužiteljima.
- Dodana je mogućnost primjene algoritama LZ4 i Zstandard (zstd) za kompresiju WAL logova transakcija, što u nekim opterećenjima omogućava istovremeno povećanje performansi i uštedu diskovnog prostora. Za smanjenje vremena oporavka nakon kvara dodana je podrška za proaktivno vađenje stranica koje se nalaze u WAL logu.
- U utilitu pg_basebackup dodana je podrška za kompresiju datoteka sa sigurnosnim kopijama na strani, koristeći metode gzip, LZ4 ili zstd. Omogućena je mogućnost korištenja vlastitih modula za arhiviranje, što omogućava izbjegavanje pokretanja shell komandi. poslužiteljaDodana je serija novih funkcija za obradu nizova koristeći regularne izraze: regexp_count(), regexp_instr(), regexp_like() i regexp_substr().
- U funkciju range_agg() dodana je mogućnost agregiranja multidimenzionalnih tipova (‘multirange’).
- Dodan je način security_invoker, koji omogućuje stvaranje prikaza koji se izvršavaju s pravima korisnika koji poziva, a ne s pravima stvoritelja prikaza.
- Dodane su nove opcije za rad s kontekstima koji osiguravaju dostupnost prihoda, poput prava za izvođenje na osnovu korisnika koji poziva.
- Za logičku replikaciju implementirana je podrška za filtriranje redaka i definiranje lista stupaca, što omogućuje da pošiljatelj izdvoji podskup podataka za replikaciju iz tablice. Osim toga, u novoj verziji pojednostavljeno je upravljanje sukobima, na primjer, dodana je mogućnost preskakanja sukobljenih transakcija i automatskog isključivanja pretplate prilikom otkrivanja greške. Prilikom logičke replikacije dopuštena je upotreba dvofaznih potvrda (2PC).
- Dodani su novi log formati — jsonlog, koji pohranjuje informacije u strukturiranom obliku koristeći JSON format.
- Administratoru je omogućeno delegiranje određenih ovlasti korisnicima za promjenu određenih parametara. konfiguracije servera PostgreSQL.
- U alat psql dodana je podrška za pretraživanje informacija o postavkama (pg_settings) pomoću naredbe „\dconfig”.
- Osigurana je upotreba dijeljene memorije za prikupljanje statistike o radu poslužitelja, što je omogućilo uklanjanje zasebnog procesa za prikupljanje statistike i periodično spremanje stanja na disk.
- Omogućena je upotreba ICU lokalizacija „ICU Collation” kao osnovne, dok se ranije mogla koristiti samo libc lokalizacija.
- Predloženo je ugrađeno proširenje pg_walinspect, koje omogućava inspekciju sadržaja WAL log datoteka putem SQL upita.
- Za shemu public povučene su ovlasti za izvršavanje naredbe CREATE za sve korisnike osim vlasnika Baze podataka.
- U PL/Python uklonjena je podrška za Python 2. Uklonjen je zastarjeli ekskluzivni režim sigurnosne kopije („exclusive backup”).
Dodatak: Od 19:00 do 20:00 (MSK) održat će se webinar o promjenama nove verzije s Pavlom Luzanovim (Postgres Professional). Za one koji se ne mogu pridružiti prijenosu, dostupna je snimka lipanjskog predavanja Pavla „PostgreSQL 15: MERGE i ne samo to” na PGConf.Russia.
Izvor: opennet.ru
