PostgreSQL

Software screenshot:
PostgreSQL
Podrobnosti Software:
Verze: 10.5 / 11 Beta 3 Aktualizováno
Datum uploadu: 16 Aug 18
Licence: Volný
Popularita: 29

Rating: 1.5/5 (Total Votes: 2)

PostgreSQL je open source, výkonný, spolehlivý, stabilní, podnikově připravený a volně objektově relační databázový systém ve stylu projektů MariaDB, MySQL nebo SQLite. Jedná se o databázový server / stroj kompatibilní se systémem ACID (Atomicity, Consistency, Isolation, Durability), který může být vysoce přizpůsobený a obsahuje mnoho atraktivních funkcí, což je skvělá náhrada pro výše uvedené databázové motory.


Funkce na první pohled

Klíčové funkce zahrnují podporu pro cizí klíče, pohledy, spoje, spouštěče a uložené procedury, podporu více jazyků, podporu pro širokou škálu datových typů SQL včetně BOOLEAN, CHAR, INTEGER, NUMERIC, VARCHAR, INTERVAL, TIMESTAMP a DATE.

Navíc software přichází s podporou pro ukládání binárních velkých objektů včetně všech druhů multimediálních souborů (video, audio a foto) a poskytuje vývojářům nativní programovací rozhraní pro C, C ++, Python, Perl, Ruby, Java, .NET, Tcl a ODBC programovacích jazyků.

Mezi další zajímavé funkce patří MVCC (vícenásobná kontrola souběžnosti), tabulkové prostory, kódování vícebajtových znaků, bodové zotavení, zralý dotazovač optimizer a plánovač, asynchronní replikace, online zálohování, vnořené transakce (všeobecně známé jako uložení bodů), horká záloha, zapisování záznamů o toleranci chyb, podpora mezinárodních znakových sad a podpora Unicode.


PostgreSQL v číslech

V současné době podporuje databázový server PostgreSQL neomezenou velikost pro databáze, 32 TB by měla být maximální velikost pro tabulky, 1,6 TB na řádek, 1 GB na pole, neomezené řádky na tabulku, podporuje 250 až 1600 sloupců na tabulku , v závislosti na typech sloupců a podporuje neomezené indexy v tabulce.


Podporované operační systémy

PostgreSQL byl úspěšně testován na všech hlavních operačních systémech, včetně GNU / Linux, BSD, Solaris, HP-UX, AIX, SGI IRIX, Solaris, Tru64, Mac OS X a Microsoft Windows. PostgreSQL je k dispozici ke stažení jako univerzální zdrojový archiv, stejně jako předkompilované binární balíčky pro mnoho Linuxových distribucí, které podporují 32bitovou i 64bitovou architekturu.

Co je nového

strong> v této verzi:

  • Tato verze řeší dvě bezpečnostní problémy. Tato verze také řeší problémy nalezené s VACUUM, GIN a hashovými indexy, paralelními dotazy, logickou replikací a dalšími chybami hlášenými za poslední tři měsíce. Všichni uživatelé, kteří používají příslušné verze aplikace PostgreSQL, by se měli co nejdříve aktualizovat.

Co je nového ve verzi 10.4 / 11 Beta 1:

  • Tato verze také řeší problémy nalezené s VACUUM, GIN a hashovými indexy, paralelními dotazy, logickou replikací a dalšími chybami hlášenými za poslední tři měsíce. Všichni uživatelé, kteří používají příslušné verze aplikace PostgreSQL, by se měli co nejdříve aktualizovat.

