== PostgreSQL Weekly News - July 22 2018 == - Mailing list pgsql-announce

From David Fetter
Subject == PostgreSQL Weekly News - July 22 2018 ==
Date
Msg-id 20180722231752.GA26841@fetter.org
Whole thread Raw
List pgsql-announce
== PostgreSQL Weekly News - July 22 2018 ==

== PostgreSQL Product News ==

pginstaller, a GUI installer for PostgreSQL, released.
https://www.2ndquadrant.com/en/resources/postgresql-installer-2ndquadrant/

== PostgreSQL Jobs for July ==

http://archives.postgresql.org/pgsql-jobs/2018-07/

== PostgreSQL Local ==

PGConf.Brazil 2018 will take place in São Paulo, Brazil on August 3-4 2018.
http://pgconf.com.br

PostgreOpen Silicon Valley 2018 will be held in San Francisco on September 5-7, 2018.
https://2018.postgresopen.org/

The Portland PostgreSQL Users Group will be holding a PGDay on September 10,
2018 in Portland, OR.  The CfP is open at https://goo.gl/forms/E0CiUQGSZGMYwh922
https://pdx.postgresql.us/pdxpgday2018

PostgresConf South Africa 2018 will take place in Johannesburg on October 9, 2018
https://postgresconf.org/conferences/SouthAfrica2018

PostgreSQL Conference Europe 2018 will be held on October 23-26, 2018 at the
Lisbon Marriott Hotel in Lisbon, Portugal. The CfP is open through August 6,
2018 midnight CET at https://2018.pgconf.eu/callforpapers
https://2017.pgconf.eu/

2Q PGConf will be on December 4-5, 2018 in Chicago, IL.  The CfP is open through
August 27, 2018 at midnight Pacific Time at http://www.2qpgconf.com/#cfp
http://www.2qpgconf.com/

PGConf.ASIA 2018 will take place on December 10-12, 2018 in Akihabara, Tokyo,
Japan.  The CfP is open until midnight, July 31, 2018, Japan time at
pgconf-asia-2018-submission(at)pgconf(dot)asia
http://www.pgconf.asia/EN/2018/

== PostgreSQL in the News ==

Planet PostgreSQL: http://planet.postgresql.org/

PostgreSQL Weekly News is brought to you this week by David Fetter

Submit news and announcements by Sunday at 3:00pm PST8PDT to david@fetter.org.

== Applied Patches ==

Peter Eisentraut pushed:

- doc: Update redirecting links.  Update links that resulted in redirects.  Most
  are changes from http to https, but there are also some other minor edits.
  (There are still some redirects where the target URL looks less elegant than
  the one we currently have.  I have left those as is.)
  https://git.postgresql.org/pg/commitdiff/a06e56b247feb2812bad5cf60fd9c0128d81f5c0

- Add plan_cache_mode setting.  This allows overriding the choice of custom or
  generic plan.  Author: Pavel Stehule <pavel.stehule@gmail.com> Discussion:
  https://www.postgresql.org/message-id/flat/CAFj8pRAGLaiEm8ur5DWEBo7qHRWTk9HxkuUAz00CZZtJj-LkCA%40mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/f7cb2842bf47715133b40e4a503f35dbe60d1b72

Robert Haas pushed:

- Add subtransaction handling for table synchronization workers.  Since the old
  logic was completely unaware of subtransactions, a change made in a
  subsequently-aborted subtransaction would still cause workers to be stopped at
  toplevel transaction commit.  Fix that by managing a stack of worker lists
  rather than just one.  Amit Khandekar and Robert Haas Discussion:
  http://postgr.es/m/CAJ3gD9eaG_mWqiOTA2LfAug-VRNn1hrhf50Xi1YroxL37QkZNg@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/32df1c9afa5a11e37b154fe50df7a4f016f289e4

Álvaro Herrera pushed:

- Fix partition pruning with IS [NOT] NULL clauses.  The original code was
  unable to prune partitions that could not possibly contain NULL values, when
  the query specified less than all columns in a multicolumn partition key.
  Reorder the if-tests so that it is, and add more commentary and regression
  tests.  Reported-by: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>
  Co-authored-by: Dilip Kumar <dilipbalaut@gmail.com> Co-authored-by: Amit
  Langote <Langote_Amit_f8@lab.ntt.co.jp> Co-authored-by: Álvaro Herrera
  <alvherre@alvh.no-ip.org> Reviewed-by: Ashutosh Bapat
  <ashutosh.bapat@enterprisedb.com> Reviewed-by: amul sul <sulamul@gmail.com>
  Discussion:
  https://postgr.es/m/CAFjFpRc7qjLUfXLVBBC_HAnx644sjTYM=qVoT3TJ840HPbsTXw@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/e353389d24da48c708f72379f87e9b518baac521

