Thread: == PostgreSQL Weekly News - January 10 2016 ==

== PostgreSQL Weekly News - January 10 2016 ==

From
David Fetter
Date:
== PostgreSQL Weekly News - January 10 2016 ==

PostgreSQL 9.5 released!
http://www.postgresql.org/docs/current/static/release-9-5.html
https://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.5

FOSS4G NA, will be held May 2-5, 2016 in Raleigh, North Carolina.
The CfP is open.
https://2016.foss4g-na.org/cfp

PostgreSQL@SCaLE will be happening January 21-22, 2016 at the Pasadena
Convention Center.
https://reg.socallinuxexpo.org/reg6/

== PostgreSQL Product News ==

2UDA 9.5, a data analytics application suite for PostgreSQL, released.
http://packages.2ndquadrant.com/2UDA/ReleaseNotes_9.5-GA_20160107.txt

E-Maj 1.2.0, an extension which enables fine-grained write logging and
time travel on subsets of the DB, released.
https://github.com/beaud76/emaj

psqlODBC 09.05.0100 released.
https://odbc.postgresql.org/docs/release.html

tds_fdw 1.0.7, a foreign data wrapper for MS-SQL Server and Sybase, released.
https://github.com/GeoffMontee/tds_fdw/releases

== PostgreSQL Jobs for January ==

http://archives.postgresql.org/pgsql-jobs/2016-01/

== PostgreSQL Local ==

PostgreSQL@SCaLE is a two day, two track event which takes place on Jan.
21-22, 2016, at Pasadena Convention Center, as part of SCaLE 14X.
https://www.socallinuxexpo.org/scale/14x/cfp

FOSDEM PGDay is a one day conference that will be held ahead of FOSDEM in
Brussels, Belgium, on Jan 29th, 2016.  Registration is still open.
http://fosdem2016.pgconf.eu/

Prague PostgreSQL Developer Day 2016 (P2D2 2016) is a two-day conference
that will be held on February 17-18 2016 in Prague, Czech Republic.
Czech language web site below:
http://www.p2d2.cz/

The annual Indian PGday will be held in Bengaluru, Karnataka, India on
February 26, 2016.  The CfP is open.
http://pgday.in

The first pan-Asian PostgreSQL conference will be held March 16-17,
2016 in Singapore.  The CfP is open.
http://2016.pgday.asia/

Nordic PGDay 2016 is a one day one track conference which will be held in
Helsinki, Finland, on March 17, 2016.  Registration is still open.
http://2016.nordicpgday.org/

PGConf US 2016 will take place April 18-20, 2016 in NYC.  The CfP is
open until January 31st, 2016, 11:59pm EST.
http://www.pgconf.us/2016/

PGCon 2016 will be held May 17-21, 2016 in Ottawa.  The CfP is out.
http://www.pgcon.org/

== 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 Pacific time.
Please send English language ones to david@fetter.org, German language
to pwn@pgug.de, Italian language to pwn@itpug.org.  Spanish language
to pwn@arpug.com.ar.

== Applied Patches ==

Tom Lane pushed:

- Do some copy-editing on the docs for row-level security.
  Clarifications, markup improvements, corrections of misleading or
  outright wrong statements.
  http://git.postgresql.org/pg/commitdiff/c1611db01fec587525e88270854c4b993846dcb3

- Fix bogus lock release in RemovePolicyById and
  RemoveRoleFromObjectPolicy.  Can't release the AccessExclusiveLock
  on the target table until commit.  Otherwise there is a race
  condition whereby other backends might service our cache
  invalidation signals before they can actually see the updated
  catalog rows.  Just to add insult to injury, RemovePolicyById was
  closing the rel (with incorrect lock drop) and then passing the
  now-dangling rel pointer to CacheInvalidateRelcache.  Probably the
  reason this doesn't fall over on CLOBBER_CACHE buildfarm members is
  that some outer level of the DROP logic is still holding the rel
  open ... but it'd have bit us on the arse eventually, no doubt.
  http://git.postgresql.org/pg/commitdiff/f47b602df80d7647ca2e71c86f7228b1bf5bf9f3

