Обсуждение: == PostgreSQL Weekly News - July 12 2015 ==

Поиск
Список
Период
Сортировка

== PostgreSQL Weekly News - July 12 2015 ==

От
David Fetter
Дата:
== PostgreSQL Weekly News - July 12 2015 ==

PGDay.IT 2015 will take place in Prato on October 23, 2015. The
International Call For Papers is open until August 8.
http://pgday.it

The second official Russian PostgreSQL conference will be held on July
15-17, 2015 in St. Petersburg, Russia.  A PostgreSQLRussia meetup for
new users will be held July 17, same venue.
http://PgDay.ru
http://PostgreSQLRussia.org

Rubens Souza from 2ndQuadrant Italia will lead a meetup on "How to
install PostgreSQL on a Raspberry PI" on Thursday, July 23 in Prato.
http://goo.gl/YYpsy7

== PostgreSQL Product News ==

Pervasync 6.0.2, a synchronization framework that supports PosrgreSQL,
released.
http://www.pervasync.com

pgBadger 7.1, a parallel PostgreSQL log analyzer written in Perl, released:
http://dalibo.github.io/pgbadger/
Development:
https://github.com/dalibo/pgbadger/

PipelineDB 0.7.7, an open-source, relational streaming-SQL database
based on PostgreSQL, released.
http://www.pipelinedb.com/

== PostgreSQL Jobs for July ==

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

== PostgreSQL Local ==

PGDay Campinas 2015 will take place in Campinas on August 7.
http://pgdaycampinas.com.br/english/

PostgresOpen 2015 will being held in Dallas, Texas September 16-18.
http://2015.postgresopen.org/

PostgreSQL Session #7, will be held September 24th, 2015 in Paris,
France,
http://www.postgresql-sessions.org/7/about

PostgreSQL Conference Europe 2015 will be held on October 27-30 in the
Vienna Marriott Hotel, in Vienna, Austria.  The CfP is open until
August 7.
http://2015.pgconf.eu/

PGConf Silicon Valley 2015 is November 17-18 at the South San
Francisco Convention Center.
http://www.pgconfsv.com

PGBR2015 (The Brazilian PostgreSQL Conference) will take place in Porto
Alegre, Rio Grande do Sul, on November 18, 19 and 20.
The CfP is open through July 15.
http://pgbr.postgresql.org.br/2015/en/#call-for-papers

PostgreSQL Conference Europe 2015 will be held on October 27-30 in the
Vienna Marriott Hotel, in Vienna, Austria.  The CfP is open until
August 7.
http://2015.pgconf.eu/

== 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 ==

Andres Freund pushed:

- Fix logical decoding bug leading to inefficient reopening of files.
  When spilling transaction data to disk a simple typo caused the
  output file to be closed and reopened for every serialized change.
  That happens to not have a huge impact on linux, which is why it
  probably wasn't noticed so far, but on windows that appears to
  trigger actual disk writes after every change. Not fun.  The bug
  fortunately does not have any impact besides speed. A change could
  end up being in the wrong segment (last instead of next), but since
  we read all files to the end, that's just ugly, not really
  problematic. It's not a problem to upgrade, since transaction spill
  files do not persist across restarts.  Bug: #13484 Reported-By:
  Olivier Gosseaume Discussion:
  20150703090217.1190.63940@wrigleys.postgresql.org Backpatch to 9.4,
  where logical decoding was added.
  http://git.postgresql.org/pg/commitdiff/b2f6f749c7a5936adbb555e248e8e4df35c00a4a

- Fix pg_recvlogical not to fsync output when it's a tty or pipe.  The
  previous coding tried to handle possible failures when fsyncing a
  tty or pipe fd by accepting EINVAL - but apparently some platforms
  (windows, OSX) don't reliably return that. So instead check whether
  the output fd refers to a pipe or a tty when opening it.
  Reported-By: Olivier Gosseaume, Marko Tiikkaja Discussion:
  559AF98B.3050901@joh.to Backpatch to 9.4, where pg_recvlogical was
  added.
  http://git.postgresql.org/pg/commitdiff/5c0de384d2ceceb07e77e1368e07868244be6762

