== PostgreSQL Weekly News - January 12, 2020 ==

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

== PostgreSQL Product News ==

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

pgmetrics 1.8, a command-line tool for PostgreSQL metrics, released.
https://pgmetrics.io/

pgAdmin4 4.17, a web- and native GUI control center for PostgreSQL, released.
https://www.pgadmin.org/docs/pgadmin4/dev/release_notes_4_17.html

== PostgreSQL Jobs for January ==

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

== PostgreSQL Local ==

Postgres@CERN will be on January 17, 2020.
https://indico.cern.ch/e/PGCERN2020

PGDay SF will take place on January 21, 2020 at the Swedish American Hall in San
Francisco.
https://2020.pgdaysf.org/

pgDay Israel 2020 will take place on March 19, 2020 in Tel Aviv.
The CfP is open through January 15, 2020.
http://pgday.org.il/

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

Nordic PGDay 2020 will be held in Helsinki, Finland at the Hilton Helsinki
Strand Hotel on March 24, 2020.

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

PostgreSQL@SCaLE is a two day, two track event which takes place on
March 5-6, 2020, at Pasadena Convention Center, as part of SCaLE 18X.
https://www.socallinuxexpo.org/scale/18x/postgresscale

The German-speaking PostgreSQL Conference 2020 will take place on May 15, 2019
in Stuttgart.

PGCon 2019 will take place in Ottawa on May 26-29, 2020.  The CfP is open
through January 19, 2020 at http://www.pgcon.org/2020/papers.php
https://www.pgcon.org/2020/

== 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 Geoghegan pushed:

- Remove redundant incomplete split assertion. The fastpath insert
  optimization's incomplete split flag Assert() is redundant.  We'll reach the
  more general Assert() within _bt_findinsertloc() in all cases. (Besides,
  Assert()'ing that the rightmost page doesn't have the flag set never made much
  sense.)
  https://git.postgresql.org/pg/commitdiff/fc3100112395485f1c65848b273b3235de4aad07

- nbtree: BTREE_[MIN|NOVAC]_VERSION comment tweaks. Author: Peter Geoghegan
  Reviewed-By: Heikki Linnakangas
  https://git.postgresql.org/pg/commitdiff/a0dc3c19ed1cffed6616f8b8b5f21ad7d6830045

- nbtree: Rename BT_HEAP_TID_ATTR. Author: Peter Geoghegan Reviewed-By: Heikki
  Linnakangas
  https://git.postgresql.org/pg/commitdiff/1a4a0329650b0545a54afb3c317aa289fd817f8a

Michaël Paquier pushed:

- Remove support for OpenSSL 0.9.8 and 1.0.0. Support is out of scope from all
  the major vendors for these versions (for example RHEL5 uses a version based
  on 0.9.8, and RHEL6 uses 1.0.1), and it created some extra maintenance work.
  Upstream has stopped support of 0.9.8 in December 2015 and of 1.0.0 in
  February 2016.  Since b1abfec, note that the default SSL protocol version set
  with ssl_min_protocol_version is TLSv1.2, whose support was added in OpenSSL
  1.0.1, so there is no point to enforce ssl_min_protocol_version to TLSv1 in
  the SSL tests.  Author: Michael Paquier Reviewed-by: Daniel Gustafsson, Tom
  Lane Discussion: https://postgr.es/m/20191205083252.GE5064@paquier.xyz
  https://git.postgresql.org/pg/commitdiff/7b283d0e1d1d79bf1c962d790c94d2a53f3bb38a

- Remove dependency to system calls for memory allocation in refint. Failures in
  allocations could lead to crashes with NULL pointer dereferences .  Memory
  context TopMemoryContext is used instead to keep alive the plans allocated in
  the session.  A more specific context could be used here, but this is left for
  later.  Reported-by: Jian Zhang Author: Michael Paquier Reviewed-by: Tom Lane,
  Andres Freund Discussion:
  https://postgr.es/m/16190-70181c803641c3dc@postgresql.org
  https://git.postgresql.org/pg/commitdiff/b0b6196386681383b8f0cb76df4fd35178a7371e

- Revert "Forbid DROP SCHEMA on temporary namespaces". This reverts commit
  a052f6c, following complains from Robert Haas and Tom Lane.  Backpatch down to
  9.4, like the previous commit.  Discussion:
  https://postgr.es/m/CA+TgmobL4npEX5=E5h=5Jm_9mZun3MT39Kq2suJFVeamc9skSQ@mail.gmail.com
  Backpatch-through: 9.4
  https://git.postgresql.org/pg/commitdiff/65192e02441cedd106b6abebe0036fb8cc124fb3