- Fix regrole and regnamespace types to honor quoting like other reg*
  types.  Aside from any consistency arguments, this is logically
  necessary because the I/O functions for these types also handle
  numeric OID values.  Without a quoting rule it is impossible to
  distinguish numeric OIDs from role or namespace names that happen to
  contain only digits.  Also change the to_regrole and to_regnamespace
  functions to dequote their arguments.  While not logically
  essential, this seems like a good idea since the other to_reg*
  functions do it.  Anyone who really wants raw lookup of an
  uninterpreted name can fall back on the time-honored solution of
  (SELECT oid FROM pg_namespace WHERE nspname = whatever).  Report and
  patch by Jim Nasby, reviewed by Michael Paquier
  http://git.postgresql.org/pg/commitdiff/fb1227af67eae5e97795f7e3563673c6e67d2844

- Fix regrole and regnamespace output functions to do quoting, too.
  We discussed this but somehow failed to implement it...
  http://git.postgresql.org/pg/commitdiff/b0cadc08fea564f75a0702e15b2bd949377bd2f3

- Adjust behavior of row_security GUC to match the docs.  Some time
  back we agreed that row_security=off should not be a way to bypass
  RLS entirely, but only a way to get an error if it was being
  applied.  However, the code failed to act that way for table owners.
  Per discussion, this is a must-fix bug for 9.5.0.  Adjust the logic
  in rls.c to behave as expected; also, modify the error message to be
  more consistent with the new interpretation.  The regression tests
  need minor corrections as well.  Also update the comments about
  row_security in ddl.sgml to be correct.  (The official description
  of the GUC in config.sgml is already correct.) I failed to resist
  the temptation to do some other very minor cleanup as well, such as
  getting rid of a duplicate extern declaration.
  http://git.postgresql.org/pg/commitdiff/5d35438273c4523a4dc4b48c3bd575e64310d3d4

- Docs: provide a concrete discussion and example for RLS race
  conditions.  Commit 43cd468cf01007f3 added some wording to
  create_policy.sgml purporting to warn users against a race condition
  of the sort that had been noted some time ago by Peter Geoghegan.
  However, that warning was far too vague to be useful (or at least, I
  completely failed to grasp what it was on about).  Since the problem
  case occurs with a security design pattern that lots of people are
  likely to try to use, we need to be as clear as possible about it.
  Provide a concrete example in the main-line docs in place of the
  original warning.
  http://git.postgresql.org/pg/commitdiff/7debf36072b3a088b3003aab6dcf57c3f186100d