- Add psql PROMPT variable showing the pid of the connected to
  backend.  The substitution for the pid is %p.  Author: Julien
  Rouhaud Discussion:
  116262CF971C844FB6E793F8809B51C6E99D48@BPXM02GP.gisp.nec.co.jp
  http://git.postgresql.org/pg/commitdiff/275f05c990c46f8dfe3cb46a3279521bda9e9e27

- Refer to %p in the psql docs as 'process ID' not 'pid'.  Per Tom
  Lane.
  http://git.postgresql.org/pg/commitdiff/4af04f96bc9f604a57bf829469b26d8513fd6401

- Optionally don't error out due to preexisting slots in commandline
  utilities.  pg_receivexlog and pg_recvlogical error out when
  --create-slot is specified and a slot with the same name already
  exists. In some cases, especially with pg_receivexlog, that's rather
  annoying and requires additional scripting.  Backpatch to 9.5 as
  slot control functions have newly been added to pg_receivexlog, and
  there doesn't seem much point leaving it in a less useful state.
  Discussion: 20150619144755.GG29350@alap3.anarazel.de
  http://git.postgresql.org/pg/commitdiff/ff27db5dd2fc096d89d3f995d3f650ec6d3bc147

- For consistency add a pfree to ON CONFLICT set_plan_refs code.
  Backpatch to 9.5 where ON CONFLICT was introduced.  Author: Peter
  Geoghegan
  http://git.postgresql.org/pg/commitdiff/3ed26e5f87a90bedaa3d7feb9e197e0d9f3fb252

Fujii Masao pushed:

- Add tab-completion for psql meta-commands.  Based on the original
  code from David Christensen, modified by me.
  http://git.postgresql.org/pg/commitdiff/c81c956477c270c4dd816c2f659743ebcae02b77

- Fix incorrect path in pg_regress log messages.  Back-patch to 9.5
  where the bug was introduced.  David Christensen
  http://git.postgresql.org/pg/commitdiff/61fc420b5710036f3124a44c26a3664a9cc7cdcf

- Make wal_compression PGC_SUSET rather than PGC_USERSET.  When
  enabling wal_compression, there is a risk to leak data similarly to
  the BREACH and CRIME attacks on SSL where the compression ratio of a
  full page image gives a hint of what is the existing data of this
  page.  This vulnerability is quite cumbersome to exploit in
  practice, but doable.  So this patch makes wal_compression PGC_SUSET
  in order to prevent non-superusers from enabling it and exploiting
  the vulnerability while DBA thinks the risk very seriously and
  disables it in postgresql.conf.  Back-patch to 9.5 where
  wal_compression was introduced.
  http://git.postgresql.org/pg/commitdiff/c2e5f4d1c16faa84a19906706481cf149769f320

- Fix obsolete comment regarding NOTICE message level.  By default
  NOTICE message is not sent to server log because the default value
  of log_min_messages is WARNING since 8.4.  Pavel Stehule
  http://git.postgresql.org/pg/commitdiff/6ba365aa4621b0e4c4c0920cbdf56348875a46a2

Heikki Linnakangas pushed:

- Improve handling of out-of-memory in libpq.  If an allocation fails
  in the main message handling loop, pqParseInput3 or pqParseInput2,
  it should not be treated as "not enough data available yet".
  Otherwise libpq will wait indefinitely for more data to arrive from
  the server, and gets stuck forever.  This isn't a complete fix -
  getParamDescriptions and getCopyStart still have the same issue, but
  it's a step in the right direction.  Michael Paquier and me.
  Backpatch to all supported versions.
  http://git.postgresql.org/pg/commitdiff/414bef30bfab20451e15fe799642b52166db8c34

