Pavel Stěhule patche: Porovnání verzí
Z PostgreSQL
(Není zobrazeno 26 mezilehlých verzí od stejného uživatele.) | |||
Řádka 51: | Řádka 51: | ||
* [http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=750487077802861a2accd94164166747ec311fa4 funkce formát - variace na sprintf] | * [http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=750487077802861a2accd94164166747ec311fa4 funkce formát - variace na sprintf] | ||
* [http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=6e02755b22ea62775c906d29b87b55b38ab70bd2 příkaz FOREACH - iterace nad polem v plpgsql] | * [http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=6e02755b22ea62775c906d29b87b55b38ab70bd2 příkaz FOREACH - iterace nad polem v plpgsql] | ||
+ | *[https://github.com/postgres/postgres/commit/b6e06942c6b880b79097049757a8d140cd4316c0#diff-503ba641cac30d169aa3c2b09015fc39 psql příkaz pro zobrazení funkce \sf] | ||
+ | *[https://github.com/postgres/postgres/commit/568e709372abad30075c299be28956b5922219b4#diff-503ba641cac30d169aa3c2b09015fc39 možnost skočit na ntý řádek příkazu \ef] | ||
===PostgreSQL 9.2 (Release date: 2012-09-10)=== | ===PostgreSQL 9.2 (Release date: 2012-09-10)=== | ||
Řádka 92: | Řádka 94: | ||
* [http://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=5c3c3cd0a3046339597a03bc708cb5530dc07059 strukturované výjimky v PLPythonu] | * [http://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=5c3c3cd0a3046339597a03bc708cb5530dc07059 strukturované výjimky v PLPythonu] | ||
− | ===PostgreSQL 10 (Release date: 2017- | + | ===PostgreSQL 10 (Release date: 2017-10-05)=== |
− | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=fcec6caafa2346b6c9d3ad5065e417733bd63cd9 XMLTABLE | + | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=fcec6caafa2346b6c9d3ad5065e417733bd63cd9 XMLTABLE funkce pro generování tabulky z XML dokumentu] |
+ | |||
+ | ===PostgreSQL 11 (Release date: 2018-10-18)=== | ||
+ | * PSQL_PAGER - možnost nastavit specifický pager pouze pro psql | ||
+ | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=49ca462eb165dea297f1f110e8eac064308e9d51 popis výsledku dotazu] | ||
+ | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=b8060e41b5994a3cffb3ececaab10ed39b8d5dfd parametr funkce bude v chybových hláškách pojmenovaný jménem] | ||
+ | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=ed22fb8b0091deea23747310fa7609079a96cf82 type cache pro funkci concat] | ||
+ | |||
+ | ===PostgreSQL 12 (Release date: 2019-10-03)=== | ||
+ | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=f7cb2842bf47715133b40e4a503f35dbe60d1b72 plan_cache_mode řízení chování plan cache] | ||
+ | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=167075be3ab1547e186096bb8e6e448cd8eea5af extra checks strict_multi_assignment, too_many_rows] | ||
+ | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=e0ef136d5235f39f5652c209c08a5d4322560e9c konzistentní volání plpgsql plugin API] | ||
+ | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=bbd5c207b960dd072445a3547f16abea0c27f726 jednoznačná identifikace příkazů PL/pgSQL] | ||
+ | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=251cf2e27bec98274e8bb002608680bdc211319e preciznější zpracování výsledku vyhodnocení XPath výrazů] | ||
+ | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=1c5d9270e339662cdd78d51d0b859d4f0a11aa91 přehlad partitions \dP v psql] | ||
+ | |||
+ | ===PostgreSQL 13 (Release date: 2020-9-24)=== | ||
+ | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=1379fd537f9fc7941c8acff8c879ce3636dbdb77 DROP DATABASE FORCE] | ||
+ | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=20d6225d1656102534a73d9675bc531ff0e5203b funkce min_scale, trim_scale] | ||
+ | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=24e2885ee304cb6a94fdfc25a1a108344ed9f4f7 další třída polymorfních typů s vynuceným přetypováním anycompatible] | ||
+ | |||
+ | ===PostgreSQL 14 (Release date: 2021-10-??)=== | ||
+ | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=66f163068030b5c5fe792a0daee27822dac43791 funkce string_to_table] | ||
+ | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=f0e4ec74e452f55922b52f50da4ba4834771a268 fix memory leak příkazu CALL] | ||
+ | * [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=ee895a655ce4341546facd6f23e3e8f2931b96bf zpristupneni plan cache pro prikaz CALL] | ||
==Neakceptované patche== | ==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. | + | *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. | *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. | ||
Řádka 106: | Řádka 132: | ||
*[https://github.com/okbob/plpgsql_check plpgsql_check - next generation of plpgsql_lint] | *[https://github.com/okbob/plpgsql_check plpgsql_check - next generation of plpgsql_lint] | ||
*[https://github.com/okbob/plpsm0 plpsm] | *[https://github.com/okbob/plpsm0 plpsm] | ||
+ | *[https://github.com/okbob/pspg pspg] - pager napsaný pro práci s relační databází |
Verze z 26. 1. 2021, 06:48
Obsah
- 1 Seznam patchů
- 1.1 PostgreSQL 7.4 (Release date: 2003-11-17)
- 1.2 PostgreSQL 8.1 (Release date: 2005-11-08)
- 1.3 PostgreSQL 8.2 (Release date: 2006-12-05)
- 1.4 PostgreSQL 8.3 (Release date: 2008-02-04)
- 1.5 PostgreSQL 8.4 (Release date: 2009-07-01)
- 1.6 PostgreSQL 9.0 (Release date: 2010-09-20)
- 1.7 PostgreSQL 9.1 (Release date: 2011-09-12)
- 1.8 PostgreSQL 9.2 (Release date: 2012-09-10)
- 1.9 PostgreSQL 9.3 (Release date: 2013-09-09)
- 1.10 PostgreSQL 9.4 (Release date: 2014-12-18)
- 1.11 PostgreSQL 9.5 (Release date: 2016-01-07)
- 1.12 PostgreSQL 9.6 (Release date: 2016-09-29)
- 1.13 PostgreSQL 10 (Release date: 2017-10-05)
- 1.14 PostgreSQL 11 (Release date: 2018-10-18)
- 1.15 PostgreSQL 12 (Release date: 2019-10-03)
- 1.16 PostgreSQL 13 (Release date: 2020-9-24)
- 1.17 PostgreSQL 14 (Release date: 2021-10-??)
- 2 Neakceptované patche
- 3 Kódy pro PostgreSQL mimo core
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-??)
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í