== PostgreSQL Weekly News - July 5, 2020 ==

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

Foss4G has been cancelled. The next FOSS4G event will take place in August 2021
in Buenos Ares, Argentina.
https://2020.foss4g.org/cancellation/

Person of the week: https://postgresql.life/post/andrew_dunstan/

== PostgreSQL Product News ==

ORC Foreign Data Wrapper 1.0.0, a FDW for files in ORC format, released.
https://github.com/HighgoSoftware/orc_fdw/releases/tag/ORC_FDW-REL-1-0

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

pg_probackup 2.4.1, a utility to manage backup and recovery of PostgreSQL
database clusters, released.
https://github.com/postgrespro/pg_probackup/releases/tag/2.4.1

CYPEX 1.0, an application building toolkit for PostgreSQL, released.
https://www.cybertec-postgresql.com/en/products/cypex/

== PostgreSQL Jobs for July ==

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

== PostgreSQL Local ==

PGDay Ukraine will take place September 5th, 2020 in Lviv at the Bank Hotel.
https://pgday.org.ua/

pgDay Israel 2020 will take place on September 10, 2020 in Tel Aviv.
http://pgday.org.il/

PGDay Austria will take place September 18, 2020 at Schloss Schoenbrunn
(Apothekertrakt) in Vienna.
https://pgday.at/en/

PostgreSQL Conference Europe 2020 will be held on October 20-23, 2020 in Berlin,
Germany. The CfP is open through July 31, 2020 at https://2020.pgconf.eu/callforpapers
https://2020.pgconf.eu/

PG Day Russia will take place in Saint Petersburg on July 9, 2021.
https://pgday.ru/en/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 ==

Michaël Paquier pushed:

- Refactor ObjectAddress field assignments for type dependencies. The logic used
  to build the set of dependencies needed for a type is rather repetitive with
  direct assignments for each ObjectAddress field. This refactors the code to
  use the macro ObjectAddressSet() instead, to do the same work.  There are more
  areas of the backend code that could use this macro, but these are left for a
  follow-up patch that will partially rework the way dependencies are recorded
  as well.  Type dependencies are left out of the follow-up patch, so they are
  refactored separately here.  Extracted from a larger patch by the same author.
  Author: Daniel Gustafsson Discussion:
  https://potgr.es/m/20190213182737.mxn6hkdxwrzgxk35@alap3.anarazel.de
  https://git.postgresql.org/pg/commitdiff/68de1440c79d75e529ff8c7395d698252370f992

- Prevent compilation of frontend-only files in src/common/ with backend. Any
  frontend-only file of src/common/ should include a protection to prevent such
  code to be included in the backend compilation. fe_memutils.c and
  restricted_token.c have been doing that, while file_utils.c (since bf5bb2e)
  and logging.c (since fc9a62a) forgot it.  Reviewed-by: Daniel Gustafsson
  Discussion: https://postgr.es/m/20200625080757.GI130132@paquier.xyz
  https://git.postgresql.org/pg/commitdiff/324435eb14e4f41cd430f96c9b13ad9b160e45e4

- Fix removal of files generated by TAP tests for SSL. 001_ssltests.pl and
  002_scram.pl both generated an extra file for a client key used in the tests
  that were not removed.  In Debian, this causes repeated builds to fail.  The
  code refactoring done in 4dc6355 broke the cleanup done in 001_ssltests.pl,
  and the new tests added in 002_scram.pl via d6e612f forgot the removal of one
  file.  While on it, fix a second issue introduced in 002_scram.pl where we use
  the same file name in 001 and 002 for the temporary client key whose
  permissions are changed in the test, as using the same file name in both tests
  could cause failures with parallel jobs of src/test/ssl/ if one test removes a
  file still needed by the second test.  Reported-by: Felix Lechner Author:
  Daniel Gustafsson, Felix Lechner Reviewed-by: Tom Lane, Michael Paquier
  Discussion:
  https://postgr.es/m/CAFHYt543sjX=Cm_aEeoejStyP47C+Y3+Wh6WbirLXsgUMaw7iw@mail.gmail.com
  Backpatch-through: 13
  https://git.postgresql.org/pg/commitdiff/c4342c932abb6792f6c7d8528b6224ca4d5e1a84