- Move pthread-tests earlier in the autoconf script.  On some Linux
  systems, "-lrt" exposed pthread-functions, so that linking with -lrt
  was seemingly enough to make a program that uses pthreads to work.
  However, when linking libpq, the dependency to libpthread was not
  marked correctly, so that when an executable was linked with -lpq
  but without -pthread, you got errors about undefined pthread_*
  functions from libpq.  To fix, test for the flags required to use
  pthreads earlier in the autoconf script, before checking any other
  libraries.  This should fix the failure on buildfarm member
  shearwater. gharial is also failing; hopefully this fixes that too
  although the failure looks somewhat different.
  http://git.postgresql.org/pg/commitdiff/3b14a17c8e60e8ae9227b9533667743508056c35

- Use AS_IF rather than plain shell "if" in pthread-check.  Autoconf
  generates additional code for the first AC_CHECK_HEADERS call in the
  script. If the first call is within an if-block, the additional code
  is put inside the if-block too, even though it is needed by
  subsequent AC_CHECK_HEADERS checks and should always be executed.
  When I moved the pthread-related checks earlier in the script, the
  pthread.h test inside the block became the very first
  AC_CHECK_HEADERS call in the script, triggering that problem.  To
  fix, use AS_IF instead of plain shell if. AS_IF knows about that
  issue, and makes sure the additional code is always executed. To be
  completely safe from this issue (and others), we should always be
  using AS_IF instead of plain if, but that seems like excessive
  caution given that this is the first time we have trouble like this.
  Plain if-then is more readable than AS_IF.  This should fix
  compilation with --disable-thread-safety, and hopefully the
  buildfarm failure on forgmouth, related to mingw standard headers,
  too.  I backpatched the previous fixes to 9.5, but it's starting to
  look like these changes are too fiddly to backpatch, so commit this
  to master only, and revert all the pthread-related configure changes
  in 9.5.
  http://git.postgresql.org/pg/commitdiff/01051a9879fcd353eaf0d3788a911e774b52798c

- Improve logging of TAP tests.  Create a log file for each test run.
  Stdout and stderr of the test script, as well as any subprocesses
  run as part of the test, are redirected to the log file. This makes
  it a lot easier to debug test failures. Also print the test output
  (ok 12 - ... messages) to the log file, and the command line of any
  external programs executed with the system_or_bail and run_log
  functions. This makes it a lot easier to debug failing tests.
  Modify some of the pg_ctl and other command invocations to not use
  'silent' or 'quiet' options, and don't redirect output to /dev/null,
  so that you get all the information in the log instead.  In the
  passing, construct some command lines in a way that works if
  $tempdir contains quote-characters. I haven't systematically gone
  through all of them or tested that, so I don't know if this is
  enough to make that work.  pg_rewind tests had a custom mechanism
  for creating a similar log file. Use the new generic facility
  instead.  Michael Paquier and me.
  http://git.postgresql.org/pg/commitdiff/1ea06203b82b98b5098808667f6ba652181ef5b2

- Fix another broken link in documentation.  Tom fixed another one of
  these in commit 7f32dbcd, but there was another almost identical one
  in libpq docs. Per his comment: HP's web server has apparently
  become case-sensitive sometime recently.  Per bug #13479 from Daniel
  Abraham.  Corrected link identified by Alvaro.
  http://git.postgresql.org/pg/commitdiff/aaec6a6d37b664199fd7744b976a7dc912ae000a

- Use --debug flag in "remote" pg_rewind regression tests.  Gives more
  information in the log, to debug possible failures.
  http://git.postgresql.org/pg/commitdiff/23b8928829038ef3fba5a04e4f2707c6034464c4