- In psql's tab completion, change most TailMatches patterns to
  Matches.  In the refactoring in commit
  d37b816dc9e8f976c8913296781e08cbd45c5af1, we mostly kept to the
  original design whereby only the last few words on the line were
  matched to identify a completable pattern.  However, after commit
  d854118c8df8c413d069f7e88bb01b9e18e4c8ed, there's really no reason
  to do it like that: where it's sensible, we can use patterns that
  expect to match the entire input line.  And mostly, it's sensible.
  Matching the entire line greatly reduces the odds of a false match
  that leads to offering irrelevant completions.  Moreover (though
  I've not tried to measure this), it should make tab completion
  faster since many of the patterns will be discarded after a single
  integer comparison that finds that the wrong number of words appear
  on the line.  There are certain identifiable places where we still
  need to use TailMatches because the statement in question is allowed
  to appear embedded in a larger statement.  These are just a small
  minority of the existing patterns, though, so the benefit of
  switching where possible is large.  It's possible that this patch
  has removed some within-line matching behaviors that are in fact
  desirable, but we can put those back when we get complaints.  Most
  of the removed behaviors are certainly silly.  Michael Paquier, with
  some further adjustments by me
  http://git.postgresql.org/pg/commitdiff/9b181b0363deb65b15a9feaf3eb74f86707498a9

- Convert psql's tab completion for backslash commands to the new
  style.  This requires adding some more infrastructure to handle both
  case-sensitive and case-insensitive matching, as well as the ability
  to match a prefix of a previous word.  So it ends up being about a
  wash line-count-wise, but it's just as big a readability win here as
  in the SQL tab completion rules.  Michael Paquier, some adjustments
  by me
  http://git.postgresql.org/pg/commitdiff/4f18010af126f126824e01eec2285e6263d98b3d

- Add to_regnamespace() and to_regrole() to the documentation.
  Commits cb9fa802b32b222b and 0c90f6769de6a60f added these functions,
  but did not bother with documentation.
  http://git.postgresql.org/pg/commitdiff/83be1844acdcb0cbff31369a65ec61d588fbe9f3

- Make the to_reg*() functions accept text not cstring.  Using cstring
  as the input type was a poor decision, because that's not really a
  full-fledged type.  In particular, it lacks implicit coercions from
  text or varchar, meaning that usages like to_regproc('foo'||'bar')
  wouldn't work; basically the only case that did work without
  explicit casting was a simple literal constant argument.  The lack
  of field complaints about this suggests that hardly anyone is using
  these functions, so hopefully fixing it won't cause much of a
  compatibility problem.  They've only been there since 9.4, anyway.
  Petr Korobeinikov
  http://git.postgresql.org/pg/commitdiff/ea0d494dae0d3d6fce26bf5d6fbaa07e2ee6c402

- In opr_sanity regression test, check for unexpected uses of cstring.
  In light of commit ea0d494dae0d3d6f, it seems like a good idea to
  add a regression test that will complain about random functions
  taking or returning cstring.  Only I/O support functions and
  encoding conversion functions should be declared that way.  While at
  it, add some checks that encoding conversion functions are declared
  properly.  Since pg_conversion isn't populated manually, it's not
  quite as necessary to check its contents as it is for catalogs like
  pg_proc; but one thing we definitely have not tested in the past is
  whether the identified conproc for a conversion actually does that
  conversion vs. some other one.
  http://git.postgresql.org/pg/commitdiff/921191912c48a68db81c02c02f3bc22e291d918c

- Sort $(wildcard) output where needed for reproducible build output.
  The order of inclusion of .o files makes a difference in linker
  output; not a functional difference, but still a bitwise difference,
  which annoys some packagers who would like reproducible builds.
  Report and patch by Christoph Berg
  http://git.postgresql.org/pg/commitdiff/3343ea9e8ea4f552b3f6e5436938f2f0e153b947

- Remove some ancient and unmaintained encoding-conversion test cruft.
  In commit 921191912c48a68d I claimed that we weren't testing
  encoding conversion functions, but further poking around reveals
  that we did have an equivalent though hard-wired set of tests in
  conversion.sql.  AFAICS there is no advantage to doing it like that
  as compared to letting the catalog contents drive the test, so let
  the opr_sanity addition stand and remove the now-redundant tests in
  conversion.sql.  Also, remove some infrastructure in
  src/backend/utils/mb/conversion_procs for building conversion.sql's
  list of tests.  That was unmaintained, and had not corresponded to
  the actual contents of conversion.sql since 2007 or perhaps even
  further back.
  http://git.postgresql.org/pg/commitdiff/419400c5da738d86c87e903a3d1924ff365bf203

- Comment typo fix.  Per Amit Langote.
  http://git.postgresql.org/pg/commitdiff/4bf87169cc1890442aa694f3057e0a0ad60c51f4

- In initdb's post-bootstrap phase, drop temp tables explicitly.
  Although these temp tables will get removed from template1 at the
  end of the standalone-backend run, that's too late to keep them from
  getting copied into the template0 and postgres databases, now that
  we use only a single backend run for the whole sequence.  While no
  real harm is done by the extra copies (since they'd be deleted on
  first use of the temp schema), it's still unsightly, and it would
  mean some wasted cycles for every database creation for the life of
  the installation.  Oversight in commit c4a8812cf64b1426.  Noticed by
  Amit Langote.
  http://git.postgresql.org/pg/commitdiff/dad08994b25b8cd2caa83b2e856fcc940d5e515c

- Provide more detail in postmaster log for password authentication
  failures.  We tell people to examine the postmaster log if they're
  unsure why they are getting auth failures, but actually only a few
  relatively-uncommon failure cases were given their own log detail
  messages in commit 64e43c59b817a78d.  Expand on that so that every
  failure case detected within md5_crypt_verify gets a specific log
  detail message.  This should cover pretty much every ordinary
  password auth failure cause.  So far I've not noticed user demand
  for a similar level of auth detail for the other auth methods, but
  sooner or later somebody might want to work on them.  This is not
  that patch, though.
  http://git.postgresql.org/pg/commitdiff/5e0b5dcab685fe2a342385450a29a825cf40cddf

- Remove vestigial CHECK_FOR_INTERRUPTS call.  Commit e710b65c
  inserted code in md5_crypt_verify to disable and later re-enable
  interrupts, with a CHECK_FOR_INTERRUPTS call as part of the second
  step, to process any interrupts that had been held off.  Commit
  6647248e removed the interrupt disable/re-enable code, but left
  behind the CHECK_FOR_INTERRUPTS, even though this is now an entirely
  random, pointless place for one.  md5_crypt_verify doesn't run long
  enough to need such a check, and if it did, this would still be the
  wrong place to put one.
  http://git.postgresql.org/pg/commitdiff/6b1a837f69d00d265bee4b57ba2d320f1463f131

- Use plain mkdir() not pg_mkdir_p() to create subdirectories of
  PGDATA.  When we're creating subdirectories of PGDATA during initdb,
  we know darn well that the parent directory exists (or should exist)
  and that the new subdirectory doesn't (or shouldn't).  There is
  therefore no need to use anything more complicated than mkdir().
  Using pg_mkdir_p() just opens us up to unexpected failure modes,
  such as the one exhibited in bug #13853 from Nuri Boardman.  It's
  not very clear why pg_mkdir_p() went wrong there, but it is clear
  that we didn't need to be trying to create parent directories in the
  first place.  We're not even saving any code, as proven by the fact
  that this patch nets out at minus five lines.  Since this is a
  response to a field bug report, back-patch to all branches.
  http://git.postgresql.org/pg/commitdiff/33b054bc797628e418e379badd38b00e4b523115