Co je nového ve verzi:

  • Dále omezit viditelnost pg_user_mappings.umoptions pro ochranu hesel uložených jako možnosti mapování uživatelů (Noah Misch)
  • Oprava pro CVE-2017-7486 byla nesprávná: umožnila uživateli, aby viděla možnosti v mapování vlastních uživatelů, i když neměla oprávnění USAGE na přidruženém zahraničním serveru. Takové možnosti mohou obsahovat heslo, které bylo poskytnuto vlastníkem serveru, nikoli samotným uživatelem. Vzhledem k tomu, že informace_schema.user_mapping_options v takových případech nezobrazuje možnosti, pg_user_mappings by neměl být ani jeden. (CVE-2017-7547)
  • Samotná tato oprava opraví pouze chování v nově initdb'd databázích. Pokud chcete tuto změnu použít v existující databázi, budete muset provést následující kroky:
  • Po přidání allow_system_table_mods = true do postgresql.conf restartujte správce poštovního schránky. (Ve verzích podporujících ALTER SYSTEM můžete tuto změnu provést, ale stále budete potřebovat restart.)
  • V každé databázi clusteru spusťte následující příkazy jako superuser:
  • SET_path = pg_catalog;
  • CREATE OR REPLACE VIEW pg_user_mappings AS
  • SELECT
  • U.oid AS humid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS umuser,
  • PŘÍPAD, JAK U.umuser = 0 THEN
  • 'public'
  • ELSE
  • A.rolové jméno
  • END jako usename,
  • PŘÍPAD KDYŽ (U.umuser 0 a A.rolname = current_user
  • )
  • A (pg_has_role (S.srvowner, 'USAGE'))
  • NEBO has_server_privilege (S.oid, 'USAGE')))
  • NEBO (U.umuser = 0 A pg_has_role (S.srvowner, 'USAGE'))
  • NEBO (ZVOLTE rolsuper FROM FROM pg_authid WHERE role = current_user)
  • JEDNOTAČNÍ OBJEDNÁVKY
  • ELSE NULL END jako umoptions
  • Z adresy pg_user_mapping U
  • LEVÝ JOIN pg_authid A ON (A.oid = U.umuser) JOIN
  • pg_foreign_server S ON (U.umserver = S.oid);
  • Nezapomeňte zahrnout databázu template0 a template1, nebo bude chyba zabezpečení stále existovat v databázích, které vytvoříte později. Chcete-li opravit šablonu0, budete ji muset dočasně přijmout. V aplikaci PostgreSQL 9.5 a novější můžete použít
  • šablona ALTER DATABASE0 WITH ALLOW_CONNECTIONS true;
  • a potom po fixování šablony0, zrušte to pomocí
  • Šablona ALTER DATABASE0 WITH ALLOW_CONNECTIONS false;
  • V předchozích verzích místo toho použijte
  • Aktualizace pg_database SET datallowconn = true WHERE název_souboru = 'template0';
  • Aktualizace pg_database SET datallowconn = false WHERE datname = 'template0';
  • Nakonec odeberte nastavení konfigurace allow_system_table_mods a znovu spusťte poštovní správce.
  • Zakázat prázdná hesla ve všech autentizačních metodách založených na heslech (Heikki Linnakangas)
  • libpq ignoruje specifikace prázdného hesla a nepředává je na server. Takže pokud heslo uživatele bylo nastaveno na prázdný řetězec, nelze se s tímto heslem přihlásit přes psql nebo jiné klienty založené na libpq. Správce se proto může domnívat, že nastavení hesla pro vyprázdnění odpovídá vypnutí přihlašovacího hesla. Však s upraveným nebo non-libpq klienta může být možné přihlášení, v závislosti na konfiguraci metody ověřování. Zejména nejčastější metoda, md5, přijala prázdná hesla. Změňte server, aby odmítl prázdná hesla ve všech případech. (CVE-2017-7546)
  • Vytvořte lo_put () kontrolu nad oprávněním UPDATE na cílovém velkém objektu (Tom Lane, Michael Paquier)
  • lo_put () by jistě vyžadovalo stejné oprávnění jako lowrite (), ale chyba chyběla, což umožnilo libovolnému uživateli měnit data ve velkém objektu. (CVE-2017-7548)
  • Opravte dokumentaci týkající se procesu upgradu pohotovostních serverů pomocí pg_upgrade (Bruce Momjian)
  • Předchozí dokumentace informovala uživatele o spuštění / zastavení primárního serveru po spuštění pg_upgrade, ale před synchronizací pohotovostních serverů. Tato sekvence je nebezpečná.
  • Opravte souběžné blokování aktualizačních řetězů nove (Alvaro Herrera)
  • Pokud více relací současně uzamkne aktualizační řetězec s nekonfliktním režimem uzamčení pomocí starého snímku a všichni uspějí, bylo možné, že některé z nich se přesto nezdaří (a uzavřou, že neexistuje žádná živá verze s nulovým číslem) kvůli závodu stav. To mělo důsledky, jako například kontroly cizích klíčů, které nevidí n-tici, která určitě existuje, ale současně se aktualizuje.
  • Opravuje potenciální poškození dat při zamrznutí n-tice, jejíž XMAX je multixact s přesně jedním členem stále zajímavým (Teodor Sigaev)
  • Zabraňte celému přetečení a následnému zhroucení při třídění více než jedné miliardy nů v paměti (Sergey Koposov)
  • V systémech Windows zkuste znovu vytvořit proces, pokud se nám nepodaří rezervovat rozsah adresy pro sdílenou paměť v novém procesu (Tom Lane, Amit Kapila)
  • Očekává se, že tento problém vyřeší zřídkakdy selhání při spuštění procesu podřízeného procesu, které pravděpodobně kvůli rušení antivirových produktů.
  • Opravte poškození pravděpodobnosti s nízkou pravděpodobností v systémech Windows (Thomas Munro, Tom Lane)
  • Vyhněte se přihlašování čistého uzavření spojení SSL, jako kdyby byl reset (Michael Paquier)
  • Zabraňte odesílání vstupů SSL klientům (Tom Lane)
  • Tato oprava zabraňuje selhání při opětovném připojení s SSL kódem na straně klienta.
  • Opravit kód pro nastavení tcp_keepalives_idle na Solaris (Tom Lane)
  • Opravte sběratele statistik, aby odpovídali na dotazové zprávy, které byly vydány těsně po vypnutí a okamžitém restartu poštovního serveru (Tom Lane)
  • Dotazy týkající se statistiky, které byly vydány během půl sekundy od předchozího ukončení poštovního provozu, byly skutečně ignorovány.
  • Ujistěte se, že velikost vyrovnávací paměti přijímače statistiky je alespoň 100 kB (Tom Lane)
  • Tím se snižuje riziko ztráty statistických dat o starších platformách, jejichž výchozí velikost vyrovnávací paměti je menší.
  • Možnost opravy možného vytvoření neplatného segmentu WAL, když je pohotovostní režim propagován těsně poté, co zpracuje záznam XLOG_SWITCH WAL (Andres Freund)
  • Opravte walsender, aby se okamžitě ukončil, když klient požádá o vypnutí (Tom Lane)
  • Opravit zpracování SIGHUP a SIGUSR1 v procesech Walsender (Petr Jelinek, Andres Freund)
  • Zabraňte panickým spuštěním walsenderů během kontroly vypnutí (Andres Freund, Michael Paquier)
  • Opravit zbytečně pomalé restarty procesů walreceiveru kvůli stavu závodu v poštmistr (Tom Lane)
  • Opravit únik malých subtransakcí přenesených na disk během logického dekódování (Andres Freund)
  • To vedlo k dočasným souborům, které spotřebovávají nadbytečné místo na disku.
  • Při vytváření logicko-dekódovacích slotů (Andres Freund, Petr Jelínek) snížit práci potřebnou pro vytvoření snímků
  • Předchozí algoritmus byl na serveru se spoustou otevřených transakcí neuvěřitelně drahý.
  • Oprava stavu závodu, který by mohl neomezeně zpozdit vytvoření logických dekódovacích slotů (Andres Freund, Petr Jelínek)
  • Snížit režii při zpracování událostí zneužití syscache (Tom Lane)
  • Toto je zvláště užitečné pro logické dekódování, které spouští časté zneplatnění mezipaměti.
  • Odstraňte nesprávný heuristik použitý v některých případech k odhadu selektivnosti spojení založené na přítomnosti omezení cizího klíče (David Rowley)
  • V některých případech, kdy existuje omezení pro vícecestný cizí klíč, ale neodpovídá přesně struktuře spojení, plánovač použil odhadovací heuristiku, která nevypadá vůbec dobře. Obraťte se na takové případy tak, jak byly odhadnuty před 9.6.
  • Opravuje případy, kdy INSERT nebo UPDATE přiřadí více než jeden prvek sloupce typu domény přes pole (Tom Lane)
  • Povolit použití funkcí okna v dílčích SELECTech, které jsou v rámci argumentů agregované funkce (Tom Lane)
  • Ujistěte se, že klauzule CHECK OPTIONS v pohledu je správně vynucena, když je podkladová tabulka cizí tabulka (Etsuro Fujita)
  • Dříve se aktualizace může dostat úplně do cizího serveru, ale v takovém případě chybí potřeba ověřit podmínky zobrazení.
  • Přesuňte typy autogenerovaných polí mimo cestu ALTER ... RENAME (Vik Fearing)
  • V minulosti bychom během CREATE přejmenovali konfliktní typ automatického generování pole; Tato oprava rozšiřuje toto chování na přejmenování operací.
  • Upravte visící ukazatel v tabulce ALTER TABLE, pokud je komentář k omezení obsaženému v tabulce (David Rowley)
  • Opětovné použití komentáře k rekonstruovanému omezení by mohlo selhat se zvláštním chybovým hlášením nebo dokonce selhání.
  • Ujistěte se, že ALTER USER ... SET přijímá všechny varianty syntaxe, které ALTER ROLE ... SET (Peter Eisentraut)
  • Povolit, aby omezení CHECK v cizí tabulce nebylo zpočátku NENÍ platné (Amit Langote)
  • CREATE TABLE tiše neplatí specifikátory NOT VALID pro omezení CHECK, uvažuje, že tabulka musí být prázdná, takže omezení může být okamžitě ověřeno. Ale to je špatné pro CREATE FOREIGN TABLE, kde není důvod předpokládat, že podkladový stůl je prázdný a dokonce i když není naším záměrem rozhodnout se, že omezení může být považováno za platné. Přeskočte tuto "optimalizaci" pro cizí stoly.
  • Správně aktualizujte informace o závislostech při změně argumentu typu nebo typu návratu datového typu I / O z neprůhledného na správný typ (Heikki Linnakangas)
  • Aktualizace CREATE TYPE I / O jsou deklarovány v tomto dlouhém zastaralém stylu, ale zapomněli si zaznamenat závislost na typu, což umožnilo následujícímu DROP TYPE opustit definice defektních funkcí.
  • Povolte rovnoběžnost v plánu dotazů, když kopie kopie z výsledku dotazu (Andres Freund)
  • Redukuje využití paměti, když ANALYZE zpracovává sloupec tsvector (Heikki Linnakangas)
  • Opravte zbytečnou ztrátu přesnosti a zašpiněné zaokrouhlení při vynásobení nebo dělení hodnot peněz celistvými nebo plovoucími (Tom Lane)
  • Upevněte kontroly mezery ve funkcích, které analyzují identifikátory, například regprocedurein () (Tom Lane)
  • V závislosti na převládajícím národním prostředí by tyto funkce mohly nesprávně interpretovat fragmenty vícebajtových znaků jako mezery.
  • Při kompilaci PL / Perl (Ashutosh Sharma, Tom Lane) použijte příslušné #define symboly z Perlu
  • Tím se zabrání problémům s přenosností, které se typicky projevují jako "handshake" nesoulad při načítání knihovny při práci s nedávnými verzemi Perl
  • V libpq resetujte správně autentizaci GSS / SASL a SSPI po neúspěšném pokusu o připojení (Michael Paquier)
  • V opačném případě došlo k selhání GSS / SASL v pokusu o protokol SSL, kdyby se spadla z SSL na připojení bez SSL, což by vždy způsobilo selhání pokusu o SSL. SSPI se nezdařilo, ale uniklo to z paměti.
  • V psql opravte chybu, když je COPY FROM STDIN ukončeno signálem EOF z klávesnice a poté se pokusí o další kopii STDIN (Thomas Munro)
  • Toto chybové chování bylo zjištěno na platformách odvozených od BSD (včetně macOS), ale ne na většině ostatních.
  • Opravte příkazy pg_dump a pg_restore pro vydání příkazů REFRESH MATERIALIZED VIEW (Tom Lane)
  • Tím se zabrání chybám během výpisu / obnovení, když se materializovaný pohled týká tabulek vlastněných jiným uživatelem.
  • Zlepšete hlášení chybových stavů pg_dump / pg_restore pocházejících z zlibu (Vladimir Kunschikov, Alvaro Herrera)
  • Opravte pg_dump volbou --clean, chcete-li spustit spouštěče událostí podle očekávání (Tom Lane)
  • Také nyní správně přiřadí vlastnictví spouštěčů událostí; dříve, byly obnoveny jako majitelé superuživatelů, kteří používají obnovovací skript.
  • Opravte pg_dump volbou --clean, aby se nezdařilo, když veřejná schéma neexistuje (Stephen Frost)
  • Opravit pg_dump nevydávat neplatný SQL pro prázdnou třídu operátora (Daniel Gustafsson)
  • Opravit výstup pg_dump na stdout v systému Windows (Kuntal Ghosh)
  • Komprimovaný výpis prostého textu zapsaný do stdout by obsahoval poškozená data kvůli tomu, že popisovač souborů nebyl vložen do binárního režimu.
  • Opravte pg_get_ruledef (), chcete-li vytisknout správný výstup pro pravidlo ON SELECT zobrazení, jehož sloupce byly přejmenovány (Tom Lane)
  • V některých rohových případech se pg_dump spoléhá na zobrazení výpisů pg_get_ruledef (), takže tato chyba může způsobit selhání dump / reload.
  • Oprava vnějších spojů s prázdnými omezeními, jako je výsledek NATURAL LEFT JOIN bez společných sloupců (Tom Lane)
  • Opravte dumping výrazů funkcí v klauzuli FROM v případech, kdy výraz neodchází do něčeho, co vypadá jako volání funkce (Tom Lane)
  • Opravit výstup pg_basebackup na stdout v systému Windows (Haribabu Kommi)
  • Záloha zapsaná do stdout by obsahovala poškozená data kvůli tomu, že popisovač souborů nebyl vložen do binárního režimu.
  • Opravte soubor pg_rewind pro správné zpracování souborů přesahujících 2 GB (Kuntal Ghosh, Michael Paquier)
  • Obvykle se tyto soubory neobjevují v adresáři dat PostgreSQL, ale v některých případech se mohou vyskytovat.
  • Opravte pg_upgrade, abyste zajistili, že koncový záznam WAL nemá wal_level = minimum (Bruce Momjian)
  • Tato podmínka by mohla znemožnit obnovení pohotovostních serverů.
  • Opravte výpočet délky záznamu WAL (Andres Freund) od pg_xlogdump
  • V postgres_fdw obnovte spojení se vzdálenými servery po příkazech ALTER SERVER nebo ALTER USER MAPPING (Kyotaro Horiguchi)
  • Tím se zajistí, že změny volby ovlivňující parametry připojení budou aplikovány rychle.
  • V postgres_fdw povolte zrušení příkazů pro řízení transakcí na dálku (Robert Haas, Rafia Sabih)
  • Tato změna nám umožňuje rychle vyhnout čekání na nereagující vzdálený server v mnoha dalších případech než dříve.
  • Zvětšete MAX_SYSCACHE_CALLBACKS, abyste poskytli více prostoru pro rozšíření (Tom Lane)
  • Při vytváření sdílených knihoven pomocí gcc (Tom Lane) vždy použijte -fPIC, ne -fpic
  • Podporuje větší knihovny rozšíření na platformách, kde to dělá rozdíl.
  • V prostředí MSVC se zabývá případ, kdy knihovna openssl není v podadresáři VC (Andrew Dunstan)
  • V sestavování MSVC přidejte správnou cestu pro soubory záhlaví libxml2 (Andrew Dunstan)
  • Tím se řeší bývalá potřeba přesunout věci do standardních instalací libxml2 systému Windows.
  • V systému MSVC se vytváří uznání knihovny Tcl, která je pojmenována tcl86.lib (Noah Misch)
  • V prostředí MSVC staví příkaz PROVE_FLAGS na příkazovém řádku vcregress.pl (Andrew Dunstan)

