== PostgreSQL Weekly News - September 15, 2019 ==

Поиск
Список
Период
Сортировка
От David Fetter
Тема == PostgreSQL Weekly News - September 15, 2019 ==
Дата
Msg-id 20190915222829.GA23074@fetter.org
обсуждение исходный текст
Список pgsql-announce
== PostgreSQL Weekly News - September 15, 2019 ==

PostgreSQL 12 Beta 4 released.  Test!
https://www.postgresql.org/about/news/1972

PGConf India 2020 will be on February 26-28, 2020 in Bengaluru, Karnataka. The
CfP is open until  November 15, 2019.
http://pgconf.in/

PGDay Down Under 2019 will be held on December 15, 2019 in Sydney,
Australia. The CfP is open until 5pm AEST AEST on October 5th, 2019.
https://pgdu.org/

== PostgreSQL Product News ==

Pgpool-II 4.1 beta1 released.
https://www.pgpool.net/docs/41/en/html/

pgcrockford, a Crockford Base 32 encoding for unsigned ints, released.
https://github.com/grzm/pgcrockford

== PostgreSQL Jobs for September ==

http://archives.postgresql.org/pgsql-jobs/2019-09/

== PostgreSQL Local ==

PostgresConf South Africa 2019 will take place in Johannesburg on October 8-9, 2019
https://postgresconf.org/conferences/SouthAfrica2019

PostgreSQL Conference Europe 2019 will be held on October 15-18, 2019 in Milan,
Italy.
https://2019.pgconf.eu/

2Q PGConf 2019 will be held December 4 & 5 in Chicago.
The CFP is open through August 30, 2019.
https://www.2qpgconf.com/

pgDay Paris 2020 will be held in Paris, France on March 26, 2020
at Espace Saint-Martin.
http://2020.pgday.paris/

Nordic PGDay 2020 will be held in Helsinki, Finland at the Hilton Helsinki
Strand Hotel on March 24, 2020.  The CfP is open through December 31, 2019 at
https://2020.nordicpgday.org/cfp/

PGConf India 2020 will be on February 26-28, 2020 in Bengaluru, Karnataka.
http://pgconf.in/

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

Alexander Korotkov pushed:

- Fix handling Inf and Nan values in GiST pairing heap comparator. Previously
  plain float comparison was used in GiST pairing heap.  Such comparison doesn't
  provide proper ordering for value sets containing Inf and Nan values.  This
  commit fixes that by usage of float8_cmp_internal().  Note, there is remaining
  problem with NULL distances, which are represented as Inf in pairing heap.  It
  would be fixes in subsequent commit.  Backpatch to all supported versions.
  Reported-by: Andrey Borodin Discussion:
  https://postgr.es/m/CAPpHfdsNvNdA0DBS%2BwMpFrgwT6C3-q50sFVGLSiuWnV3FqOJuQ%40mail.gmail.com
  Author: Alexander Korotkov Reviewed-by: Heikki Linnakangas Backpatch-through:
  9.4
  https://git.postgresql.org/pg/commitdiff/e5d8f3596100da0d38a38513c69e803b7fe7041a

- Fix handling of NULL distances in KNN-GiST. In order to implement NULL LAST
  semantic GiST previously assumed distance to the NULL value to be Inf.
  However, our distance functions can return Inf and NaN for non-null values.
  In such cases, NULL LAST semantic appears to be broken.  This commit fixes
  that by introducing separate array of null flags for distances.  Backpatch to
  all supported versions.  Discussion:
  https://postgr.es/m/CAPpHfdsNvNdA0DBS%2BwMpFrgwT6C3-q50sFVGLSiuWnV3FqOJuQ%40mail.gmail.com
  Author: Alexander Korotkov Backpatch-through: 9.4
  https://git.postgresql.org/pg/commitdiff/02f90879e75b3d4ccdba1ec7c3cad6af08dff77d

- Fix handling of non-key columns get_index_column_opclass(). f2e40380
  introduces support of non-key attributes in GiST indexes.  Then if
  get_index_column_opclass() is asked by gistproperty() to get an opclass of
  non-key column, it returns garbage past oidvector value.  This commit fixes
  that by making get_index_column_opclass() return InvalidOid in this case.
  Discussion: https://postgr.es/m/20190902231948.GA5343%40alvherre.pgsql Author:
  Nikita Glukhov, Alexander Korotkov Backpatch-through: 12
  https://git.postgresql.org/pg/commitdiff/7e04160390464cd39690d36054e0ac5e4f1bf227