- Fix ALTER TABLE...SET STATS error message for included columns.  The existing
  error message was complaining that the column is not an expression, which is
  not correct.  Introduce a suitable wording variation and a test.
  Co-authored-by: Yugo Nagata <nagata@sraoss.co.jp> Discussion:
  https://postgr.es/m/20180628182803.e4632d5a.nagata@sraoss.co.jp Reviewed-by:
  Álvaro Herrera <alvherre@alvh.no-ip.org>
  https://git.postgresql.org/pg/commitdiff/cb9db2ab0674381b92559e011738f19e2bd0f6f2

- Revise BuildIndexValueDescription to simplify it.  Getting a pg_index tuple
  from syscache when the open index relation is available is pointless -- just
  use the one from relcache.  Noticed while reviewing code for cb9db2ab0674.  No
  backpatch.
  https://git.postgresql.org/pg/commitdiff/1c04d4beea8a7f0f5fb667512025aada14c5be67

- doc: move PARTITION OF stanza to just below PARTITION BY.  It's more logical
  this way, since the new ordering matches the way the tables are created; but
  in any case, the previous location of PARTITION OF did not appear carefully
  chosen anyway (since it didn't match the location in which it appears in the
  synopsys either, which is what we normally do.) In the PARTITION BY stanza,
  add a link to the partitioning section in the DDL chapter, too.  Suggested-by:
  David G. Johnston Discussion:
  https://postgr.es/m/CAKFQuwY4Ld7ecxL_KAmaxwt0FUu5VcPPN2L4dh+3BeYbrdBa5g@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/c6736ff76046521f56c50deb31da218bc1b29533

- Rewrite comments in replication slot advance implementation.  The code added
  by 9c7d06d60680 was a bit obscure; clarify that by rewriting the comments.
  Lack of clarity has already caused bugs, so it's a worthy goal.
  Co-authored-by: Arseny Sher <a.sher@postgrespro.ru> Co-authored-by: Michaël
  Paquier <michael@paquier.xyz> Co-authored-by: Álvaro Herrera
  <alvherre@alvh.no-ip.org> Reviewed-by: Petr Jelínek
  <petr.jelinek@2ndquadrant.com> Discussion:
  https://postgr.es/m/87y3fgoyrn.fsf@ars-thinkpad
  https://git.postgresql.org/pg/commitdiff/1573995f55994ee04dd0d69481de17d662ad8e88

Michaël Paquier pushed:

- Fix casting in error message for two-phase file.  This error from from
  811b6e3, which causes compilation warnings with OSX 10.3 and clang.  Reported
  by Tom Lane, via buildfarm member longfin.
  https://git.postgresql.org/pg/commitdiff/8bd064f0c7d61c40a8a1179e9d24997fc0a20689

- Fix more portability issues with casts to Size when using off_t.  This should
  tame the beast, as there are no other places where off_t is used in the new
  error messages.  Reported again by longfin, which complained about walsender.c
  while I spotted the other two ones while double-checking.
  https://git.postgresql.org/pg/commitdiff/94019c879a138454af723fa8bfc346d4a44ecd47

- Rework error messages around file handling.  Some error messages related to
  file handling are using the code path context to define their state.  For
  example, 2PC-related errors are referring to "two-phase status files", or
  "relation mapping file" is used for catalog-to-filenode mapping, however those
  prove to be difficult to translate, and are not more helpful than just
  referring to the path of the file being worked on.  So simplify all those
  error messages by just referring to files with their path used.  In some
  cases, like the manipulation of WAL segments, the context is actually helpful
  so those are kept.  Calls to the system function read() have also been rather
  inconsistent with their error handling sometimes not reporting the number of
  bytes read, and some other code paths trying to use an errno which has not
  been set.  The in-core functions are using a more consistent pattern with this
  patch, which checks for both errno if set or if an inconsistent read is
  happening.  So as to care about pluralization when reading an unexpected
  number of byte(s), "could not read: read %d of %zu" is used as error message,
  with %d field being the output result of read() and %zu the expected size.
  This simplifies the work of translators with less variations of the same
  message.  Author: Michael Paquier Reviewed-by: Álvaro Herrera Discussion:
  https://postgr.es/m/20180520000522.GB1603@paquier.xyz
  https://git.postgresql.org/pg/commitdiff/811b6e36a9e21a4d9eb78410976c88ce601cea0c