- Fix unobvious interaction between -X switch and subdirectory
  creation.  Turns out the only reason initdb -X worked is that
  pg_mkdir_p won't whine if you point it at something that's a symlink
  to a directory.  Otherwise, the attempt to create pg_xlog/ just like
  all the other subdirectories would have failed.  Let's be a little
  more explicit about what's happening.  Oversight in my patch for bug
  #13853 (mea culpa for not testing -X ...)
  http://git.postgresql.org/pg/commitdiff/b41fb65056076b42d64a8690d61fd73dc648645b

- Delay creation of subplan tlist until after create_plan().  Once
  upon a time it was necessary for grouping_planner() to determine the
  tlist it wanted from the scan/join plan subtree before it called
  query_planner(), because query_planner() would actually make a Plan
  using that.  But we refactored things a long time ago to delay
  construction of the Plan tree till later, so there's no need to
  build that tlist until (and indeed unless) we're ready to plaster it
  onto the Plan.  The only thing query_planner() cares about is what
  Vars are going to be needed for the tlist, and it can perfectly well
  get that by looking at the real tlist rather than some masticated
  version.  Well, actually, there is one minor glitch in that
  argument, which is that make_subplanTargetList also adds Vars
  appearing only in HAVING to the tlist it produces.  So now we have
  to account for HAVING explicitly in build_base_rel_tlists.  But that
  just adds a few lines of code, and I doubt it moves the needle much
  on processing time; we might be doing pull_var_clause() twice on the
  havingQual, but before we had it scanning dummy tlist entries
  instead.  This is a very small down payment on rationalizing
  grouping_planner enough so it can be refactored.
  http://git.postgresql.org/pg/commitdiff/c44d013835049053d19bc1795f0d169f3d1d6ff0

