From ca3f0d44ac6a6794a89e59b1ff80613b12c792ba Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 6 Nov 2022 11:07:28 -0500 Subject: [PATCH] Release notes for 15.1, 14.6, 13.9, 12.13, 11.18, 10.23. --- doc/src/sgml/release-15.sgml | 612 +---------------------------------- 1 file changed, 2 insertions(+), 610 deletions(-) diff --git a/doc/src/sgml/release-15.sgml b/doc/src/sgml/release-15.sgml index be2de3be02..3019d6c61f 100644 --- a/doc/src/sgml/release-15.sgml +++ b/doc/src/sgml/release-15.sgml @@ -31,63 +31,6 @@ - - Avoid rare PANIC during updates occurring concurrently - with VACUUM (Tom Lane, Jeff Davis) - - - - If a concurrent VACUUM sets the all-visible flag - bit in a page that UPDATE - or DELETE is in process of modifying, the - updating command needs to clear that bit again; but some code paths - failed to do so, ending in a PANIC exit and database restart. - - - - This is known to be possible in versions 14 and 15. It may be only - latent in previous branches. - - - - - - - Fix VACUUM to press on if an attempted page - deletion in a btree index fails to find the page's parent downlink - (Peter Geoghegan) - - - - Rather than throwing an error, just log the issue and continue - without deleting the empty page. Previously, a buggy operator class - or corrupted index could indefinitely prevent completion of - vacuuming of the index, eventually leading to transaction wraparound - problems. - - - - - - - Fix resource management bug in saving tuples - for AFTER triggers (Tom Lane) - - - - Given the right circumstances, this manifested as a tupdesc - reference NNNN is not owned by resource - owner error followed by a PANIC exit. - - - - - - - Repair rare failure of MULTIEXPR_SUBLINK subplans in inherited - updates (Tom Lane) - - - - Use of the syntax UPDATE tab SET (c1, ...) = (SELECT - ...) with an inherited or partitioned target table could - result in failure if the child tables are sufficiently dissimilar. - This typically manifested as failure of consistency checks in the - executor; but a crash or incorrect data updates are also possible. - - - - - - - Fix generation of constraint names for per-partition foreign key - constraints (Jehan-Guillaume de Rorthais) - - - - If the initially-given name is already in use for some constraint of - the partition, a new one is selected; but it wasn't being spelled as - intended. - - - - - - - Fix incorrect matching of index expressions and predicates when - creating a partitioned index (Richard Guo, Tom Lane) - - - - While creating a partitioned index, we try to identify any existing - indexes on the partitions that match the partitioned index, so that - we can absorb those as child indexes instead of building new ones. - Matching of expressions was not done right, so that a usable child - index might be ignored, leading to creation of a duplicative index. - - - - - - Fix planner failure with extended statistics on partitioned tables - (Richard Guo, Justin Pryzby) + Fix planner failure with extended statistics on partitioned or + inherited tables (Richard Guo, Justin Pryzby) @@ -303,48 +150,6 @@ Branch: REL_15_STABLE [1f1865e90] 2022-11-01 14:34:44 -0400 - - Avoid flattening FROM-less subqueries when the - outer query has grouping sets (Tom Lane) - - - - This oversight could lead to assertion failures or planner errors - such as variable not found in subplan target list. - - - - - - - Prevent WAL corruption after a standby promotion (Dilip Kumar, - Robert Haas) - - - - When a PostgreSQL instance performing - archive recovery (but not using standby mode) is promoted, and the - last WAL segment that it attempted to read ended in a partial - record, the instance would write an invalid WAL segment on the new - timeline. - - - - - - - Prevent examining system catalogs with the wrong snapshot during - logical decoding (Masahiko Sawada) - - - - If decoding begins partway through a transaction that modifies - system catalogs, the decoder may not recognize that, causing it to - fail to treat that transaction as in-progress for catalog lookups. - - - - - - - Remove pointless check on replica identity setting of partitioned - tables (Hou Zhijie) - - - - What matters is the replica identity setting of the leaf partitions, - so there's no need to throw error if it's not set on the parent. - - - - - - - Fix handling of read-write expanded datums that are passed to SQL - functions (Tom Lane) - - - - If a non-inlined SQL function uses a parameter in more than one - place, and one of those functions expects to be able to modify - read-write datums in place, then later uses of the parameter would - observe the wrong value. (Within - core PostgreSQL, the expanded-datum - mechanism is only used for array and composite-type values; but - extensions might use it for other structured types.) - - - - - - - Fix type circle's equality comparator to handle NaNs - properly (Ranier Vilela) - - - - If the left-hand circle had a floating-point NaN for its radius, - it would be considered equal to a circle with the same center and - any radius. - - - - - - - In Snowball dictionaries, don't try to stem excessively-long words - (Olly Betts, Tom Lane) - - - - If the input word exceeds 1000 bytes, return it as-is after case - folding, rather than trying to run it through the Snowball code. - This restriction protects against a known - recursion-to-stack-overflow problem in the Turkish stemmer, and it - seems like good insurance against any other safety or performance - issues that may exist in the Snowball stemmers. Such a long string - is surely not a word in any human language, so it's doubtful that - the stemmer would have done anything desirable with it anyway. - - - - - - - Fix use-after-free hazard in string comparisons (Tom Lane) - - - - Improper memory management in the string comparison functions - could result in scribbling on no-longer-allocated buffers, - potentially breaking things for whatever is using that memory - now. This would only happen with fairly long strings (more than - 1kB), and only if an ICU collation is in use. - - - - - - - Add some more defenses against recursion till stack overrun - (Richard Guo, Tom Lane) - - - - - - - Avoid misbehavior when choosing hash table size with very - small work_mem and large tuples (Zhang Mingli) - - - - - - - Avoid long-term memory leakage in the autovacuum launcher process - (Reid Thompson) - - - - The lack of field reports suggests that this problem is only latent - in pre-v15 branches; but it's not very clear why, so back-patch the - fix anyway. - - - - - - - Improve PL/pgSQL's ability to handle - parameters declared as RECORD (Tom Lane) - - - - Build a separate function cache entry for each concrete type passed - to the RECORD parameter during a session, much as we do - for polymorphic parameters. This allows some usages to work that - previously failed with errors such as type of parameter does - not match that when preparing the plan. - - - - - - - Add missing guards for NULL connection pointer - in libpq (Daniele Varrazzo, Tom Lane) - - - - There's a convention that libpq functions - should check for a NULL PGconn argument, and fail gracefully instead - of crashing. PQflush() - and PQisnonblocking() didn't get that memo, so - fix them. - - - - - - - In ecpg, fix omission of variable storage - classes when multiple varchar or bytea - variables are declared in the same declaration (Andrey Sokolov) - - - - For example, ecpg - translated static varchar str1[10], str2[20], - str3[30]; in such a way that only str1 - was marked static. - - - - - - - In postgres_fdw, ensure that target lists - constructed for EvalPlanQual plans will have all required columns - (Richard Guo, Etsuro Fujita) - - - - This avoids variable not found in subplan target list - errors in rare cases. - - - - - - - Reject unwanted output from the platform's - uuid_create() function (Nazir Bilal Yavuz) - - - - The uuid-ossp module expects - libc's uuid_create() to produce a version-1 - UUID, but recent NetBSD releases produce a version-4 (random) UUID - instead. Check for that, and complain if so. Drop the - documentation's claim that the NetBSD implementation is usable - for uuid-ossp. - (If a version-4 UUID is okay for your purposes, you don't - need uuid-ossp at all; just - use gen_random_uuid().) - - - - - - - Include new Perl test modules in standard installations - (Álvaro Herrera) - - - - Add PostgreSQL/Test/Cluster.pm and - PostgreSQL/Test/Utils.pm to the standard - installation file set in pre-version-15 branches. This is for the - benefit of extensions that want to use newly-written test code in - older branches. - - - - - - - On NetBSD, force dynamic symbol resolution at postmaster start - (Andres Freund, Tom Lane) - - - - This avoids a risk of deadlock in the dynamic linker on NetBSD 10. - - - - - - - Silence assorted compiler warnings from clang 15 and later (Tom Lane) - - - - -