- Fix re-parameterize of MergeAppendPath.  Instead of MergeAppendPath,
  MergeAppend nodes were considered.  This code is not covered by any tests now,
  which should be addressed at some point.  This is an oversight from f49842d,
  which introduced partition-wise joins in v11, so back-patch down to that.
  Author: Michael Paquier Reviewed-by: Ashutosh Bapat Discussion:
  https://postgr.es/m/20180718062202.GC8565@paquier.xyz
  https://git.postgresql.org/pg/commitdiff/c6598b8b0514bcb9b4c99f2412927368a7514180

- Fix print of Path nodes when using OPTIMIZER_DEBUG.  GatherMergePath
  (introduced in 10) and CustomPath (introduced in 9.5) have gone missing.  The
  order of the Path nodes was inconsistent with what is listed in nodes.h, so
  make the order consistent at the same time to ease future checks and
  additions.  Author: Sawada Masahiko Reviewed-by: Michael Paquier Discussion:
  https://postgr.es/m/CAD21AoBQMLoc=ohH-oocuAPsELrmk8_EsRJjOyR8FQLZkbE0wA@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/b33ef397a1698ddd06f325d0f92a6643ec55577f

- Add toast tables to most system catalogs.  It has been project policy to
  create toast tables only for those catalogs that might reasonably need one.
  Since this judgment call can change over time, just create one for every
  catalog, as this can be useful when creating rather-long entries in catalogs,
  with recent examples being in the shape of policy expressions or
  customly-formatted SCRAM verifiers.  To prevent circular dependencies and to
  avoid adding complexity to VACUUM FULL logic, exclude pg_class, pg_attribute,
  and pg_index.  Also, to prevent pg_upgrade from seeing a non-empty new
  cluster, exclude pg_largeobject and pg_largeobject_metadata from the set as
  large object data is handled as user data.  Those relations have no reason to
  use a toast table anyway.  Author: Joe Conway, John Naylor Reviewed-by:
  Michael Paquier, Tom Lane Discussion:
  https://postgr.es/m/84ddff04-f122-784b-b6c5-3536804495f8@joeconway.com
  https://git.postgresql.org/pg/commitdiff/96cdeae07f93556df73112456b795d6d35998a0e

- Bump catalog version for recent toast table additions.  This has been
  forgotten in 96cdeae.
  https://git.postgresql.org/pg/commitdiff/f2b1316a94796b69eed6773cfb38267947ea19ac

Heikki Linnakangas pushed:

- Fix misc typos, mostly in comments.  A collection of typos I happened to spot
  while reading code, as well as grepping for common mistakes.  Backpatch to all
  supported versions, as applicable, to avoid conflicts when backporting other
  commits in the future.
  https://git.postgresql.org/pg/commitdiff/6b387179baab8d0e5da6570678eefbe61f3acc79

- Expand run-time partition pruning to work with MergeAppend.  This expands the
  support for the run-time partition pruning which was added for Append in
  499be013de to also allow unneeded subnodes of a MergeAppend to be removed.
  Author: David Rowley Discussion:
  https://www.postgresql.org/message-id/CAKJS1f_F_V8D7Wu-HVdnH7zCUxhoGK8XhLLtd%3DCu85qDZzXrgg%40mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/5220bb7533f9891b1e071da6461d5c387e8f7b09

- Fix comment.  This comment was copy-pasted from nodeAppend.c to
  nodeMergeAppend.c, but while committing 5220bb7533, I modified wrong copy of
  it.  Spotted by David Rowley
  https://git.postgresql.org/pg/commitdiff/405cb356d6104eccf34acc2e4944d711b0961c7d

- Rephrase a few comments for clarity.  I was confused by what "intended to be
  parallel serially" meant, until Robert Haas and David G. Johnston explained
  it. Rephrase the comment to make it more clear, using David's suggested
  wording.  Discussion:
  https://www.postgresql.org/message-id/1fec9022-41e8-e484-70ce-2179b08c2092%40iki.fi
  https://git.postgresql.org/pg/commitdiff/99fdebaf2da9160ec49a80854dc99e46722a9a03