- pgbench: Make more debug messages use common logging API. This is a follow-up
  of 30a3e772, making the output more consistent when using --debug for
  meta-command execution.  Author: Michael Paquier Reviewed-by: Fabien Coelho
  Discussion: https://postgr.es/m/alpine.DEB.2.21.1912241100390.3339@pseudo
  https://git.postgresql.org/pg/commitdiff/39a5f2a94f8a3bcfdb3da7391427a63f8f88b210

- doc: Fix naming of SELinux. Reported-by: Tham Nguyen Discussion:
  https://postgr.es/m/157851402876.29175.12977878383183540468@wrigleys.postgresql.org
  Backpatch-through: 9.4
  https://git.postgresql.org/pg/commitdiff/00b047fa67e9f4428a682bd90d5e6b08d2f8a87b

- Remove incorrect assertion for INSERT in logical replication's publisher. On
  the publisher, it was assumed that an INSERT change cannot happen for a
  relation with no replica identity.  However this is true only for a change
  that needs references to old rows, aka UPDATE or DELETE, so trying to use
  logical replication with a relation that has no replica identity led to an
  assertion failure in the publisher when issuing an INSERT.  This commit
  removes the incorrect assertion, and adds more regression tests to provide
  coverage for relations without replica identity.  Reported-by: Neha Sharma
  Author: Dilip Kumar, Michael Paquier Reviewed-by: Andres Freund Discussion:
  https://postgr.es/m/CANiYTQsL1Hb8_Km08qd32svrqNumXLJeoGo014O7VZymgOhZEA@mail.gmail.com
  Backpatch-through: 10
  https://git.postgresql.org/pg/commitdiff/1088729e84cc382270c592ac8c57c323836f40ca

Peter Eisentraut pushed:

- Have logical replication subscriber fire column triggers. The logical
  replication apply worker did not fire per-column update triggers because the
  updatedCols bitmap in the RTE was not populated. This fixes that.
  Reviewed-by: Euler Taveira <euler@timbira.com.br> Discussion:
  https://www.postgresql.org/message-id/flat/21673e2d-597c-6afe-637e-e8b10425b240%402ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/b9c130a1fdf16cd99afb390c186d19acaea7d132

- pgbench: Use common logging API. Author: Fabien COELHO <coelho@cri.ensmp.fr>
  Reviewed-by: Michael Paquier <michael@paquier.xyz> Reviewed-by: Peter
  Eisentraut <peter.eisentraut@2ndquadrant.com> Discussion:
  https://www.postgresql.org/message-id/flat/alpine.DEB.2.21.1912241100390.3339@pseudo
  https://git.postgresql.org/pg/commitdiff/30a3e772b4013d6593e4141cebd5ebfaff4d71a8

- Remove support for Python older than 2.6. Supporting very old Python versions
  is a maintenance burden, especially with the several variant test files to
  maintain for Python <2.6.  Since we have dropped support for older OpenSSL
  versions in 7b283d0e1d1d79bf1c962d790c94d2a53f3bb38a, RHEL 5 is now
  effectively desupported, and that was also the only mainstream operating
  system still using Python versions before 2.6, so it's a good time to drop
  those as well.  Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion:
  https://www.postgresql.org/message-id/flat/98b69261-298c-13d2-f34d-836fd9c29b21%402ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/37f21ed132d1c5aee88e81fee0a0b7e735673d35

- Modernize Python exception syntax in tests. Change the exception syntax used
  in the tests to use the more current      except Exception as ex:  rather than
  the old      except Exception, ex:  Since support for Python <2.6 has been
  removed, all supported versions now support the new style, and we can save one
  step in the Python 3 compatibility conversion.  Reviewed-by: Tom Lane
  <tgl@sss.pgh.pa.us> Discussion:
  https://www.postgresql.org/message-id/flat/98b69261-298c-13d2-f34d-836fd9c29b21%402ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/45223fd9cefe483daa4af7740f15c004486636eb

