<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Release 9.6.15</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 9.6.21 Documentation" HREF="index.html"><LINK REL="UP" TITLE="Release Notes" HREF="release.html"><LINK REL="PREVIOUS" TITLE="Release 9.6.16" HREF="release-9-6-16.html"><LINK REL="NEXT" TITLE="Release 9.6.14" HREF="release-9-6-14.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2021-02-27T18:26:08"></HEAD ><BODY CLASS="SECT1" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="4" ALIGN="center" VALIGN="bottom" ><A HREF="index.html" >PostgreSQL 9.6.21 Documentation</A ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="Release 9.6.16" HREF="release-9-6-16.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="release.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" >Appendix E. Release Notes</TD ><TD WIDTH="20%" ALIGN="right" VALIGN="top" ><A TITLE="Release 9.6.14" HREF="release-9-6-14.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="RELEASE-9-6-15" >E.7. Release 9.6.15</A ></H1 ><DIV CLASS="FORMALPARA" ><P ><B >Release date: </B >2019-08-08</P ></DIV ><P > This release contains a variety of fixes from 9.6.14. For information about new features in the 9.6 major release, see <A HREF="release-9-6.html" >Section E.22</A >. </P ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="AEN132741" >E.7.1. Migration to Version 9.6.15</A ></H2 ><P > A dump/restore is not required for those running 9.6.X. </P ><P > However, if you are upgrading from a version earlier than 9.6.9, see <A HREF="release-9-6-9.html" >Section E.13</A >. </P ></DIV ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="AEN132746" >E.7.2. Changes</A ></H2 ><P ></P ><UL ><LI ><P > Require schema qualification to cast to a temporary type when using functional cast syntax (Noah Misch) </P ><P > We have long required invocations of temporary functions to explicitly specify the temporary schema, that is <TT CLASS="LITERAL" >pg_temp.<TT CLASS="REPLACEABLE" ><I >func_name</I ></TT >(<TT CLASS="REPLACEABLE" ><I >args</I ></TT >)</TT >. Require this as well for casting to temporary types using functional notation, for example <TT CLASS="LITERAL" >pg_temp.<TT CLASS="REPLACEABLE" ><I >type_name</I ></TT >(<TT CLASS="REPLACEABLE" ><I >arg</I ></TT >)</TT >. Otherwise it's possible to capture a function call using a temporary object, allowing privilege escalation in much the same ways that we blocked in CVE-2007-2138. (CVE-2019-10208) </P ></LI ><LI ><P > Fix failure of <TT CLASS="COMMAND" >ALTER TABLE ... ALTER COLUMN TYPE</TT > when altering multiple columns' types in one command (Tom Lane) </P ><P > This fixes a regression introduced in the most recent minor releases: indexes using the altered columns were not processed correctly, leading to strange failures during <TT CLASS="COMMAND" >ALTER TABLE</TT >. </P ></LI ><LI ><P > Don't optimize away <TT CLASS="LITERAL" >GROUP BY</TT > columns when the table involved is an inheritance parent (David Rowley) </P ><P > Normally, if a table's primary key column(s) are included in <TT CLASS="LITERAL" >GROUP BY</TT >, it's safe to drop any other grouping columns, since the primary key columns are enough to make the groups unique. This rule does not work if the query is also reading inheritance child tables, though; the parent's uniqueness does not extend to the children. </P ></LI ><LI ><P > Avoid using unnecessary sort steps for some queries with <TT CLASS="LITERAL" >GROUPING SETS</TT > (Andrew Gierth, Richard Guo) </P ></LI ><LI ><P > Fix mishandling of multi-column foreign keys when rebuilding a foreign key constraint (Tom Lane) </P ><P > <TT CLASS="COMMAND" >ALTER TABLE</TT > could make an incorrect decision about whether revalidation of a foreign key is necessary, if not all columns of the key are of the same type. It seems likely that the error would always have been in the conservative direction, that is revalidating unnecessarily. </P ></LI ><LI ><P > Avoid spurious deadlock errors when upgrading a tuple lock (Oleksii Kliukin) </P ><P > When two or more transactions are waiting for a transaction T1 to release a tuple-level lock, and T1 upgrades its lock to a higher level, a spurious deadlock among the waiting transactions could be reported when T1 finishes. </P ></LI ><LI ><P > Fix failure to resolve deadlocks involving multiple parallel worker processes (Rui Hai Jiang) </P ><P > It is not clear whether this bug is reachable with non-artificial queries, but if it did happen, the queries involved in an otherwise-resolvable deadlock would block until canceled. </P ></LI ><LI ><P > Prevent incorrect canonicalization of date ranges with <TT CLASS="LITERAL" >infinity</TT > endpoints (Laurenz Albe) </P ><P > It's incorrect to try to convert an open range to a closed one or vice versa by incrementing or decrementing the endpoint value, if the endpoint is infinite; so leave the range alone in such cases. </P ></LI ><LI ><P > Fix loss of fractional digits when converting very large <TT CLASS="TYPE" >money</TT > values to <TT CLASS="TYPE" >numeric</TT > (Tom Lane) </P ></LI ><LI ><P > Fix spinlock assembly code for MIPS CPUs so that it works on MIPS r6 (YunQiang Su) </P ></LI ><LI ><P > Make <SPAN CLASS="APPLICATION" >libpq</SPAN > ignore carriage return (<TT CLASS="LITERAL" >\r</TT >) in connection service files (Tom Lane, Michael Paquier) </P ><P > In some corner cases, service files containing Windows-style newlines could be mis-parsed, resulting in connection failures. </P ></LI ><LI ><P > In <SPAN CLASS="APPLICATION" >psql</SPAN >, avoid offering incorrect tab completion options after <TT CLASS="LITERAL" >SET <TT CLASS="REPLACEABLE" ><I >variable</I ></TT > =</TT > (Tom Lane) </P ></LI ><LI ><P > Fix <SPAN CLASS="APPLICATION" >pg_dump</SPAN > to ensure that custom operator classes are dumped in the right order (Tom Lane) </P ><P > If a user-defined opclass is the subtype opclass of a user-defined range type, related objects were dumped in the wrong order, producing an unrestorable dump. (The underlying failure to handle opclass dependencies might manifest in other cases too, but this is the only known case.) </P ></LI ><LI ><P > Fix <TT CLASS="FILENAME" >contrib/passwordcheck</TT > to coexist with other users of <TT CLASS="VARNAME" >check_password_hook</TT > (Michael Paquier) </P ></LI ><LI ><P > Fix <TT CLASS="FILENAME" >contrib/sepgsql</TT > tests to work under recent SELinux releases (Mike Palmiotto) </P ></LI ><LI ><P > Improve stability of <TT CLASS="FILENAME" >src/test/recovery</TT > regression tests (Michael Paquier) </P ></LI ><LI ><P > Reduce <SPAN CLASS="SYSTEMITEM" >stderr</SPAN > output from <SPAN CLASS="APPLICATION" >pg_upgrade</SPAN >'s test script (Tom Lane) </P ></LI ><LI ><P > Fix TAP tests to work with msys Perl, in cases where the build directory is on a non-root msys mount point (Noah Misch) </P ></LI ><LI ><P > Support building Postgres with Microsoft Visual Studio 2019 (Haribabu Kommi) </P ></LI ><LI ><P > In Visual Studio builds, honor <TT CLASS="LITERAL" >WindowsSDKVersion</TT > environment variable, if that's set (Peifeng Qiu) </P ><P > This fixes build failures in some configurations. </P ></LI ><LI ><P > Support OpenSSL 1.1.0 and newer in Visual Studio builds (Juan José Santamaría Flecha, Michael Paquier) </P ></LI ><LI ><P > Allow <SPAN CLASS="APPLICATION" >make</SPAN > options to be passed down to <SPAN CLASS="APPLICATION" >gmake</SPAN > when non-GNU make is invoked at the top level (Thomas Munro) </P ></LI ><LI ><P > Avoid choosing <TT CLASS="LITERAL" >localtime</TT > or <TT CLASS="LITERAL" >posixrules</TT > as <TT CLASS="VARNAME" >TimeZone</TT > during <SPAN CLASS="APPLICATION" >initdb</SPAN > (Tom Lane) </P ><P > In some cases <SPAN CLASS="APPLICATION" >initdb</SPAN > would choose one of these artificial zone names over the <SPAN CLASS="QUOTE" >"real"</SPAN > zone name. Prefer any other match to the C library's timezone behavior over these two. </P ></LI ><LI ><P > Adjust <TT CLASS="STRUCTNAME" >pg_timezone_names</TT > view to show the <TT CLASS="LITERAL" >Factory</TT > time zone if and only if it has a short abbreviation (Tom Lane) </P ><P > Historically, IANA set up this artificial zone with an <SPAN CLASS="QUOTE" >"abbreviation"</SPAN > like <TT CLASS="LITERAL" >Local time zone must be set--see zic manual page</TT >. Modern versions of the tzdb database show <TT CLASS="LITERAL" >-00</TT > instead, but some platforms alter the data to show one or another of the historical phrases. Show this zone only if it uses the modern abbreviation. </P ></LI ><LI ><P > Sync our copy of the timezone library with IANA tzcode release 2019b (Tom Lane) </P ><P > This adds support for <SPAN CLASS="APPLICATION" >zic</SPAN >'s new <TT CLASS="OPTION" >-b slim</TT > option to reduce the size of the installed zone files. We are not currently using that, but may enable it in future. </P ></LI ><LI ><P > Update time zone data files to <SPAN CLASS="APPLICATION" >tzdata</SPAN > release 2019b for DST law changes in Brazil, plus historical corrections for Hong Kong, Italy, and Palestine. </P ></LI ></UL ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="release-9-6-16.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="release-9-6-14.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Release 9.6.16</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="release.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Release 9.6.14</TD ></TR ></TABLE ></DIV ></BODY ></HTML >