Pavel Stěhule patche
Skočit na navigaci
Skočit na vyhledávání
Seznam patchů
PostgreSQL je výsledkem práce týmu vývojářů, nikoliv jednotlivců. Implementace nové funkce je zřídka výsledkem práce pouze jednoho člověka. I když, neocenitelné zásluhy má hlavně Tom Lane, který finalizuje většinu kódu před vlastní integrací do jádra PostgreSQL. Dále nesmím zapomenout na Nikolaje Samochvalova, který převzal a přepracoval moji prototypovou implementaci SQL/XML a dovedl ji do stavu, kdy ji bylo možné integrovat do PostgreSQL.
PostgreSQL 7.4 (Release date: 2003-11-17)
- český překlad FAQ,
- uložení informace o použitém kódování do dumpu databáze a automatické dekódování při načtení dumpu,
PostgreSQL 8.1 (Release date: 2005-11-08)
- volitelné označení PL/pgSQL bloku návěstím,
- implementace funkcí GREATEST a LEAST,
- příkaz CONTINUE v PL/pgSQL,
- rozšíření operátoru BETWEEN o atribut SYMMETRIC,
- podpora zobrazení výrazů v příkazu RAISE,
- podpora klauzule INTO v příkazu EXECUTE,
- přístup ke kódu a popisu výjimky v PL/pgSQL - proměnné SQLERRM a SQLSTATE,
PostgreSQL 8.2 (Release date: 2006-12-05)
- Podpora OUT parametrů typu pole v PL/Perl,
- možnost použití seznamu skalárních proměnných v příkazu FOR v PL/pgSQL,
- Implementace operátoru IS NOT DISTINCT FROM,
PostgreSQL 8.3 (Release date: 2008-02-04)
- podpora SCROLLABLE kurzorů v PL/pgSQL, příkaz MOVE v PL/pgSQL,
- prototyp SQL/XML,
- příkaz RETURN QUERY,
- modul pro zajištění kompatibility s TSearch2,
PostgreSQL 8.4 (Release date: 2009-07-01)
- příkaz RETURN QUERY EXECUTE,
- rozšíření příkazu FOR pro kurzor,
- klauzule USING v příkazu EXECUTE,
- možnost nastavení atributů výjimky v příkazu RAISE, možnost určení kódu a názvu výjimky,
- příkaz CASE v PL/pgSQL,
- funkce array_fill a generate_subscripts,
- podpora variadických funkcí a variadických parametrů,
- podpora tabulkových funkcí dle ansi sql - příkaz CREATE FUNCTIONS RETURNS TABLE,
- defaultní parametry PL funkcí.
PostgreSQL 9.0 (Release date: 2010-09-20)
- revize kódu PL/pgSQL - odstranění duplicitního kódu,
- fix příkazu RETURN QUERY (ve spolupráci s Tomem Lanem),
- sjednocení syntaxe scrollable kurzorů v PL/pgSQL,
- mixed and named notation.
- klauzule USING pro OPEN cursor FOR EXECUTE
- escape expanze proměnných v psql
- agregační funkce string_agg
PostgreSQL 9.1 (Release date: 2011-09-12)
- refaktoring funkcí array_to_string a string_to_array
- fix - odstranění omezení deseti parametrů ve funkci xslt_process
- přesun na specifikovonou řádku kódu uložené procedury v externím editoru
- zobrazení zdrojového kódu uložených procedur v psql
- doplňkové funkce pro operace s řetězci - left, right, reverese, concat, concat_ws
- významná redukce spotřeby paměti pro načtení českých slovníků
- autocomplete psql proměnných
- funkce formát - variace na sprintf
- příkaz FOREACH - iterace nad polem v plpgsql
- psql příkaz pro zobrazení funkce \sf
- možnost skočit na ntý řádek příkazu \ef
PostgreSQL 9.2 (Release date: 2012-09-10)
- přístup k datům výjimky z příkazu GET STACKED DIAGNOSTICS
- použití cache pro opakovaný přístup k prvkům pole
- podmíněný ALTER TABLE IF EXISTS ...
- použití signatury funkce ve výpisu kontextu místo jména
PostgreSQL 9.3 (Release date: 2013-09-09)
- GET DIAGNOSTICS rc=ROW_COUNT pro COPY
- oprava variadických "any" funkcí pro nevariadický způsob volání
- základ pro "strukturované" výjimky
- příkaz \gset
- podpora zarovnávání ve funkci format
- přístup k rozšiřujícím položkám vyjímky z PL/pgSQL
PostgreSQL 9.4 (Release date: 2014-12-18)
- globální kontroly variadických funkcí (dokončení implementace)
- GET DIAGNOSTICS stack=PG_CONTEXT - čtení stacku
- funkce pro snažší práci s LO z prostředí SQL - konverze z bytea z/do LO
- datumový a časový konstruktor make_time a make_date
- úplný konzistentní fully fault tolerant DROP IF EXISTS
- vynucení DROP IF EXISTS v pg_dump(all) přepínačem --if-exists
- make_timestamp, make_timestamptz, make_interval
PostgreSQL 9.5 (Release date: 2016-01-07)
- při čtení SQL skriptu zobrazí pouze chybné dotazy
- autocomplete pro obsah vestavenych psql promennych
- nápověda k psql proměnným
- možnost používat UTF rámečky se zdvojenou čarou
- získání pozice prvku v poli
- plpgsql příkaz ASSERT
PostgreSQL 9.6 (Release date: 2016-09-29)
- oprava chování zobrazení kontextu příkazu RAISE EXCEPTION
- autocomplete pro enum a pro logické konfigurační proměnné
- důslednější kontrola parametrů příkazu pg_dump a pg_restore
- možnost opakovaně použít volby -c a -f v psql
- funkce pg_size_bytes
- funkce parse_ident
- strukturované výjimky v PLPythonu
PostgreSQL 10 (Release date: 2017-10-05)
PostgreSQL 11 (Release date: 2018-10-18)
- PSQL_PAGER - možnost nastavit specifický pager pouze pro psql
- popis výsledku dotazu
- parametr funkce bude v chybových hláškách pojmenovaný jménem
- type cache pro funkci concat
PostgreSQL 12 (Release date: 2019-10-03)
- plan_cache_mode řízení chování plan cache
- extra checks strict_multi_assignment, too_many_rows
- konzistentní volání plpgsql plugin API
- jednoznačná identifikace příkazů PL/pgSQL
- preciznější zpracování výsledku vyhodnocení XPath výrazů
- přehlad partitions \dP v psql
PostgreSQL 13 (Release date: 2020-9-24)
- DROP DATABASE FORCE
- funkce min_scale, trim_scale
- další třída polymorfních typů s vynuceným přetypováním anycompatible
PostgreSQL 14 (Release date: 2021-10-??)
- funkce string_to_table
- fix memory leak příkazu CALL
- zpristupneni plan cache pro prikaz CALL
- funkce unistr
Neakceptované patche
- PL/pgPSM - implemetace jazyka uložených procedur specifikovaného ve standardu SQL/PSM pro PostgreSQL - do core se nedostalo z důvodu duplikování kódu PL/pgSQL - jádro plpgpsm vychází z plpgsql. Čeká se na refaktoring plpgsql, tak aby bylo možné sdílet kód mezi plpgsql a plpgpsm. (Nyní po 10 letech od implementace je jasné, že očekávání vkládaná do PL/PSM se nenaplnila, a že chybějící podpora PL/PSM v Postgresu nikoho netrápí. Navíc existují transpilery).
- Obfuscace zdrojového kódu procedur - funkční, do kódu se nedostalo v obavě ze závislosti v core na šifrách, které donedávna spadaly pod embargo USA.
Kódy pro PostgreSQL mimo core
- Orafce
- epsql
- PLToolbox - dokumentace
- plpgsql_lint
- plpgsql_check - next generation of plpgsql_lint
- plpsm
- pspg - pager napsaný pro práci s relační databází