- Documentation improvements to jsonpath. Besides cosmetic improvements it
  removes statement that operators necessary need to be separated from operands
  with spaces, which is not really true.  Discussion:
  https://postgr.es/m/CAEkD-mDUZrRE%3Dk-FznEg4Ed2VdjpZCyHoyo%2Bp0%2B8KvHqR%3DpNVQ%40mail.gmail.com
  Author: Liudmila Mantrova, Alexander Lakhin Reviewed-by: Alexander Korotkov,
  Alvaro Herrera Backpatch-through: 12
  https://git.postgresql.org/pg/commitdiff/c30fc9ddd596f7981555318d1c236fc55279cac8

- Typo fixes for documentation. Discussion:
  https://postgr.es/m/CAEkD-mDUZrRE%3Dk-FznEg4Ed2VdjpZCyHoyo%2Bp0%2B8KvHqR%3DpNVQ%40mail.gmail.com
  Author: Liudmila Mantrova, Alexander Lakhin Reviewed-by: Alexander Korotkov,
  Alvaro Herrera Backpatch-through: 12
  https://git.postgresql.org/pg/commitdiff/eb57bd9c1d83a20eaff559a53b2f584dcd0668a8

Tom Lane pushed:

- Fix RelationIdGetRelation calls that weren't bothering with error checks. Some
  of these are quite old, but that doesn't make them not bugs. We'd rather
  report a failure via elog than SIGSEGV.  While at it, uniformly spell the
  error check as !RelationIsValid(rel) rather than a bare rel == NULL test.  The
  machine code is the same but it seems better to be consistent.  Coverity
  complained about this today, not sure why, because the mistake is in fact old.
  https://git.postgresql.org/pg/commitdiff/1192e3fb54ce57f57399490d70af617ebc12605c

- Be more careful about port selection in src/test/ldap/. Don't just assume that
  the next port is free; it might not be, or if we're really unlucky it might
  even be out of the TCP range. Do it honestly with two get_free_port() calls
  instead.  This is surely a pretty low-probability problem, but I think it
  explains a buildfarm failure seen today, so let's fix it.  Back-patch to v11
  where this script was added.  Discussion:
  https://postgr.es/m/25124.1568052346@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/3146f5257f16d34c95163974f42a13d99141b977

- Reduce overhead of scanning the backend[] array in LISTEN/NOTIFY. Up to now,
  async.c scanned its whole array of per-backend state whenever it needed to
  find listening backends.  That's expensive if MaxBackends is large, so extend
  the data structure with list links that thread the active entries together.  A
  downside of this change is that asyncQueueUnregister (unregister a listening
  backend at backend exit) now requires exclusive not shared lock, and it can
  take awhile if there are many other listening backends.  We could improve the
  latter issue by using a doubly- not singly-linked list, but it's probably not
  worth the storage space; typical usage patterns for LISTEN/NOTIFY have fairly
  long-lived listeners.  In return for that, Exec_ListenPreCommit (initially
  register a listening backend), SignalBackends, and asyncQueueAdvanceTail get
  significantly faster when MaxBackends is much larger than the number of
  listening backends.  If most of the potential backend slots are listening, we
  don't win, but that's a case where the actual interprocess-signal overhead is
  going to swamp these considerations anyway.  Martijn van Oosterhout, hacked a
  bit more by me  Discussion:
  https://postgr.es/m/CADWG95vtRBFDdrx1JdT1_9nhOFw48KaeTev6F_LtDQAFVpSPhA@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/bca6e64354a2b8ed56751eb12bbf9429490c0811

- Rearrange postmaster's startup sequence for better syslogger results. This is
  a second try at what commit 57431a911 tried to do, namely, launch the
  syslogger before we open postmaster sockets so that our messages about the
  sockets end up in the syslogger files.  That commit fell foul of a bunch of
  subtle issues caused by trying to launch a postmaster child process before
  creating shared memory. Rather than messing with that interaction, let's
  postpone opening the sockets till after we launch the syslogger.  This would
  not have been terribly safe before commit 7de19fbc0, because we relied on
  socket opening to detect whether any competing postmasters were using the same
  port number.  But now that we choose IPC keys without regard to the port
  number, there's no interaction to worry about.  Also delay creation of the
  external PID file (if requested) till after the sockets are open, since
  external code could plausibly be relying on that ordering of events.  And
  postpone most of the work of RemovePgTempFiles() so that that potentially-slow
  processing still happens after we make the external PID file.  We have to be a
  bit careful about that last though: as noted in the discussion subsequent to
  bug #15804, EXEC_BACKEND builds still have to clear the parameter-file temp
  dir before launching the syslogger.  Patch by me; thanks to Michael Paquier
  for review/testing.  Discussion:
  https://postgr.es/m/15804-3721117bf40fb654@postgresql.org
  https://git.postgresql.org/pg/commitdiff/9a86f03b4e8c8f16eca7faebcb4a46330e431102