- Marginal cleanup of GROUPING SETS code in grouping_planner().
  Improve comments and make it a shade less messy.  I think we might
  want to move all of this somewhere else later, but it needs to be
  more readable first.  In passing, re-pgindent the file, affecting
  some recently-added comments concerning parallel query planning.
  http://git.postgresql.org/pg/commitdiff/a54676acadcf811f6945db15e81651df96beabc4

- Add STRICT to some C functions created by the regression tests.
  These functions readily crash when passed a NULL input value.  The
  tests themselves do not pass NULL values to them; but when the
  regression database is used as a basis for fuzz testing, they cause
  a lot of noise.  Also, if someone were to leave a regression
  database lying about in a production installation, these would
  create a minor security hazard.  Andreas Seltenreich
  http://git.postgresql.org/pg/commitdiff/529baf6a2f3fe85e7e6b4ad3ca38ed4ebffd6bb4

- Clean up code for widget_in() and widget_out().  Given syntactically
  wrong input, widget_in() could call atof() with an indeterminate
  pointer argument, typically leading to a crash; or if it didn't do
  that, it might return a NULL pointer, which again would lead to a
  crash since old-style C functions aren't supposed to do things that
  way.  Fix that by correcting the off-by-one syntax test and throwing
  a proper error rather than just returning NULL.  Also, since
  widget_in and widget_out have been marked STRICT for a long time,
  their tests for null inputs are just dead code; remove 'em.  In the
  oldest branches, also improve widget_out to use snprintf not
  sprintf, just to be sure.  In passing, get rid of a
  long-since-useless sprintf into a local buffer that nothing further
  is done with, and make some other minor coding style cleanups.  In
  the intended regression-testing usage of these functions, none of
  this is very significant; but if the regression test database were
  left around in a production installation, these bugs could amount to
  a minor security hazard.  Piotr Stefaniak, Michael Paquier, and Tom
  Lane
  http://git.postgresql.org/pg/commitdiff/1cb63c791c7d070c1bb3cce58885c9697d769cd2

- Clean up some lack-of-STRICT issues in the core code, too.  A scan
  for missed proisstrict markings in the core code turned up these
  functions: brin_summarize_new_values
  pg_stat_reset_single_table_counters
  pg_stat_reset_single_function_counters
  pg_create_logical_replication_slot
  pg_create_physical_replication_slot pg_drop_replication_slot The
  first three of these take OID, so a null argument will normally look
  like a zero to them, resulting in "ERROR: could not open relation
  with OID 0" for brin_summarize_new_values, and no action for the
  pg_stat_reset_XXX functions.  The other three will dump core on a
  null argument, though this is mitigated by the fact that they won't
  do so until after checking that the caller is superuser or has
  rolreplication privilege.  In addition, the
  pg_logical_slot_get/peek[_binary]_changes family was intentionally
  marked nonstrict, but failed to make nullness checks on all the
  arguments; so again a null-pointer-dereference crash is possible but
  only for superusers and rolreplication users.  Add the missing
  ARGISNULL checks to the latter functions, and mark the former
  functions as strict in pg_proc.  Make that change in the back
  branches too, even though we can't force initdb there, just so that
  installations initdb'd in future won't have the issue.  Since none
  of these bugs rise to the level of security issues (and indeed the
  pg_stat_reset_XXX functions hardly misbehave at all), it seems
  sufficient to do this.  In addition, fix some order-of-operations
  oddities in the slot_get_changes family, mostly cosmetic, but not
  the part that moves the function's last few operations into the
  PG_TRY block.  As it stood, there was significant risk for an error
  to exit without clearing historical information from the system
  caches.  The slot_get_changes bugs go back to 9.4 where that code
  was introduced.  Back-patch appropriate subsets of the pg_proc
  changes into all active branches, as well.
  http://git.postgresql.org/pg/commitdiff/26d538dc93543ed80c315b8313ea4dacd7309ff6