- Add support for automatically updating Unicode derived files. We currently
  have several sets of files generated from data provided by Unicode.  These all
  have ad hoc rules and instructions for updating when new Unicode versions
  appear, and it's not done consistently.  This patch centralizes and automates
  the process and makes it part of the release checklist.  The Unicode and CLDR
  versions are specified in Makefile.global.in.  There is a new make target
  "update-unicode" that downloads all the relevant files and runs the generation
  script.  There is also a new script for generating the table of combining
  characters for ucs_wcwidth().  That table is now in a separate include file
  rather than hardcoded into the middle of other code.  This is based on the
  script that was used for generating d8594d123c155aeecd47fc2450f62f5100b2fbf0,
  but the script itself wasn't committed at that time.  Reviewed-by: John Naylor
  <john.naylor@2ndquadrant.com> Discussion:
  https://www.postgresql.org/message-id/flat/c8d05f42-443e-6c23-819b-05b31759a37c@2ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/f85a485f89e2eb38499558c7489f108994410952

- Remove STATUS_FOUND. Replace the solitary use with a bool.  Reviewed-by:
  Michael Paquier <michael@paquier.xyz> Discussion:
  https://www.postgresql.org/message-id/flat/a6f91ead-0ce4-2a34-062b-7ab9813ea308%402ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/c096a804d9dcc46f1a8ebf2742696aca90b2dfcf

- Make lsn argument of walrcv_create_slot() optional. Some callers are not using
  it, so it's wasteful to have to specify it.  Reviewed-by: Masahiko Sawada
  <masahiko.sawada@2ndquadrant.com> Discussion:
  https://www.postgresql.org/message-id/CA+fd4k4BcYrYucNfTnK-CQX3+jsG+PRPEhHAUSo-W4P0Lec57A@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/c67a55da4ea0caa18547fd1533110e9126ba8d47

Tom Lane pushed:

- Add functions min_scale(numeric) and trim_scale(numeric). These allow better
  control of trailing zeroes in numeric values.  Pavel Stehule, based on an old
  proposal of Marko Tiikkaja's; review by Karl Pinc  Discussion:
  https://postgr.es/m/CAFj8pRDjs-navGASeF0Wk74N36YGFJ+v=Ok9_knRa7vDc-qugg@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/20d6225d1656102534a73d9675bc531ff0e5203b

- Reduce the number of GetFlushRecPtr() calls done by walsenders. Since the WAL
  flush position only moves forward, it's safe to cache its previous value
  within each walsender process, and update from shared memory only once we've
  caught up to the previously-seen value. When there are many active walsenders,
  this makes for a very significant reduction in the amount of contention on the
  XLogCtl->info_lck spinlock.  This patch also adjusts the logic so that we
  update our idea of the flush position after processing a WAL record, rather
  than beforehand. This may cause us to realize we're not caught up when the
  preceding coding would've thought that we were, but that seems all to the
  good; it may avoid a useless sleep-and-wakeup cycle.  Back-patch to v12.  The
  contention problem exists in prior branches, but it's much less severe (due to
  inefficiencies elsewhere) so there seems no need to take any risk of
  back-patching further.  Pierre Ducroquet, reviewed by Julien Rouhaud
  Discussion: https://postgr.es/m/2931018.Vxl9zapr77@pierred-pdoc
  https://git.postgresql.org/pg/commitdiff/e369f3708636c66718796fc8269d253432410392

- Clean up management of IP addresses in our SSL tests. Instead of hard-wiring
  the netmask as /32, allow it to be specified where we specify the server
  address.  This will ease changing the test to use IPv6, when/if somebody wants
  to do that.  Also remove the hard-wired pg_hba.conf entries for IPv6
  (::1/128). These have never had any usefulness, because the client side of the
  tests has always explicitly connected to $SERVERHOSTADDR which has always been
  set to IPv4 (127.0.0.1).  All they accomplish is to break the test on
  non-IPv6-supporting hosts, and besides that they violate the express intent of
  the code to minimize the server's range of allowed connections.  This could be
  back-patched, perhaps, but for now I don't see a need to.  Discussion:
  https://postgr.es/m/1899.1578356089@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/2bd0735b954b14dcfab85d57fc4a0c7f9826fbb1

- Fix handling of generated columns in ALTER TABLE. ALTER TABLE failed if a
  column referenced in a GENERATED expression had been added or changed in type
  earlier in the ALTER command. That's because the GENERATED expression needs to
  be evaluated against the table's updated tuples, but it was being evaluated
  against the original tuples.  (Fortunately the executor has adequate
  cross-checks to notice the mismatch, so we just got an obscure error message
  and not anything more dangerous.)  Per report from Andreas Joseph Krogh.
  Back-patch to v12 where GENERATED was added.  Discussion:
  https://postgr.es/m/VisenaEmail.200.231b0a41523275d0.16ea7f800c7@tc7-visena
  https://git.postgresql.org/pg/commitdiff/4ac8aaa36fa24639989849c8109f8b52e9544fd1