- Fix error message when a hostaddr cannot be parsed.  We were incorrectly
  passing hostname, not hostaddr, in the error message, and because of that, you
  got: $ psql 'hostaddr=foo' psql: could not parse network address "(null)":
  Name or service not known Backpatch to v10, where this was broken (by commit
  7b02ba62e9).  Report and fix by Robert Haas.  Discussion:
  https://www.postgresql.org/message-id/CA+TgmoapFQA30NomGKEaZCu3iN7mF7fux8fbbk9SouVOT2JP7w@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/b90d97e081415768468295cc4d10d7ee21881964

Tom Lane pushed:

- Use a ResourceOwner to track buffer pins in all cases.  Historically, we've
  allowed auxiliary processes to take buffer pins without tracking them in a
  ResourceOwner.  However, that creates problems for error recovery.  In
  particular, we've seen multiple reports of assertion crashes in the startup
  process when it gets an error while holding a buffer pin, as for example if it
  gets ENOSPC during a write.  In a non-assert build, the process would simply
  exit without releasing the pin at all.  We've gotten away with that so far
  just because a failure exit of the startup process translates to a database
  crash anyhow; but any similar behavior in other aux processes could result in
  stuck pins and subsequent problems in vacuum.  To improve this, institute a
  policy that we must *always* have a resowner backing any attempt to pin a
  buffer, which we can enforce just by removing the previous special-case code
  in resowner.c.  Add infrastructure to make it easy to create a
  process-lifespan AuxProcessResourceOwner and clear out its contents at
  appropriate times.  Replace existing ad-hoc resowner management in bgwriter.c
  and other aux processes with that.  (Thus, while the startup process gains a
  resowner where it had none at all before, some other aux process types are
  replacing an ad-hoc resowner with this code.) Also use the
  AuxProcessResourceOwner to manage buffer pins taken during StartupXLOG and
  ShutdownXLOG, even when those are being run in a bootstrap process or a
  standalone backend rather than a true auxiliary process.  In passing, remove
  some other ad-hoc resource owner creations that had gotten cargo-culted into
  various other places.  As far as I can tell that was all unnecessary, and if
  it had been necessary it was incomplete, due to lacking any provision for
  clearing those resowners later.  (Also worth noting in this connection is that
  a process that hasn't called InitBufferPoolBackend has no business accessing
  buffers; so there's more to do than just add the resowner if we want to touch
  buffers in processes not covered by this patch.) Although this fixes a very
  old bug, no back-patch, because there's no evidence of any significant problem
  in non-assert builds.  Patch by me, pursuant to a report from Justin Pryzby.
  Thanks to Robert Haas and Kyotaro Horiguchi for reviews.  Discussion:
  https://postgr.es/m/20180627233939.GA10276@telsasoft.com
  https://git.postgresql.org/pg/commitdiff/3cb646264e8ced9f25557ce271284da512d92043

- Drop the rule against included index columns duplicating key columns.  The
  initial version of the included-index-column feature stated that included
  columns couldn't be the same as any key column of the index.  While it'd be
  pretty silly to do that, since the included column would be entirely
  redundant, we've never prohibited redundant index columns before so it's not
  very consistent to do so here.  Moreover, the prohibition was itself badly
  implemented, so that it failed to reject columns that were effectively
  identical but not spelled quite alike, as reported by Aditya Toshniwal.
  (Moreover, it's not hard to imagine that for some non-btree index types, such
  cases would be non-silly anyhow: the index might use a lossy representation
  for key columns but be able to support retrieval of the original form of
  included columns.) Hence, let's just drop the prohibition.  In passing, do
  some copy-editing on the documentation for the included-column feature.  Yugo
  Nagata; documentation and test corrections by me Discussion:
  https://postgr.es/m/CAM9w-_mhBCys4fQNfaiQKTRrVWtoFrZ-wXmDuE9Nj5y-Y7aDKQ@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/701fd0bbc98fe8211d36e96f90753985104cd295