- Add some checks on "char"-type columns to type_sanity and
  opr_sanity.  I noticed that the sanity checks in the regression
  tests omitted to check a couple of "poor man's enum" columns that
  you'd reasonably expect them to check.  There are other "char"-type
  columns in system catalogs that are not covered by either
  type_sanity or opr_sanity, e.g. pg_rewrite.ev_type.  However, those
  catalogs are not populated with any manually-created data during
  bootstrap, so it seems less necessary to check them this way.
  http://git.postgresql.org/pg/commitdiff/3ef16c46fb3a64c150a3b42c3cc4a8538a12ff3f

- Remove a useless PG_GETARG_DATUM() call from jsonb_build_array.
  This loop uselessly fetched the argument after the one it's
  currently looking at.  No real harm is done since we couldn't
  possibly fetch off the end of memory, but it's confusing to the
  reader.  Also remove a duplicate (and therefore confusing)
  PG_ARGISNULL check in jsonb_build_object.  I happened to notice
  these things while trolling for missed null-arg checks earlier
  today.  Back-patch to 9.5, not because there is any real bug, but
  just because 9.5 and HEAD are still in sync in this file and we
  might as well keep them so.  In passing, re-pgindent.
  http://git.postgresql.org/pg/commitdiff/820bdccc1be22513e1aaa441d554992a5a2e314f

Robert Haas pushed:

- Fix typo in comment.  Masahiko Sawada
  http://git.postgresql.org/pg/commitdiff/8978eb03a8dcfafd9e0839bc430749839476c34a

Álvaro Herrera pushed:

- Make pg_shseclabel available in early backend startup.  While the
  in-core authentication mechanism doesn't need to access
  pg_shseclabel at all, it's reasonable to think that an
  authentication hook will want to look at the label for the role
  logging in, or for rows in other catalogs used during the
  authentication phase of startup.  Catalog version bumped, because
  this changes the "is nailed" status for pg_shseclabel.  Author: Adam
  Brightwell
  http://git.postgresql.org/pg/commitdiff/efa318bcfac132c48dff8196f726e56a6843f06b

- Make pg_receivexlog silent with 9.3 and older servers.  A pointless
  and confusing error message is shown to the user when attempting to
  identify a 9.3 or older remote server with a 9.5/9.6 pg_receivexlog,
  because the return signature of IDENTIFY_SYSTEM was changed in 9.4.
  There's no good reason for the warning message, so shuffle code
  around to keep it quiet.  (pg_recvlogical is also affected by this
  commit, but since it obviously cannot work with 9.3 that doesn't
  actually matter much.) Backpatch to 9.5.  Reported by Marco
  Nenciarini, who also wrote the initial patch.  Further tweaked by
  Robert Haas and Fujii Masao; reviewed by Michael Paquier and Craig
  Ringer.
  http://git.postgresql.org/pg/commitdiff/4aecd22d3c84c44dd230426bcccd286798ac6b65

- Add scale(numeric) Author: Marko Tiikkaja
  http://git.postgresql.org/pg/commitdiff/abb1733922f3ff17a514499883a549f8bd03af44