- Fix usage of whole-row variables in WCO and RLS policy expressions. Since WITH
  CHECK OPTION was introduced, ExecInitModifyTable has initialized WCO
  expressions with the wrong plan node as parent -- that is, it passed its input
  subplan not the ModifyTable node itself.  Up to now we thought this was
  harmless, but bug #16006 from Vinay Banakar shows it's not: if the input node
  is a SubqueryScan then ExecInitWholeRowVar can get confused into doing the
  wrong thing.  (The fact that ExecInitWholeRowVar contains such logic is
  certainly a horrid kluge that doesn't deserve to live, but figuring out
  another way to do that is a task for some other day.)  Andres had already
  noticed the wrong-parent mistake and fixed it in commit 148e632c0, but not
  being aware of any user-visible consequences, he quite reasonably didn't
  back-patch.  This patch is simply a back-patch of 148e632c0, plus addition of
  a test case based on bug #16006.  I also added the test case to v12/HEAD, even
  though the bug is already fixed there.  Back-patch to all supported branches.
  9.4 lacks RLS policies so the new test case doesn't work there, but I'm pretty
  sure a test could be devised based on using a whole-row Var in a plain WITH
  CHECK OPTION condition.  (I lack the cycles to do so myself, though.)  Andres
  Freund and Tom Lane  Discussion:
  https://postgr.es/m/16006-99290d2e4642cbd5@postgresql.org Discussion:
  https://postgr.es/m/20181205225213.hiwa3kgoxeybqcqv@alap3.anarazel.de
  https://git.postgresql.org/pg/commitdiff/7f1f72c44400e6fef3436b05f1ad0f6bacd03d96

- Make tuplesort_set_bound() assertions more comprehensible, hopefully. Add the
  comments that I griped were missing.  Also re-order tests so that
  parallelism-related tests aren't randomly separated from each other.
  Discussion:
  https://postgr.es/m/CAAaqYe9GD__4Crm=ddz+-XXcNhfY_V5gFYdLdmkFNq=2VHO56Q@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/b360e0fcd7dcffe3238187209911a6f523057b0c

- Fix bogus sizeof calculations. Noted by Coverity.  Typo in 27cc7cd2b, so
  back-patch to v12 as that was.
  https://git.postgresql.org/pg/commitdiff/d8122578098d3ff20a9a12d25807e56cecac673c

Peter Eisentraut pushed:

- Improve new AND CHAIN tests. Tweak the tests so that we're not just testing
  the default setting of transaction_read_only.  Reported-by: fn ln
  <emuser20140816@gmail.com>
  https://git.postgresql.org/pg/commitdiff/89b160c32045dd85cc6f9ae6248e34a72931ac67

Andres Freund pushed:

- Reorder EPQ work, to fix rowmark related bugs and improve efficiency. In
  ad0bda5d24ea I changed the EvalPlanQual machinery to store substitution tuples
  in slot, instead of using plain HeapTuples. The main motivation for that was
  that using HeapTuples will be inefficient for future tableams.  But it turns
  out that that conversion was buggy for non-locking rowmarks - the wrong tuple
  descriptor was used to create the slot.  As a secondary issue 5db6df0c0
  changed ExecLockRows() to begin EPQ earlier, to allow to fetch the locked rows
  directly into the EPQ slots, instead of having to copy tuples around.
  Unfortunately, as Tom complained, that forces some expensive initialization to
  happen earlier.  As a third issue, the test coverage for EPQ was clearly
  insufficient.  Fixing the first issue is unfortunately not trivial: Non-locked
  row marks were fetched at the start of EPQ, and we don't have the type
  information for the rowmarks available at that point. While we could change
  that, it's not easy. It might be worthwhile to change that at some point, but
  to fix this bug, it seems better to delay fetching non-locking rowmarks when
  they're actually needed, rather than eagerly. They're referenced at most once,
  and in cases where EPQ fails, might never be referenced. Fetching them when
  needed also increases locality a bit.  To be able to fetch rowmarks during
  execution, rather than initialization, we need to be able to access the active
  EPQState, as that contains necessary data. To do so move EPQ related data from
  EState to EPQState, and, only for EStates creates as part of EPQ, reference
  the associated EPQState from EState.  To fix the second issue, change EPQ
  initialization to allow use of EvalPlanQualSlot() to be used before
  EvalPlanQualBegin() (but obviously still requiring EvalPlanQualInit() to have
  been done).  As these changes made struct EState harder to understand, e.g. by
  adding multiple EStates, significantly reorder the members, and add a lot more
  comments.  Also add a few more EPQ tests, including one that fails for the
  first issue above. More is needed.  Reported-By: yi huang Author: Andres
  Freund Reviewed-By: Tom Lane Discussion:
  https://postgr.es/m/CAHU7rYZo_C4ULsAx_LAj8az9zqgrD8WDd4hTegDTMM1LMqrBsg@mail.gmail.com
  https://postgr.es/m/24530.1562686693@sss.pgh.pa.us Backpatch: 12-, where the
  EPQ changes were introduced
  https://git.postgresql.org/pg/commitdiff/27cc7cd2bc8a5e8efc8279bc5d2a8ae42fd8ad33

Andrew Dunstan pushed:

- Prevent msys2 conversion of "cmd /c" switch to a file path. Modern versions of
  msys2 have changed the treatment of "cmd /c" so that the runtime will try to
  convert the switch to a native file path. This patch adds a setting to inhibit
  that behaviour.  Discussion:
  https://postgr.es/m/3227042f-cfcc-745a-57dd-fb8c471f8ddf@2ndQuadrant.com
  Backpatch to all live branches.
  https://git.postgresql.org/pg/commitdiff/73ff3a0abbbcb2c623731b88f2d1334bc67e5820

Peter Geoghegan pushed:

- Add _bt_binsrch() scantid assertion to nbtree. Assert that _bt_binsrch()
  binary searches with scantid set in insertion scankey cannot be performed on
  leaf pages.  Leaf-level binary searches where scantid is set must use
  _bt_binsrch_insert() instead.  _bt_binsrch_insert() is likely to have
  additional responsibilities in the future, such as searching within GIN-style
  posting lists using scantid.  It seems like a good idea to tighten things up
  now.
  https://git.postgresql.org/pg/commitdiff/55d015bde05311cbaaf16424e3aa05c37946cd8a

- Remove redundant _bt_truncate() comment paragraph.
  https://git.postgresql.org/pg/commitdiff/1b9becd43ccb7d48243882c021738c60d32c55aa

- Reorder two nbtree.h function prototypes. Make the function prototype order
  consistent with the definition order in nbtinsert.c.
  https://git.postgresql.org/pg/commitdiff/614cdeaa8908f69ab0b97b688e9785147575c01f

- Fix nbtree page split rmgr desc routine. Include newitemoff in rmgr desc
  output for nbtree page split records. In passing, correct an obsolete comment
  that claimed that newitemoff is only logged for _L variant nbtree page split
  WAL records.  Both issues were oversights in commit 2c03216d831, which
  revamped the WAL format.  Author: Peter Geoghegan Backpatch: 9.5-, where the
  WAL format was revamped.
  https://git.postgresql.org/pg/commitdiff/3b6b54f178d7539354064727cca9b4ff2eca0fce

Álvaro Herrera pushed:

- Restructure libpq code to remove some duplicity. There was some duplicate code
  to run SHOW transaction_read_only to determine whether the server is
  read-write or read-only.  Reduce it by adding another state to the state
  machine.  Author: Hari Babu Kommi Reviewed-by: Takayuki Tsunakawa, Álvaro
  Herrera Discussion:
  https://postgr.es/m/CAJrrPGe_qgdbbN+yBgEVpd+YLHXXjTruzk6RmTMhqrFig+32ag@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/b438e7e7a1c58e0c20b5f46e73cbd713e8033c69

