diff --git a/doc/src/sgml/release-13.sgml b/doc/src/sgml/release-13.sgml index 703783833f..42da1b5046 100644 --- a/doc/src/sgml/release-13.sgml +++ b/doc/src/sgml/release-13.sgml @@ -1,6 +1,954 @@ + + Release 13.7 + + + Release date: + 2022-05-12 + + + + This release contains a variety of fixes from 13.6. + For information about new features in major release 13, see + . + + + + Migration to Version 13.7 + + + A dump/restore is not required for those running 13.X. + + + + However, if you have any GiST indexes on columns of type + ltree (supplied by the contrib/ltree + extension), you should re-index them after updating. + See the first changelog entry below. + + + + Also, if you are upgrading from a version earlier than 13.6, + see . + + + + + Changes + + + + + + + Fix default signature length for gist_ltree_ops + indexes (Tomas Vondra, Alexander Korotkov) + + + + The default signature length (hash size) for GiST indexes + on ltree columns was accidentally changed while + upgrading that operator class to support operator class parameters. + If any operations had been done on such an index without first + upgrading the ltree extension to version 1.2, + they were done assuming that the signature length was 28 bytes + rather than the intended 8. This means it is very likely that such + indexes are now corrupt. For safety we recommend re-indexing all + GiST indexes on ltree columns after installing this + update. (Note that GiST indexes on ltree[] + columns, that is arrays of ltree, are not affected.) + + + + + + + Stop using query-provided column aliases for the columns of + whole-row variables that refer to plain tables (Tom Lane) + + + + The column names in tuples produced by a whole-row variable (such + as tbl.* in contexts other than the top level of + a SELECT list) are now always those of the + associated named composite type, if there is one. We'd previously + attempted to make them track any column aliases that had been + applied to the FROM entry the variable refers to. + But that's semantically dubious, because really then the output of + the variable is not at all of the composite type it claims to be. + Previous attempts to deal with that inconsistency had bad results up + to and including storing unreadable data on disk, so just give up on + the whole idea. + + + + In cases where it's important to be able to relabel such columns, + a workaround is to introduce an extra level of + sub-SELECT, so that the whole-row variable is + referring to the sub-SELECT's output and not to a + plain table. Then the variable is of type record + to begin with and there's no issue. + + + + + + + Disallow infinite endpoints in the timestamp variants + of generate_series() (Tom Lane) + + + + Previously, such a call would run until canceled (or + out-of-disk-space). The numeric variant already threw an error for + an infinite endpoint value, so do likewise for timestamps. + + + + + + + Fix incorrect output for types timestamptz + and timetz in table_to_xmlschema() + and allied functions (Renan Soares Lopes) + + + + The xmlschema output for these types included a malformed regular + expression. + + + + + + + Fix planner errors for GROUPING() constructs + that reference outer query levels (Richard Guo, Tom Lane) + + + + + + + Fix plan generation for index-only scans on indexes with + both returnable and non-returnable columns (Tom Lane) + + + + The previous coding could try to read non-returnable columns + in addition to the returnable ones. This was fairly harmless + because it didn't actually do anything with the bogus values, + but it fell foul of a recently-added error check that rejected + such a plan. + + + + + + + Avoid accessing a no-longer-pinned shared buffer while attempting + to lock an outdated tuple during EvalPlanQual (Tom Lane) + + + + The code would touch the buffer a couple more times after releasing + its pin. In theory another process could recycle the buffer (or + more likely, try to defragment its free space) as soon as the pin is + gone, probably leading to failure to find the newer version of the + tuple. + + + + + + + Fix query-lifespan memory leak in an IndexScan node that is + performing reordering (Aliaksandr Kalenik) + + + + + + + Fix ALTER FUNCTION to support changing a + function's parallelism property and + its SET-variable list in the same command (Tom + Lane) + + + + The parallelism property change was lost if the same command also + updated the function's SET clause. + + + + + + + Fix bogus errors from attempts to alter system columns of tables + (Tom Lane) + + + + The system should just tell you that you can't do it, but sometimes + it would report no owned sequence found instead. + + + + + + + Fix mis-sorting of table rows when CLUSTERing + using an index whose leading key is an expression (Peter Geoghegan, + Thomas Munro) + + + + The table would be rebuilt with the correct data, but in an order + having little to do with the index order. + + + + + + + Fix risk of deadlock failures while dropping a partitioned index + (Jimmy Yih, Gaurab Dey, Tom Lane) + + + + Ensure that the required table and index locks are taken in the + standard order (parents before children, tables before indexes). + The previous coding for DROP INDEX did it + differently, and so could deadlock against concurrent queries taking + these locks in the standard order. + + + + + + + Fix race condition between DROP TABLESPACE and + checkpointing (Nathan Bossart) + + + + The checkpoint forced by DROP TABLESPACE could + sometimes fail to remove all dead files from the tablespace's + directory, leading to a bogus tablespace is not empty + error. + + + + + + + Fix possible trouble in crash recovery after + a TRUNCATE command that overlaps a checkpoint + (Kyotaro Horiguchi, Heikki Linnakangas, Robert Haas) + + + + TRUNCATE must ensure that the table's disk file + is truncated before the checkpoint is allowed to complete. + Otherwise, replay starting from that checkpoint might find + unexpected data in the supposedly-removed pages, possibly causing + replay failure. + + + + + + + Fix unsafe toast-data accesses during temporary object cleanup + (Andres Freund) + + + + Temporary-object deletion during server process exit could fail + with FATAL: cannot fetch toast data without an active + snapshot. This was usually harmless since the next use of + that temporary schema would clean up successfully. + + + + + + + Improve wait logic in RegisterSyncRequest (Thomas Munro) + + + + If we run out of space in the checkpointer sync request queue (which + is hopefully rare on real systems, but is common when testing with a + very small buffer pool), we wait for it to drain. While waiting, we + should report that as a wait event so that users know what is going + on, and also watch for postmaster death, since otherwise the loop might + never terminate if the checkpointer has already exited. + + + + + + + Fix PANIC: xlog flush request is not satisfied + failure during standby promotion when there is a missing WAL + continuation record (Sami Imseih) + + + + + + + Fix possibility of self-deadlock in hot standby conflict handling + (Andres Freund) + + + + With unlucky timing, the WAL-applying process could get stuck + while waiting for some other process to release a buffer lock. + + + + + + + Fix possible mis-identification of the correct ancestor relation + to publish logical replication changes through (Tomas Vondra, Hou + zj, Amit Kapila) + + + + If publish_via_partition_root is enabled, and + there are multiple publications naming different ancestors of the + currently-modified relation, the wrong ancestor might be chosen for + reporting the change. + + + + + + + Ensure that logical replication apply workers can be restarted even + when we're up against + the max_sync_workers_per_subscription limit + (Amit Kapila) + + + + Faulty coding of the limit check caused a restarted worker to exit + immediately, leaving fewer workers than there should be. + + + + + + + Include unchanged replica identity key columns in the WAL log for an + update, if they are stored out-of-line (Dilip Kumar, Amit Kapila) + + + + Otherwise subscribers cannot see the values and will fail to + replicate the update. + + + + + + + Cope correctly with platforms that have no support for altering the + server process's display in ps(1) (Andrew + Dunstan) + + + + Few platforms are like this (the only supported one is Cygwin), so + we'd managed not to notice that refactoring introduced a potential + memory clobber. + + + + + + + Disallow execution of SPI functions during PL/Perl function + compilation (Tom Lane) + + + + Perl can be convinced to execute user-defined code during compilation + of a PL/Perl function. However, it's not okay for such code to try + to invoke SQL operations via SPI. That results in a crash, and if + it didn't crash it would be a security hazard, because we really + don't want code execution during function validation. Put in a + check to give a friendlier error message instead. + + + + + + + Make libpq accept root-owned SSL private + key files (David Steele) + + + + This change synchronizes libpq's rules + for safe ownership and permissions of SSL key files with the rules + the server has used since release 9.6. Namely, in addition to the + current rules, allow the case where the key file is owned by root + and has permissions rw-r----- or less. This is + helpful for system-wide management of key files. + + + + + + + Fix behavior of libpq's + PQisBusy() function after a connection failure + (Tom Lane) + + + + If we'd detected a write failure, PQisBusy() + would always return true, which is the wrong thing: we want input + processing to carry on normally until we've read whatever is + available from the server. The practical effect of this error is + that applications using libpq's + async-query API would typically detect connection loss only + when PQconsumeInput() returns a hard failure. + With this fix, a connection loss will normally be reported via an + error PGresult object, which is a much + cleaner behavior for most applications. + + + + + + + Make pg_ctl recheck postmaster aliveness + while waiting for stop/restart/promote actions (Tom Lane) + + + + pg_ctl would verify that the postmaster + is alive as a side-effect of sending the stop or promote signal, but + then it just naively waited to see the on-disk state change. If the + postmaster died uncleanly without having removed its PID file or + updated the control file, pg_ctl would + wait until timeout. Instead make it recheck every so often that the + postmaster process is still there. + + + + + + + Fix error handling in pg_waldump (Kyotaro + Horiguchi, Andres Freund) + + + + While trying to read a WAL file to determine the WAL segment size, + pg_waldump would report an incorrect + error for the case of a too-short file. In addition, the file name + reported in this and related error messages could be garbage. + + + + + + + Ensure that contrib/pageinspect functions cope + with all-zero pages (Michael Paquier) + + + + This is a legitimate edge case, but the module was mostly unprepared + for it. Arrange to return nulls, or no rows, as appropriate; that + seems more useful than raising an error. + + + + + + + In contrib/pageinspect, add defenses against + incorrect page special space contents, tighten checks + for correct page size, and add some missing checks that an index is + of the expected type (Michael Paquier, Justin Pryzby, Julien + Rouhaud) + + + + These changes make it less likely that the module will crash on bad + data. + + + + + + + In contrib/postgres_fdw, verify + that ORDER BY clauses are safe to ship before + requesting a remotely-ordered query, and include + a USING clause if necessary (Ronan Dunklau) + + + + This fix prevents situations where the remote server might sort in a + different order than we intend. While sometimes that would be only + cosmetic, it could produce thoroughly wrong results if the remote + data is used as input for a locally-performed merge join. + + + + + + + Update JIT code to work with LLVM 14 + (Thomas Munro) + + + + + + + Clean up assorted failures under clang's + -fsanitize=undefined checks (Tom Lane, Andres + Freund, Zhihong Yu) + + + + Most of these changes are just for pro-forma compliance with the + letter of the C and POSIX standards, and are unlikely to have any + effect on production builds. + + + + + + + Fix PL/Perl so it builds on C compilers that don't support statements + nested within expressions (Tom Lane) + + + + + + + + + + Fix possible build failure of pg_dumpall + on Windows, when not using MSVC to build (Andres Freund) + + + + + + + In Windows builds, use gendef instead + of pexports to build DEF files (Andrew + Dunstan) + + + + This adapts the build process to work on recent MSys tool chains. + + + + + + + Prevent extra expansion of shell wildcard patterns in programs built + under MinGW (Andrew Dunstan) + + + + For some reason the C library provided by MinGW will expand shell + wildcard characters in a program's command-line arguments by + default. This is confusing, not least because it doesn't happen + under MSVC, so turn it off. + + + + + + + Update time zone data files to tzdata + release 2022a for DST law changes in Palestine, plus historical + corrections for Chile and Ukraine. + + + + + + + + Release 13.6