- Windows: Make pg_ctl reliably detect service status.  pg_ctl is
  using isatty() to verify whether the process is running in a
  terminal, and if not it sends its output to Windows' Event Log ...
  which does the wrong thing when the output has been redirected to a
  pipe, as reported in bug #13592.  To fix, make pg_ctl use the code
  we already have to detect service-ness: in the master branch, move
  src/backend/port/win32/security.c to src/port (with suitable tweaks
  so that it runs properly in backend and frontend environments);
  pg_ctl already has access to pgport so it Just Works.  In older
  branches, that's likely to cause trouble, so instead duplicate the
  required code in pg_ctl.c.  Author: Michael Paquier Bug report and
  diagnosis: Egon Kocjan Backpatch: all supported branches
  http://git.postgresql.org/pg/commitdiff/a967613911f7ef7b6387b9e8718f0ab8f0c4d9c8

- pgstat: add WAL receiver status view & SRF.  This new view provides
  insight into the state of a running WAL receiver in a HOT standby
  node.  The information returned includes the PID of the WAL receiver
  process, its status (stopped, starting, streaming, etc), start LSN
  and TLI, last received LSN and TLI, timestamp of last message send
  and receipt, latest end-of-WAL LSN and time, and the name of the
  slot (if any).  Access to the detailed data is only granted to
  superusers; others only get the PID.  Author: Michael Paquier
  Reviewer: Haribabu Kommi
  http://git.postgresql.org/pg/commitdiff/b1a9bad9e744857291c7d5516080527da8219854

- Add win32security to LIBOBJS.  This seems to fix Mingw's compile
  that was broken in a967613911f7e, as evidenced by buildfarm.
  http://git.postgresql.org/pg/commitdiff/fa838b555f90039ae5f0e6fb86ccae6a88b42703

- Fix order of arguments to va_start()
  http://git.postgresql.org/pg/commitdiff/f81c966d2095fdab70a5d81ceb6dd9c89f4acd87

- Blind attempt at a Cygwin fix.  Further portability fix for
  a967613911f7.  Mingw- and MSVC-based builds appear to be working
  fine, but Cygwin needs an extra tweak whereby the new
  win32security.c file is explicitely added to the list of files to
  build in pgport, per Cygwin members brolga and lorikeet.  Author:
  Michael Paquier
  http://git.postgresql.org/pg/commitdiff/e9282e953205a2f3125fc8d1052bc01cb77cd2a3

- Revert "Blind attempt at a Cygwin fix."  This reverts commit
  e9282e953205a2f3125fc8d1052bc01cb77cd2a3, which blew up in a pretty
  spectacular way.  Re-introduce the original code while we search for
  a real fix.
  http://git.postgresql.org/pg/commitdiff/463172116634423f8708ad9d7afb0f759a40cf2c

Tatsuo Ishii pushed:

- Fix typo in create_transform.sgml.
  http://git.postgresql.org/pg/commitdiff/65681d08b4213110a879ce6d65f10de11fe4d3cc

Magnus Hagander pushed:

- Remove reundant include of TestLib.  Kyotaro HORIGUCHI
  http://git.postgresql.org/pg/commitdiff/c662ef1d03e8e963ae097d40e3eb16d15aef5d00

- Fix typo in comment.  Tatsuro Yamada
  http://git.postgresql.org/pg/commitdiff/2650486ebc6fcd32b8f42d6063efc099d00a6708

Simon Riggs pushed:

- Avoid pin scan for replay of XLOG_BTREE_VACUUM.  Replay of
  XLOG_BTREE_VACUUM during Hot Standby was previously thought to
  require complex interlocking that matched the requirements on the
  master. This required an O(N) operation that became a significant
  problem with large indexes, causing replication delays of seconds or
  in some cases minutes while the XLOG_BTREE_VACUUM was replayed.
  This commit skips the “pin scan” that was previously required, by
  observing in detail when and how it is safe to do so, with full
  documentation. The pin scan is skipped only in replay; the VACUUM
  code path on master is not touched here.  The current commit still
  performs the pin scan for toast indexes, though this can also be
  avoided if we recheck scans on toast indexes. Later patch will
  address this.  No tests included. Manual tests using an additional
  patch to view WAL records and their timing have shown the change in
  WAL records and their handling has successfully reduced replication
  delay.
  http://git.postgresql.org/pg/commitdiff/687f2cd7a0150647794efe432ae0397cb41b60ff