- Remove race-prone hot_standby_feedback test cases in 001_stream_rep.pl.  This
  script supposed that if it turned hot_standby_feedback on and then shut down
  the standby server, at least one feedback message would be guaranteed to be
  sent before the standby stops.  But there is no such guarantee, if the
  standby's walreceiver process is slow enough --- and we've seen multiple
  failures in the buildfarm showing that that does happen in practice.  While we
  could rearrange the walreceiver logic to make it less likely, it seems
  probably impossible to create a really bulletproof guarantee of that sort; and
  if we tried, we might create situations where the walreceiver wouldn't react
  in a timely manner to shutdown commands.  It seems better instead to remove
  the script's assumption that feedback will occur before shutdown.  But once we
  do that, these last few tests seem quite redundant with the earlier tests in
  the script.  So let's just drop them altogether and save some buildfarm
  cycles.  Backpatch to v10 where these tests were added.  Discussion:
  https://postgr.es/m/1922.1531592205@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/a360f952ff028f8b85029334c54c025c716eb68e

- Fix pg_get_indexdef()'s behavior for included index columns.  The
  multi-argument form of pg_get_indexdef() failed to print anything when asked
  to print a single index column that is an included column rather than a key
  column.  This seems an unintentional result of someone having tried to take a
  short-cut and use the attrsOnly flag for two different purposes.  To fix,
  split said flag into two flags, attrsOnly which suppresses non-attribute info,
  and keysOnly which suppresses included columns.  Add a test case using psql's
  \d command, which relies on that function.  (It's mighty tempting at this
  point to replace pg_get_indexdef_worker's mess of boolean flag arguments with
  a single bitmask-of-flags argument, which would allow making the call sites
  much more self-documenting.  But I refrained for the moment.) Discussion:
  https://postgr.es/m/21724.1531943735@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/028e3da2949482fa56f3ffdbda840782f2953b0b

- Improve psql's \d command to show whether index columns are key columns.  This
  is essential information when looking at an index that has "included" columns.
  Per discussion, follow the style used in \dC and some other places: column
  header is "Key?" and values are "yes" or "no" (all translatable).  While at
  it, revise describeOneTableDetails to be a bit more maintainable: avoid
  hard-wired column numbers and multiple repetitions of what needs to be
  identical test logic.  This also results in the emitted catalog query
  corresponding more closely to what we print, which should be a benefit to
  users of ECHO_HIDDEN mode, and perhaps a bit faster too (the old logic
  sometimes asked for values it would not print, even ones that are fairly
  expensive to get).  Discussion:
  https://postgr.es/m/21724.1531943735@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/90371a24a5367c357d7b046383dad8ee352b938b

- Remove undocumented restriction against duplicate partition key columns.
  transformPartitionSpec rejected duplicate simple partition columns (e.g.,
  "PARTITION BY RANGE (x,x)") but paid no attention to expression columns,
  resulting in inconsistent behavior.  Worse, cases like "PARTITION BY RANGE
  (x,(x))") were accepted but would then result in dump/reload failures, since
  the expression (x) would get simplified to a plain column later.  There seems
  no better reason for this restriction than there was for the one against
  duplicate included index columns (cf commit 701fd0bbc), so let's just remove
  it.  Back-patch to v10 where this code was added.  Report and patch by Yugo
  Nagata.  Discussion:
  https://postgr.es/m/20180712165939.36b12aff.nagata@sraoss.co.jp
  https://git.postgresql.org/pg/commitdiff/24097167558bafbc1ea32f67ea5840e5650ad4e7

- Avoid unportable shell syntax in pg_upgrade's test script.  Most of test.sh
  uses traditional backtick syntax for command substitution, but commit
  da9b580d8 introduced two uses of $(...) syntax, which is not recognized by
  very old shells.  Bring those into line with the rest.  Victor Wagner
  Discussion: https://postgr.es/m/20180720153820.69e9ae6c@fafnir.local.vm
  https://git.postgresql.org/pg/commitdiff/986127e3db6858c461dae00f23c1fbaf9302d8cb

- Be more paranoid about quoting in pg_upgrade's test script.  Double-quote
  $PGDATA in "find" commands introduced by commit da9b580d8, in case that path
  contains spaces or other special characters.  Adjust a few other places so
  that quoting is done more consistently.  None of the others are actual bugs
  AFAICS, but it's confusing to readers if the same thing is done differently in
  different places.  Noted by Tels.  Discussion:
  https://postgr.es/m/c96303c04c360bbedaa04f90f515745b.squirrel@sm.webmail.pair.com
  https://git.postgresql.org/pg/commitdiff/0c0908d926cc65c5a10f9507580be3aacce08cf1