- Replace our hacked version of ax_pthread.m4 with latest upstream
  version.  Our version was different from the upstream version in
  that we tried to use all possible pthread-related flags that the
  compiler accepts, rather than just the first one that works. That
  change was made in commit e48322a6d6cfce1ec52ab303441df329ddbc04d1,
  to work-around a bug affecting GCC versions 3.2 and below
  (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=8888), although we
  didn't realize that it was a GCC bug at the time. We hardly care
  about that old GCC versions anymore, so we no longer need that
  workaround.  This fixes the macro for compilers that print warnings
  with the chosen flags. That's pretty annoying on its own right, but
  it also inconspicuously disabled thread-safety, because we refused
  to use any pthread-related flags if the compiler produced warnings.
  Max Filippov reported that problem when linking with uClibc and
  OpenSSL. The warnings-check was added because the workaround for the
  GCC bug caused warnings otherwise, so it's no longer needed either.
  We can just use the upstream version as is.  If you really want to
  compile with GCC version 3.2 or older, you can still work-around it
  manually by setting PTHREAD_CFLAGS="-pthread -lpthread" manually on
  the configure command line.  Backpatch to 9.5. I don't want to
  unnecessarily rock the boat on stable branches, but 9.5 seems like
  fair game.
  http://git.postgresql.org/pg/commitdiff/e97af6c8bfc80d084bca5bf41f036de944b63efe

- Copy-edit the docs changes of OWNER TO CURRENT/SESSION_USER
  additions.  Commit 31eae602 added new syntax to many DDL commands to
  use CURRENT_USER or SESSION_USER instead of role name in ALTER ...
  OWNER TO, but because of a misplaced '{', the syntax in the docs
  implied that the syntax was "ALTER ... CURRENT_USER", instead of
  "ALTER ... OWNER TO CURRENT_USER".  Fix that, and also the funny
  indentation in some of the modified syntax blurps.
  http://git.postgresql.org/pg/commitdiff/cba045b0bd25285242936fd678bc443bfd0d5b83

Tom Lane pushed:

- Fix portability issue in pg_upgrade test script: avoid $PWD.
  SUSv2-era shells don't set the PWD variable, though anything more
  modern does.  In the buildfarm environment this could lead to
  test.sh executing with PWD pointing to $HOME or another high-level
  directory, so that there were conflicts between concurrent
  executions of the test in different branch subdirectories.  This
  appears to be the explanation for recent intermittent failures on
  buildfarm members binturong and dingo (and might well have something
  to do with the buildfarm script's failure to capture log files from
  pg_upgrade tests, too).  To fix, just use `pwd` in place of $PWD.
  AFAICS test.sh is the only place in our source tree that depended on
  $PWD.  Back-patch to all versions containing this script.  Per
  buildfarm.  Thanks to Oskari Saarenmaa for diagnosing the problem.
  http://git.postgresql.org/pg/commitdiff/9a8f58331067e18a5dc10670e687f21ae6a2172e

- Fix postmaster's handling of a startup-process crash.  Ordinarily, a
  failure (unexpected exit status) of the startup subprocess should be
  considered fatal, so the postmaster should just close up shop and
  quit.  However, if we sent the startup process a SIGQUIT or SIGKILL
  signal, the failure is hardly "unexpected", and we should attempt
  restart; this is necessary for recovery from ordinary backend
  crashes in hot-standby scenarios.  I attempted to implement the
  latter rule with a two-line patch in commit
  442231d7f71764b8c628044e7ce2225f9aa43b67, but it now emerges that
  that patch was a few bricks shy of a load: it failed to distinguish
  the case of a signaled startup process from the case where the new
  startup process crashes before reaching database consistency.  That
  resulted in infinitely respawning a new startup process only to have
  it crash again.  To handle this properly, we really must track
  whether we have sent the *current* startup process a kill signal.
  Rather than add yet another ad-hoc boolean to the postmaster's
  state, I chose to unify this with the existing RecoveryError flag
  into an enum tracking the startup process's state.  That seems more
  consistent with the postmaster's general state machine design.
  Back-patch to 9.0, like the previous patch.
  http://git.postgresql.org/pg/commitdiff/45811be94e8539190b5e1a4f2cbdfef97fa391b5