- Refactor creation of normal dependency records when creating extension. When
  creating an extension, the same type of dependency is used when registering a
  dependency to a schema and required extensions.  This improves the code so as
  those dependencies are not recorded one-by-one, but grouped together.  Note
  that this has as side effect to remove duplicate dependency entries, even if
  it should not happen in practice as extensions listed as required in a control
  file should be listed only once.  Extracted from a larger patch by the same
  author.  Author: Daniel Dustafsson Discussion:
  https://postgr.es/m/20200629065535.GA183079@paquier.xyz
  https://git.postgresql.org/pg/commitdiff/684b4f29b729e5b135d256802d6e712222b9551f

- Refactor ObjectAddress field assignments in more places. This is a follow-up
  commit similar to 68de144, with more places in the backend code simplified
  with the macros able to assign values to the fields of ObjectAddress.  The
  code paths changed here could be transitioned later into using more grouping
  when inserting dependency records, simplifying this future work.  Author:
  Daniel Gustafsson, Michael Paquier Discussion:
  https://postgr.es/m/20190213182737.mxn6hkdxwrzgxk35@alap3.anarazel.de
  https://git.postgresql.org/pg/commitdiff/4315e8c23b9a897e12fcf91de7bfd734621096bf

- Move description of libpqwalreceiver hooks out of the replication's README.
  src/backend/replication/README includes since 32bc08b a basic description of
  the WAL receiver hooks available in walreceiver.h for a module like
  libpqwalreceiver, but the README has never been updated to reflect changes
  done to the hooks, so the contents of the README have rotten with the time.
  This commit moves the description from the README to walreceiver.h, where it
  will be hard to miss that a description update or addition is needed depending
  on the modifications done to the hooks.  Each hook now includes a description
  of what it does in walreceiver.h, and the replication's README mentions
  walreceiver.h.  Thanks also to Amit Kapila for the discussion.  Author:
  Michael Paquier Reviewed-by: Peter Eisentraut Discussion:
  https://postgr.es/m/20200502024606.GA471944@paquier.xyz
  https://git.postgresql.org/pg/commitdiff/641dd167a3424f97eed8416b5ef1c21dbbf8cf12

- doc: Fix incorrect reference to textout in plpgsql examples. This error has
  survived for 22 years, and has been introduced by da63386.  Reported-by: Erwin
  Brandstetter Discussion:
  https://postgr.es/m/CAGHENJ57wogGOvGXo5LgWYcqswxafLck8ELqHDR+zrkTPgs_OQ@mail.gmail.com
  Backpatch-through: 9.5
  https://git.postgresql.org/pg/commitdiff/8cea55e99b766fd654431f24987a774622594c9b

Peter Eisentraut pushed:

- Clean up grammar a bit. Simplify the grammar specification of substring() and
  overlay() a bit, simplify and update some comments.  Reviewed-by: Pavel
  Stehule <pavel.stehule@gmail.com> Reviewed-by: Vik Fearing
  <vik@postgresfriends.org> Reviewed-by: Fabien COELHO <coelho@cri.ensmp.fr>
  Discussion:
  https://www.postgresql.org/message-id/flat/a15db31c-d0f8-8ce0-9039-578a31758adb%402ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/aafefb4dcbf79e8cb1439e888a9cdb3dfefa7657

- Add current substring regular expression syntax. SQL:1999 had syntax
  SUBSTRING(text FROM pattern FOR escapechar)  but this was replaced in SQL:2003
  by the more clear      SUBSTRING(text SIMILAR pattern ESCAPE escapechar)  but
  this was never implemented in PostgreSQL.  This patch adds that new syntax as
  an alternative in the parser, and updates documentation and tests to indicate
  that this is the preferred alternative now.  Reviewed-by: Pavel Stehule
  <pavel.stehule@gmail.com> Reviewed-by: Vik Fearing <vik@postgresfriends.org>
  Reviewed-by: Fabien COELHO <coelho@cri.ensmp.fr> Discussion:
  https://www.postgresql.org/message-id/flat/a15db31c-d0f8-8ce0-9039-578a31758adb%402ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/78c887679d7632c1211f85eb95723f3226bf1b46

- pgstattuple: Have pgstattuple_approx accept TOAST tables. TOAST tables have a
  visibility map and a free space map, so they can be supported by
  pgstattuple_approx just fine.  Add test cases to show how various pgstattuple
  functions accept TOAST tables.  Also add similar tests to pg_visibility, which
  already accepted TOAST tables correctly but had no test coverage for them.
  Reviewed-by: Laurenz Albe <laurenz.albe@cybertec.at> Discussion:
  https://www.postgresql.org/message-id/flat/27c4496a-02b9-dc87-8f6f-bddbef54e0fe@2ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/ee0202d552791f14bc407ce299628ce8d50eebe3