- Improve the handling of result type coercions in SQL functions. Use the
  parser's standard type coercion machinery to convert the output column(s) of a
  SQL function's final SELECT or RETURNING to the type(s) they should have
  according to the function's declared result type.  We'll allow any case where
  an assignment-level coercion is available.  Previously, we failed unless the
  required coercion was a binary-compatible one (and the documentation ignored
  this, falsely claiming that the types must match exactly).  Notably, the
  coercion now accounts for typmods, so that cases where a SQL function is
  declared to return a composite type whose columns are typmod-constrained now
  behave as one would expect.  Arguably this aspect is a bug fix, but the
  overall behavioral change here seems too large to consider back-patching.  A
  nice side-effect is that functions can now be inlined in a few cases where we
  previously failed to do so because of type mismatches.  Discussion:
  https://postgr.es/m/18929.1574895430@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/913bbd88dc6b859c70ebb48107b38d693c4c6673

- Reconsider the representation of join alias Vars. The core idea of this patch
  is to make the parser generate join alias Vars (that is, ones with varno
  pointing to a JOIN RTE) only when the alias Var is actually different from any
  raw join input, that is a type coercion and/or COALESCE is necessary to
  generate the join output value. Otherwise just generate varno/varattno
  pointing to the relevant join input column.  In effect, this means that the
  planner's flatten_join_alias_vars() transformation is already done in the
  parser, for all cases except (a) columns that are merged by JOIN USING and are
  transformed in the process, and (b) whole-row join Vars.  In principle that
  would allow us to skip doing flatten_join_alias_vars() in many more queries
  than we do now, but we don't have quite enough infrastructure to know that we
  can do so --- in particular there's no cheap way to know whether there are any
  whole-row join Vars.  I'm not sure if it's worth the trouble to add a
  Query-level flag for that, and in any case it seems like fit material for a
  separate patch.  But even without skipping the work entirely, this should make
  flatten_join_alias_vars() faster, particularly where there are nested joins
  that it previously had to flatten recursively.  An essential part of this
  change is to replace Var nodes' varnoold/varoattno fields with
  varnosyn/varattnosyn, which have considerably more tightly-defined meanings
  than the old fields: when they differ from varno/varattno, they identify the
  Var's position in an aliased JOIN RTE, and the join alias is what ruleutils.c
  should print for the Var.  This is necessary because the varno change
  destroyed ruleutils.c's ability to find the JOIN RTE from the Var's varno.
  Another way in which this change broke ruleutils.c is that it's no longer
  feasible to determine, from a JOIN RTE's joinaliasvars list, which join
  columns correspond to which columns of the join's immediate input relations.
  (If those are sub-joins, the joinaliasvars entries may point to columns of
  their base relations, not the sub-joins.) But that was a horrid mess requiring
  a lot of fragile assumptions already, so let's just bite the bullet and add
  some more JOIN RTE fields to make it more straightforward to figure that out.
  I added two integer-List fields containing the relevant column numbers from
  the left and right input rels, plus a count of how many merged columns there
  are.  This patch depends on the ParseNamespaceColumn infrastructure that I
  added in commit 5815696bc.  The biggest bit of code change is restructuring
  transformFromClauseItem's handling of JOINs so that the ParseNamespaceColumn
  data is propagated upward correctly.  Other than that and the ruleutils fixes,
  everything pretty much just works, though some processing is now inessential.
  I grabbed two pieces of low-hanging fruit in that line:  1. In
  find_expr_references, we don't need to recurse into join alias Vars anymore.
  There aren't any except for references to merged USING columns, which are more
  properly handled when we scan the join's RTE. This change actually fixes an
  edge-case issue: we will now record a dependency on any type-coercion function
  present in a USING column's joinaliasvar, even if that join column has no
  references in the query text.  The odds of the missing dependency causing a
  problem seem quite small: you'd have to posit somebody dropping an implicit
  cast between two data types, without removing the types themselves, and then
  having a stored rule containing a whole-row Var for a join whose USING merge
  depends on that cast.  So I don't feel a great need to change this in the back
  branches.  But in theory this way is more correct.  2. markRTEForSelectPriv
  and markTargetListOrigin don't need to recurse into join alias Vars either,
  because the cases they care about don't apply to alias Vars for USING columns
  that are semantically distinct from the underlying columns.  This removes the
  only case in which markVarForSelectPriv could be called with NULL for the RTE,
  so adjust the comments to describe that hack as being strictly internal to
  markRTEForSelectPriv.  catversion bump required due to changes in stored
  rules.  Discussion: https://postgr.es/m/7115.1577986646@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/9ce77d75c5ab094637cc4a446296dc3be6e3c221