- Improve documentation about array concat operator vs. underlying
  functions.  The documentation implied that there was seldom any
  reason to use the array_append, array_prepend, and array_cat
  functions directly.  But that's not really true, because they can
  help make it clear which case is meant, which the || operator can't
  do since it's overloaded to represent all three cases.  Add some
  discussion and examples illustrating the potentially confusing
  behavior that can ensue if the parser misinterprets what was meant.
  Per a complaint from Michael Herold.  Back-patch to 9.2, which is
  where || started to behave this way.
  http://git.postgresql.org/pg/commitdiff/e4f29ce32391525629c75aade86f2f939956c69c

- Add now-required #include.  Fixes compiler warning induced by
  808ea8fc7bb259ddd810353719cac66e85a608c8.
  http://git.postgresql.org/pg/commitdiff/0a0fe2ff6ef65e3a1cf4d83d96eab144477a0220

- Fix assorted memory leaks.  Per Coverity (not that any of these are
  so non-obvious that they should not have been caught before commit).
  The extent of leakage is probably minor to unnoticeable, but a leak
  is a leak.  Back-patch as necessary.  Michael Paquier
  http://git.postgresql.org/pg/commitdiff/bcc87b6b00de5b36984e0b43a78a8377a3577548

Joe Conway pushed:

- Improve regression test coverage of table lock modes vs permissions.
  Test the interactions with permissions and LOCK TABLE. Specifically
  ROW EXCLUSIVE, ACCESS SHARE, and ACCESS EXCLUSIVE modes against
  SELECT, INSERT, UPDATE, DELETE, and TRUNCATE permissions. Discussed
  by Stephen Frost and Michael Paquier, patch by the latter. Backpatch
  to 9.5 where matching behavior was first committed.
  http://git.postgresql.org/pg/commitdiff/e66a45344ff33d64aa6ff50673ff9fe8577ea6db

- Add assign_expr_collations() to CreatePolicy() and AlterPolicy().
  As noted by Noah Misch, CreatePolicy() and AlterPolicy() omit to
  call assign_expr_collations() on the node trees. Fix the omission
  and add his test case to the rowsecurity regression test.
  http://git.postgresql.org/pg/commitdiff/808ea8fc7bb259ddd810353719cac66e85a608c8

Noah Misch pushed:

- Given a gcc-compatible xlc compiler, prefer xlc-style atomics.  This
  evades a ppc64le "IBM XL C/C++ for Linux" compiler bug.  Back-patch
  to 9.5, where the atomics facility was introduced.
  http://git.postgresql.org/pg/commitdiff/1e700e0fa02b3fd8990d4eaa8bd51b9352cc9736

- Replace use of "diff -q".  POSIX does not specify the -q option, and
  many implementations do not offer it.  Don't bother changing the
  MSVC build system, because having non-GNU diff on Windows is
  vanishingly unlikely.  Back-patch to 9.2, where this invocation was
  introduced.
  http://git.postgresql.org/pg/commitdiff/b28244abe58382be980d9b9577276c0700dd2cbc

- Fix null pointer dereference in "\c" psql command.  The psql crash
  happened when no current connection existed.  (The second new check
  is optional given today's undocumented NULL argument handling in
  PQhost() etc.)  Back-patch to 9.0 (all supported versions).
  http://git.postgresql.org/pg/commitdiff/e135c3d99f4fcb03efa7b0b64445853ee2a74857

- Link pg_stat_statements with libm.  The AIX 7.1 libm is static, and
  AIX postgres executables do not export symbols acquired from
  libraries.  Back-patch to 9.5, where commit
  cfe12763c32437bc708a64ce88a90c7544f16185 added a sqrt() call.
  http://git.postgresql.org/pg/commitdiff/0689cfc34b09136b9daee9c60c85fbed21b62370

- Add .gitignore entries for AIX-specific intermediate build
  artifacts.
  http://git.postgresql.org/pg/commitdiff/bfb4cf12abc14a99b29c9c3f768b0c7f568c262d