- Further portability hacking in pg_upgrade's test script.  I blew the dust off
  a Bourne shell (file date 1996, yea verily) and tried to run test.sh with it.
  It mostly worked, but I found that the temp-directory creation code introduced
  by commit be76a6d39 was not compatible, for a couple of reasons: this shell
  thinks "set -e" should force an exit if a command within backticks fails, and
  it also thinks code within braces should be executed by a sub-shell, meaning
  that variable settings don't propagate back up to the parent shell.  In view
  of Victor Wagner's report that Solaris is still using pre-POSIX shells, seems
  like we oughta make this case work.  It's not like the code is any less
  idiomatic this way; the prior coding technique appeared nowhere else.  (There
  is a remaining bash-ism here, which is that $RANDOM doesn't do what the code
  hopes in non-bash shells.  But the use of $$ elsewhere in that path should be
  enough to ensure uniqueness and some amount of randomness, so I think it's
  okay as-is.) Back-patch to all supported branches, as the previous commit was.
  Discussion: https://postgr.es/m/20180720153820.69e9ae6c@fafnir.local.vm
  https://git.postgresql.org/pg/commitdiff/04269320aed30d3e37c10ae77775954eae234d45

Alexander Korotkov pushed:

- Fix handling of empty uncompressed posting list pages in GIN.  PostgreSQL 9.4
  introduces posting list compression in GIN.  This feature supports online
  upgrade, so that after pg_upgrade uncompressed posting lists are compressed
  on-the-fly.  Underlying code appears to always expect at least one item on
  uncompressed posting list page.  But there could be completely empty pages,
  because VACUUM never deletes leftmost and rightmost pages from posting trees.
  This commit fixes that.  Reported-by: Sivasubramanian Ramasubramanian
  Discussion: https://postgr.es/m/1531867212836.63354%40amazon.com Author:
  Sivasubramanian Ramasubramanian, Alexander Korotkov Backpatch-through: 9.4
  https://git.postgresql.org/pg/commitdiff/309765fa1e317597bfd341fa99dfa97ea5722890

Dean Rasheed pushed:

- Guard against rare RAND_bytes() failures in pg_strong_random().  When built
  using OpenSSL, pg_strong_random() uses RAND_bytes() to generate the random
  number. On very rare occasions that can fail, if its PRNG has not been seeded
  with enough data. Additionally, once it does fail, all subsequent calls will
  also fail until more seed data is added. Since this is required during backend
  startup, this can result in all new backends failing to start until a
  postmaster restart.  Guard against that by checking the state of OpenSSL's
  PRNG using RAND_status(), and if necessary (very rarely), seeding it using
  RAND_poll().  Back-patch to v10, where pg_strong_random() was introduced.
  Dean Rasheed and Michael Paquier.  Discussion:
  https://postgr.es/m/CAEZATCXMtxbzSAvyKKk5uCRf9pNt4UV%2BF_5v%3DgLfJUuPxU4Ytg%40mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/8f6ce7fb090a674f18b72e89a2b868fe1343fe8f

Andres Freund pushed:

- Hand code string to integer conversion for performance.  As benchmarks show,
  using libc's string-to-integer conversion is pretty slow. At least part of the
  reason for that is that strtol[l] have to be more generic than what largely is
  required inside pg.  This patch considerably speeds up int2/int4 input (int8
  already was already using hand-rolled code).  Most of the existing pg_atoi
  callers have been converted. But as one requires pg_atoi's custom delimiter
  functionality, and as it seems likely that there's external pg_atoi users, it
  seems sensible to just keep pg_atoi around.  Author: Andres Freund
  Reviewed-By: Robert Haas Discussion:
  https://postgr.es/m/20171208214437.qgn6zdltyq5hmjpk@alap3.anarazel.de
  https://git.postgresql.org/pg/commitdiff/86eaf208ea048936df6be77276a246d3f92e9620

- Deduplicate "invalid input syntax" messages for various types.  Previously a
  lot of the error messages referenced the type in the error message itself.
  That requires that the message is translated separately for each type.  Note
  that currently a few smallint cases continue to reference the integer, rather
  than smallint, type. A later patch will create a separate routine for 16bit
  input.  Author: Andres Freund Discussion:
  https://postgr.es/m/20180707200158.wpqkd7rjr4jxq5g7@alap3.anarazel.de
  https://git.postgresql.org/pg/commitdiff/3522d0eaba5a976f09a48810dd25dff6ab3565df