- Fix unaccent generation script in Windows. As originally coded, the script
  would fail on Windows 10 and Python 3 because stdout would not be switched to
  UTF-8 only for Python 2.  This patch makes that apply to both versions.  Also
  add python 2 compatibility markers so that we know what to remove once we drop
  support for that.  Also use a "with" clause to ensure file descriptor is
  closed promptly.  Author: Hugh Ranalli, Ramanarayana Reviewed-by: Kyotaro
  Horiguchi Discussion:
  https://postgr.es/m/CAKm4Xs7_61XMyOWmHs3n0mmkS0O4S0pvfWk=7cQ5P0gs177f7A@mail.gmail.com
  Discussion: https://postgr.es/m/15548-cef1b3f8de190d4f@postgresql.org
  https://git.postgresql.org/pg/commitdiff/0afc0a7841889c6221fd47430e72f4fe570833f4

- libpq docs: be clearer about conninfo's 'hostaddr'. The previous wording was a
  bit too terse, too vague on the subject of 'host' and 'hostaddr' in connection
  specifications, which has caused people to waste time trying to conform to
  rules because of misunderstanding the whole thing; this small change should
  make things clearer.  Author: Robert Haas, stemming from Fabien Coelho's
  complaints Discussion:
  https://postgr.es/m/alpine.DEB.2.21.1808201323020.13832@lancre
  https://git.postgresql.org/pg/commitdiff/75f46eaee20c38b2a04f569e8a5fed4f63091bd3

- Merge two assertions to make comment clearer. Authored by Tom Lane, after a
  gripe from James Coleman.  Discussion:
  https://postgr.es/m/CAAaqYe9GD__4Crm=ddz+-XXcNhfY_V5gFYdLdmkFNq=2VHO56Q@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/bc98e1ea64627183746ecffcb957db147038134e

- Fix progress reporting of CLUSTER / VACUUM FULL. The progress state was being
  clobbered once the first index completed being rebuilt, causing the final
  phases of the operation not show anything in the progress view.  This was
  inadvertently broken in 03f9e5cba0ee, which added progress tracking for
  REINDEX.  (The reason this bugfix is this small is that I had already noticed
  this problem when writing monitoring for CREATE INDEX, and had already worked
  around it, as can be seen in discussion starting at
  https://postgr.es/m/20190329150218.GA25010@alvherre.pgsql Fixing the problem
  is just a matter of fixing one place touched by the REINDEX monitoring.)
  Reported by: Álvaro Herrera Author: Álvaro Herrera Discussion:
  https://postgr.es/m/20190801184333.GA21369@alvherre.pgsql
  https://git.postgresql.org/pg/commitdiff/6212276e4343f729b0152e81824f850d1a21d57e

- Fix under-parenthesized macro definitions. Lack of parens in the definitions
  could cause a statement using these macros to have unexpected semantics.  In
  current code no bug is apparent, but best to fix the definitions to avoid
  problems down the line.  Reported-by: Tom Lane Discussion:
  https://postgr.es/m/19795.1568400476@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/ce5d04b6463d9f642e30d1f6abf45846e1255be0

- logical decoding: process ASSIGNMENT during snapshot build. Most WAL records
  are ignored in early SnapBuild snapshot build phases. But it's critical to
  process some of them, so that later messages have the correct transaction
  state after the snapshot is completely built; in particular,
  XLOG_XACT_ASSIGNMENT messages are critical in order for sub-transactions to be
  correctly assigned to their parent transactions, or at least one assert
  misbehaves, as reported by Ildar Musin.  Diagnosed-by: Masahiko Sawada Author:
  Masahiko Sawada Discussion:
  https://postgr.es/m/CAONYFtOv+Er1p3WAuwUsy1zsCFrSYvpHLhapC_fMD-zNaRWxYg@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/bac2fae05c7737530a6fe8276cd27d210d25c6ac

Tomáš Vondra pushed:

- Allow setting statistics target for extended statistics. When building
  statistics, we need to decide how many rows to sample and how accurate the
  resulting statistics should be. Until now, it was not possible to explicitly
  define statistics target for extended statistics objects, the value was always
  computed from the per-attribute targets with a fallback to the system-wide
  default statistics target.  That's a bit inconvenient, as it ties together the
  statistics target set for per-column and extended statistics. In some cases it
  may be useful to require larger sample / higher accuracy for extended statics
  (or the other way around), but with this approach that's not possible.  So
  this commit introduces a new command, allowing to specify statistics target
  for individual extended statistics objects, overriding the value derived from
  per-attribute targets (and the system default).    ALTER STATISTICS stat_name
  SET STATISTICS target_value;  When determining statistics target for an
  extended statistics object we first look at this explicitly set value. When
  this value is -1, we fall back to the old formula, looking at the
  per-attribute targets first and then the system default. This means the
  behavior is backwards compatible with older PostgreSQL releases.  Author:
  Tomas Vondra Discussion:
  https://postgr.es/m/20190618213357.vli3i23vpkset2xd@development Reviewed-by:
  Kirk Jamison, Dean Rasheed
  https://git.postgresql.org/pg/commitdiff/d06215d03b50c264a0f31e335b895ee1b6753e68

Michaël Paquier pushed:

- Expand properly list of TAP tests used for prove in vcregress.pl. Depending on
  the system used, t/*.pl may not be expanded into a list of tests which can be
  consumed by prove when attempting to run TAP tests on a given path.  Fix that
  by using glob() directly in the script, to make sure that a complete list of
  tests is provided.  This has not proved to be an issue with MSVC as the list
  was properly expanded, but it is on Linux with perl's system().  This is
  extracted from a larger patch.  Author: Tom Lane Discussion:
  https://postgr.es/m/6628.1567958876@sss.pgh.pa.us Backpatch-through: 9.4
  https://git.postgresql.org/pg/commitdiff/9d6e1ec5ceed1b7871fc2afd68898f0e876b60b9

- Fix comment in psql's describe.c. Procedures are supported since v11 and \dfp
  can be used since this version, but it was not mentioned as a supported option
  in the description of describeFunctions() which handles \df in psql.
  Extracted from a larger patch.  Author: Fabien Coelho Discussion:
  https://postgr.es/m/alpine.DEB.2.21.1908281618520.28828@lancre
  https://git.postgresql.org/pg/commitdiff/8a0deae8d9b6861265cf4ebf25a9e4385f4c7672

- Improve coverage of psql for backslash commands with \if and \elif. This adds
  tests to cover more code paths to ignore backslash commands in false branches
  when using \if|\elif|\else, and improves the coverage of \elif.  Author:
  Fabien Coelho Discussion:
  https://postgr.es/m/alpine.DEB.2.21.1908281618520.28828@lancre
  https://git.postgresql.org/pg/commitdiff/aafe2762b152ffd4cb839d2a01df6cfcc3c6df6c

- Add to pageinspect function to make t_infomask/t_infomask2 human-readable.
  Flags of t_infomask and t_infomask2 for each tuple are already included in the
  information returned by heap_page_items as integers, and we lacked a way to
  make that information human-readable.  Per discussion, the function includes
  an option which controls if combined flags should be decomposed or not.  The
  default is false, to not decompose combined flags.  The module is bumped to
  version 1.8.  Author: Craig Ringer, Sawada Masahiko Reviewed-by: Peter
  Geoghegan, Robert Haas, Álvaro Herrera, Moon Insung, Amit Kapila, Michael
  Paquier, Tomas Vondra Discussion:
  https://postgr.es/m/CAMsr+YEY7jeaXOb+oX+RhDyOFuTMdmHjGsBxL=igCm03J0go9Q@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/ddbd5d8731619ad3ab47ce325e8605422297a613

Amit Kapila pushed:

- Doc: Update PL/pgSQL sample function in plpgsql.sgml. The example used to
  explain 'Looping Through Query Results' uses pseudo-materialized views.
  Replace it with a more up-to-date example which does the same thing with
  actual materialized views, which have been available since PostgreSQL 9.3.  In
  the passing, change '%' as format specifier instead of '%s' as is used in
  other examples in plpgsql.sgml.  Reported-by: Ian Barwick Author: Ian Barwick
  Reviewed-by: Amit Kapila Backpatch-through: 9.4 Discussion:
  https://postgr.es/m/9a70d393-7904-4918-c97c-649f6d114b6a@2ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/9b3c8f07ff3f7938696723405dc9c7b43dde4252

Fujii Masao pushed:

- Add tab completion for CREATE OR REPLACE in psql. Author: Shenhao Wang
  Discussion:
  https://postgr.es/m/63580B24E208E3429D94153A03C68E0901AA8002D5@G08CNEXMBPEKD02.g08.fujitsu.local
  https://git.postgresql.org/pg/commitdiff/fc16778873d081b07930d642622ee0cf22c3f9b7

Noah Misch pushed:

- Test pg_atomic_fetch_add_ with variable addend and 16-bit edge cases.
  Back-patch to 9.5, which introduced these functions.  Reviewed by Tom Lane.
  Discussion: https://postgr.es/m/20190831071157.GA3251746@rfd.leadboat.com
  https://git.postgresql.org/pg/commitdiff/f380c5190134a4e928bf30a4ff9fec775cdcc692

- Replace xlc __fetch_and_add() with inline asm. PostgreSQL has been unusable
  when built with xlc 13 and newer, which are incompatible with our use of
  __fetch_and_add().  Back-patch to 9.5, which introduced
  pg_atomic_fetch_add_u32().  Reviewed by Tom Lane.  Discussion:
  https://postgr.es/m/20190831071157.GA3251746@rfd.leadboat.com
  https://git.postgresql.org/pg/commitdiff/dd50f1a43290bb3c67e24e808d4d8656e9532c9a

- For all ppc compilers, implement pg_atomic_fetch_add_ with inline asm. This is
  more like how we handle s_lock.h and arch-x86.h.  This does not materially
  affect code generation for gcc 7.2.0 or xlc 13.1.3.  Reviewed by Tom Lane.
  Discussion: https://postgr.es/m/20190831071157.GA3251746@rfd.leadboat.com
  https://git.postgresql.org/pg/commitdiff/e7ff59686eacf5021fb84be921116986c3828d8a

- Revert "For all ppc compilers, implement pg_atomic_fetch_add_ with inline
  asm.". This reverts commit e7ff59686eacf5021fb84be921116986c3828d8a.  It
  defined pg_atomic_fetch_add_u32_impl() without defining
  pg_atomic_compare_exchange_u32_impl(), which is incompatible with
  src/include/port/atomics/fallback.h.  Per buildfarm member prairiedog.
  Discussion: https://postgr.es/m/7517.1568470247@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/87e9fae0696d9e3ff70a1438775ad9f786b854a5

Dean Rasheed pushed:

- Fix intermittent self-test failures caused by the stats_ext test. Commit
  d7f8d26d9 added new tests to the stats_ext regression test that included
  creating a view in the public schema, without realising that the stats_ext
  test runs in the same parallel group as the rules test, which makes doing that
  unsafe.  This led to intermittent failures of the rules test on the buildfarm,
  although I wasn't able to reproduce that locally. Fix by creating the view in
  a different schema.  Tomas Vondra and Dean Rasheed, report and diagnosis by
  Thomas Munro.  Discussion:
  https://postgr.es/m/CA+hUKGKX9hFZrYA7rQzAMRE07L4hziCc-nO_b3taJpiuKyLLxg@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/3d9a3ef5cbfc70bd2802c3f0da3fbc4e5abdf377

== Pending Patches ==

Pavel Stěhule sent in a patch to add a final_spaces setting to psql.

Antonin Houska sent in another revision of a patch to consolidate reading of
xlog pages to a single code path.

Paul Guo sent in another revision of a patch to implement batch inserts for
CTAS and materialized views.

Alexander Korotkov sent in another revision of a patch to implement kNN searches
for B-tree indexes.

Álvaro Herrera sent in two more revisions of a patch to make it possible to
determine via libpq whether a server allows writes.

Konstantin Knizhnik sent in two more revisions of a patch to implement a
built-in connection pooler.

Yuli Khodorkovskiy sent in another revision of a patch to add a MAC for
TRUNCATE.

Kirk Jamison sent in another revision of a patch to speed up truncates of
relation forks.

Jeevan Chalke sent in another revision of a patch to implement incremental
backups.

Michaël Paquier and Fabien COELHO traded patches to unify the str2*int64
functions.

Peter Geoghegan and Anastasia Lubennikova traded patches to add deduplication to
B-trees.

Thomas Munro sent in another revision of a patch to add huge page support for
AIX.

Thomas Munro sent in another revision of a patch to consolidate the code that
makes a sorted array unique.

Thomas Munro sent in another revision of a patch to add a SQL type xid8 to
expose FullTransactionId to users, and introduce xid8 variants of the txid_XXX()
fmgr functions.

Kyotaro HORIGUCHI sent in another revision of a patch to move the callback-call
from ReadPageInternal to XLogReadRecord, move the page-reader out of
XLogReadRecord, remove the readSegNo, readOff, and readLen globals, and make
callers of XLogReadRecord responsible for Xlog read-buffer allocation.

Kyotaro HORIGUCHI sent in another revision of a patch to implement a
shared-memory-based stats collector.

Surafel Temesgen sent in another revision of a patch to implement FETCH FIRST
... WITH TIES.

Noah Misch sent in another revision of a patch to test WAL optimizations.

Binguo Bao sent in another revision of a patch to de-TOAST using an iterator.

Patrick Novotny sent in a patch to move the user options to the end of the
pg_upgrade command.

Álvaro Herrera sent in a patch to fix an issue in the unaccent extension python
script on Windows.

Takayuki Tsunakawa sent in another revision of a patch to ensure that a crash
dump is produced on Windows.

Joe Nelson sent in another revision of a patch to change some instances of atoi
to strtol.

Nikita Glukhov sent in another revision of a patch to introduce opclass
parameters.

Peter Eisentraut sent in a patch to make temp install tests work with macOS SIP.

Álvaro Herrera sent in a patch to fix a bug that manifested as duplicate LSNs in
ReorderBuffer by assigning the subxid to the top-level xid on NEW_CID.

Kyotaro HORIGUCHI sent in a patch to replace SIGQUIT with SIGKILL in the
archiver.

Álvaro Herrera sent in another revision of a patch to fix a delay in PostgreSQL
shutdown caused by logical replication.

Robert Haas sent in a patch to remove AtSubStart_Notify.

Nikita Glukhov sent in two more revisions of a patch to fix a bug in the GiST
paring heap comparator.

Fabien COELHO and Amit Kapila traded patches to make it possible for pgbench to
create partitioned tables.

Martijn van Oosterhout and Tom Lane traded patches to improve the performance of
NOTIFY over many databases.

Daniel Vérité sent in a patch to ensure that ICU's collation gets reported when
ICU is the collation provider.

Álvaro Herrera sent in another revision of a patch to do runtime pruning for
ModifyTable.

Thomas Munro sent in a patch to enable parallel full hash joins.

Asim R P sent in a patch to create a restartpoint when replaying drop database.

Andrey Borodin sent in a patch to do rightlink verification with lock coupling
in amcheck nbtree.

Antonin Houska sent in a patch to ensure that the JSON parser keeps the values
of string tokens.

Álvaro Herrera sent in another revision of a patch to make psql show the results
of multiple commands in one go.

Robert Haas sent in a patch to improve the handling of portals after
(sub)transaction abort.

Fabien COELHO sent in three more revisions of a patch to improve psql's test
coverage.

Sviatoslav Ermilin sent in a patch to close stderr and stdout in syslogger.

Arseny Sher sent in a patch to avoid touching user indexes while they are being
(re)built.

Takayuki Tsunakawa sent in a patch to un-mix-up source and destination slots in
execTuples.c

Amit Khandekar sent in another revision of a patch to implement minimal logical
decoding on standbys.

Álvaro Herrera sent in another revision of a patch to add backtrace support.

James Coleman sent in another revision of a patch to document autovacuum
interruption.

Alexander Korotkov sent in another revision of a patch to write to the
visibility map during CLUSTER/VACUUM FULL.

Nikolay Shaplov sent in another revision of a patch to add an enum relation
type.

James Coleman sent in two revisions of a patch to fix the documentation for
pg_rewind.

Jeff Davis sent in another revision of a patch to add a 'channel_binding' libpq
parameter.

Amit Khandekar sent in another revision of a patch to use the VFD API for log
reporting.

Tomáš Vondra sent in another revision of a patch to implement BRIN multi-range
indexes.

Alexander Korotkov sent in another revision of a patch to add support for the
JSONPATH .datetime() method.

Tattsu Yamada and Masahiko Sawada traded patches to fix the CLUSTER command
progress monitor.

Tom Lane sent in another revision of a patch to ensure that any optional
support function for an opclass should have a soft not hard dependency.

Tomáš Vondra sent in a patch to fix a bug that manifested as "could not open
relation with OID XXXX" while querying pg_views.

David Fetter sent in a patch to make integer outputs more efficient.



В списке pgsql-announce по дате отправления:

Предыдущее
От: "Jonathan S. Katz"
Дата:
Сообщение: PostgreSQL 12 Beta 4 Released!
Следующее
От: Gilles Darold
Дата:
Сообщение: pgBadger 11.1 released