gooderp18绿色标准版
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1219 line
101KB

  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>E.5. Release 12</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="release-12-1.html" title="E.4. Release 12.1" /><link rel="next" href="release-prior.html" title="E.6. Prior Releases" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">E.5. Release 12</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="release-12-1.html" title="E.4. Release 12.1">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="release.html" title="Appendix E. Release Notes">Up</a></td><th width="60%" align="center">Appendix E. Release Notes</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 12.4 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="release-prior.html" title="E.6. Prior Releases">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="RELEASE-12"><div class="titlepage"><div><div><h2 class="title" style="clear: both">E.5. Release 12</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="release-12.html#id-1.11.6.9.3">E.5.1. Overview</a></span></dt><dt><span class="sect2"><a href="release-12.html#id-1.11.6.9.4">E.5.2. Migration to Version 12</a></span></dt><dt><span class="sect2"><a href="release-12.html#id-1.11.6.9.5">E.5.3. Changes</a></span></dt><dt><span class="sect2"><a href="release-12.html#RELEASE-12-ACKNOWLEDGEMENTS">E.5.4. Acknowledgments</a></span></dt></dl></div><p><strong>Release date: </strong>2019-10-03</p><div class="sect2" id="id-1.11.6.9.3"><div class="titlepage"><div><div><h3 class="title">E.5.1. Overview</h3></div></div></div><p>
  3. Major enhancements in <span class="productname">PostgreSQL</span> 12 include:
  4. </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  5. General performance improvements, including:
  6. </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>
  7. Optimizations to space utilization and read/write performance for
  8. B-tree indexes
  9. </p></li><li class="listitem"><p>
  10. Partitioning performance enhancements, including improved query
  11. performance on tables with thousands of partitions, improved
  12. insertion performance with <a class="xref" href="sql-insert.html" title="INSERT"><span class="refentrytitle">INSERT</span></a> and <a class="xref" href="sql-copy.html" title="COPY"><span class="refentrytitle">COPY</span></a>, and the ability to execute <a class="link" href="sql-altertable.html#SQL-ALTERTABLE-ATTACH-PARTITION"><code class="command">ALTER TABLE ATTACH
  13. PARTITION</code></a> without blocking queries
  14. </p></li><li class="listitem"><p>
  15. Automatic (but overridable) inlining
  16. of <a class="link" href="queries-with.html" title="7.8. WITH Queries (Common Table Expressions)">common table expressions</a>
  17. (<acronym class="acronym">CTEs</acronym>)
  18. </p></li><li class="listitem"><p>
  19. Reduction of <acronym class="acronym">WAL</acronym> overhead for creation of
  20. <a class="link" href="gist.html" title="Chapter 64. GiST Indexes">GiST</a>, <a class="link" href="gin.html" title="Chapter 66. GIN Indexes">GIN</a>, and
  21. <a class="link" href="spgist.html" title="Chapter 65. SP-GiST Indexes">SP-GiST</a> indexes
  22. </p></li><li class="listitem"><p>
  23. Support for covering <a class="link" href="gist.html" title="Chapter 64. GiST Indexes">GiST</a> indexes, via
  24. the <a class="link" href="indexes-index-only-scans.html" title="11.9. Index-Only Scans and Covering Indexes"><code class="literal">INCLUDE</code></a>
  25. clause
  26. </p></li><li class="listitem"><p>
  27. Multi-column most-common-value (MCV) statistics can be defined
  28. via <a class="xref" href="sql-createstatistics.html" title="CREATE STATISTICS"><span class="refentrytitle">CREATE STATISTICS</span></a>, to support better
  29. plans for queries that test several non-uniformly-distributed
  30. columns
  31. </p></li></ul></div><p>
  32. </p></li><li class="listitem"><p>
  33. Enhancements to administrative functionality, including:
  34. </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>
  35. <a class="link" href="sql-reindex.html#SQL-REINDEX-CONCURRENTLY" title="Rebuilding Indexes Concurrently"><code class="command">REINDEX
  36. CONCURRENTLY</code></a> can rebuild an index without
  37. blocking writes to its table
  38. </p></li><li class="listitem"><p>
  39. <a class="xref" href="app-pgchecksums.html" title="pg_checksums"><span class="refentrytitle"><span class="application">pg_checksums</span></span></a> can enable/disable page checksums
  40. (used for detecting data corruption) in an offline cluster
  41. </p></li><li class="listitem"><p>
  42. Progress reporting statistics for <a class="xref" href="sql-createindex.html" title="CREATE INDEX"><span class="refentrytitle">CREATE INDEX</span></a>,
  43. <a class="xref" href="sql-reindex.html" title="REINDEX"><span class="refentrytitle">REINDEX</span></a>, <a class="xref" href="sql-cluster.html" title="CLUSTER"><span class="refentrytitle">CLUSTER</span></a>,
  44. <a class="link" href="sql-vacuum.html" title="VACUUM">VACUUM FULL</a>, and
  45. <a class="xref" href="app-pgchecksums.html" title="pg_checksums"><span class="refentrytitle"><span class="application">pg_checksums</span></span></a>
  46. </p></li></ul></div><p>
  47. </p></li><li class="listitem"><p>
  48. Support for the <a class="link" href="functions-json.html#FUNCTIONS-SQLJSON-PATH" title="9.15.2. The SQL/JSON Path Language"><acronym class="acronym">SQL/JSON</acronym>
  49. path</a> language
  50. </p></li><li class="listitem"><p>
  51. Stored <a class="link" href="ddl-generated-columns.html" title="5.3. Generated Columns">generated columns</a>
  52. </p></li><li class="listitem"><p>
  53. <a class="link" href="collation.html#COLLATION-NONDETERMINISTIC" title="23.2.2.4. Nondeterministic Collations">Nondeterministic</a> ICU
  54. collations, enabling case-insensitive and accent-insensitive grouping
  55. and ordering
  56. </p></li><li class="listitem"><p>
  57. New authentication features, including:
  58. </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>
  59. Encryption of TCP/IP connections when using
  60. <a class="link" href="gssapi-auth.html" title="20.6. GSSAPI Authentication"><acronym class="acronym">GSSAPI</acronym></a>
  61. authentication
  62. </p></li><li class="listitem"><p>
  63. Discovery of LDAP servers using <acronym class="acronym">DNS SRV</acronym> records
  64. </p></li><li class="listitem"><p>
  65. Multi-factor authentication, using the <a class="link" href="auth-cert.html" title="20.12. Certificate Authentication">
  66. <code class="literal">clientcert=verify-full</code></a> option combined
  67. with an additional authentication method in
  68. <code class="filename">pg_hba.conf</code>
  69. </p></li></ul></div><p>
  70. </p></li></ul></div><p>
  71. The above items are explained in more detail in the sections below.
  72. </p></div><div class="sect2" id="id-1.11.6.9.4"><div class="titlepage"><div><div><h3 class="title">E.5.2. Migration to Version 12</h3></div></div></div><p>
  73. A dump/restore using <a class="xref" href="app-pg-dumpall.html" title="pg_dumpall"><span class="refentrytitle"><span class="application">pg_dumpall</span></span></a> or use of <a class="xref" href="pgupgrade.html" title="pg_upgrade"><span class="refentrytitle"><span class="application">pg_upgrade</span></span></a> or logical replication is required for those
  74. wishing to migrate data from any previous release. See <a class="xref" href="upgrading.html" title="18.6. Upgrading a PostgreSQL Cluster">Section 18.6</a> for general information on migrating to new major
  75. releases.
  76. </p><p>
  77. Version 12 contains a number of changes that may affect compatibility
  78. with previous releases. Observe the following incompatibilities:
  79. </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  80. Remove the special behavior of <a class="link" href="datatype-oid.html" title="8.19. Object Identifier Types">oid</a> columns (Andres Freund,
  81. John Naylor)
  82. </p><p>
  83. Previously, a normally-invisible <code class="structfield">oid</code>
  84. column could be specified during table creation using <code class="literal">WITH
  85. OIDS</code>; that ability has been removed. Columns can still be
  86. explicitly declared as type <code class="type">oid</code>. Operations on tables
  87. that have columns created using <code class="literal">WITH OIDS</code> will
  88. need adjustment.
  89. </p><p>
  90. The system catalogs that previously had
  91. hidden <code class="structfield">oid</code> columns now have
  92. ordinary <code class="structfield">oid</code> columns.
  93. Hence, <code class="command">SELECT *</code> will now output those columns,
  94. whereas previously they would be displayed only if selected
  95. explicitly.
  96. </p></li><li class="listitem"><p>
  97. Remove data types <code class="type">abstime</code>, <code class="type">reltime</code>,
  98. and <code class="type">tinterval</code> (Andres Freund)
  99. </p><p>
  100. These are obsoleted by SQL-standard types such
  101. as <code class="type">timestamp</code>.
  102. </p></li><li class="listitem"><p>
  103. Remove the <code class="filename">timetravel</code> extension
  104. (Andres Freund)
  105. </p></li><li class="listitem"><p>
  106. Move <code class="filename">recovery.conf</code> settings into <a class="link" href="runtime-config-wal.html#RUNTIME-CONFIG-WAL-ARCHIVE-RECOVERY" title="19.5.4. Archive Recovery"><code class="filename">postgresql.conf</code></a>
  107. (Masao Fujii, Simon Riggs, Abhijit Menon-Sen, Sergei Kornilov)
  108. </p><p>
  109. <code class="filename">recovery.conf</code> is no longer used,
  110. and the server will not start if that file exists. <a class="link" href="runtime-config-wal.html#RUNTIME-CONFIG-WAL-ARCHIVE-RECOVERY" title="19.5.4. Archive Recovery">recovery.signal</a>
  111. and <code class="filename">standby.signal</code> files are now used to switch
  112. into non-primary mode. The <code class="varname">trigger_file</code> setting
  113. has been renamed to <a class="xref" href="runtime-config-replication.html#GUC-PROMOTE-TRIGGER-FILE">promote_trigger_file</a>. The
  114. <code class="varname">standby_mode</code> setting has been removed.
  115. </p></li><li class="listitem"><p>
  116. Do not allow multiple conflicting <a class="link" href="runtime-config-wal.html#RUNTIME-CONFIG-WAL-RECOVERY-TARGET" title="19.5.5. Recovery Target"><code class="varname">recovery_target</code>*</a>
  117. specifications (Peter Eisentraut)
  118. </p><p>
  119. Specifically, only allow one of <a class="xref" href="runtime-config-wal.html#GUC-RECOVERY-TARGET">recovery_target</a>, <a class="xref" href="runtime-config-wal.html#GUC-RECOVERY-TARGET-LSN">recovery_target_lsn</a>,
  120. <a class="xref" href="runtime-config-wal.html#GUC-RECOVERY-TARGET-NAME">recovery_target_name</a>,
  121. <a class="xref" href="runtime-config-wal.html#GUC-RECOVERY-TARGET-TIME">recovery_target_time</a>, and <a class="xref" href="runtime-config-wal.html#GUC-RECOVERY-TARGET-XID">recovery_target_xid</a>. Previously, multiple different
  122. instances of these parameters could be specified, and the last one
  123. was honored. Now, only one can be specified, though the same one can
  124. be specified multiple times and the last specification is honored.
  125. </p></li><li class="listitem"><p>
  126. Cause recovery to advance to the latest timeline by default
  127. (Peter Eisentraut)
  128. </p><p>
  129. Specifically, <a class="xref" href="runtime-config-wal.html#GUC-RECOVERY-TARGET-TIMELINE">recovery_target_timeline</a> now
  130. defaults to <code class="literal">latest</code>. Previously, it defaulted
  131. to <code class="literal">current</code>.
  132. </p></li><li class="listitem"><p>
  133. Refactor code for <a class="link" href="functions-geometry.html" title="9.11. Geometric Functions and Operators">geometric
  134. functions and operators</a> (Emre Hasegeli)
  135. </p><p>
  136. This could lead to more accurate, but slightly different, results
  137. compared to previous releases. Notably, cases involving NaN,
  138. underflow, overflow, and division by zero are handled more
  139. consistently than before.
  140. </p></li><li class="listitem"><p>
  141. Improve performance by using a new algorithm for output
  142. of <a class="link" href="datatype-numeric.html#DATATYPE-FLOAT" title="8.1.3. Floating-Point Types"><code class="type">real</code></a>
  143. and <code class="type">double precision</code> values (Andrew Gierth)
  144. </p><p>
  145. Previously, displayed floating-point values were rounded to 6
  146. (for <code class="type">real</code>) or 15 (for <code class="type">double precision</code>)
  147. digits by default, adjusted by the value of
  148. <a class="xref" href="runtime-config-client.html#GUC-EXTRA-FLOAT-DIGITS">extra_float_digits</a>. Now,
  149. whenever <code class="varname">extra_float_digits</code> is more than zero (as
  150. it now is by default), only the minimum number of digits required to
  151. preserve the exact binary value are output. The behavior is the
  152. same as before when <code class="varname">extra_float_digits</code> is set to
  153. zero or less.
  154. </p><p>
  155. Also, formatting of floating-point exponents is now uniform across
  156. platforms: two digits are used unless three are necessary. In
  157. previous releases, Windows builds always printed three digits.
  158. </p></li><li class="listitem"><p>
  159. <a class="link" href="functions-math.html#FUNCTIONS-MATH-RANDOM-TABLE" title="Table 9.6. Random Functions"><code class="function">random()</code></a>
  160. and <code class="function">setseed()</code> now behave uniformly across
  161. platforms (Tom Lane)
  162. </p><p>
  163. The sequence of <code class="function">random()</code> values generated
  164. following a <code class="function">setseed()</code> call with a particular
  165. seed value is likely to be different now than before. However, it
  166. will also be repeatable, which was not previously guaranteed because
  167. of interference from other uses of random numbers inside the server.
  168. The SQL <code class="function">random()</code> function now has its own
  169. private per-session state to forestall that.
  170. </p></li><li class="listitem"><p>
  171. Change SQL-style
  172. <a class="link" href="functions-matching.html#FUNCTIONS-SIMILARTO-REGEXP" title="9.7.2. SIMILAR TO Regular Expressions"><code class="function">substring()</code></a>
  173. to have standard-compliant greediness behavior (Tom Lane)
  174. </p><p>
  175. In cases where the pattern can be matched in more than one way, the
  176. initial sub-pattern is now treated as matching the least possible
  177. amount of text rather than the greatest; for example, a pattern such
  178. as <code class="literal">%#"aa*#"%</code> now selects the first group
  179. of <code class="literal">a</code>'s from the input, not the last group.
  180. </p></li><li class="listitem"><p>
  181. Do not pretty-print the result
  182. of <a class="link" href="functions-xml.html" title="9.14. XML Functions"><code class="function">xpath()</code></a>
  183. or the <code class="literal">XMLTABLE</code> construct (Tom Lane)
  184. </p><p>
  185. In some cases, these functions would insert extra whitespace
  186. (newlines and/or spaces) in nodeset values. This is undesirable
  187. since depending on usage, the whitespace might be considered
  188. semantically significant.
  189. </p></li><li class="listitem"><p>
  190. Rename command-line tool
  191. <span class="application">pg_verify_checksums</span> to <a class="xref" href="app-pgchecksums.html" title="pg_checksums"><span class="refentrytitle"><span class="application">pg_checksums</span></span></a> (Michaël Paquier)
  192. </p></li><li class="listitem"><p>
  193. In <a class="xref" href="app-pgrestore.html" title="pg_restore"><span class="refentrytitle">pg_restore</span></a>, require specification of
  194. <code class="literal">-f -</code> to send the dump contents to standard output
  195. (Euler Taveira)
  196. </p><p>
  197. Previously, this happened by default if no destination was
  198. specified, but that was deemed to be unfriendly.
  199. </p></li><li class="listitem"><p>
  200. Disallow non-unique abbreviations
  201. in <span class="application">psql</span>'s <code class="command">\pset format</code>
  202. command (Daniel Vérité)
  203. </p><p>
  204. Previously, for example, <code class="command">\pset format a</code> chose
  205. <code class="literal">aligned</code>; it will now fail since that could
  206. equally well mean <code class="literal">asciidoc</code>.
  207. </p></li><li class="listitem"><p>
  208. In new btree indexes, the maximum index entry length is
  209. reduced by eight bytes, to improve handling of duplicate entries
  210. (Peter Geoghegan)
  211. </p><p>
  212. This means that a <a class="xref" href="sql-reindex.html" title="REINDEX"><span class="refentrytitle">REINDEX</span></a> operation on an
  213. index <span class="application">pg_upgrade</span>'d from a previous
  214. release could potentially fail.
  215. </p></li><li class="listitem"><p>
  216. Cause <a class="link" href="sql-dropfunction.html" title="DROP FUNCTION"><code class="command">DROP IF EXISTS
  217. FUNCTION</code></a>/<code class="literal">PROCEDURE</code>/<code class="literal">AGGREGATE</code>/<code class="literal">ROUTINE</code>
  218. to generate an error if no argument list is supplied and there are
  219. multiple matching objects (David Rowley)
  220. </p><p>
  221. Also improve the error message in such cases.
  222. </p></li><li class="listitem"><p>
  223. Split the <a class="link" href="catalog-pg-statistic-ext.html" title="51.51. pg_statistic_ext"><code class="structname">pg_statistic_ext</code></a>
  224. catalog into two catalogs, and add the <a class="link" href="view-pg-stats-ext.html" title="51.89. pg_stats_ext"><code class="structname">pg_stats_ext</code></a>
  225. view of it (Dean Rasheed, Tomas Vondra)
  226. </p><p>
  227. This change supports hiding potentially-sensitive statistics data
  228. from unprivileged users.
  229. </p></li><li class="listitem"><p>
  230. Remove obsolete <a class="link" href="catalog-pg-constraint.html" title="51.13. pg_constraint"><code class="structname">pg_constraint</code></a>.<code class="structfield">consrc</code>
  231. column (Peter Eisentraut)
  232. </p><p>
  233. This column has been deprecated for a long time, because it did not
  234. update in response to other catalog changes (such as column renamings).
  235. The recommended way to get a text version of a check constraint's
  236. expression from <code class="structname">pg_constraint</code>
  237. is <code class="literal">pg_get_expr(conbin, conrelid)</code>.
  238. <code class="function">pg_get_constraintdef()</code> is also a useful
  239. alternative.
  240. </p></li><li class="listitem"><p>
  241. Remove obsolete <a class="link" href="catalog-pg-attrdef.html" title="51.6. pg_attrdef"><code class="structname">pg_attrdef</code></a>.<code class="structfield">adsrc</code>
  242. column (Peter Eisentraut)
  243. </p><p>
  244. This column has been deprecated for a long time, because it did not
  245. update in response to other catalog changes (such as column renamings).
  246. The recommended way to get a text version of a default-value expression
  247. from <code class="structname">pg_attrdef</code> is <code class="literal">pg_get_expr(adbin,
  248. adrelid)</code>.
  249. </p></li><li class="listitem"><p>
  250. Mark table columns of type <a class="link" href="datatype-character.html#DATATYPE-CHARACTER-SPECIAL-TABLE" title="Table 8.5. Special Character Types">name</a> as having
  251. <span class="quote">“<span class="quote">C</span>”</span> collation by default (Tom Lane, Daniel Vérité)
  252. </p><p>
  253. The comparison operators for data type <code class="type">name</code> can now use
  254. any collation, rather than always using <span class="quote">“<span class="quote">C</span>”</span> collation.
  255. To preserve the previous semantics of queries, columns of
  256. type <code class="type">name</code> are now explicitly marked as
  257. having <span class="quote">“<span class="quote">C</span>”</span> collation. A side effect of this is that
  258. regular-expression operators on <code class="type">name</code> columns will now
  259. use the <span class="quote">“<span class="quote">C</span>”</span> collation by default, not the database
  260. collation, to determine the behavior of locale-dependent regular
  261. expression patterns (such as <code class="literal">\w</code>). If you want
  262. non-C behavior for a regular expression on a <code class="type">name</code>
  263. column, attach an explicit <code class="literal">COLLATE</code> clause. (For
  264. user-defined <code class="type">name</code> columns, another possibility is to
  265. specify a different collation at table creation time; but that just
  266. moves the non-backwards-compatibility to the comparison operators.)
  267. </p></li><li class="listitem"><p>
  268. Treat object-name columns in
  269. the <a class="link" href="information-schema.html" title="Chapter 36. The Information Schema"><code class="structname">information_schema</code></a>
  270. views as being of type <code class="type">name</code>, not <code class="type">varchar</code>
  271. (Tom Lane)
  272. </p><p>
  273. Per the SQL standard, object-name columns in
  274. the <code class="structname">information_schema</code> views are declared
  275. as being of domain type <code class="type">sql_identifier</code>.
  276. In <span class="productname">PostgreSQL</span>, the underlying catalog
  277. columns are really of type <code class="type">name</code>. This change
  278. makes <code class="type">sql_identifier</code> be a domain
  279. over <code class="type">name</code>, rather than <code class="type">varchar</code> as before.
  280. This eliminates a semantic mismatch in comparison and sorting
  281. behavior, which can greatly improve the performance of queries
  282. on <code class="structname">information_schema</code> views that restrict
  283. an object-name column. Note however that inequality restrictions,
  284. for example
  285. </p><pre class="programlisting">
  286. SELECT ... FROM information_schema.tables WHERE table_name &lt; 'foo';
  287. </pre><p>
  288. will now use <span class="quote">“<span class="quote">C</span>”</span>-locale comparison semantics by
  289. default, rather than the database's default collation as before.
  290. Sorting on these columns will also follow <span class="quote">“<span class="quote">C</span>”</span> ordering
  291. rules. The previous behavior (and inefficiency) can be enforced by
  292. adding a <code class="literal">COLLATE "default"</code> clause.
  293. </p></li><li class="listitem"><p>
  294. Remove the ability to disable dynamic shared memory (Kyotaro
  295. Horiguchi)
  296. </p><p>
  297. Specifically, <a class="xref" href="runtime-config-resource.html#GUC-DYNAMIC-SHARED-MEMORY-TYPE">dynamic_shared_memory_type</a>
  298. can no longer be set to <code class="literal">none</code>.
  299. </p></li><li class="listitem"><p>
  300. Parse libpq integer connection parameters more strictly (Fabien
  301. Coelho)
  302. </p><p>
  303. In previous releases, using an incorrect integer value for
  304. connection parameters <code class="literal">connect_timeout</code>,
  305. <code class="literal">keepalives</code>, <code class="literal">keepalives_count</code>,
  306. <code class="literal">keepalives_idle</code>,
  307. <code class="literal">keepalives_interval</code> and <code class="literal">port</code>
  308. resulted in libpq either ignoring those values or failing with
  309. incorrect error messages.
  310. </p></li></ul></div></div><div class="sect2" id="id-1.11.6.9.5"><div class="titlepage"><div><div><h3 class="title">E.5.3. Changes</h3></div></div></div><p>
  311. Below you will find a detailed account of the changes between
  312. <span class="productname">PostgreSQL</span> 12 and the previous
  313. major release.
  314. </p><div class="sect3" id="id-1.11.6.9.5.3"><div class="titlepage"><div><div><h4 class="title">E.5.3.1. Server</h4></div></div></div><div class="sect4" id="id-1.11.6.9.5.3.2"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.1. <a class="link" href="ddl-partitioning.html" title="5.11. Table Partitioning">Partitioning</a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  315. Improve performance of many operations on partitioned tables
  316. (Amit Langote, David Rowley, Tom Lane, Álvaro Herrera)
  317. </p><p>
  318. Allow tables with thousands of child partitions to be processed
  319. efficiently by operations that only affect a small number of
  320. partitions.
  321. </p></li><li class="listitem"><p>
  322. Allow <a class="link" href="ddl-constraints.html#DDL-CONSTRAINTS-FK" title="5.4.5. Foreign Keys">foreign keys</a>
  323. to reference partitioned tables (Álvaro Herrera)
  324. </p></li><li class="listitem"><p>
  325. Improve speed of <code class="command">COPY</code> into partitioned tables
  326. (David Rowley)
  327. </p></li><li class="listitem"><p>
  328. Allow partition bounds to be any expression (Kyotaro Horiguchi,
  329. Tom Lane, Amit Langote)
  330. </p><p>
  331. Such expressions are evaluated at partitioned-table creation time.
  332. Previously, only simple constants were allowed as partition bounds.
  333. </p></li><li class="listitem"><p>
  334. Allow <code class="command">CREATE TABLE</code>'s tablespace specification
  335. for a partitioned table to affect the tablespace of its children
  336. (David Rowley, Álvaro Herrera)
  337. </p></li><li class="listitem"><p>
  338. Avoid sorting when partitions are already being scanned in the
  339. necessary order (David Rowley)
  340. </p></li><li class="listitem"><p>
  341. <a class="link" href="sql-altertable.html" title="ALTER TABLE"><code class="command">ALTER TABLE ATTACH
  342. PARTITION</code></a> is now performed with reduced locking
  343. requirements (Robert Haas)
  344. </p></li><li class="listitem"><p>
  345. Add partition introspection functions (Michaël Paquier, Álvaro
  346. Herrera, Amit Langote)
  347. </p><p>
  348. The new function <a class="link" href="functions-admin.html#FUNCTIONS-INFO-PARTITION" title="Table 9.92. Partitioning Information Functions"><code class="function">pg_partition_root()</code></a>
  349. returns the top-most parent of a partition tree, <a class="link" href="functions-admin.html#FUNCTIONS-INFO-PARTITION" title="Table 9.92. Partitioning Information Functions"><code class="function">pg_partition_ancestors()</code></a>
  350. reports all ancestors of a partition, and <a class="link" href="functions-admin.html#FUNCTIONS-INFO-PARTITION" title="Table 9.92. Partitioning Information Functions"><code class="function">pg_partition_tree()</code></a>
  351. displays information about partitions.
  352. </p></li><li class="listitem"><p>
  353. Include partitioned indexes in the system view <a class="link" href="view-pg-indexes.html" title="51.73. pg_indexes"><code class="structname">pg_indexes</code></a>
  354. (Suraj Kharage)
  355. </p></li><li class="listitem"><p>
  356. Add <span class="application">psql</span> command <code class="command">\dP</code>
  357. to list partitioned tables and indexes (Pavel Stehule)
  358. </p></li><li class="listitem"><p>
  359. Improve <span class="application">psql</span> <code class="command">\d</code>
  360. and <code class="command">\z</code> display of partitioned tables (Pavel
  361. Stehule, Michaël Paquier, Álvaro Herrera)
  362. </p></li><li class="listitem"><p>
  363. Fix bugs that could cause <code class="command">ALTER TABLE DETACH
  364. PARTITION</code> to leave behind incorrect dependency state,
  365. allowing subsequent operations to misbehave, for example by not
  366. dropping a former partition child index when its table is dropped
  367. (Tom Lane)
  368. </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.3.3"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.2. Indexes</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  369. Improve performance and space utilization of btree indexes with
  370. many duplicates (Peter Geoghegan, Heikki Linnakangas)
  371. </p><p>
  372. Previously, duplicate index entries were stored unordered within
  373. their duplicate groups. This caused overhead during index
  374. inserts, wasted space due to excessive page splits, and it reduced
  375. <code class="command">VACUUM</code>'s ability to recycle entire pages.
  376. Duplicate index entries are now sorted in heap-storage order.
  377. </p><p>
  378. Indexes <span class="application">pg_upgrade</span>'d from previous
  379. releases will not have these benefits.
  380. </p></li><li class="listitem"><p>
  381. Allow multi-column btree indexes to be smaller (Peter Geoghegan,
  382. Heikki Linnakangas)
  383. </p><p>
  384. Internal pages and min/max leaf page indicators now only store
  385. index keys until the change key, rather than all indexed keys.
  386. This also improves the locality of index access.
  387. </p><p>
  388. Indexes <span class="application">pg_upgrade</span>'d from previous
  389. releases will not have these benefits.
  390. </p></li><li class="listitem"><p>
  391. Improve speed of btree index insertions by reducing locking
  392. overhead (Alexander Korotkov)
  393. </p></li><li class="listitem"><p>
  394. Support <a class="link" href="indexes-index-only-scans.html" title="11.9. Index-Only Scans and Covering Indexes"><code class="literal">INCLUDE</code></a> columns
  395. in <a class="link" href="gist.html" title="Chapter 64. GiST Indexes">GiST</a> indexes (Andrey Borodin)
  396. </p></li><li class="listitem"><p>
  397. Add support for nearest-neighbor (<acronym class="acronym">KNN</acronym>) searches
  398. of <a class="link" href="spgist.html" title="Chapter 65. SP-GiST Indexes">SP-GiST</a> indexes (Nikita Glukhov,
  399. Alexander Korotkov, Vlad Sterzhanov)
  400. </p></li><li class="listitem"><p>
  401. Reduce the <acronym class="acronym">WAL</acronym> write overhead
  402. of <acronym class="acronym">GiST</acronym>, <acronym class="acronym">GIN</acronym>, and
  403. <acronym class="acronym">SP-GiST</acronym> index creation (Anastasia Lubennikova,
  404. Andrey V. Lepikhov)
  405. </p></li><li class="listitem"><p>
  406. Allow index-only scans to be more efficient on indexes with many
  407. columns (Konstantin Knizhnik)
  408. </p></li><li class="listitem"><p>
  409. Improve the performance of vacuum scans of GiST indexes (Andrey
  410. Borodin, Konstantin Kuznetsov, Heikki Linnakangas)
  411. </p></li><li class="listitem"><p>
  412. Delete empty leaf pages during <acronym class="acronym">GiST</acronym>
  413. <code class="command">VACUUM</code> (Andrey Borodin)
  414. </p></li><li class="listitem"><p>
  415. Reduce locking requirements for index renaming (Peter Eisentraut)
  416. </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.3.4"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.3. Optimizer</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  417. Allow <a class="xref" href="sql-createstatistics.html" title="CREATE STATISTICS"><span class="refentrytitle">CREATE STATISTICS</span></a> to create
  418. most-common-value statistics for multiple columns (Tomas Vondra)
  419. </p><p>
  420. This improves optimization for queries that test several columns,
  421. requiring an estimate of the combined effect of
  422. several <code class="literal">WHERE</code> clauses. If the columns are
  423. correlated and have non-uniform distributions then multi-column
  424. statistics will allow much better estimates.
  425. </p></li><li class="listitem"><p>
  426. Allow <a class="link" href="queries-with.html" title="7.8. WITH Queries (Common Table Expressions)">common table expressions</a>
  427. (<acronym class="acronym">CTEs</acronym>) to be inlined into the outer query
  428. (Andreas Karlsson, Andrew Gierth, David Fetter, Tom Lane)
  429. </p><p>
  430. Specifically, <acronym class="acronym">CTE</acronym>s are automatically inlined if
  431. they have no side-effects, are not recursive, and are referenced
  432. only once in the query. Inlining can be prevented by
  433. specifying <code class="literal">MATERIALIZED</code>, or forced for
  434. multiply-referenced <acronym class="acronym">CTE</acronym>s by
  435. specifying <code class="literal">NOT MATERIALIZED</code>. Previously,
  436. <acronym class="acronym">CTE</acronym>s were never inlined and were always
  437. evaluated before the rest of the query.
  438. </p></li><li class="listitem"><p>
  439. Allow control over when generic plans are used for prepared
  440. statements (Pavel Stehule)
  441. </p><p>
  442. This is controlled by the <a class="xref" href="runtime-config-query.html#GUC-PLAN-CACHE_MODE">plan_cache_mode</a>
  443. server parameter.
  444. </p></li><li class="listitem"><p>
  445. Improve optimization of partition and <code class="literal">UNION ALL</code>
  446. queries that have only a single child (David Rowley)
  447. </p></li><li class="listitem"><p>
  448. Improve processing of <a class="link" href="domains.html" title="8.18. Domain Types">domains</a> that
  449. have no check constraints (Tom Lane)
  450. </p><p>
  451. Domains that are being used purely as type aliases no longer cause
  452. optimization difficulties.
  453. </p></li><li class="listitem"><p>
  454. Pre-evaluate calls of <a class="link" href="functions-conditional.html#FUNCTIONS-GREATEST-LEAST" title="9.17.4. GREATEST and LEAST"><code class="literal">LEAST</code></a>
  455. and <code class="literal">GREATEST</code> when their arguments are constants
  456. (Vik Fearing)
  457. </p></li><li class="listitem"><p>
  458. Improve optimizer's ability to verify that partial indexes
  459. with <code class="literal">IS NOT NULL</code> conditions are usable in
  460. queries (Tom Lane, James Coleman)
  461. </p><p>
  462. Usability can now be recognized in more cases where the calling
  463. query involves casts or
  464. large <code class="literal"><em class="replaceable"><code>x</code></em> IN
  465. (<em class="replaceable"><code>array</code></em>)</code> clauses.
  466. </p></li><li class="listitem"><p>
  467. Compute <code class="command">ANALYZE</code> statistics using the collation
  468. defined for each column (Tom Lane)
  469. </p><p>
  470. Previously, the database's default collation was used for all
  471. statistics. This potentially gives better optimizer behavior for
  472. columns with non-default collations.
  473. </p></li><li class="listitem"><p>
  474. Improve selectivity estimates for inequality comparisons
  475. on <a class="link" href="ddl-system-columns.html" title="5.5. System Columns"><code class="structfield">ctid</code></a>
  476. columns (Edmund Horner)
  477. </p></li><li class="listitem"><p>
  478. Improve optimization of joins on columns of type <a class="link" href="datatype-oid.html" title="8.19. Object Identifier Types"><code class="type">tid</code></a>
  479. (Tom Lane)
  480. </p><p>
  481. These changes primarily improve the efficiency of self-joins
  482. on <code class="structfield">ctid</code> columns.
  483. </p></li><li class="listitem"><p>
  484. Fix the leakproofness designations of some btree comparison operators
  485. and support functions (Tom Lane)
  486. </p><p>
  487. This allows some optimizations that previously would not have been
  488. applied in the presence of security barrier views or row-level
  489. security.
  490. </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.3.5"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.4. General Performance</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  491. Enable <a class="link" href="jit.html" title="Chapter 31. Just-in-Time Compilation (JIT)">Just-in-Time</a>
  492. (<acronym class="acronym">JIT</acronym>) compilation by default, if the server
  493. has been built with support for it (Andres Freund)
  494. </p><p>
  495. Note that this support is not built by default, but has to be
  496. selected explicitly while configuring the build.
  497. </p></li><li class="listitem"><p>
  498. Speed up keyword lookup (John Naylor, Joerg Sonnenberger, Tom Lane)
  499. </p></li><li class="listitem"><p>
  500. Improve search performance for multi-byte characters
  501. in <code class="function">position()</code> and related functions (Heikki
  502. Linnakangas)
  503. </p></li><li class="listitem"><p>
  504. Allow <a class="link" href="storage-toast.html" title="68.2. TOAST">toasted</a>
  505. values to be minimally decompressed (Paul Ramsey)
  506. </p><p>
  507. This is useful for routines that only need to examine the initial
  508. portion of a toasted field.
  509. </p></li><li class="listitem"><p>
  510. Allow <a class="link" href="sql-altertable.html" title="ALTER TABLE"><code class="command">ALTER TABLE ... SET
  511. NOT NULL</code></a> to avoid unnecessary table scans (Sergei
  512. Kornilov)
  513. </p><p>
  514. This can be optimized when the table's column constraints can be
  515. recognized as disallowing nulls.
  516. </p></li><li class="listitem"><p>
  517. Allow <code class="command">ALTER TABLE ... SET DATA TYPE</code> changing between
  518. <code class="type">timestamp</code> and <code class="type">timestamptz</code> to avoid a
  519. table rewrite when the session time zone is <acronym class="acronym">UTC</acronym>
  520. (Noah Misch)
  521. </p><p>
  522. In the <acronym class="acronym">UTC</acronym> time zone, these two data types are
  523. binary compatible.
  524. </p></li><li class="listitem"><p>
  525. Improve speed in converting strings to
  526. <code class="type">int2</code> or <code class="type">int4</code> integers (Andres Freund)
  527. </p></li><li class="listitem"><p>
  528. Allow parallelized queries when in <a class="link" href="transaction-iso.html#XACT-SERIALIZABLE" title="13.2.3. Serializable Isolation Level"><code class="literal">SERIALIZABLE</code></a>
  529. isolation mode (Thomas Munro)
  530. </p><p>
  531. Previously, parallelism was disabled when in this mode.
  532. </p></li><li class="listitem"><p>
  533. Use <code class="function">pread()</code> and <code class="function">pwrite()</code>
  534. for random I/O (Oskari Saarenmaa, Thomas Munro)
  535. </p><p>
  536. This reduces the number of system calls required for I/O.
  537. </p></li><li class="listitem"><p>
  538. Improve the speed of setting the <a class="link" href="runtime-config-logging.html#GUC-UPDATE-PROCESS-TITLE">process title</a> on
  539. <span class="systemitem">FreeBSD</span> (Thomas Munro)
  540. </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.3.6"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.5. Monitoring</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  541. Allow logging of statements from only a percentage of transactions
  542. (Adrien Nayrat)
  543. </p><p>
  544. The parameter <a class="xref" href="runtime-config-logging.html#GUC-LOG-TRANSACTION-SAMPLE-RATE">log_transaction_sample_rate</a>
  545. controls this.
  546. </p></li><li class="listitem"><p>
  547. Add progress reporting to <code class="command">CREATE INDEX</code> and
  548. <code class="command">REINDEX</code> operations (Álvaro Herrera, Peter
  549. Eisentraut)
  550. </p><p>
  551. Progress is reported in the <a class="link" href="progress-reporting.html#CREATE-INDEX-PROGRESS-REPORTING" title="27.4.1. CREATE INDEX Progress Reporting"><code class="structname">pg_stat_progress_create_index</code></a>
  552. system view.
  553. </p></li><li class="listitem"><p>
  554. Add progress reporting to <code class="command">CLUSTER</code> and
  555. <code class="command">VACUUM FULL</code> (Tatsuro Yamada)
  556. </p><p>
  557. Progress is reported in the <a class="link" href="progress-reporting.html#CLUSTER-PROGRESS-REPORTING" title="27.4.3. CLUSTER Progress Reporting"><code class="structname">pg_stat_progress_cluster</code></a>
  558. system view.
  559. </p></li><li class="listitem"><p>
  560. Add progress reporting to <a class="xref" href="app-pgchecksums.html" title="pg_checksums"><span class="refentrytitle"><span class="application">pg_checksums</span></span></a>
  561. (Michael Banck, Bernd Helmle)
  562. </p><p>
  563. This is enabled with the option <code class="option">--progress</code>.
  564. </p></li><li class="listitem"><p>
  565. Add counter of checksum failures to
  566. <code class="structname">pg_stat_database</code> (Magnus Hagander)
  567. </p></li><li class="listitem"><p>
  568. Add tracking of global objects in system view
  569. <code class="structname">pg_stat_database</code> (Julien Rouhaud)
  570. </p><p>
  571. Global objects are shown with a <a class="link" href="monitoring-stats.html#PG-STAT-DATABASE-VIEW" title="Table 27.12. pg_stat_database View"><code class="structname">pg_stat_database</code></a>.<code class="structfield">datid</code>
  572. value of zero.
  573. </p></li><li class="listitem"><p>
  574. Add the ability to list the contents of the archive directory
  575. (Christoph Moench-Tegeder)
  576. </p><p>
  577. The function is <a class="link" href="functions-admin.html#FUNCTIONS-ADMIN-GENFILE-TABLE" title="Table 9.94. Generic File Access Functions"><code class="function">pg_ls_archive_statusdir()</code></a>.
  578. </p></li><li class="listitem"><p>
  579. Add the ability to list the contents of temporary directories
  580. (Nathan Bossart)
  581. </p><p>
  582. The function, <a class="link" href="functions-admin.html#FUNCTIONS-ADMIN-GENFILE-TABLE" title="Table 9.94. Generic File Access Functions"><code class="function">pg_ls_tmpdir()</code></a>,
  583. optionally allows specification of a tablespace.
  584. </p></li><li class="listitem"><p>
  585. Add information about the client certificate to the system view <a class="link" href="monitoring-stats.html#PG-STAT-SSL-VIEW" title="Table 27.8. pg_stat_ssl View"><code class="structname">pg_stat_ssl</code></a>
  586. (Peter Eisentraut)
  587. </p><p>
  588. The new columns are <code class="structfield">client_serial</code>
  589. and <code class="structfield">issuer_dn</code>. Column
  590. <code class="structfield">clientdn</code> has been renamed to
  591. <code class="structfield">client_dn</code> for clarity.
  592. </p></li><li class="listitem"><p>
  593. Restrict visibility of rows in <code class="structname">pg_stat_ssl</code>
  594. for unprivileged users (Peter Eisentraut)
  595. </p></li><li class="listitem"><p>
  596. At server start, emit a log message including the server
  597. version number (Christoph Berg)
  598. </p></li><li class="listitem"><p>
  599. Prevent logging <span class="quote">“<span class="quote">incomplete startup packet</span>”</span> if a new
  600. connection is immediately closed (Tom Lane)
  601. </p><p>
  602. This avoids log spam from certain forms of monitoring.
  603. </p></li><li class="listitem"><p>
  604. Include the <a class="xref" href="runtime-config-logging.html#GUC-APPLICATION-NAME">application_name</a>, if set,
  605. in <a class="xref" href="runtime-config-logging.html#GUC-LOG-CONNECTIONS">log_connections</a> log messages (Don Seiler)
  606. </p></li><li class="listitem"><p>
  607. Make the walreceiver set its application name to the cluster name,
  608. if set (Peter Eisentraut)
  609. </p></li><li class="listitem"><p>
  610. Add the timestamp of the last received standby message to <a class="link" href="monitoring-stats.html#PG-STAT-REPLICATION-VIEW" title="Table 27.5. pg_stat_replication View"><code class="structname">pg_stat_replication</code></a>
  611. (Lim Myungkyu)
  612. </p></li><li class="listitem"><p>
  613. Add a <a class="link" href="monitoring-stats.html#WAIT-EVENT-TABLE" title="Table 27.4. wait_event Description">wait event</a> for fsync
  614. of <acronym class="acronym">WAL</acronym> segments (Konstantin Knizhnik)
  615. </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.3.7"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.6. <acronym class="acronym">Authentication</acronym></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  616. Add <a class="link" href="gssapi-auth.html" title="20.6. GSSAPI Authentication"><acronym class="acronym">GSSAPI</acronym></a>
  617. encryption support (Robbie Harwood, Stephen Frost)
  618. </p><p>
  619. This feature allows TCP/IP connections to be encrypted when using
  620. GSSAPI authentication, without having to set up a separate
  621. encryption facility such as SSL.
  622. In support of this, add <code class="literal">hostgssenc</code>
  623. and <code class="literal">hostnogssenc</code> record types in <a class="link" href="auth-pg-hba-conf.html" title="20.1. The pg_hba.conf File"><code class="filename">pg_hba.conf</code></a>
  624. for selecting connections that do or do not use GSSAPI encryption,
  625. corresponding to the existing <code class="literal">hostssl</code>
  626. and <code class="literal">hostnossl</code> record types.
  627. There is also a new <a class="xref" href="libpq-connect.html#LIBPQ-CONNECT-GSSENCMODE">gssencmode</a>
  628. libpq option, and a <a class="xref" href="monitoring-stats.html#PG-STAT-GSSAPI-VIEW" title="Table 27.9. pg_stat_gssapi View">pg_stat_gssapi</a> system
  629. view.
  630. </p></li><li class="listitem"><p>
  631. Allow the <a class="link" href="auth-cert.html" title="20.12. Certificate Authentication"><code class="literal">clientcert</code></a>
  632. <code class="filename">pg_hba.conf</code> option to check that the database
  633. user name matches the client certificate's common name
  634. (Julian Markwort, Marius Timmer)
  635. </p><p>
  636. This new check is enabled with
  637. <code class="literal">clientcert=verify-full</code>.
  638. </p></li><li class="listitem"><p>
  639. Allow discovery of an <a class="link" href="auth-ldap.html" title="20.10. LDAP Authentication"><acronym class="acronym">LDAP</acronym></a> server using
  640. <acronym class="acronym">DNS SRV</acronym> records (Thomas Munro)
  641. </p><p>
  642. This avoids the requirement of specifying
  643. <code class="literal">ldapserver</code>. It is only supported if
  644. <span class="productname">PostgreSQL</span> is compiled with
  645. <span class="productname">OpenLDAP</span>.
  646. </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.3.8"><div class="titlepage"><div><div><h5 class="title">E.5.3.1.7. Server Configuration</h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  647. Add ability to enable/disable cluster checksums using <a class="xref" href="app-pgchecksums.html" title="pg_checksums"><span class="refentrytitle"><span class="application">pg_checksums</span></span></a> (Michael Banck, Michaël Paquier)
  648. </p><p>
  649. The cluster must be shut down for these operations.
  650. </p></li><li class="listitem"><p>
  651. Reduce the default value of <a class="xref" href="runtime-config-autovacuum.html#GUC-AUTOVACUUM-VACUUM-COST-DELAY">autovacuum_vacuum_cost_delay</a> to 2ms (Tom Lane)
  652. </p><p>
  653. This allows autovacuum operations to proceed faster by default.
  654. </p></li><li class="listitem"><p>
  655. Allow <a class="xref" href="runtime-config-resource.html#GUC-VACUUM-COST-DELAY">vacuum_cost_delay</a> to specify
  656. sub-millisecond delays, by accepting fractional values (Tom Lane)
  657. </p></li><li class="listitem"><p>
  658. Allow time-based server parameters to use units of <a class="link" href="config-setting.html" title="19.1. Setting Parameters">microseconds</a>
  659. (<code class="literal">us</code>) (Tom Lane)
  660. </p></li><li class="listitem"><p>
  661. Allow fractional input for integer server parameters (Tom Lane)
  662. </p><p>
  663. For example, <code class="command">SET work_mem = '30.1GB'</code> is now
  664. allowed, even though <code class="varname">work_mem</code> is an integer
  665. parameter. The value will be rounded to an integer after any
  666. required units conversion.
  667. </p></li><li class="listitem"><p>
  668. Allow units to be defined for floating-point server parameters
  669. (Tom Lane)
  670. </p></li><li class="listitem"><p>
  671. Add <a class="xref" href="runtime-config-wal.html#GUC-WAL-RECYCLE">wal_recycle</a> and <a class="xref" href="runtime-config-wal.html#GUC-WAL-INIT-ZERO">wal_init_zero</a> server parameters to control
  672. <acronym class="acronym">WAL</acronym> file recycling (Jerry Jelinek)
  673. </p><p>
  674. Avoiding file recycling can be beneficial on copy-on-write file
  675. systems like <span class="productname">ZFS</span>.
  676. </p></li><li class="listitem"><p>
  677. Add server parameter <a class="xref" href="runtime-config-connection.html#GUC-TCP-USER-TIMEOUT">tcp_user_timeout</a> to
  678. control the server's <acronym class="acronym">TCP</acronym> timeout (Ryohei Nagaura)
  679. </p></li><li class="listitem"><p>
  680. Allow control of the minimum and maximum <acronym class="acronym">SSL</acronym>
  681. protocol versions (Peter Eisentraut)
  682. </p><p>
  683. The server parameters are <a class="xref" href="runtime-config-connection.html#GUC-SSL-MIN-PROTOCOL-VERSION">ssl_min_protocol_version</a> and <a class="xref" href="runtime-config-connection.html#GUC-SSL-MAX-PROTOCOL-VERSION">ssl_max_protocol_version</a>.
  684. </p></li><li class="listitem"><p>
  685. Add server parameter <a class="xref" href="runtime-config-preset.html#GUC-SSL-LIBRARY">ssl_library</a> to report
  686. the <acronym class="acronym">SSL</acronym> library version used by the server
  687. (Peter Eisentraut)
  688. </p></li><li class="listitem"><p>
  689. Add server parameter <a class="xref" href="runtime-config-resource.html#GUC-SHARED-MEMORY-TYPE">shared_memory_type</a>
  690. to control the type of shared memory to use (Andres Freund)
  691. </p><p>
  692. This allows selection of <span class="productname">System V</span>
  693. shared memory, if desired.
  694. </p></li></ul></div></div></div><div class="sect3" id="id-1.11.6.9.5.4"><div class="titlepage"><div><div><h4 class="title">E.5.3.2. Streaming Replication and Recovery</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  695. Allow some recovery parameters to be changed with reload (Peter
  696. Eisentraut)
  697. </p><p>
  698. These parameters are <a class="xref" href="runtime-config-wal.html#GUC-ARCHIVE-CLEANUP-COMMAND">archive_cleanup_command</a>,
  699. <a class="xref" href="runtime-config-replication.html#GUC-PROMOTE-TRIGGER-FILE">promote_trigger_file</a>, <a class="xref" href="runtime-config-wal.html#GUC-RECOVERY-END-COMMAND">recovery_end_command</a>, and <a class="xref" href="runtime-config-replication.html#GUC-RECOVERY-MIN-APPLY-DELAY">recovery_min_apply_delay</a>.
  700. </p></li><li class="listitem"><p>
  701. Allow the streaming replication timeout (<a class="xref" href="runtime-config-replication.html#GUC-WAL-SENDER-TIMEOUT">wal_sender_timeout</a>) to be set per connection
  702. (Takayuki Tsunakawa)
  703. </p><p>
  704. Previously, this could only be set cluster-wide.
  705. </p></li><li class="listitem"><p>
  706. Add function <a class="link" href="functions-admin.html#FUNCTIONS-RECOVERY-CONTROL" title="9.26.4. Recovery Control Functions"><code class="function">pg_promote()</code></a>
  707. to promote standbys to primaries (Laurenz Albe, Michaël Paquier)
  708. </p><p>
  709. Previously, this operation was only possible by using <a class="xref" href="app-pg-ctl.html" title="pg_ctl"><span class="refentrytitle"><span class="application">pg_ctl</span></span></a> or creating a trigger file.
  710. </p></li><li class="listitem"><p>
  711. Allow replication slots to be copied (Masahiko Sawada)
  712. </p><p>
  713. The functions for this are <a class="link" href="functions-admin.html#FUNCTIONS-REPLICATION-TABLE" title="Table 9.88. Replication SQL Functions"><code class="function">pg_copy_physical_replication_slot()</code></a>
  714. and <code class="function">pg_copy_logical_replication_slot()</code>.
  715. </p></li><li class="listitem"><p>
  716. Make <a class="xref" href="runtime-config-replication.html#GUC-MAX-WAL-SENDERS">max_wal_senders</a> not count as part of
  717. <a class="xref" href="runtime-config-connection.html#GUC-MAX-CONNECTIONS">max_connections</a> (Alexander Kukushkin)
  718. </p></li><li class="listitem"><p>
  719. Add an explicit value of <code class="literal">current</code> for <a class="xref" href="runtime-config-wal.html#GUC-RECOVERY-TARGET-TIMELINE">recovery_target_timeline</a> (Peter Eisentraut)
  720. </p></li><li class="listitem"><p>
  721. Make recovery fail if a <a class="link" href="sql-prepare-transaction.html" title="PREPARE TRANSACTION">two-phase transaction</a>
  722. status file is corrupt (Michaël Paquier)
  723. </p><p>
  724. Previously, a warning was logged and recovery continued,
  725. allowing the transaction to be lost.
  726. </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.5"><div class="titlepage"><div><div><h4 class="title">E.5.3.3. Utility Commands</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  727. Add <a class="xref" href="sql-reindex.html" title="REINDEX"><span class="refentrytitle">REINDEX</span></a> <code class="literal">CONCURRENTLY</code>
  728. option to allow reindexing without locking out writes (Michaël
  729. Paquier, Andreas Karlsson, Peter Eisentraut)
  730. </p><p>
  731. This is also controlled by the <a class="xref" href="app-reindexdb.html" title="reindexdb"><span class="refentrytitle"><span class="application">reindexdb</span></span></a>
  732. application's <code class="option">--concurrently</code> option.
  733. </p></li><li class="listitem"><p>
  734. Add support for <a class="link" href="ddl-generated-columns.html" title="5.3. Generated Columns">generated
  735. columns</a> (Peter Eisentraut)
  736. </p><p>
  737. The content of generated columns are computed from expressions
  738. (including references to other columns in the same table)
  739. rather than being specified by <code class="command">INSERT</code> or
  740. <code class="command">UPDATE</code> commands.
  741. </p></li><li class="listitem"><p>
  742. Add a <code class="literal">WHERE</code> clause
  743. to <a class="link" href="sql-copy.html" title="COPY"><code class="command">COPY FROM</code></a> to
  744. control which rows are accepted (Surafel Temesgen)
  745. </p><p>
  746. This provides a simple way to filter incoming data.
  747. </p></li><li class="listitem"><p>
  748. Allow enumerated values to be added more flexibly
  749. (Andrew Dunstan, Tom Lane, Thomas Munro)
  750. </p><p>
  751. Previously, <a class="link" href="sql-altertype.html" title="ALTER TYPE"><code class="command">ALTER TYPE
  752. ... ADD VALUE</code></a> could not be called in a transaction
  753. block, unless it was part of the same transaction that created the
  754. enumerated type. Now it can be called in a later transaction, so
  755. long as the new enumerated value is not referenced until after it is
  756. committed.
  757. </p></li><li class="listitem"><p>
  758. Add commands to end a transaction and start a new one (Peter
  759. Eisentraut)
  760. </p><p>
  761. The commands are <a class="link" href="sql-commit.html" title="COMMIT"><code class="command">COMMIT AND
  762. CHAIN</code></a>
  763. and <a class="link" href="sql-rollback.html" title="ROLLBACK"><code class="command">ROLLBACK AND
  764. CHAIN</code></a>.
  765. </p></li><li class="listitem"><p>
  766. Add <a class="xref" href="sql-vacuum.html" title="VACUUM"><span class="refentrytitle">VACUUM</span></a> and <code class="command">CREATE
  767. TABLE</code> options to prevent <code class="command">VACUUM</code>
  768. from truncating trailing empty pages (Takayuki Tsunakawa)
  769. </p><p>
  770. These options are <code class="varname">vacuum_truncate</code> and
  771. <code class="varname">toast.vacuum_truncate</code>. Use of these options
  772. reduces <code class="command">VACUUM</code>'s locking requirements, but
  773. prevents returning disk space to the operating system.
  774. </p></li><li class="listitem"><p>
  775. Allow <code class="command">VACUUM</code> to skip index cleanup
  776. (Masahiko Sawada)
  777. </p><p>
  778. This change adds a <code class="command">VACUUM</code> command
  779. option <code class="literal">INDEX_CLEANUP</code> as well as a table storage
  780. option <code class="literal">vacuum_index_cleanup</code>. Use of this option
  781. reduces the ability to reclaim space and can lead to index bloat,
  782. but it is helpful when the main goal is to freeze old tuples.
  783. </p></li><li class="listitem"><p>
  784. Add the ability to skip <code class="command">VACUUM</code> and
  785. <code class="command">ANALYZE</code> operations on tables that cannot be
  786. locked immediately (Nathan Bossart)
  787. </p><p>
  788. This option is called <code class="literal">SKIP_LOCKED</code>.
  789. </p></li><li class="listitem"><p>
  790. Allow <code class="command">VACUUM</code> and <code class="command">ANALYZE</code>
  791. to take optional Boolean argument specifications (Masahiko Sawada)
  792. </p></li><li class="listitem"><p>
  793. Prevent <a class="xref" href="sql-truncate.html" title="TRUNCATE"><span class="refentrytitle">TRUNCATE</span></a>,
  794. <code class="command">VACUUM</code> and <code class="command">ANALYZE</code>
  795. from requesting a lock on
  796. tables for which the user lacks permission (Michaël Paquier)
  797. </p><p>
  798. This prevents unauthorized locking, which could interfere with
  799. user queries.
  800. </p></li><li class="listitem"><p>
  801. Add <a class="xref" href="sql-explain.html" title="EXPLAIN"><span class="refentrytitle">EXPLAIN</span></a> option
  802. <code class="literal">SETTINGS</code> to output non-default optimizer
  803. settings (Tomas Vondra)
  804. </p><p>
  805. This output can also be obtained when using <a class="xref" href="auto-explain.html" title="F.4. auto_explain">auto_explain</a>
  806. by setting <code class="varname">auto_explain.log_settings</code>.
  807. </p></li><li class="listitem"><p>
  808. Add <code class="literal">OR REPLACE</code> option to
  809. <a class="xref" href="sql-createaggregate.html" title="CREATE AGGREGATE"><span class="refentrytitle">CREATE AGGREGATE</span></a>
  810. (Andrew Gierth)
  811. </p></li><li class="listitem"><p>
  812. Allow modifications of system catalogs' options using <a class="xref" href="sql-altertable.html" title="ALTER TABLE"><span class="refentrytitle">ALTER TABLE</span></a> (Peter Eisentraut)
  813. </p><p>
  814. Modifications of catalogs' <code class="literal">reloptions</code> and
  815. autovacuum settings are now supported. (Setting <a class="xref" href="runtime-config-developer.html#GUC-ALLOW-SYSTEM-TABLE-MODS">allow_system_table_mods</a> is still required.)
  816. </p></li><li class="listitem"><p>
  817. Use all key columns' names when selecting default constraint
  818. names for foreign keys (Peter Eisentraut)
  819. </p><p>
  820. Previously, only the first column name was included in the constraint
  821. name, resulting in ambiguity for multi-column foreign keys.
  822. </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.6"><div class="titlepage"><div><div><h4 class="title">E.5.3.4. Data Types</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  823. Update assorted knowledge about Unicode to match Unicode 12.1.0
  824. (Peter Eisentraut)
  825. </p><p>
  826. This fixes, for example, cases
  827. where <span class="application">psql</span> would misformat output
  828. involving combining characters.
  829. </p></li><li class="listitem"><p>
  830. Update Snowball stemmer dictionaries with support for new languages
  831. (Arthur Zakirov)
  832. </p><p>
  833. This adds word stemming support for Arabic, Indonesian, Irish,
  834. Lithuanian, Nepali, and Tamil to <a class="link" href="textsearch.html" title="Chapter 12. Full Text Search">full
  835. text search</a>.
  836. </p></li><li class="listitem"><p>
  837. Allow creation of <a class="link" href="collation.html" title="23.2. Collation Support">collations</a> that report
  838. string equality for strings that are not bit-wise equal (Peter
  839. Eisentraut)
  840. </p><p>
  841. This feature supports <span class="quote">“<span class="quote">nondeterministic</span>”</span> collations
  842. that can define case- and accent-agnostic equality comparisons.
  843. Thus, for example, a case-insensitive uniqueness constraint on a
  844. text column can be made more easily than before. This is only
  845. supported for <acronym class="acronym">ICU</acronym> collations.
  846. </p></li><li class="listitem"><p>
  847. Add support for <acronym class="acronym">ICU</acronym> collation attributes on older
  848. ICU versions (Peter Eisentraut)
  849. </p><p>
  850. This allows customization of the collation rules in a consistent way
  851. across all ICU versions.
  852. </p></li><li class="listitem"><p>
  853. Allow data
  854. type <a class="link" href="datatype-character.html#DATATYPE-CHARACTER-SPECIAL-TABLE" title="Table 8.5. Special Character Types">name</a>
  855. to more seamlessly be compared to other text types (Tom Lane)
  856. </p><p>
  857. Type <code class="type">name</code> now behaves much like a domain over
  858. type <code class="type">text</code> that has default collation <span class="quote">“<span class="quote">C</span>”</span>.
  859. This allows cross-type comparisons to be processed more efficiently.
  860. </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.7"><div class="titlepage"><div><div><h4 class="title">E.5.3.5. Functions</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  861. Add support for the <acronym class="acronym">SQL/JSON</acronym> <a class="link" href="functions-json.html#FUNCTIONS-SQLJSON-PATH" title="9.15.2. The SQL/JSON Path Language">path</a> language
  862. (Nikita Glukhov, Teodor Sigaev, Alexander Korotkov, Oleg Bartunov,
  863. Liudmila Mantrova)
  864. </p><p>
  865. This allows execution of complex queries on <code class="type">JSON</code>
  866. values using an <acronym class="acronym">SQL</acronym>-standard language.
  867. </p></li><li class="listitem"><p>
  868. Add support for <a class="link" href="functions-math.html#FUNCTIONS-MATH-HYP-TABLE" title="Table 9.8. Hyperbolic Functions">hyperbolic
  869. functions</a> (Lætitia Avrot)
  870. </p><p>
  871. Also add <code class="function">log10()</code> as an alias for
  872. <code class="function">log()</code>, for standards compliance.
  873. </p></li><li class="listitem"><p>
  874. Improve the accuracy of statistical aggregates like <a class="link" href="functions-aggregate.html#FUNCTIONS-AGGREGATE-STATISTICS-TABLE" title="Table 9.56. Aggregate Functions for Statistics"><code class="function">variance()</code></a>
  875. by using more precise algorithms (Dean Rasheed)
  876. </p></li><li class="listitem"><p>
  877. Allow <a class="link" href="functions-datetime.html#FUNCTIONS-DATETIME-TABLE" title="Table 9.31. Date/Time Functions"><code class="function">date_trunc()</code></a>
  878. to have an additional argument to control the time zone (Vik
  879. Fearing, Tom Lane)
  880. </p><p>
  881. This is faster and simpler than using the <code class="literal">AT TIME
  882. ZONE</code> clause.
  883. </p></li><li class="listitem"><p>
  884. Adjust <a class="link" href="functions-formatting.html#FUNCTIONS-FORMATTING-TABLE" title="Table 9.24. Formatting Functions"><code class="function">to_timestamp()</code></a>/<code class="function">to_date()</code>
  885. functions to be more forgiving of template mismatches (Artur
  886. Zakirov, Alexander Korotkov, Liudmila Mantrova)
  887. </p><p>
  888. This new behavior more closely matches the
  889. <span class="productname">Oracle</span> functions of the same name.
  890. </p></li><li class="listitem"><p>
  891. Fix assorted bugs in <a class="link" href="functions-xml.html" title="9.14. XML Functions"><acronym class="acronym">XML</acronym> functions</a>
  892. (Pavel Stehule, Markus Winand, Chapman Flack)
  893. </p><p>
  894. Specifically, in <code class="literal">XMLTABLE</code>,
  895. <code class="function">xpath()</code>, and <code class="function">xmlexists()</code>,
  896. fix some cases where nothing was output for a node, or an
  897. unexpected error was thrown, or necessary escaping of XML special
  898. characters was omitted.
  899. </p></li><li class="listitem"><p>
  900. Allow the <code class="literal">BY VALUE</code> clause
  901. in <code class="function">XMLEXISTS</code> and <code class="function">XMLTABLE</code>
  902. (Chapman Flack)
  903. </p><p>
  904. This SQL-standard clause has no effect
  905. in <span class="productname">PostgreSQL</span>'s implementation, but it
  906. was unnecessarily being rejected.
  907. </p></li><li class="listitem"><p>
  908. Prevent <a class="link" href="functions-info.html#FUNCTIONS-INFO-SESSION-TABLE" title="Table 9.63. Session Information Functions"><code class="function">current_schema()</code></a>
  909. and <code class="function">current_schemas()</code> from being run by
  910. parallel workers, as they are not parallel-safe (Michaël Paquier)
  911. </p></li><li class="listitem"><p>
  912. Allow <code class="type">RECORD</code> and <code class="type">RECORD[]</code> to be used
  913. as column types in a query's column definition list for a <a class="link" href="queries-table-expressions.html#QUERIES-TABLEFUNCTIONS" title="7.2.1.4. Table Functions">table function</a> that is declared
  914. to return <code class="type">RECORD</code> (Elvis Pranskevichus)
  915. </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.8"><div class="titlepage"><div><div><h4 class="title">E.5.3.6. <a class="link" href="plpgsql.html" title="Chapter 42. PL/pgSQL - SQL Procedural Language">PL/pgSQL</a></h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  916. Allow SQL commands and variables with the same names as those
  917. commands to be used in the same PL/pgSQL function (Tom Lane)
  918. </p><p>
  919. For example, allow a variable called <code class="varname">comment</code> to
  920. exist in a function that calls
  921. the <code class="command">COMMENT</code> <acronym class="acronym">SQL</acronym> command.
  922. Previously this combination caused a parse error.
  923. </p></li><li class="listitem"><p>
  924. Add new optional warning and error checks to PL/pgSQL (Pavel
  925. Stehule)
  926. </p><p>
  927. The new checks allow for run-time validation of
  928. <code class="literal">INTO</code> column counts and single-row results.
  929. </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.9"><div class="titlepage"><div><div><h4 class="title">E.5.3.7. Client Interfaces</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  930. Add connection parameter <a class="xref" href="libpq-connect.html#LIBPQ-TCP-USER-TIMEOUT">tcp_user_timeout</a>
  931. to control <span class="application">libpq</span>'s <acronym class="acronym">TCP</acronym>
  932. timeout (Ryohei Nagaura)
  933. </p></li><li class="listitem"><p>
  934. Allow <span class="application">libpq</span> (and thus
  935. <span class="application">psql</span>) to report only the
  936. <code class="literal">SQLSTATE</code> value in error messages (Didier Gautheron)
  937. </p></li><li class="listitem"><p>
  938. Add <span class="application">libpq</span>
  939. function <a class="link" href="libpq-misc.html#LIBPQ-PQRESULTMEMORYSIZE"><code class="function">PQresultMemorySize()</code></a>
  940. to report the memory used by a query result (Lars Kanis, Tom Lane)
  941. </p></li><li class="listitem"><p>
  942. Remove the no-display/debug flag from <span class="application">libpq</span>'s
  943. <code class="literal">options</code> connection parameter (Peter Eisentraut)
  944. </p><p>
  945. This allows this parameter to be set by
  946. <span class="application">postgres_fdw</span>.
  947. </p></li><li class="listitem"><p>
  948. Allow <a class="xref" href="app-ecpg.html" title="ecpg"><span class="refentrytitle"><span class="application">ecpg</span></span></a> to create variables of data type
  949. <code class="type">bytea</code> (Ryo Matsumura)
  950. </p><p>
  951. This allows ECPG clients to interact with <code class="type">bytea</code> data
  952. directly, rather than using an encoded form.
  953. </p></li><li class="listitem"><p>
  954. Add <code class="command">PREPARE AS</code> support to
  955. <span class="productname">ECPG</span> (Ryo Matsumura)
  956. </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.10"><div class="titlepage"><div><div><h4 class="title">E.5.3.8. Client Applications</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  957. Allow <a class="xref" href="app-vacuumdb.html" title="vacuumdb"><span class="refentrytitle"><span class="application">vacuumdb</span></span></a> to select tables for vacuum
  958. based on their wraparound horizon (Nathan Bossart)
  959. </p><p>
  960. The options are <code class="option">--min-xid-age</code> and
  961. <code class="option">--min-mxid-age</code>.
  962. </p></li><li class="listitem"><p>
  963. Allow <span class="application">vacuumdb</span> to disable waiting for locks
  964. or skipping all-visible pages (Nathan Bossart)
  965. </p><p>
  966. The options are <code class="option">--skip-locked</code> and
  967. <code class="option">--disable-page-skipping</code>.
  968. </p></li><li class="listitem"><p>
  969. Add colorization to the output of command-line utilities (Peter
  970. Eisentraut)
  971. </p><p>
  972. This is enabled by setting the environment variable
  973. <code class="envar">PG_COLOR</code> to <code class="literal">always</code>
  974. or <code class="literal">auto</code>. The specific colors used can be
  975. adjusted by setting the environment variable
  976. <code class="envar">PG_COLORS</code>, using ANSI escape codes for colors.
  977. For example, the default behavior is equivalent to
  978. <code class="literal">PG_COLORS="error=01;31:warning=01;35:locus=01"</code>.
  979. </p></li></ul></div><div class="sect4" id="id-1.11.6.9.5.10.3"><div class="titlepage"><div><div><h5 class="title">E.5.3.8.1. <a class="xref" href="app-psql.html" title="psql"><span class="refentrytitle"><span class="application">psql</span></span></a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  980. Add <acronym class="acronym">CSV</acronym> table output mode in
  981. <span class="application">psql</span> (Daniel Vérité)
  982. </p><p>
  983. This is controlled by <code class="command">\pset format csv</code> or the
  984. command-line <code class="option">--csv</code> option.
  985. </p></li><li class="listitem"><p>
  986. Show the manual page <acronym class="acronym">URL</acronym> in
  987. <span class="application">psql</span>'s <code class="command">\help</code> output
  988. for a SQL command (Peter Eisentraut)
  989. </p></li><li class="listitem"><p>
  990. Display the <acronym class="acronym">IP</acronym> address in
  991. <span class="application">psql</span>'s <code class="command">\conninfo</code>
  992. (Fabien Coelho)
  993. </p></li><li class="listitem"><p>
  994. Improve tab completion of <code class="command">CREATE TABLE</code>,
  995. <code class="command">CREATE TRIGGER</code>,
  996. <code class="command">CREATE EVENT TRIGGER</code>,
  997. <code class="command">ANALYZE</code>, <code class="command">EXPLAIN</code>,
  998. <code class="command">VACUUM</code>, <code class="command">ALTER TABLE</code>,
  999. <code class="command">ALTER INDEX</code>, <code class="command">ALTER DATABASE</code>,
  1000. and <code class="command">ALTER INDEX ALTER COLUMN</code>
  1001. (Dagfinn Ilmari Mannsåker, Tatsuro Yamada, Michaël Paquier,
  1002. Tom Lane, Justin Pryzby)
  1003. </p></li></ul></div></div><div class="sect4" id="id-1.11.6.9.5.10.4"><div class="titlepage"><div><div><h5 class="title">E.5.3.8.2. <a class="link" href="pgbench.html" title="pgbench"><span class="application">pgbench</span></a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  1004. Allow values produced by queries to be assigned
  1005. to <span class="application">pgbench</span> variables (Fabien Coelho,
  1006. Álvaro Herrera)
  1007. </p><p>
  1008. The command for this is <code class="command">\gset</code>.
  1009. </p></li><li class="listitem"><p>
  1010. Improve precision of <span class="application">pgbench</span>'s
  1011. <code class="option">--rate</code> option (Tom Lane)
  1012. </p></li><li class="listitem"><p>
  1013. Improve <span class="application">pgbench</span>'s error reporting with
  1014. clearer messages and return codes (Peter Eisentraut)
  1015. </p></li></ul></div></div></div><div class="sect3" id="id-1.11.6.9.5.11"><div class="titlepage"><div><div><h4 class="title">E.5.3.9. Server Applications</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  1016. Allow control of log file rotation via <a class="xref" href="app-pg-ctl.html" title="pg_ctl"><span class="refentrytitle"><span class="application">pg_ctl</span></span></a>
  1017. (Kyotaro Horiguchi, Alexander Kuzmenkov, Alexander Korotkov)
  1018. </p><p>
  1019. Previously, this was only possible via an <acronym class="acronym">SQL</acronym>
  1020. function or a process signal.
  1021. </p></li><li class="listitem"><p>
  1022. Properly detach the new server process
  1023. during <code class="literal"><span class="application">pg_ctl</span> start</code>
  1024. (Paul Guo)
  1025. </p><p>
  1026. This prevents the server from being shut down if the shell script
  1027. that invoked <span class="application">pg_ctl</span> is interrupted later.
  1028. </p></li><li class="listitem"><p>
  1029. Allow <a class="xref" href="pgupgrade.html" title="pg_upgrade"><span class="refentrytitle"><span class="application">pg_upgrade</span></span></a> to use the file system's cloning
  1030. feature, if there is one (Peter Eisentraut)
  1031. </p><p>
  1032. The <code class="option">--clone</code> option has the advantages of
  1033. <code class="option">--link</code>, while preventing the old cluster from
  1034. being changed after the new cluster has started.
  1035. </p></li><li class="listitem"><p>
  1036. Allow specification of the socket directory to use
  1037. in <span class="application">pg_upgrade</span> (Daniel Gustafsson)
  1038. </p><p>
  1039. This is controlled by <code class="option">--socketdir</code>; the default
  1040. is the current directory.
  1041. </p></li><li class="listitem"><p>
  1042. Allow <a class="xref" href="app-pgchecksums.html" title="pg_checksums"><span class="refentrytitle"><span class="application">pg_checksums</span></span></a> to disable fsync operations
  1043. (Michaël Paquier)
  1044. </p><p>
  1045. This is controlled by the <code class="option">--no-sync</code> option.
  1046. </p></li><li class="listitem"><p>
  1047. Allow <a class="xref" href="app-pgrewind.html" title="pg_rewind"><span class="refentrytitle"><span class="application">pg_rewind</span></span></a> to disable fsync operations
  1048. (Michaël Paquier)
  1049. </p></li><li class="listitem"><p>
  1050. Fix <a class="xref" href="pgtestfsync.html" title="pg_test_fsync"><span class="refentrytitle"><span class="application">pg_test_fsync</span></span></a> to report accurate
  1051. <code class="literal">open_datasync</code> durations on
  1052. <span class="productname">Windows</span> (Laurenz Albe)
  1053. </p></li></ul></div><div class="sect4" id="id-1.11.6.9.5.11.3"><div class="titlepage"><div><div><h5 class="title">E.5.3.9.1. <a class="link" href="app-pgdump.html" title="pg_dump"><span class="application">pg_dump</span></a>,
  1054. <a class="link" href="app-pg-dumpall.html" title="pg_dumpall"><span class="application">pg_dumpall</span></a>,
  1055. <a class="link" href="app-pgrestore.html" title="pg_restore"><span class="application">pg_restore</span></a></h5></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  1056. When <span class="application">pg_dump</span> emits data
  1057. with <code class="command">INSERT</code> commands rather
  1058. than <code class="command">COPY</code>, allow more than one data row to be
  1059. included in each <code class="command">INSERT</code> (Surafel Temesgen,
  1060. David Rowley)
  1061. </p><p>
  1062. The option controlling this is <code class="option">--rows-per-insert</code>.
  1063. </p></li><li class="listitem"><p>
  1064. Allow <span class="application">pg_dump</span> to emit <code class="command">INSERT
  1065. ... ON CONFLICT DO NOTHING</code> (Surafel Temesgen)
  1066. </p><p>
  1067. This avoids conflict failures during restore.
  1068. The option is <code class="option">--on-conflict-do-nothing</code>.
  1069. </p></li><li class="listitem"><p>
  1070. Decouple the order of operations in a
  1071. parallel <span class="application">pg_dump</span> from the order used by
  1072. a subsequent parallel <span class="application">pg_restore</span> (Tom
  1073. Lane)
  1074. </p><p>
  1075. This allows <span class="application">pg_restore</span> to perform
  1076. more-fully-parallelized parallel restores, especially in cases
  1077. where the original dump was not done in parallel. Scheduling of a
  1078. parallel <span class="application">pg_dump</span> is also somewhat
  1079. improved.
  1080. </p></li><li class="listitem"><p>
  1081. Allow the <a class="xref" href="runtime-config-client.html#GUC-EXTRA-FLOAT-DIGITS">extra_float_digits</a> setting to be
  1082. specified for <span class="application">pg_dump</span> and
  1083. <span class="application">pg_dumpall</span> (Andrew Dunstan)
  1084. </p><p>
  1085. This is primarily useful for making dumps that are exactly
  1086. comparable across different source server versions. It is not
  1087. recommended for normal use, as it may result in loss of precision
  1088. when the dump is restored.
  1089. </p></li><li class="listitem"><p>
  1090. Add <code class="option">--exclude-database</code> option to
  1091. <span class="application">pg_dumpall</span> (Andrew Dunstan)
  1092. </p></li></ul></div></div></div><div class="sect3" id="id-1.11.6.9.5.12"><div class="titlepage"><div><div><h4 class="title">E.5.3.10. Source Code</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  1093. Add <a class="xref" href="sql-create-access-method.html" title="CREATE ACCESS METHOD"><span class="refentrytitle">CREATE ACCESS METHOD</span></a> command to create
  1094. new table types (Andres Freund, Haribabu Kommi, Álvaro Herrera,
  1095. Alexander Korotkov, Dmitry Dolgov)
  1096. </p><p>
  1097. This enables the development of new <a class="link" href="tableam.html" title="Chapter 60. Table Access Method Interface Definition">table
  1098. access methods</a>, which can optimize storage for different
  1099. use cases. The existing <code class="literal">heap</code> access method
  1100. remains the default.
  1101. </p></li><li class="listitem"><p>
  1102. Add <a class="link" href="xfunc-optimization.html" title="37.11. Function Optimization Information">planner support
  1103. function</a> interfaces to improve optimizer estimates,
  1104. inlining, and indexing for functions (Tom Lane)
  1105. </p><p>
  1106. This allows extensions to create planner support functions that
  1107. can provide function-specific selectivity, cost, and row-count
  1108. estimates that can depend on the function's arguments. Support
  1109. functions can also supply simplified representations and index
  1110. conditions, greatly expanding optimization possibilities.
  1111. </p></li><li class="listitem"><p>
  1112. Simplify renumbering manually-assigned OIDs, and establish a new
  1113. project policy for management of such OIDs (John Naylor, Tom Lane)
  1114. </p><p>
  1115. Patches that manually assign OIDs for new built-in objects (such as
  1116. new functions) should now randomly choose OIDs in the range
  1117. 8000—9999. At the end of a development cycle, the OIDs used
  1118. by committed patches will be renumbered down to lower numbers,
  1119. currently somewhere in the 4<em class="replaceable"><code>xxx</code></em> range,
  1120. using the new <a class="link" href="system-catalog-initial-data.html#SYSTEM-CATALOG-OID-ASSIGNMENT" title="69.2.2. OID Assignment"><code class="command">renumber_oids.pl</code></a>
  1121. script. This approach should greatly reduce the odds of OID
  1122. collisions between different in-process patches.
  1123. </p><p>
  1124. While there is no specific policy reserving any OIDs for external
  1125. use, it is recommended that forks and other projects needing
  1126. private manually-assigned OIDs use numbers in the high
  1127. 7<em class="replaceable"><code>xxx</code></em> range. This will avoid conflicts
  1128. with recently-merged patches, and it should be a long time before
  1129. the core project reaches that range.
  1130. </p></li><li class="listitem"><p>
  1131. Build <span class="productname">Cygwin</span> binaries using dynamic
  1132. instead of static libraries (Marco Atzeri)
  1133. </p></li><li class="listitem"><p>
  1134. Remove <span class="application">configure</span> switch
  1135. <code class="option">--disable-strong-random</code> (Michaël Paquier)
  1136. </p><p>
  1137. A strong random-number source is now required.
  1138. </p></li><li class="listitem"><p>
  1139. <code class="function">printf</code>-family functions, as well
  1140. as <code class="function">strerror</code>
  1141. and <code class="function">strerror_r</code>, now behave uniformly across
  1142. platforms within Postgres code (Tom Lane)
  1143. </p><p>
  1144. Notably, <code class="function">printf</code>
  1145. understands <code class="literal">%m</code> everywhere; on
  1146. Windows, <code class="function">strerror</code> copes with Winsock error
  1147. codes (it used to do so in backend but not frontend code);
  1148. and <code class="function">strerror_r</code> always follows the GNU return
  1149. convention.
  1150. </p></li><li class="listitem"><p>
  1151. Require a C99-compliant compiler, and <acronym class="acronym">MSVC</acronym>
  1152. 2013 or later on <span class="productname">Windows</span> (Andres Freund)
  1153. </p></li><li class="listitem"><p>
  1154. Use <span class="application">pandoc</span>,
  1155. not <span class="application">lynx</span>, for generating plain-text
  1156. documentation output files (Peter Eisentraut)
  1157. </p><p>
  1158. This affects only the <code class="filename">INSTALL</code> file generated
  1159. during <code class="literal">make dist</code> and the seldom-used
  1160. plain-text <code class="filename">postgres.txt</code> output file.
  1161. Pandoc produces better output than lynx and avoids some
  1162. locale/encoding issues. Pandoc version 1.13 or later is required.
  1163. </p></li><li class="listitem"><p>
  1164. Support use of images in the <span class="productname">PostgreSQL</span>
  1165. documentation (Jürgen Purtz)
  1166. </p></li></ul></div></div><div class="sect3" id="id-1.11.6.9.5.13"><div class="titlepage"><div><div><h4 class="title">E.5.3.11. Additional Modules</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
  1167. Allow <code class="literal">ORDER BY</code> sorts
  1168. and <code class="literal">LIMIT</code> clauses to be pushed
  1169. to <a class="xref" href="postgres-fdw.html" title="F.33. postgres_fdw">postgres_fdw</a> foreign servers in more
  1170. cases (Etsuro Fujita)
  1171. </p></li><li class="listitem"><p>
  1172. Improve optimizer cost accounting for
  1173. <span class="application">postgres_fdw</span> queries (Etsuro Fujita)
  1174. </p></li><li class="listitem"><p>
  1175. Properly honor <code class="literal">WITH CHECK OPTION</code> on views
  1176. that reference <span class="application">postgres_fdw</span> tables
  1177. (Etsuro Fujita)
  1178. </p><p>
  1179. While <code class="literal">CHECK OPTION</code>s on
  1180. <span class="application">postgres_fdw</span> tables are ignored (because
  1181. the reference is foreign), views on such tables are considered
  1182. local, so this change enforces <code class="literal">CHECK OPTION</code>s
  1183. on them. Previously, only <code class="command">INSERT</code>s and
  1184. <code class="command">UPDATE</code>s with <code class="literal">RETURNING</code>
  1185. clauses that returned <code class="literal">CHECK OPTION</code> values
  1186. were validated.
  1187. </p></li><li class="listitem"><p>
  1188. Allow <a class="link" href="pgstatstatements.html" title="F.29. pg_stat_statements"><code class="function">pg_stat_statements_reset()</code></a>
  1189. to be more granular (Haribabu Kommi, Amit Kapila)
  1190. </p><p>
  1191. The function now allows reset of statistics for specific databases,
  1192. users, and queries.
  1193. </p></li><li class="listitem"><p>
  1194. Allow control of the <a class="xref" href="auto-explain.html" title="F.4. auto_explain">auto_explain</a> log level
  1195. (Tom Dunstan, Andrew Dunstan)
  1196. </p><p>
  1197. The default is <code class="literal">LOG</code>.
  1198. </p></li><li class="listitem"><p>
  1199. Update <a class="xref" href="unaccent.html" title="F.43. unaccent">unaccent</a> rules with new
  1200. punctuation and symbols (Hugh Ranalli, Michaël Paquier)
  1201. </p></li><li class="listitem"><p>
  1202. Allow <span class="application">unaccent</span> to handle some accents
  1203. encoded as combining characters (Hugh Ranalli)
  1204. </p></li><li class="listitem"><p>
  1205. Allow <span class="application">unaccent</span> to remove accents from
  1206. Greek characters (Tasos Maschalidis)
  1207. </p></li><li class="listitem"><p>
  1208. Add a parameter to
  1209. <a class="xref" href="amcheck.html" title="F.2. amcheck">amcheck</a>'s <code class="function">bt_index_parent_check()</code>
  1210. function to check each index tuple from the root of the tree
  1211. (Peter Geoghegan)
  1212. </p></li><li class="listitem"><p>
  1213. Improve <a class="xref" href="oid2name.html" title="oid2name"><span class="refentrytitle">oid2name</span></a> and <a class="xref" href="vacuumlo.html" title="vacuumlo"><span class="refentrytitle"><span class="application">vacuumlo</span></span></a>
  1214. option handling to match other commands (Tatsuro Yamada)
  1215. </p></li></ul></div></div></div><div class="sect2" id="RELEASE-12-ACKNOWLEDGEMENTS"><div class="titlepage"><div><div><h3 class="title">E.5.4. Acknowledgments</h3></div></div></div><p>
  1216. The following individuals (in alphabetical order) have contributed to this
  1217. release as patch authors, committers, reviewers, testers, or reporters of
  1218. issues.
  1219. </p><table border="0" summary="Simple list" class="simplelist"><tr><td>Abhijit Menon-Sen</td></tr><tr><td>Achilleas Mantzios</td></tr><tr><td>Adam Berlin</td></tr><tr><td>Adam Bielanski</td></tr><tr><td>Aditya Toshniwal</td></tr><tr><td>Adrien Nayrat</td></tr><tr><td>Alan Jackson</td></tr><tr><td>Albert Schabhuetl</td></tr><tr><td>Aleksander Alekseev</td></tr><tr><td>Alex Aktsipetrov</td></tr><tr><td>Alex Kliukin</td></tr><tr><td>Alex Macy</td></tr><tr><td>Alexander Korotkov</td></tr><tr><td>Alexander Kukushkin</td></tr><tr><td>Alexander Kuzmenkov</td></tr><tr><td>Alexander Lakhin</td></tr><tr><td>Alexandra Ryzhevich</td></tr><tr><td>Alexey Bashtanov</td></tr><tr><td>Alexey Ermakov</td></tr><tr><td>Alexey Kondratov</td></tr><tr><td>Alexey Kryuchkov</td></tr><tr><td>Alexey Stepanov</td></tr><tr><td>Allison Kaptur</td></tr><tr><td>Álvaro Herrera</td></tr><tr><td>Alyssa Ross</td></tr><tr><td>Amit Kapila</td></tr><tr><td>Amit Khandekar</td></tr><tr><td>Amit Langote</td></tr><tr><td>Amul Sul</td></tr><tr><td>Anastasia Lubennikova</td></tr><tr><td>André Hänsel</td></tr><tr><td>Andrea Gelmini</td></tr><tr><td>Andreas Joseph Krogh</td></tr><tr><td>Andreas Karlsson</td></tr><tr><td>Andreas Kunert</td></tr><tr><td>Andreas Scherbaum</td></tr><tr><td>Andreas Seltenreich</td></tr><tr><td>Andrei Yahorau</td></tr><tr><td>Andres Freund</td></tr><tr><td>Andrew Dunstan</td></tr><tr><td>Andrew Fletcher</td></tr><tr><td>Andrew Gierth</td></tr><tr><td>Andrew Krasichkov</td></tr><tr><td>Andrey Borodin</td></tr><tr><td>Andrey Klychkov</td></tr><tr><td>Andrey Lepikhov</td></tr><tr><td>Andy Abelisto</td></tr><tr><td>Anthony Greene</td></tr><tr><td>Anthony Skorski</td></tr><tr><td>Antonin Houska</td></tr><tr><td>Arne Roland</td></tr><tr><td>Arseny Sher</td></tr><tr><td>Arthur Zakirov</td></tr><tr><td>Ash Marath</td></tr><tr><td>Ashutosh Bapat</td></tr><tr><td>Ashutosh Sharma</td></tr><tr><td>Ashwin Agrawal</td></tr><tr><td>Aya Iwata</td></tr><tr><td>Bartosz Polnik</td></tr><tr><td>Basil Bourque</td></tr><tr><td>Bernd Helmle</td></tr><tr><td>Brad DeJong</td></tr><tr><td>Brigitte Blanc-Lafay</td></tr><tr><td>Bruce Klein</td></tr><tr><td>Bruce Momjian</td></tr><tr><td>Bruno Wolff</td></tr><tr><td>Chapman Flack</td></tr><tr><td>Chen Huajun</td></tr><tr><td>Chris Travers</td></tr><tr><td>Chris Wilson</td></tr><tr><td>Christian Hofstaedtler</td></tr><tr><td>Christoph Berg</td></tr><tr><td>Christoph Moench-Tegeder</td></tr><tr><td>Clemens Ladisch</td></tr><tr><td>Colm McHugh</td></tr><tr><td>Corey Huinker</td></tr><tr><td>Craig Ringer</td></tr><tr><td>Dagfinn Ilmari Mannsåker</td></tr><tr><td>Daisuke Higuchi</td></tr><tr><td>Daniel Fiori</td></tr><tr><td>Daniel Gustafsson</td></tr><tr><td>Daniel Vérité</td></tr><tr><td>Daniel Westermann</td></tr><tr><td>Daniel Wilches</td></tr><tr><td>Darafei Praliaskouski</td></tr><tr><td>Daryl Waycott</td></tr><tr><td>Dave Cramer</td></tr><tr><td>David Binderman</td></tr><tr><td>David Fetter</td></tr><tr><td>David G. Johnston</td></tr><tr><td>David Rowley</td></tr><tr><td>David Steele</td></tr><tr><td>Davy Machado</td></tr><tr><td>Dean Rasheed</td></tr><tr><td>Derek Hans</td></tr><tr><td>Derek Nelson</td></tr><tr><td>Devrim Gündüz</td></tr><tr><td>Dian Fay</td></tr><tr><td>Didier Gautheron</td></tr><tr><td>Dilip Kumar</td></tr><tr><td>Dmitry Dolgov</td></tr><tr><td>Dmitry Marakasov</td></tr><tr><td>Dmitry Molotkov</td></tr><tr><td>Dmitry Shalashov</td></tr><tr><td>Don Seiler</td></tr><tr><td>Donald Dong</td></tr><tr><td>Doug Rady</td></tr><tr><td>Edmund Horner</td></tr><tr><td>Eduards Bezverhijs</td></tr><tr><td>Elvis Pranskevichus</td></tr><tr><td>Emanuel Araújo</td></tr><tr><td>Emre Hasegeli</td></tr><tr><td>Eric Cyr</td></tr><tr><td>Erik Rijkers</td></tr><tr><td>Ertugrul Kahveci</td></tr><tr><td>Etsuro Fujita</td></tr><tr><td>Eugen Konkov</td></tr><tr><td>Euler Taveira</td></tr><tr><td>Fabien Coelho</td></tr><tr><td>Fabrízio de Royes Mello</td></tr><tr><td>Feike Steenbergen</td></tr><tr><td>Filip Rembialkowski</td></tr><tr><td>Gaby Schilders</td></tr><tr><td>Geert Lobbestael</td></tr><tr><td>George Tarasov</td></tr><tr><td>Georgios Kokolatos</td></tr><tr><td>Gianni Ciolli</td></tr><tr><td>Gilles Darold</td></tr><tr><td>Greg Stark</td></tr><tr><td>Grigory Smolkin</td></tr><tr><td>Guillaume Lelarge</td></tr><tr><td>Gunnlaugur Thor Briem</td></tr><tr><td>Gurjeet Singh</td></tr><tr><td>Hadi Moshayedi</td></tr><tr><td>Hailong Li</td></tr><tr><td>Hans Buschmann</td></tr><tr><td>Haribabu Kommi</td></tr><tr><td>Haruka Takatsuka</td></tr><tr><td>Hayato Kuroda</td></tr><tr><td>Heikki Linnakangas</td></tr><tr><td>Hironobu Suzuki</td></tr><tr><td>Hubert Lubaczewski</td></tr><tr><td>Hugh Ranalli</td></tr><tr><td>Ian Barwick</td></tr><tr><td>Ibrar Ahmed</td></tr><tr><td>Ildar Musin</td></tr><tr><td>Insung Moon</td></tr><tr><td>Ioseph Kim</td></tr><tr><td>Isaac Morland</td></tr><tr><td>Ivan Panchenko</td></tr><tr><td>Jack Kelly</td></tr><tr><td>Jacob Champion</td></tr><tr><td>Jaime Casanova</td></tr><tr><td>Jakob Egger</td></tr><tr><td>Jakub Glapa</td></tr><tr><td>Jakub Janecek</td></tr><tr><td>James Coleman</td></tr><tr><td>James Inform</td></tr><tr><td>James Robinson</td></tr><tr><td>James Sewell</td></tr><tr><td>James Tomson</td></tr><tr><td>Jan Chochol</td></tr><tr><td>Jaroslav Sivy</td></tr><tr><td>Jean-Christophe Arnu</td></tr><tr><td>Jean-Marc Voillequin</td></tr><tr><td>Jean-Pierre Pelletier</td></tr><tr><td>Jeevan Chalke</td></tr><tr><td>Jeevan Ladhe</td></tr><tr><td>Jeff Davis</td></tr><tr><td>Jeff Janes</td></tr><tr><td>Jeremy Evans</td></tr><tr><td>Jeremy Schneider</td></tr><tr><td>Jeremy Smith</td></tr><tr><td>Jerry Jelinek</td></tr><tr><td>Jesper Pedersen</td></tr><tr><td>Jianing Yang</td></tr><tr><td>Jie Zhang</td></tr><tr><td>Jim Nasby</td></tr><tr><td>Jimmy Yih</td></tr><tr><td>Joe Conway</td></tr><tr><td>Joe Wildish</td></tr><tr><td>Joerg Sonnenberger</td></tr><tr><td>John Klann</td></tr><tr><td>John Naylor</td></tr><tr><td>Jonah Harris</td></tr><tr><td>Jonathan S. Katz</td></tr><tr><td>Jorge Gustavo Rocha</td></tr><tr><td>José Arthur Benetasso Villanova</td></tr><tr><td>Joshua D. Drake</td></tr><tr><td>Juan José Santamaría Flecha</td></tr><tr><td>Julian Hsiao</td></tr><tr><td>Julian Markwort</td></tr><tr><td>Julian Schauder</td></tr><tr><td>Julien Rouhaud</td></tr><tr><td>Jürgen Purtz</td></tr><tr><td>Jürgen Strobel</td></tr><tr><td>Justin Pryzby</td></tr><tr><td>Kaiting Chen</td></tr><tr><td>Karen Huddleston</td></tr><tr><td>Karl Czajkowski</td></tr><tr><td>Karl O. Pinc</td></tr><tr><td>Keiichi Hirobe</td></tr><tr><td>Keith Fiske</td></tr><tr><td>Ken Tanzer</td></tr><tr><td>Kenji Uno</td></tr><tr><td>Kevin Grittner</td></tr><tr><td>Kevin Hale Boyes</td></tr><tr><td>Kieran McCusker</td></tr><tr><td>Kirk Jamison</td></tr><tr><td>Kohei KaiGai</td></tr><tr><td>Konstantin Knizhnik</td></tr><tr><td>Konstantin Kuznetsov</td></tr><tr><td>Kristjan Tammekivi</td></tr><tr><td>Kuntal Ghosh</td></tr><tr><td>Kyle Samson</td></tr><tr><td>Kyotaro Horiguchi</td></tr><tr><td>Lætitia Avrot</td></tr><tr><td>Lars Kanis</td></tr><tr><td>Laurenz Albe</td></tr><tr><td>Lim Myungkyu</td></tr><tr><td>Liu Huailing</td></tr><tr><td>Liudmila Mantrova</td></tr><tr><td>Lloyd Albin</td></tr><tr><td>Luca Ferrari</td></tr><tr><td>Luis M. Carril</td></tr><tr><td>Lukas Eder</td></tr><tr><td>Lukas Fittl</td></tr><tr><td>Madelaine Thibaut</td></tr><tr><td>Madeleine Thompson</td></tr><tr><td>Magnus Hagander</td></tr><tr><td>Mahendra Singh</td></tr><tr><td>Mai Peng</td></tr><tr><td>Maksim Milyutin</td></tr><tr><td>Maksym Boguk</td></tr><tr><td>Malthe Borch</td></tr><tr><td>Manuel Rigger</td></tr><tr><td>Marco Atzeri</td></tr><tr><td>Marco Slot</td></tr><tr><td>Marina Polyakova</td></tr><tr><td>Mario De Frutos Dieguez</td></tr><tr><td>Marius Timmer</td></tr><tr><td>Mark Chambers</td></tr><tr><td>Mark Dilger</td></tr><tr><td>Marko Tiikkaja</td></tr><tr><td>Markus Winand</td></tr><tr><td>Martín Marqués</td></tr><tr><td>Masahiko Sawada</td></tr><tr><td>Masao Fujii</td></tr><tr><td>Mateusz Guzik</td></tr><tr><td>Mathias Brossard</td></tr><tr><td>Matt Williams</td></tr><tr><td>Matthias Otterbach</td></tr><tr><td>Matvey Arye</td></tr><tr><td>Melanie Plageman</td></tr><tr><td>Mi Tar</td></tr><tr><td>Michael Banck</td></tr><tr><td>Michael Davidson</td></tr><tr><td>Michael Meskes</td></tr><tr><td>Michael Paquier</td></tr><tr><td>Michael Vitale</td></tr><tr><td>Michel Pelletier</td></tr><tr><td>Mikalai Keida</td></tr><tr><td>Mike Palmiotto</td></tr><tr><td>Mithun Cy</td></tr><tr><td>Morgan Owens</td></tr><tr><td>Murat Kabilov</td></tr><tr><td>Nathan Bossart</td></tr><tr><td>Nawaz Ahmed</td></tr><tr><td>Neeraj Kumar</td></tr><tr><td>Nick Barnes</td></tr><tr><td>Nico Williams</td></tr><tr><td>Nikita Glukhov</td></tr><tr><td>Nikolay Shaplov</td></tr><tr><td>Ning Yu</td></tr><tr><td>Nishant Fnu</td></tr><tr><td>Noah Misch</td></tr><tr><td>Norbert Benkocs</td></tr><tr><td>Noriyoshi Shinoda</td></tr><tr><td>Oleg Bartunov</td></tr><tr><td>Oleg Samoilov</td></tr><tr><td>Oleksii Kliukin</td></tr><tr><td>Ondrej Bouda</td></tr><tr><td>Oskari Saarenmaa</td></tr><tr><td>Pan Bian</td></tr><tr><td>Patrick Francelle</td></tr><tr><td>Patrick McHardy</td></tr><tr><td>Paul A. Jungwirth</td></tr><tr><td>Paul Bonaud</td></tr><tr><td>Paul Guo</td></tr><tr><td>Paul Martinez</td></tr><tr><td>Paul Ramsey</td></tr><tr><td>Paul Schaap</td></tr><tr><td>Paul van der Linden</td></tr><tr><td>Pavan Deolasee</td></tr><tr><td>Pavel Oskin</td></tr><tr><td>Pavel Raiskup</td></tr><tr><td>Pavel Stehule</td></tr><tr><td>Peifeng Qiu</td></tr><tr><td>Peter Billen</td></tr><tr><td>Peter Eisentraut</td></tr><tr><td>Peter Geoghegan</td></tr><tr><td>Peter Neave</td></tr><tr><td>Petr Fedorov</td></tr><tr><td>Petr Jelínek</td></tr><tr><td>Petr Slavov</td></tr><tr><td>Petru-Florin Mihancea</td></tr><tr><td>Phil Bayer</td></tr><tr><td>Phil Florent</td></tr><tr><td>Philip Dubé</td></tr><tr><td>Pierre Ducroquet</td></tr><tr><td>Piotr Gabriel Kosinski</td></tr><tr><td>Piotr Stefaniak</td></tr><tr><td>Piotr Wlodarczyk</td></tr><tr><td>Prabhat Sahu</td></tr><tr><td>Quentin Rameau</td></tr><tr><td>Rafael Castro</td></tr><tr><td>Rafia Sabih</td></tr><tr><td>Rahila Syed</td></tr><tr><td>Rajkumar Raghuwanshi</td></tr><tr><td>Rares Salcudean</td></tr><tr><td>Raúl Marín Rodríguez</td></tr><tr><td>Regina Obe</td></tr><tr><td>Renaud Navarro</td></tr><tr><td>Richard Guo</td></tr><tr><td>Rick Otten</td></tr><tr><td>Rikard Falkeborn</td></tr><tr><td>RK Korlapati</td></tr><tr><td>Robbie Harwood</td></tr><tr><td>Robert Haas</td></tr><tr><td>Robert Treat</td></tr><tr><td>Robert Vollmert</td></tr><tr><td>Roger Curley</td></tr><tr><td>Roman Zharkov</td></tr><tr><td>Ronan Dunklau</td></tr><tr><td>Rui Hai Jiang</td></tr><tr><td>Rushabh Lathia</td></tr><tr><td>Ryan Lambert</td></tr><tr><td>Ryo Matsumura</td></tr><tr><td>Ryohei Nagaura</td></tr><tr><td>Ryohei Takahashi</td></tr><tr><td>Samuel Williams</td></tr><tr><td>Sand Stone</td></tr><tr><td>Sanyo Capobiango</td></tr><tr><td>Satoru Koizumi</td></tr><tr><td>Sean Johnston</td></tr><tr><td>Serge Latyntsev</td></tr><tr><td>Sergei Kornilov</td></tr><tr><td>Sergey Pashkov</td></tr><tr><td>Sergio Conde Gómez</td></tr><tr><td>Shawn Debnath</td></tr><tr><td>Shay Rojansky</td></tr><tr><td>Sho Kato</td></tr><tr><td>Shohei Mochizuki</td></tr><tr><td>Shouyu Luo</td></tr><tr><td>Simon Riggs</td></tr><tr><td>Sivasubramanian Ramasubramanian</td></tr><tr><td>Slawomir Chodnicki</td></tr><tr><td>Stas Kelvish</td></tr><tr><td>Stefan Kadow</td></tr><tr><td>Stepan Yankevych</td></tr><tr><td>Stephen Amell</td></tr><tr><td>Stephen Frost</td></tr><tr><td>Steve Rogerson</td></tr><tr><td>Steve Singer</td></tr><tr><td>Steven Winfield</td></tr><tr><td>Surafel Temesgen</td></tr><tr><td>Suraj Kharage</td></tr><tr><td>Suresh Kumar R</td></tr><tr><td>Takayuki Tsunakawa</td></tr><tr><td>Takeshi Ideriha</td></tr><tr><td>Takuma Hoshiai</td></tr><tr><td>Tasos Maschalidis</td></tr><tr><td>Tatsuo Ishii</td></tr><tr><td>Tatsuro Yamada</td></tr><tr><td>Teodor Sigaev</td></tr><tr><td>Thom Brown</td></tr><tr><td>Thomas Munro</td></tr><tr><td>Thomas Poty</td></tr><tr><td>Tillmann Schulz</td></tr><tr><td>Tim Möhlmann</td></tr><tr><td>Timur Birsh</td></tr><tr><td>Tobias Bussmann</td></tr><tr><td>Tom Cassidy</td></tr><tr><td>Tom Dunstan</td></tr><tr><td>Tom Gottfried</td></tr><tr><td>Tom Lane</td></tr><tr><td>Tomas Vondra</td></tr><tr><td>Tushar Ahuja</td></tr><tr><td>Ulf Adams</td></tr><tr><td>Vaishnavi Prabakaran</td></tr><tr><td>Victor Petrovykh</td></tr><tr><td>Victor Wagner</td></tr><tr><td>Victor Yegorov</td></tr><tr><td>Vijaykumar Jain</td></tr><tr><td>Vik Fearing</td></tr><tr><td>Vlad Sterzhanov</td></tr><tr><td>Vladimir Baranoff</td></tr><tr><td>Vladimir Kriukov</td></tr><tr><td>Wu Fei</td></tr><tr><td>Yaroslav Schekin</td></tr><tr><td>Yi Huang</td></tr><tr><td>Yoshikazu Imai</td></tr><tr><td>Yugo Nagata</td></tr><tr><td>Yulian Khodorkovskiy</td></tr><tr><td>Yuming Wang</td></tr><tr><td>YunQiang Su</td></tr><tr><td>Yuri Kurenkov</td></tr><tr><td>Yusuke Egashira</td></tr><tr><td>Yuzuko Hosoya</td></tr><tr><td>Zhou Digoal</td></tr></table></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="release-12-1.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="release.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="release-prior.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">E.4. Release 12.1 </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> E.6. Prior Releases</td></tr></table></div></body></html>
上海开阖软件有限公司 沪ICP备12045867号-1