== Pending Patches ==

Andrey Klychkov sent in a patch to add CONCURRENTLY to ALTER INDEX ... RENAME.

Andrey Borodin and Heikki Linnakangas traded patches to implement GiST VACUUM.

David Fetter sent in six revisions of a patch to make transform_null_equals into
an enum with options to warn and error out.

Edmund Horner sent in another revision of a patch to add tab completion for
SELECT to psql.

Nikita Glukhov sent in another revision of a patch to implement kNN for SP-GiST.

Daniel Gustafsson sent in a patch to add a log_costs GUC to auto_explain.

Peter Geoghegan sent in another revision of a patch to make all nbtree index
tuples have unique keys.

Kyotaro HORIGUCHI sent in another revision of a patch to stop WAL logging under
some unsafe conditions.

Ashutosh Bapat sent in another revision of a patch to improve the
partition-matching algorithm for partition-wise JOINs.

David Rowley and Amit Langote traded patches to fix run-time partition pruning
for UNION ALL parents.

Michaël Paquier sent in a patch to have TAP set a marker file to show it's
running.

Michaël Paquier sent in another revision of a patch to fail hard when facing
corrupted two-phase state files at recovery.

Amit Langote sent in another revision of a patch to speed up INSERTs and UPDATEs
to partitioned tables.

Fabien COELHO sent in two more revisions of a patch to add a progress report to
pgbench.

Heikki Linnakangas sent in a patch to ensure that pgbench doesn't finish too
early.

Thomas Munro sent in two more revisions of a patch to add a WL_EXIT_ON_PM_DEATH
pseudo-event.

Tom Lane sent in a patch to fix psql's \d for indexes with INCLUDE.

Etsuro Fujita sent in another revision of a patch to redesign partitionwise-join
child tlist handling.

Marco van Eck sent in a patch to add a PGPASSCOMMAND whose purpose is to make it
possible to have an alternative to storing .pgpass unencrypted on the
filesystem.

Jerry Jelinek sent in another revision of a patch to add an option to disable
WAL recycling.

Fabien COELHO sent in a patch to pgbench which moves state changes from
threadRun to doCustom and records all stats.

Fabien COELHO sent in another revision of a patch to fix some cases in pgbench's
overflow handling.

Amit Langote sent in two revisions of a patch to fix and document the locking in
CREATE COLLATION.

Amit Langote sent in another revision of a patch to add assorted partition
reporting functions.

Pavel Stěhule sent in another revision of a patch to add extra checks to
PL/pgsql.

Anthony Bykov sent in a patch to add a Yahoo! Cloud Serving Benchmark setting to
pgbench.

Kyotaro HORIGUCHI sent in two revisions of a patch to fix the calculation base
of WAL recycling.

Masahiko Sawada sent in a patch to report remaining xlogsegs.

Andrei Yahorau sent in a patch to add TCP_USER_TIMEOUT support for
libpq/psqlodbc.

Yugo Nagata sent in a patch to add a delay in starting up on Windows which
averts a hang on startup.

David Rowley sent in another revision of a patch to allow multi-inserts during
COPY into a partitioned table.

Álvaro Herrera sent in a patch to fix a segfault in logical replication.

Thomas Munro sent in another revision of a patch to use pread() and pwrite()
instead of lseek() + read()/write().

Dmitry Dolgov sent in another revision of a patch to implement generic type
subscripting.

Heikki Linnakangas sent in a patch to use _exit rather than exit in quickdie.

Heikki Linnakangas sent in a patch to remove support for tls-unique channel
binding.

Sergei Kornilov sent in a patch to indicate anti-wraparound autovacuum in
log_autovacuum_min_duration.

Brad DeJong sent in a patch to fix some grammar in
src/backend/access/heap/README.tuplock.

David Fetter sent in a patch to remove psql's -W option.

Andrei Korigodski sent in three revisions of a patch to pgbench to improve
--help and --version parsing.

Tomáš Vondra sent in a patch to add a function estimate_largest_group to improve
cost_sort().


pgsql-announce by date:

Previous
From: David Fetter
Date:
Subject: == PostgreSQL Weekly News - July 15 2018 ==
Next
From: David Fetter
Date:
Subject: == PostgreSQL Weekly News - July 29 2018 ==