- Finish generic-xlc.h draft atomics implementation.  Back-patch to
  9.5, where commit b64d92f1a5602c55ee8b27a7ac474f03b7aee340
  introduced this file.
  http://git.postgresql.org/pg/commitdiff/0d32d2e693ed69b3080be91f734c547f703b49ad

- Revoke support for strxfrm() that write past the specified array
  length.  This formalizes a decision implicit in commit
  4ea51cdfe85ceef8afabceb03c446574daa0ac23 and adds clean detection of
  affected systems.  Vendor updates are available for each such known
  bug.  Back-patch to 9.5, where the aforementioned commit first
  appeared.
  http://git.postgresql.org/pg/commitdiff/be8b06c364db315258fb074e9bfbf5db04ab2c5f

Bruce Momjian pushed:

- doc:  fix typo in CREATE POLICY manual page.  Backpatch through 9.5
  http://git.postgresql.org/pg/commitdiff/57057e2124730b4663a02391369f0ac979791e32

== Rejected Patches (for now) ==

No one was disappointed this week :-)

== Pending Patches ==

Pavel Stehule sent in another revision of a patch to allow raw output
from COPY in libpq.

Ashutosh Bapat sent in a patch to set up a notification channels for
background workers, which can among other things spawn other
background workers.

Julien Rouhaud sent in another revision of a patch to add an
auto_explain sample ratio parameter.

Gurjeet Singh sent in a patch to add SlotIsPhyscial/SlotIsLogical
macros and add a boolean for whether immediately to reserve an LSN for
CREATE_REPLICATION_SLOT ... PHYSICAL.

David Rowley sent in another revision of a patch to improve
performance for joins where outer side is unique.

Michael Paquier sent in another revision of a patch to add a TAP test
for pg_dump checking data dump of extension tables.

Pavel Stehule and Merlin Moncure traded patches to add a
client_min_messages_context GUC.

SAWADA Masahiko sent in four more revisions of a patch to a "frozen"
bit to the visibility map.

Marko Tiikkaja sent in two revisions of a patch to expose
confirmed_flush in pg_stat_replication_slots.

Pavel Stehule sent in a patch to allow tab completing boolean and enum
variables if no specific tab completion already exists.

Amit Langote sent in a patch to correct some comments in predtest.c.

Satoshi Nagayasu sent in a patch to expose the log_disconnections GUC
variable outside postgres.c.

Ildus Kurbangaliev sent in a patch to help monitor waits.

David Rowley sent in another revision of a patch to allow an
aggregate's state to be shared among other aggregate functions when
both aggregate's transition functions (and a few other things) match.

Ashutosh Bapat sent in a patch to create a transaction manager for
FDWs.

Michael Paquier sent in another revision of a patch to support TAP
tests with MSVC and Windows.

Stephen Frost sent in a patch to help secure copy.c handling for RLS.

Alexander Korotkov and Michael Paquier traded patches to add a
fillfactor for GIN indexes.

Kyotaro HORIGUCHI sent in a flock of patches implementing asynchronous
execution on FDWs.

Etsuro Fujita sent in a patch to modify create_foreignscan_plan so
that it detects whether any system columns are requested if scanning a
base relation.

Heikki Linnakangas sent in another revision of a patch to add some
functionality to ALTER OPERATOR.

Peter Geoghegan sent in a patch to reuse abbreviated keys during
second pass of ordered [set] aggregates.

Jeff Davis sent in another revision of a patch to implement memory
accounting for hash aggregates.

Tomas Vondra sent in a patch to enable index-only scans with partial
indexes.

Joe Conway sent in a patch to fix some infelicities in the interaction
between RLS and collations.

Pavel Stehule and Alexander Shulgin traded patches to add generalized
JSON output functions.

Michael Paquier sent in two more revisions of a patch to remove SSL
renegotiation.

Michael Paquier sent in a patch to fix some memory leaks.