- Rename enable_incrementalsort for clarity. Author: James Coleman
  <jtc331@gmail.com> Discussion:
  https://www.postgresql.org/message-id/flat/df652910-e985-9547-152c-9d4357dc3979%402ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/e61225ffab3f8726ecd053b1c22ff249c417f9ba

- doc: Spell checking.
  https://git.postgresql.org/pg/commitdiff/90b2d8c1adc86d1fc46f83c73444a1fb5b28dd3c

Tom Lane pushed:

- Avoid using %c printf format for potentially non-ASCII characters. Since %c
  only passes a C "char" to printf, it's incapable of dealing with multibyte
  characters.  Passing just the first byte of such a character leads to an
  output string that is visibly not correctly encoded, resulting in undesirable
  behavior such as encoding conversion failures while sending error messages to
  clients.  We've lived with this issue for a long time because it was
  inconvenient to avoid in a portable fashion.  However, now that we always use
  our own snprintf code, it's reasonable to use the %.*s format to print just
  one possibly-multibyte character in a string.  (We previously avoided that
  obvious-looking answer in order to work around glibc's bug #6530, cf commits
  54cd4f045 and ed437e2b2.)  Hence, run around and fix a bunch of places that
  used %c to report a character found in a user-supplied string.  For
  simplicity, I did not touch places that were emitting non-user-facing debug
  messages, or reporting catalog data that should always be ASCII.  (It's also
  unclear how useful this approach could be in frontend code, where it's less
  certain that we know what encoding we're dealing with.)  In passing, improve a
  couple of poorly-written error messages in pageinspect/heapfuncs.c.  This is a
  longstanding issue, but I'm hesitant to back-patch because of the impact on
  translatable message strings.  In any case this fix would not work reliably
  before v12.  Tom Lane and Quan Zongliang  Discussion:
  https://postgr.es/m/a120087c-4c88-d9d4-1ec5-808d7a7f133d@gmail.com
  https://git.postgresql.org/pg/commitdiff/16e3ad5d143795b05a21dc887c2ab384cce4bcb8

- Mop up some no-longer-necessary hacks around printf %.*s format. Commit
  54cd4f045 added some kluges to work around an old glibc bug, namely that %.*s
  could misbehave if glibc thought any characters in the supplied string were
  incorrectly encoded.  Now that we use our own snprintf.c implementation, we
  need not worry about that bug (even if it still exists in the wild).  Revert a
  couple of particularly ugly hacks, and remove or improve assorted comments.
  Note that there can still be encoding-related hazards here: blindly clipping
  at a fixed length risks producing wrongly-encoded output if the clip splits a
  multibyte character.  However, code that's doing correct multibyte-aware
  clipping doesn't really need a comment about that, while code that isn't needs
  an explanation why not, rather than a red-herring comment about an obsolete
  bug.  Discussion: https://postgr.es/m/279428.1593373684@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/c410af098c46949e36607eb13689e697fa2def97

- Remove support for timezone "posixrules" file. The IANA tzcode library has a
  feature to read a time zone file named "posixrules" and apply the
  daylight-savings transition dates and times therein, when it is given a
  POSIX-style time zone specification that lacks an explicit transition rule.
  However, there's a problem with that code: it doesn't work for dates past the
  Y2038 time_t rollover. (Effectively, all times beyond that point are treated
  as standard time.)  The IANA crew regard this feature as legacy, so their plan
  is to remove it not fix it.  The time frame in which that will happen is
  unclear, but presumably it'll happen well before 2038.  Moreover, effective
  with the next IANA data update (probably this fall), the recommended default
  will be to not install a "posixrules" file in the first place.  The time frame
  in which tzdata packagers might adopt that suggestion is likewise unclear, but
  at least some platforms will probably do it in the next year or so.  While we
  could ignore that recommendation so far as PG-supplied tzdata trees are
  concerned, builds using --with-system-tzdata will be subject to whatever the
  platform's tzdata packager decides to do.  Thus, whether or not we do
  anything, some increasing fraction of Postgres users will be exposed to the
  behavior observed when there is no "posixrules" file; and if we do nothing,
  we'll have essentially no control over the timing of that change.  The best
  thing to do to ameliorate the uncertainty seems to be to proactively remove
  the posixrules-reading feature.  If we do that in a scheduled release then at
  least we can release-note the behavioral change, rather than having users be
  surprised by it after a routine tzdata update.  The change in question is
  fairly minor anyway: to be affected, you have to be using a POSIX-style
  timezone spec, it has to not have an explicit rule, and it has to not be one
  of the four traditional continental-USA zone names (EST5EDT, CST6CDT, MST7MDT,
  or PST8PDT), as those are special-cased.  Since the default "posixrules" file
  provides USA DST rules, the number of people who are likely to find such a
  zone spec useful is probably quite small.  Moreover, the fallback behavior
  with no explicit rule and no "posixrules" file is to apply current USA rules,
  so the only thing that really breaks is the DST transitions in years before
  2007 (and you get the countervailing fix that transitions after 2038 will be
  applied).  Now, some installations might have replaced the "posixrules" file,
  allowing e.g. EU rules to be applied to a POSIX-style timezone spec. That
  won't work anymore.  But it's not exactly clear why this solution would be
  preferable to using a regular named zone.  In any case, given the Y2038 issue,
  we need to be pushing users to stop depending on this.  Back-patch into v13;
  it hasn't been released yet, so it seems OK to change its behavior.
  (Personally I think we ought to back-patch further, but I've been outvoted.)
  Discussion: https://postgr.es/m/1390.1562258309@sss.pgh.pa.us Discussion:
  https://postgr.es/m/20200621211855.6211-1-eggert@cs.ucla.edu
  https://git.postgresql.org/pg/commitdiff/ea57e531b9487e042131ca1151a3ef5d655f40ec

- Inline plpgsql's exec_stmt() into exec_stmts(). This saves one level of C
  function call per plpgsql statement executed, and permits a tiny additional
  optimization of not saving and restoring estate->err_stmt for each statement
  in a block.  The net effect seems nearly un-measurable on x86_64, but there's
  a clear win on aarch64, amounting to two or three percent in a loop over a few
  simple plpgsql statements.  To do this, we have to get rid of the other
  existing call sites for exec_stmt().  Replace them with exec_toplevel_block(),
  which is just defined to do what exec_stmts() does, but for a single
  PLpgSQL_stmt_block statement.  Hard-wiring the expectation of which statement
  type applies here allows us to skip the dispatch switch, making this not much
  uglier than the previous factorization.  Amit Khandekar, tweaked a bit by me
  Discussion:
  https://postgr.es/m/CAJ3gD9eBNrmUD7WBBLG8ohaZ485H9y+4eihQTgr+K8Lhka3vcQ@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/1f902d499eda862a98e881a2227b8d2cf3565374

- Fix temporary tablespaces for shared filesets some more. Commit ecd9e9f0b
  fixed the problem in the wrong place, causing unwanted side-effects on the
  behavior of GetNextTempTableSpace().  Instead, let's make SharedFileSetInit()
  responsible for subbing in the value of MyDatabaseTableSpace when the default
  tablespace is called for.  The convention about what is in the
  tempTableSpaces[] array is evidently insufficiently documented, so try to
  improve that.  It also looks like SharedFileSetInit() is doing the wrong thing
  in the case where temp_tablespaces is empty.  It was hard-wiring use of the
  pg_default tablespace, but it seems like using MyDatabaseTableSpace is more
  consistent with what happens for other temp files.  Back-patch the reversion
  of PrepareTempTablespaces()'s behavior to 9.5, as ecd9e9f0b was.  The changes
  in SharedFileSetInit() go back to v11 where that was introduced.  (Note there
  is net zero code change before v11 from these two patch sets, so nothing to
  release-note.)  Magnus Hagander and Tom Lane  Discussion:
  https://postgr.es/m/CABUevExg5YEsOvqMxrjoNvb3ApVyH+9jggWGKwTDFyFCVWczGQ@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/f7b5988cc0d879d6cc9d481ba898e55747a53bbe

- Clamp total-tuples estimates for foreign tables to ensure planner sanity.
  After running GetForeignRelSize for a foreign table, adjust rel->tuples to be
  at least as large as rel->rows.  This prevents bizarre behavior in
  estimate_num_groups() and perhaps other places, especially in the scenario
  where rel->tuples is zero because pg_class.reltuples is (suggesting that
  ANALYZE has never been run for the table).  As things stood, we'd end up
  estimating one group out of any GROUP BY on such a table, whereas the default
  group-count estimate is more likely to result in a sane plan.  Also, clarify
  in the documentation that GetForeignRelSize has the option to override the
  rel->tuples value if it has a better idea of what to use than what is in
  pg_class.reltuples.  Per report from Jeff Janes.  Back-patch to all supported
  branches.  Patch by me; thanks to Etsuro Fujita for review  Discussion:
  https://postgr.es/m/CAMkU=1xNo9cnan+Npxgz0eK7394xmjmKg-QEm8wYG9P5-CcaqQ@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/ca5e93f769e1bf5e90d080cfcc8c0368ef649a7c

- Inline the fast path of plpgsql's exec_cast_value(). In the common case where
  this function isn't actually asked to perform any type conversion, there's
  nothing it has to do beyond comparing the arguments.  Arrange for that part to
  be inlined into callers, with the slower path remaining out-of-line.  This
  seems to be good for several percent speedup on simple cases, with only
  minimal code bloat.  Amit Khandekar  Discussion:
  https://postgr.es/m/CAJ3gD9eBNrmUD7WBBLG8ohaZ485H9y+4eihQTgr+K8Lhka3vcQ@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/fe2e206cdb00a2d5dcebc3c8e8119017392d9781

Peter Geoghegan pushed:

- nbtree: Correct inaccurate split location comment. Minor oversight in commit
  fab25024338.
  https://git.postgresql.org/pg/commitdiff/f7a476f0d656bbc673474b9165cd05fa548c18c9

- nbtree: Rename _bt_search() variables. Make some of the variable names in
  _bt_search() consistent with corresponding variables within _bt_getstackbuf().
  This naming scheme is clearer because the variable names always express a
  relationship between the currently locked buffer/page and some other page.
  https://git.postgresql.org/pg/commitdiff/e25d462a38f853621a2ad529638d463836230766

- Initialize work_mem using current guc.c default. Do the same for the
  maintenance_work_mem global variable.  Oversight in commit 848ae330a49, which
  increased the previous defaults for work_mem and maintenance_work_mem by 4X.
  https://git.postgresql.org/pg/commitdiff/947456a823d6b0973b68c6b38c8623a0504054e7

Fujii Masao pushed:

- Add +(pg_lsn,numeric) and -(pg_lsn,numeric) operators. By using these
  operators, the number of bytes can be added into and subtracted from LSN.
  Bump catalog version.  Author: Fujii Masao Reviewed-by: Kyotaro Horiguchi,
  Michael Paquier, Asif Rehman Discussion:
  https://postgr.es/m/ed9f7f74-e996-67f8-554a-52ebd3779b3b@oss.nttdata.com
  https://git.postgresql.org/pg/commitdiff/9bae7e4cde7c9786ee61dac4a3e032b346350a88

- Change default of pg_stat_statements.track_planning to off. Since v13
  pg_stat_statements is allowed to track the planning time of statements when
  track_planning option is enabled. Its default was on.  But this feature could
  cause more terrible spinlock contentions in pg_stat_statements. As a result of
  this, Robins Tharakan reported that v13 beta1 showed ~45% performance drop at
  high DB connection counts (when compared with v12.3) during fully-cached
  SELECT-only test using pgbench.  To avoid this performance regression by the
  default setting, this commit changes default of
  pg_stat_statements.track_planning to off.  Back-patch to v13 where
  pg_stat_statements.track_planning was introduced.  Reported-by: Robins
  Tharakan Author: Fujii Masao Reviewed-by: Julien Rouhaud Discussion:
  https://postgr.es/m/2895b53b033c47ccb22972b589050dd9@EX13D05UWC001.ant.amazon.com
  https://git.postgresql.org/pg/commitdiff/d1763ea8c9c32837d373a196ed0c2e1256a55824

- doc: Correct description of restart_lsn in pg_replication_slots. Previously
  the document explained that restart_lsn indicates the LSN of oldest WAL won't
  be automatically removed during checkpoints. But since v13 this was no longer
  true thanks to max_slot_wal_keep_size.  Back-patch to v13 where
  max_slot_wal_keep_size was added.  Author: Fujii Masao Discussion:
  https://postgr.es/m/6497f1e9-3148-c5da-7e49-b2fddad9a42f@oss.nttdata.com
  https://git.postgresql.org/pg/commitdiff/8f9b6d40570bd8991f18a089a8445cc5275c1f49

Bruce Momjian pushed:

- doc: change pg_upgrade wal_level to be not minimal. Previously it was
  specified to be only replica.  Discussion:
  https://postgr.es/m/20200618180058.GK7349@momjian.us  Backpatch-through: 9.5
  https://git.postgresql.org/pg/commitdiff/2a06cb86dbacdf19a19d5bfd00d5156584f2188a

- doc:  clarify that storage parameter values are optional. In a few cases, the
  documented syntax specified storage parameter values as required.
  Reported-by: galiev_mr@taximaxim.ru  Discussion:
  https://postgr.es/m/159283163235.684.4482737698910467437@wrigleys.postgresql.org
  Backpatch-through: 9.5
  https://git.postgresql.org/pg/commitdiff/aa90d9957bd2d9ce39f9078d15914a37d99af072

Michael Meskes pushed:

- Fix ecpg crash with bytea and cursor variables. Author: Jehan-Guillaume de
  Rorthais <jgdr@dalibo.com>
  https://git.postgresql.org/pg/commitdiff/e576f71fbe713d9357d1b480b4993043f7fcc73a

David Rowley pushed:

- Further adjustments to Hashagg EXPLAIN ANALYZE output. The "Disk Usage" and
  "HashAgg Batches" properties in the EXPLAIN ANALYZE output for HashAgg were
  previously only shown if the number of batches was greater than 0.  Here we
  change this so that these properties are always shown for EXPLAIN ANALYZE
  formats other than "text".  The idea here is that since the HashAgg could have
  spilled to disk if there had been more data or groups to aggregate, then it's
  relevant that we're clear in the EXPLAIN ANALYZE output when no spilling
  occurred in this particular execution of the given plan.  For the "text"
  EXPLAIN format, we still hide these properties when no spilling occurs.  This
  EXPLAIN format is designed to be easy for humans to read.  To maintain the
  readability we have a higher threshold for which properties we display for
  this format.  Discussion:
  https://postgr.es/m/CAApHDvo_dmNozQQTmN-2jGp1vT%3Ddxx7Q0vd%2BMvD1cGpv2HU%3DSg%40mail.gmail.com
  Backpatch-through: 13, where the hashagg spilling code was added.
  https://git.postgresql.org/pg/commitdiff/40efbf8706cdd96e06bc4d1754272e46d9857875

Amit Kapila pushed:

- Improve vacuum error context handling. Use separate functions to save and
  restore error context information as that made code easier to understand.
   Also, make it clear that the index information required for error context is
  sane.  Author: Andres Freund, Justin Pryzby, Amit Kapila Backpatch-through:
  13, where it was introduced Discussion:
  https://postgr.es/m/CAA4eK1LWo+v1OWu=Sky27GTGSCuOmr7iaURNbc5xz6jO+SaPeA@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/a69e041d0c91759fb60ab52e7e21e3ec3752c69b

Magnus Hagander pushed:

- Fix temporary tablespaces for shared filesets. A likely copy/paste error in
  98e8b480532 from  back in 2004 would cause temp tablespace to be reset to
  InvalidOid if temp_tablespaces was set to the same value as the primary
  tablespace in the database. This would cause shared filesets (such as for
  parallel hash joins) to ignore them, putting the temporary files in the
  default tablespace instead of the configured one. The bug is in the old code,
  but it appears to have been exposed only once we had shared filesets.
  Reviewed-By: Daniel Gustafsson Discussion:
  https://postgr.es/m/CABUevExg5YEsOvqMxrjoNvb3ApVyH+9jggWGKwTDFyFCVWczGQ@mail.gmail.com
  Backpatch-through: 9.5
  https://git.postgresql.org/pg/commitdiff/ecd9e9f0bc141550726b2205dd6f5745a58e9ecd

Joe Conway pushed:

- Read until EOF vice stat-reported size in read_binary_file.
  read_binary_file(), used by SQL functions pg_read_file() and friends, uses
  stat to determine file length to read, when not passed an explicit length as
  an argument. This is problematic, for example, if the file being read is a
  virtual file with a stat-reported length of zero. Arrange to read until EOF,
  or StringInfo data string lenth limit, is reached instead.  Original complaint
  and patch by me, with significant review, corrections, advice, and code
  optimizations by Tom Lane. Backpatched to v11. Prior to that only paths
  relative to the data and log dirs were allowed for files, so no "zero length"
  files were reachable anyway.  Reviewed-By: Tom Lane Discussion:
  https://postgr.es/m/flat/969b8d82-5bb2-5fa8-4eb1-f0e685c5d736%40joeconway.com
  Backpatch-through: 11
  https://git.postgresql.org/pg/commitdiff/96d1f423f95d15c74989336e0776e1d55561a3f1

- Fix "ignoring return value" complaints from commit 96d1f423f9. The cfbot and
  some BF animals are complaining about the previous read_binary_file commit
  because of ignoring return value of ‘fread’. So let's make everyone happy by
  testing the return value even though not strictly needed.  Reported by Justin
  Pryzby, and suggested patch by Tom Lane. Backpatched to v11 same as the
  previous commit.  Reported-By: Justin Pryzby Reviewed-By: Tom Lane Discussion:
  https://postgr.es/m/flat/969b8d82-5bb2-5fa8-4eb1-f0e685c5d736%40joeconway.com
  Backpatch-through: 11
  https://git.postgresql.org/pg/commitdiff/1d05627fcf54b26e0cbd7527f9858f165d117813

== Pending Patches ==

David Rowley sent in three more revisions of a patch to keep elog(ERROR) and
ereport(ERROR) calls in the cold path.

Andy Fan sent in another revision of a patch to track uniqueness with UniqueKey.

Ashutosh Bapat sent in a patch to Assert if ExecOpenIndices() is called twice on
same result relation.

Peter Eisentraut sent in another revision of a patch to allow CURRENT_ROLE where
CURRENT_USER is accepted.

Fabien COELHO sent in a patch to pgbench to fix some of the underlying problems
reported by delaying the :var to $1 substitution to the last possible moments,
so that what variables are actually defined is known.

Daisuke Higuchi and Kyotaro HORIGUCHI traded patches to ensure that the complete
segment is archived immediately on standby.

Peter Eisentraut sent in another revision of a patch to pg_dump which
reorganizes dumpFunc() and dumpAgg() to reduce duplication.

Felix Lechner and Daniel Gustafsson traded patches to fix file removal in SSL
tests.

Michaël Paquier sent in two more revisions of a patch to use heap_multi_insert()
for pg_attribute/depend insertions.

Bharath Rupireddy sent in a patch to speed up COPY FROM ... BINARY by reading in
RAW_BUF_SIZE bytes at a time and processing that, rather than hitting storage at
many points in between.

Atsushi Torikoshi sent in three more revisions of a patch to add a function
exposing memory usage of local backend.

Ants Aasma and Fujii Masao traded patches to fix an issue where track_planning
was causing performance regressions.

John Naylor sent in another revision of a patch to enable truncating timestamps
on a wider variety of intervals.

Kyotaro HORIGUCHI sent in a patch to make sure standby archives all segments,
and another to make sure standby archives all segments immediately.

Mark Dilger sent in another revision of a patch to de-support postfix operators.

Vik Fearing sent in a patch to implement <null treatment> for window functions.

Peter Eisentraut sent in a patch to add support for writing CREATE FUNCTION and
CREATE PROCEDURE statements for language SQL with a function body that conforms
to the SQL standard.

David Steele sent in another revision of a patch to remove the exclusive backup
mode, which has been deprecated since PostgreSQL 9.6.

Peter Eisentraut sent in two revisions of a patch to fix -Wcast-function-type
warnings.

Georgios Kokolatos sent in another revision of a patch to Include AM in
listTables output.

Michaël Paquier sent in another revision of a patch to fix the TAP tests on
Windows around the issue of symlinks.

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

Peter Geoghegan sent in a PoC patch to teach nbtree to delete old duplicate
versions from unique indexes.

Vigneshwaran C sent in another revision of a patch to implement parallel COPY.

Vigneshwaran C sent in a patch to make COPY FROM more efficient by arranging to
call CopyGetData less frequently, removing an unused function pointer in
CopyMultiInsertInfoNextFreeSlot, and avoids unneccessarily clearing EOL  and
converting to server encoding for the header line, whose contents are never
actually examined.

Amit Langote sent in two revisions of a patch to reduce ModifyTable overheads in
generic plans.

Julien Rouhaud sent in two more revisions of a patch to implement collation
versioning.

Tsahi Zidenberg sent in a patch to support outline-atomics on aarch64.

Stephen Frost sent in a patch to give a somewhat clearer error message when we
detect that the user has asked us to follow a timeline switch to a new timeline
before we've reached consistency.

Bilva Sanaba sent in a patch to support COPY TO callback functions.

Mark Dilger sent in two more revisions of a patch to clean up inappropriate uses
of the name "relkind."

Bertrand Drouvot sent in another revision of a patch to add standby recovery
conflicts info.

Amul Sul sent in a patch to put ipc.c back inside the 80-column limit.

Kyotaro HORIGUCHI sent in a patch to replace min_safe_lsn with "distance" in
pg_replication_slots.

Kyotaro HORIGUCHI sent in another revision of a patch to allow wait event sets
to be registered to resource owners, add infrastructure for asynchronous
execution, and use same in the PostgreSQL FDW.

Kyotaro HORIGUCHI sent in another revision of a patch to remove the page-read
callback from XLogReaderState.

James Sewell sent in a patch to replace *sigprocmask with *pthread_sigmask*
calls in the BGWorker system to make it possible to spawn threads safely in
background workers.

David Rowley sent in another revision of a patch to allow estimate_num_groups()
to pass back further details about the estimation, allow users of simplehash.h
to perform direct deletions, and add a new Result Cache executor node.

Bharath Rupireddy sent in a patch to retry cached remote connections in the
PostgreSQL FDW in case the remote backend is killed.

Daniel Gustafsson sent in another revision of a patch to implement progress
tracking for COPY.

Daniel Gustafsson sent in another revision of a patch to use the internal
pthreads reimplementation only when building with MSVC.

Pavel Borisov sent in another revision of a patch to fix a bug that manifested
as GIN index search sometimes losing results.

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

Peter Geoghegan sent in another revision of a patch to add Valgrind buffer
access instrumentation and add nbtree Valgrind buffer lock checks.

James Coleman sent in two revisions of a patch to use unint64 instead of long
for space used variables in incremental sort.

Michaël Paquier sent in another revision of a patch to add flag to
format_type_extended to enforce NULL-ness, refactor the format procedure and
operator APIs to be more modular, and eliminate user-visible cache lookup errors
for objaddr SQL functions.

Masahiko Sawada sent in a PoC patch to reset spilled txn statistics in
pg_stat_replication.

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

David Cramer sent in a patch to add binary support to the pgoutput plugin.

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

Tomáš Vondra sent in a patch to improve estimation of OR clauses using extended
statistics.

Peter Eisentraut sent in a patch to adjust cycle detection examples and tests.

Nikolay Shaplov sent in another revision of a patch to split StdRdOptions into
HeapOptions and ToastOptions.

Vigneshwaran C sent in a patch to fix situations where Parallel worker hangs
while handling errors.

Laurenz Albe sent in another revision of a patch to introduce a new RelInfoList
structure, add basic functionality for aggregate pushdown, and use partial paths
as additional input for grouped paths.

Daniel Gustafsson sent in another revision of a patch to support NSS as a libpq
TLS backend.

Fujii Masao sent in a patch to document the overhead caused by track planning.

Peter Eisentraut sent in a patch to avoid hiding the "Up" link when it is the
same as "Home".

Peter Geoghegan sent in a patch to add a GUC that limits memory use for hash
tables.

Vigneshwaran C sent in two revisions of a patch to remove an nused function
parameter in parallel vacuum & reorder buffer.

Justin Pryzby sent in another revision of a patch to implement some secondary
index access optimizations, and avoid index scan inconsistent with partition
constraint.

Fabien COELHO sent in another revision of a patch to measure pgbench time in
microseconds, and use pthread barriers.

Movead Li sent in another revision of a patch to add functions to get origin
information from commit_ts.

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

Pavel Stěhule sent in another revision of a patch to implement schema variables.

Anna Akenteva sent in two revisions of a patch to implement ALTER TABLE ...
ALTER CONSTRAINT ...  USING INDEX ...

Paul A Jungwirth sent in another revision of a patch to implement multiranges.

Pavel Stěhule sent in another revision of a patch to add a --filter option to
pg_dump.



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

Предыдущее
От: Hamid Akhtar
Дата:
Сообщение: ORC FDW v1.0.0 is Released
Следующее
От: Monica Real Amores
Дата:
Сообщение: Barman v2.11 Now Available