Co je nového ve verzi 9.6.4:

  • Dále omezit viditelnost pg_user_mappings.umoptions pro ochranu hesel uložených jako možnosti mapování uživatelů (Noah Misch)
  • Oprava pro CVE-2017-7486 byla nesprávná: umožnila uživateli, aby viděla možnosti v mapování vlastních uživatelů, i když neměla oprávnění USAGE na přidruženém zahraničním serveru. Takové možnosti mohou obsahovat heslo, které bylo poskytnuto vlastníkem serveru, nikoli samotným uživatelem. Vzhledem k tomu, že informace_schema.user_mapping_options v takových případech nezobrazuje možnosti, pg_user_mappings by neměl být ani jeden. (CVE-2017-7547)
  • Samotná tato oprava opraví pouze chování v nově initdb'd databázích. Pokud chcete tuto změnu použít v existující databázi, budete muset provést následující kroky:
  • Po přidání allow_system_table_mods = true do postgresql.conf restartujte správce poštovního schránky. (Ve verzích podporujících ALTER SYSTEM můžete tuto změnu provést, ale stále budete potřebovat restart.)
  • V každé databázi clusteru spusťte následující příkazy jako superuser:
  • SET_path = pg_catalog;
  • CREATE OR REPLACE VIEW pg_user_mappings AS
  • SELECT
  • U.oid AS humid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS umuser,
  • PŘÍPAD, JAK U.umuser = 0 THEN
  • 'public'
  • ELSE
  • A.rolové jméno
  • END jako usename,
  • PŘÍPAD KDYŽ (U.umuser 0 a A.rolname = current_user
  • )
  • A (pg_has_role (S.srvowner, 'USAGE'))
  • NEBO has_server_privilege (S.oid, 'USAGE')))
  • NEBO (U.umuser = 0 A pg_has_role (S.srvowner, 'USAGE'))
  • NEBO (ZVOLTE rolsuper FROM FROM pg_authid WHERE role = current_user)
  • JEDNOTAČNÍ OBJEDNÁVKY
  • ELSE NULL END jako umoptions
  • Z adresy pg_user_mapping U
  • LEVÝ JOIN pg_authid A ON (A.oid = U.umuser) JOIN
  • pg_foreign_server S ON (U.umserver = S.oid);
  • Nezapomeňte zahrnout databázu template0 a template1, nebo bude chyba zabezpečení stále existovat v databázích, které vytvoříte později. Chcete-li opravit šablonu0, budete ji muset dočasně přijmout. V aplikaci PostgreSQL 9.5 a novější můžete použít
  • šablona ALTER DATABASE0 WITH ALLOW_CONNECTIONS true;
  • a potom po fixování šablony0, zrušte to pomocí
  • Šablona ALTER DATABASE0 WITH ALLOW_CONNECTIONS false;
  • V předchozích verzích místo toho použijte
  • Aktualizace pg_database SET datallowconn = true WHERE název_souboru = 'template0';
  • Aktualizace pg_database SET datallowconn = false WHERE datname = 'template0';
  • Nakonec odeberte nastavení konfigurace allow_system_table_mods a znovu spusťte poštovní správce.
  • Zakázat prázdná hesla ve všech autentizačních metodách založených na heslech (Heikki Linnakangas)
  • libpq ignoruje specifikace prázdného hesla a nepředává je na server. Takže pokud heslo uživatele bylo nastaveno na prázdný řetězec, nelze se s tímto heslem přihlásit přes psql nebo jiné klienty založené na libpq. Správce se proto může domnívat, že nastavení hesla pro vyprázdnění odpovídá vypnutí přihlašovacího hesla. Však s upraveným nebo non-libpq klienta může být možné přihlášení, v závislosti na konfiguraci metody ověřování. Zejména nejčastější metoda, md5, přijala prázdná hesla. Změňte server, aby odmítl prázdná hesla ve všech případech. (CVE-2017-7546)
  • Vytvořte lo_put () kontrolu nad oprávněním UPDATE na cílovém velkém objektu (Tom Lane, Michael Paquier)
  • lo_put () by jistě vyžadovalo stejné oprávnění jako lowrite (), ale chyba chyběla, což umožnilo libovolnému uživateli měnit data ve velkém objektu. (CVE-2017-7548)
  • Opravte dokumentaci týkající se procesu upgradu pohotovostních serverů pomocí pg_upgrade (Bruce Momjian)
  • Předchozí dokumentace informovala uživatele o spuštění / zastavení primárního serveru po spuštění pg_upgrade, ale před synchronizací pohotovostních serverů. Tato sekvence je nebezpečná.
  • Opravte souběžné blokování aktualizačních řetězů nove (Alvaro Herrera)
  • Pokud více relací současně uzamkne aktualizační řetězec s nekonfliktním režimem uzamčení pomocí starého snímku a všichni uspějí, bylo možné, že některé z nich se přesto nezdaří (a uzavřou, že neexistuje žádná živá verze s nulovým číslem) kvůli závodu stav. To mělo důsledky, jako například kontroly cizích klíčů, které nevidí n-tici, která určitě existuje, ale současně se aktualizuje.
  • Opravuje potenciální poškození dat při zamrznutí n-tice, jejíž XMAX je multixact s přesně jedním členem stále zajímavým (Teodor Sigaev)
  • Zabraňte celému přetečení a následnému zhroucení při třídění více než jedné miliardy nů v paměti (Sergey Koposov)
  • V systémech Windows zkuste znovu vytvořit proces, pokud se nám nepodaří rezervovat rozsah adresy pro sdílenou paměť v novém procesu (Tom Lane, Amit Kapila)
  • Očekává se, že tento problém vyřeší zřídkakdy selhání při spuštění procesu podřízeného procesu, které pravděpodobně kvůli rušení antivirových produktů.
  • Opravte poškození pravděpodobnosti s nízkou pravděpodobností v systémech Windows (Thomas Munro, Tom Lane)
  • Vyhněte se přihlašování čistého uzavření spojení SSL, jako kdyby byl reset (Michael Paquier)
  • Zabraňte odesílání vstupů SSL klientům (Tom Lane)
  • Tato oprava zabraňuje selhání při opětovném připojení s SSL kódem na straně klienta.
  • Opravit kód pro nastavení tcp_keepalives_idle na Solaris (Tom Lane)
  • Opravte sběratele statistik, aby odpovídali na dotazové zprávy, které byly vydány těsně po vypnutí a okamžitém restartu poštovního serveru (Tom Lane)
  • Dotazy týkající se statistiky, které byly vydány během půl sekundy od předchozího ukončení poštovního provozu, byly skutečně ignorovány.
  • Ujistěte se, že velikost vyrovnávací paměti přijímače statistiky je alespoň 100 kB (Tom Lane)
  • Tím se snižuje riziko ztráty statistických dat o starších platformách, jejichž výchozí velikost vyrovnávací paměti je menší.
  • Možnost opravy možného vytvoření neplatného segmentu WAL, když je pohotovostní režim propagován těsně poté, co zpracuje záznam XLOG_SWITCH WAL (Andres Freund)
  • Opravte walsender, aby se okamžitě ukončil, když klient požádá o vypnutí (Tom Lane)
  • Opravit zpracování SIGHUP a SIGUSR1 v procesech Walsender (Petr Jelinek, Andres Freund)
  • Zabraňte panickým spuštěním walsenderů během kontroly vypnutí (Andres Freund, Michael Paquier)
  • Opravit zbytečně pomalé restarty procesů walreceiveru kvůli stavu závodu v poštmistr (Tom Lane)
  • Opravit únik malých subtransakcí přenesených na disk během logického dekódování (Andres Freund)
  • To vedlo k dočasným souborům, které spotřebovávají nadbytečné místo na disku.
  • Při vytváření logicko-dekódovacích slotů (Andres Freund, Petr Jelínek) snížit práci potřebnou pro vytvoření snímků
  • Předchozí algoritmus byl na serveru se spoustou otevřených transakcí neuvěřitelně drahý.
  • Oprava stavu závodu, který by mohl neomezeně zpozdit vytvoření logických dekódovacích slotů (Andres Freund, Petr Jelínek)
  • Snížit režii při zpracování událostí zneužití syscache (Tom Lane)
  • Toto je zvláště užitečné pro logické dekódování, které spouští časté zneplatnění mezipaměti.
  • Odstraňte nesprávný heuristik použitý v některých případech k odhadu selektivnosti spojení založené na přítomnosti omezení cizího klíče (David Rowley)
  • V některých případech, kdy existuje omezení pro vícecestný cizí klíč, ale neodpovídá přesně struktuře spojení, plánovač použil odhadovací heuristiku, která nevypadá vůbec dobře. Obraťte se na takové případy tak, jak byly odhadnuty před 9.6.
  • Opravuje případy, kdy INSERT nebo UPDATE přiřadí více než jeden prvek sloupce typu domény přes pole (Tom Lane)
  • Povolit použití funkcí okna v dílčích SELECTech, které jsou v rámci argumentů agregované funkce (Tom Lane)
  • Ujistěte se, že klauzule CHECK OPTIONS v pohledu je správně vynucena, když je podkladová tabulka cizí tabulka (Etsuro Fujita)
  • Dříve se aktualizace může dostat úplně do cizího serveru, ale v takovém případě chybí potřeba ověřit podmínky zobrazení.
  • Přesuňte typy autogenerovaných polí mimo cestu ALTER ... RENAME (Vik Fearing)
  • V minulosti bychom během CREATE přejmenovali konfliktní typ automatického generování pole; Tato oprava rozšiřuje toto chování na přejmenování operací.
  • Upravte visící ukazatel v tabulce ALTER TABLE, pokud je komentář k omezení obsaženému v tabulce (David Rowley)
  • Opětovné použití komentáře k rekonstruovanému omezení by mohlo selhat se zvláštním chybovým hlášením nebo dokonce selhání.
  • Ujistěte se, že ALTER USER ... SET přijímá všechny varianty syntaxe, které ALTER ROLE ... SET (Peter Eisentraut)
  • Povolit, aby omezení CHECK v cizí tabulce nebylo zpočátku NENÍ platné (Amit Langote)
  • CREATE TABLE tiše neplatí specifikátory NOT VALID pro omezení CHECK, uvažuje, že tabulka musí být prázdná, takže omezení může být okamžitě ověřeno. Ale to je špatné pro CREATE FOREIGN TABLE, kde není důvod předpokládat, že podkladový stůl je prázdný a dokonce i když není naším záměrem rozhodnout se, že omezení může být považováno za platné. Přeskočte tuto "optimalizaci" pro cizí tabulky.
  • Správně aktualizujte informace o závislostech při změně argumentu typu nebo typu návratu datového typu I / O z neprůhledného na správný typ (Heikki Linnakangas)
  • Aktualizace CREATE TYPE I / O jsou deklarovány v tomto dlouhém zastaralém stylu, ale zapomněli si zaznamenat závislost na typu, což umožnilo následujícímu DROP TYPE opustit definice defektních funkcí.
  • Povolte rovnoběžnost v plánu dotazů, když kopie kopie z výsledku dotazu (Andres Freund)
  • Redukuje využití paměti, když ANALYZE zpracovává sloupec tsvector (Heikki Linnakangas)
  • Opravte zbytečnou ztrátu přesnosti a zašpiněné zaokrouhlení při vynásobení nebo dělení hodnot peněz celistvými nebo plovoucími (Tom Lane)
  • Upevněte kontroly mezery ve funkcích, které analyzují identifikátory, například regprocedurein () (Tom Lane)
  • V závislosti na převládajícím národním prostředí by tyto funkce mohly nesprávně interpretovat fragmenty vícebajtových znaků jako mezery.
  • Při kompilaci PL / Perl (Ashutosh Sharma, Tom Lane) použijte příslušné #define symboly z Perlu
  • Tím se zabrání problémům s přenositelností, které se při práci s nedávnými verzemi Perl obvykle projevují jako nesoulad "handshake" při načítání knihovny.
  • V libpq resetujte správně autentizaci GSS / SASL a SSPI po neúspěšném pokusu o připojení (Michael Paquier)
  • V opačném případě došlo k selhání GSS / SASL v pokusu o protokol SSL, kdyby se spadla z SSL na připojení bez SSL, což by vždy způsobilo selhání pokusu o SSL. SSPI se nezdařilo, ale uniklo to z paměti.
  • V psql opravte chybu, když je COPY FROM STDIN ukončeno signálem EOF z klávesnice a poté se pokusí o další kopii STDIN (Thomas Munro)
  • Toto chybové chování bylo zjištěno na platformách odvozených od BSD (včetně macOS), ale ne na většině ostatních.
  • Opravte příkazy pg_dump a pg_restore pro vydání příkazů REFRESH MATERIALIZED VIEW (Tom Lane)
  • Tím se zabrání chybám během výpisu / obnovení, když se materializovaný pohled týká tabulek vlastněných jiným uživatelem.
  • Zlepšete hlášení chybových stavů pg_dump / pg_restore pocházejících z zlibu (Vladimir Kunschikov, Alvaro Herrera)
  • Opravte pg_dump volbou --clean, chcete-li spustit spouštěče událostí podle očekávání (Tom Lane)
  • Také nyní správně přiřadí vlastnictví spouštěčů událostí; dříve, byly obnoveny jako majitelé superuživatelů, kteří používají obnovovací skript.
  • Opravte pg_dump volbou --clean, aby se nezdařilo, když veřejná schéma neexistuje (Stephen Frost)
  • Opravit pg_dump nevydávat neplatný SQL pro prázdnou třídu operátora (Daniel Gustafsson)
  • Opravit výstup pg_dump na stdout v systému Windows (Kuntal Ghosh)
  • Komprimovaný výpis prostého textu zapsaný do stdout by obsahoval poškozená data kvůli tomu, že popisovač souborů nebyl vložen do binárního režimu.
  • Opravte pg_get_ruledef (), chcete-li vytisknout správný výstup pro pravidlo ON SELECT zobrazení, jehož sloupce byly přejmenovány (Tom Lane)
  • V některých rohových případech se pg_dump spoléhá na zobrazení výpisů pg_get_ruledef (), takže tato chyba může způsobit selhání dump / reload.
  • Oprava vnějších spojů s prázdnými omezeními, jako je výsledek NATURAL LEFT JOIN bez společných sloupců (Tom Lane)
  • Opravte dumping výrazů funkcí v klauzuli FROM v případech, kdy výraz neodchází do něčeho, co vypadá jako volání funkce (Tom Lane)
  • Opravit výstup pg_basebackup na stdout v systému Windows (Haribabu Kommi)
  • Záloha zapsaná do stdout by obsahovala poškozená data kvůli tomu, že popisovač souborů nebyl vložen do binárního režimu.
  • Opravte soubor pg_rewind pro správné zpracování souborů přesahujících 2 GB (Kuntal Ghosh, Michael Paquier)
  • Obvykle se tyto soubory neobjevují v adresáři dat PostgreSQL, ale v některých případech se mohou vyskytovat.
  • Opravte pg_upgrade, abyste zajistili, že koncový záznam WAL nemá wal_level = minimum (Bruce Momjian)
  • Tato podmínka by mohla znemožnit obnovení pohotovostních serverů.
  • Opravte výpočet délky záznamu WAL (Andres Freund) od pg_xlogdump
  • V postgres_fdw obnovte spojení se vzdálenými servery po příkazech ALTER SERVER nebo ALTER USER MAPPING (Kyotaro Horiguchi)
  • Tím se zajistí, že změny volby ovlivňující parametry připojení budou aplikovány rychle.
  • V postgres_fdw povolte zrušení příkazů pro řízení transakcí na dálku (Robert Haas, Rafia Sabih)
  • Tato změna nám umožňuje rychle vyhnout čekání na nereagující vzdálený server v mnoha dalších případech než dříve.
  • Zvětšete MAX_SYSCACHE_CALLBACKS, abyste poskytli více prostoru pro rozšíření (Tom Lane)
  • Při vytváření sdílených knihoven pomocí gcc (Tom Lane) vždy použijte -fPIC, ne -fpic
  • Podporuje větší knihovny rozšíření na platformách, kde to dělá rozdíl.
  • V prostředí MSVC se zabývá případ, kdy knihovna openssl není v podadresáři VC (Andrew Dunstan)
  • V sestavování MSVC přidejte správnou cestu pro soubory záhlaví libxml2 (Andrew Dunstan)
  • Tím se řeší bývalá potřeba přesunout věci do standardních instalací libxml2 systému Windows.
  • V systému MSVC se vytváří uznání knihovny Tcl, která je pojmenována tcl86.lib (Noah Misch)
  • V prostředí MSVC staví příkaz PROVE_FLAGS na příkazovém řádku vcregress.pl (Andrew Dunstan)

Podobný software

ArangoDB
ArangoDB

17 Feb 15

Apache Cassandra
Apache Cassandra

19 Feb 15

Berkeley DB
Berkeley DB

27 Apr 17

Komentáře k PostgreSQL

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!