- Skip tab-completion tests if envar SKIP_READLINE_TESTS is defined. Experience
  so far suggests that getting these tests to pass on all libedit versions that
  are out there may be impossible, or require dumbing down the tests to the
  point of uselessness. So we need to provide a way to skip them when the user
  knows they'll fail.  An environment variable is probably the most convenient
  way to deal with this; it's easy for, e.g., a buildfarm animal's configuration
  to set up.  Discussion: https://postgr.es/m/9594.1578586797@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/e7ee433137b6eb3678deeebc68be53d58aa1e5d3

- Extensive code review for GSSAPI encryption mechanism. Fix assorted bugs in
  handling of non-blocking I/O when using GSSAPI encryption.  The encryption
  layer could return the wrong status information to its caller, resulting in
  effectively dropping some data (or possibly in aborting a not-broken
  connection), or in a "livelock" situation where data remains to be sent but
  the upper layers think transmission is done and just go to sleep.  There were
  multiple small thinkos contributing to that, as well as one big one (failure
  to think through what to do when a send fails after having already transmitted
  data).  Note that these errors could cause failures whether the client
  application asked for non-blocking I/O or not, since both libpq and the
  backend always run things in non-block mode at this level.  Also get rid of
  use of static variables for GSSAPI inside libpq; that's entirely not okay
  given that multiple connections could be open at once inside a single client
  process.  Also adjust a bunch of random small discrepancies between the
  frontend and backend versions of the send/receive functions -- except for
  error handling, they should be identical, and now they are.  Also extend the
  Kerberos TAP tests to exercise cases where nontrivial amounts of data need to
  be pushed through encryption.  Before, those tests didn't provide any useful
  coverage at all for the cases of interest here.  (They still might not,
  depending on timing, but at least there's a chance.)  Per complaint from
  pmc@citylink and subsequent investigation. Back-patch to v12 where this code
  was introduced.  Discussion:
  https://postgr.es/m/20200109181822.GA74698@gate.oper.dinoex.org
  https://git.postgresql.org/pg/commitdiff/2c0cdc8183654c090c9a1e2f1b5e96ba4634e16a

Robert Haas pushed:

- Increase the maximum value of track_activity_query_size. This one-line change
  provoked a lot of discussion, but ultimately the consensus seems to be that
  allowing a larger value might be useful to somebody, and probably won't hurt
  anyone who chooses not to take advantage of the higher maximum limit.
  Vyacheslav Makarov, reviewed by many people.  Discussion:
  http://postgr.es/m/7b5ecc5a9991045e2f13c84e3047541d@postgrespro.ru
  https://git.postgresql.org/pg/commitdiff/814727858918154bdde9dbdfb99c544b52eb8818

- tableam: Allow choice of toast AM. Previously, the toast table had to be
  implemented by the same AM that was used for the main table, which was bad,
  because the detoasting code won't work with anything but heap. This commit
  doesn't fix the latter problem, although there's another patch coming which
  does, but it does let you pick something that works (i.e. heap, right now).
  Patch by me, reviewed by Andres Freund.  Discussion:
  http://postgr.es/m/CA+TgmoZv-=2iWM4jcw5ZhJeL18HF96+W1yJeYrnGMYdkFFnEpQ@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/83322e38da1aa054e1b144cb37e6074a86854199

- tableam: New callback relation_fetch_toast_slice. Instead of always calling
  heap_fetch_toast_slice during detoasting, invoke a table AM callback which,
  when the toast table is a heap table, will be heap_fetch_toast_slice.  This
  makes it possible for a table AM other than heap to be used as a TOAST table.
  It also completes the series of commits intended to improve the interaction of
  tableam with TOAST that began with commit
  8b94dab06617ef80a0901ab103ebd8754427ef5a; detoast.c is now, hopefully, fully
  AM-independent.  Patch by me, reviewed by Andres Freund and Peter Eisentraut.
  Discussion:
  http://postgr.es/m/CA+TgmoZv-=2iWM4jcw5ZhJeL18HF96+W1yJeYrnGMYdkFFnEpQ@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/ce242ae154dde3217971c6f262705d80999f4e00

- Remove bogus 'return'. Per the buildfarm, via Michael Paquier.  Discussion:
  http://postgr.es/m/20200108032648.GE3413@paquier.xyz
  https://git.postgresql.org/pg/commitdiff/5acf6d8bb4ec23349604c7c15111959e657ff294

- Add pg_shmem_allocations view. This tells you about allocations that have been
  made from the main shared memory segment. The original patch also tried to
  show information about dynamic shared memory allocation as well, but I decided
  to leave that problem for another time.  Andres Freund and Robert Haas,
  reviewed by Michael Paquier, Marti Raudsepp, Tom Lane, Álvaro Herrera, and
  Kyotaro Horiguchi.  Discussion:
  http://postgr.es/m/20140504114417.GM12715@awork2.anarazel.de
  https://git.postgresql.org/pg/commitdiff/ed10f32e37e9a16814c25e400d7826745ae3c797

Álvaro Herrera pushed:

- pg_stat_activity: show NULL stmt start time for walsenders. Returning a
  non-NULL time is pointless, sinc a walsender is not a process that would be
  running normal transactions anyway, but the code was unintentionally exposing
  the process start time intermittently, which was not only bogus but it also
  confused monitoring systems looking for idle transactions.  Fix by avoiding
  all updates in walsenders.  Backpatch to 11, where walsenders started
  appearing in pg_stat_activity.  Reported-by: Tomas Vondra Discussion:
  https://postgr.es/m/20191209234409.exe7osmyalwkt5j4@development
  https://git.postgresql.org/pg/commitdiff/b175bd59fa54a90d21bc541f812643ac45281b98

- Reimplement nullification of walsender timestamp. Make the value null only at
  pg_stat_activity-output time, as suggested by Tom Lane, instead of messing
  with the internal state.  This should appease buildfarm members with
  force_parallel_mode=regress, which are running parallel queries on logical
  replication walsenders.  The fact that walsenders can run parallel queries
  should perhaps be studied more carefully, but for the moment let's get rid of
  the red blots in buildfarm.  Backpatch to pg10, like the previous commit.
  Discussion: https://postgr.es/m/30804.1578438763@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/f5d28710c707ad602cd869602e092cc9d538cbb9

- Clean up representation of flags in struct ReorderBufferTXN. This simplifies
  addition of further flags.  Author: Nikhil Sontakke Discussion:
  https://postgr.es/m/CAMGcDxeViP+R-OL7QhzUV9eKCVjURobuY1Zijik4Ay_Ddwo4Cg@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/a7b6ab5db1d35438112f74f3531354ddd61970b5

Stephen Frost pushed:

- Improve GSSAPI Encryption startup comment in libpq. The original comment was a
  bit confusing, pointed out by Alvaro Herrera.  Thread:
  https://postgr.es/m/20191224151520.GA16435%40alvherre.pgsql
  https://git.postgresql.org/pg/commitdiff/8dd1511e39acd729020e151deb15a958300ebff5

Andrew Dunstan pushed:

- Allow 'sslkey' and 'sslcert' in postgres_fdw user mappings. This allows
  different users to authenticate with different certificates.  Author: Craig
  Ringer
  https://git.postgresql.org/pg/commitdiff/f5fd995a1a24e6571d26b1e29c4dc179112b1003

Magnus Hagander pushed:

- Clarify that pg_trgm is used in example. Reported-by: Octopus ZHANG Author:
  Daniel Gustafsson
  https://git.postgresql.org/pg/commitdiff/e3019f631d1f2e21667ad05f903c52d904b9048c

Noah Misch pushed:

- Maintain valid md.c state when FileClose() fails. FileClose() failure
  ordinarily causes a PANIC.  Suppose the user disables that PANIC via
  data_sync_retry=on.  After mdclose() issued a FileClose() that failed, calls
  into md.c raised SIGSEGV.  This fix adds repalloc() calls during mdclose();
  update a comment about ignoring repalloc() cost.  The rate of relation segment
  count change is a minor factor; more relevant to overall performance is the
  rate of mdclose() and subsequent re-opening of segments.  Back-patch to v10,
  where commit 45e191e3aa62d47a8bc1a33f784286b2051f45cb introduced the bug.
  Reviewed by Kyotaro Horiguchi.  Discussion:
  https://postgr.es/m/20191222091930.GA1280238@rfd.leadboat.com
  https://git.postgresql.org/pg/commitdiff/38fc056074e034087af8a1589507631682a279d1

== Pending Patches ==

Justin Pryzby sent in a patch to fix the documentation for ALTER TABLE so it
doesn't mention table-specific planner parameters.

Peter Eisentraut sent in a patch to propagate ALTER TABLE ... SET STORAGE to
indexes.

Pierre Ducroquet and Marc Cousin traded patches to speed up XLogSendLogical.

Justin Pryzby sent in a patch to use correlation statistic in costing bitmap
scans.

Andrew Dunstan and Pavel Stěhule traded patches to implement jsonb_set_lax().

Karl O. Pinc sent in two more revisions of a patch to document base64 encoding.

Peter Eisentraut sent in a patch to fix base backup with database OIDs larger
than INT32_MAX.

Dean Rasheed sent in a patch to make the rewriter prevent auto-updates on views
with conditional INSTEAD rules.

Amit Langote sent in another revision of a patch to support adding partitioned
tables to PUBLICATIONs.

Amit Langote sent in a patch to avoid checking child truncate permissions for
partition hierarchies.

Richard Guo sent in another revision of a patch to add support for parallel
grouping sets.

Adam Lee sent in a patch to use the logical tape APIs for hash agg spilling.

Álvaro Herrera sent in a patch to fix a bug which manifested as xact_start for
walsender & logical decoding not updated.

Dagfinn Ilmari Mannsåker sent in a patch to fix the parallel make of libpq.

Heikki Linnakangas and Peter Geoghegan traded patches to add deduplication to
nbtree.

Michaël Paquier sent in four more revisions of a patch to fix a bug that
manifested as an Assert failure due to "drop schema pg_temp_3 cascade" for
temporary tables.

Amit Kapila and Mahendra Singh traded patches to implement block-level parallel
VACUUM.

Alexander Korotkov sent in two more revisions of a patch to avoid GIN full scans
when possible.

Robert Haas sent in three revisions of a patch to do better checking for
read-only queries and refactor the code to disentangle other checks.

Kyotaro HORIGUCHI sent in another revision of a patch to make sure to save
updated physical slot.

godjan sent in a patch to verify true root on replicas with amcheck.

Fabien COELHO sent in another revision of a patch to pgbench to refactor init
functions with buffers.

Álvaro Herrera sent in a patch to fix the coding in WalSndWaitForWal.

Fabien COELHO sent in another revision of a patch to pgbench to rework variable
management.

Gang Deng sent in a patch to fix a parallel hash join performance issue.

Fujii Masao sent in two more revisions of a patch to add pg_file_sync() to
adminpack.

Mark Lorenz sent in a patch to add a feature for to_date() conversion using
patterns 'YYYY-WW', 'YYYY-WW-D', 'YYYY-MM-W' and 'YYYY-MM-W-D'.

Álvaro Herrera sent in a patch to fix replay of create database records on
standby.

Álvaro Herrera sent in a patch to implement standby apply lag on inactive
servers.

Dilip Kumar and Álvaro Herrera traded patches to fix an infelicity between
logical_work_mem and logical streaming of large in-progress transactions.

Daniel Gustafsson sent in another revision of a patch to enable setting min/max
TLS protocol in clientside libpq.

Michaël Paquier sent in a patch to remove an Assert from
logicalrep_write_insert().

Peter Eisentraut sent in another revision of a patch to implement ALTER TABLE
... ALTER COLUMN ... DROP EXPRESSION.

Peter Eisentraut sent in a patch to expose PQbackendPID() through the
walreceiver API, and ensure that walreceiver uses a temporary replication slot
by default.

Amit Kapila sent in a patch to revert the test added by commit d207038053.

David Fetter sent in a patch to micro-optimize pq_begintypsend() and
appendStringInfoSpaces(), as these appeared to be in hot paths.

Tomáš Vondra sent in another revision of a patch to fix a patch which
implemented DECLARE STATEMENT in ECPG.



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

Предыдущее
От: "Dan Langille"
Дата:
Сообщение: PGCon 2020 - Ottawa
Следующее
От: Vik Fearing
Дата:
Сообщение: pgDay Paris 2020 Schedule Announced