- Revoke change to rmgr desc of btree vacuum.  Per discussion with
  Andres Freund
  http://git.postgresql.org/pg/commitdiff/b6028426137532afae00188405fdecf7057b208c

== Rejected Patches (for now) ==

No one was disappointed this week :-)

== Pending Patches ==

Ian Lawrence Barwick sent in a patch to update the description of
vacuumdb to fit current realities.

Haribabu Kommi sent in four more revisions of a patch to implement
multi-tenancy with RLS.

Pavel Stěhule sent in another revision of a patch to implement
num_notnulls().

Pavel Stěhule sent in three more revisions of a patch to implement
pg_size_bytes().

Michael Paquier sent in another revision of a patch to ensure that
dynloader.h be present in Windows installations.

Amul Sul sent in a patch to ensure that columns in tables made
inheritance tables by ALTER TABLE ... INHERIT are actually dropped
when they're dropped in the parents.

Vitaly Burovoy sent in another revision of a patch to allow non-crazy
extraction of fields from 'infinity'::TIMESTAMP[TZ].

Alexander Shulgin sent in a patch to fix an inconsistency in error
handling for the START_REPLICATION command.

Petr Korobeinikov sent in a patch to add schema-qualified relnames in
constraint error messages.

Alexander Shulgin sent in a patch to add an \errverbose option to psql
to include schema-qualified names in error messages.

Amit Kapila sent in two more revisions of a patch to refactor LWLock
tranches.

Andreas Karlsson sent in another revision of a patch to add COPY
(statement) tab completion to psql.

Amit Kapila sent in another revision of a patch to rename pgproc
variables.

Andreas Karlsson sent in another revision of a patch to improve tab
completion in psql for FDW DDL.

Kyotaro HORIGUCHI sent in another revision of a patch to prepare for
sharing psqlscan with pgbench, change the access method to shell
variables, detach common.c from psqlscan, ensure that pgbench uses a
common frontend SQL parser, and change the way to hold command list.

Ashutosh Bapat sent in another revision of a patch to enable getting
sorted data from foreign server for merge joins.

Ashutosh Bapat sent in a patch to remove duplicate parameter deparser
code from postgres_fdw.

Craig Ringer sent in another revision of a patch to implement
pg_logical_output.

Marisa Emerson sent in two revisions of a patch to add support for BSD
authentication, used on OpenBSD.

Etsuro Fujita sent in a patch to fix an issue with updating foreign
tables.

Peter Geoghegan sent in another revision of a patch to generalize
SortSupport for text.

Konstantin Knizhnik sent in two revisions of a patch to optimize LIMIT
clauses.

Craig Ringer sent in another revision of a patch to implement
pglogical.

David Rowley sent in another revision of a patch to implement
combining aggregates.

Ashutosh Bapat sent in a patch to fix some infelicities in FDW join
pushdown and scanclauses.

Álvaro Herrera sent in another revision of a patch to allow cataloging
NOT NULL constraints.

Tomas Vondra sent in another revision of a patch to extend the
HyperLogLog API.

Stas Kelvich and Simon Riggs traded patches to speed up two-phase
transactions.

Peter Geoghegan sent in a patch to fix some misspellings in
nodeGather.c and controldata.c.

Michael Paquier sent in another revision of a patch to fix some issues
with Cygwin.

Peter Eisentraut sent in a patch to fix some odd bugs in psql's tab
completion of CREATE INDEX.

Christian Ullrich sent in another revision of a patch to fix an SSPI
auth bug.

Christian Ullrich sent in a patch to close a handle leak in SSPI auth.