== PostgreSQL Weekly News - March 8, 2020 == - Mailing list pgsql-announce

From David Fetter
Subject == PostgreSQL Weekly News - March 8, 2020 ==
Date
Msg-id 20200308220833.GA26266@fetter.org
Whole thread Raw
List pgsql-announce
== PostgreSQL Weekly News - March  8, 2020 ==

PgConf Belgium will take place on May 8, 2020 at the UCLL Campus in Haasrode
(near Leuven). The CfS is open through March 31, 2020 at https://pgconf.be/#cfs
http://pgconf.be

Odyssey 1.1, a multi-threaded connection pooler for PostgreSQL, released.
https://github.com/yandex/odyssey/releases

Bucardo 5.6.0, a replication system with dual-master capability, released.
http://bucardo.org/wiki/Bucardo

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

== PostgreSQL Product News ==

== PostgreSQL Jobs for March ==

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

== PostgreSQL Local ==

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

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

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

PGConfNepal 2020 will be held April 17-18, 2020 at Kathmandu University, Dhulikhel,
Nepal.
https://pgconf.org.np/

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

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

PGCon 2020 will take place in Ottawa on May 26-29, 2020.
https://www.pgcon.org/2020/

PGDay.IT 2020 will take place June 11-12 in Bergamo, Italy.
https://2020.pgday.it/en/

Swiss PGDay 2020 will take place in Rapperswil (near Zurich) on June 18-19, 2020.
The Call for Speakers is open through March 17, 2020.
https://www.pgday.ch/2020/

Postgres Ibiza will be held in Ibiza, Spain on June 25-26, 2020.
https://pgibz.io/

PostgresLondon 2020 will be July 7-8, 2020 with an optional training day on
July 6. The CfP is open at https://forms.gle/5m8ybUt9YDZG4gVU7 through March
27, 2020.
http://postgreslondon.org

PG Day Russia will be in Saint Petersburg on July 10, 2020. The CfP is open at
https://pgday.ru/en/2020/for-speakers through April 6, 2020.
https://pgday.ru/en/2020/

FOSS4G 2020, will take place in Calgary, Alberta, Canada August 24-29 2020.
the Call for Papers is currently open at https://2020.foss4g.org/speakers/
https://2020.foss4g.org/

Austrian pgDay will take place September 18, 2020 at Schloss Schoenbrunn
(Apothekertrakt) in Vienna. The CfP is open until April 19, 2020 at
https://pgday.at/en/talk-commitee/
https://pgday.at/en/

== 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 dead code from _bt_update_posting(). Discussion:
  https://postgr.es/m/CAH2-WzmAufHiOku6AGiFD=81VQs5nYJ1L2YkhW1t+BH4CMsgRw@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/84ec9b231a865348f5388dcc125c084297709332

- Add assertions to _bt_update_posting(). Copy some assertions from
  _bt_form_posting() to its sibling function, _bt_update_posting().  Discussion:
  https://postgr.es/m/CAH2-WzkPR8KMwkL0ap976kmXwBCeukTeHz6fB-U__wvuP1S9Zg@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/77b88bd5dc92a46319a3dd4b554f89f634bb9eaa

- Silence nbtree.h cpluspluscheck warning. Add a cast to size_t to silence
  "comparison between signed and unsigned integer expressions" cpluspluscheck
  warning.  Reported-By: Tom Lane Discussion:
  https://postgr.es/m/7971.1583171266@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/90051cd8278bd089cf59ca6366df64de2982be2a

- Remove overzealous _bt_split() assertions. _bt_split() is passed NULL as its
  insertion scankey for internal page splits.  Two recently added Assert()
  statements failed to consider this, leading to a crash with pg_upgrade'd
  BREE_VERSION < 4 indexes.  Remove the assertions.  The assertions in question
  were added by commit 0d861bbb, which added nbtree deduplication.  It would be
  possible to fix the assertions directly instead, but they weren't adding much
  anyway.
  https://git.postgresql.org/pg/commitdiff/1e07f5e0a1cf56f8cbc121dbb86c128a0f711c94

- pageinspect: Fix types used for bt_metap() columns. The data types that
  contrib/pageinspect's bt_metap() function were declared to return as OUT
  arguments were wrong in some cases.  For example, the oldest_xact column (a
  TransactionId/xid field) was declared integer/int4 within the pageinspect
  extension's sql file.  This led to errors when an oldest_xact value that
  exceeded 2^31-1 was encountered. Some of the other columns were defined
  incorrectly ever since pageinspect was first introduced, though they were far
  less likely to produce problems in practice.  Fix these issues by changing the
  declaration of bt_metap() to consistently use data types that can reliably
  represent all possible values.  This fixes things on HEAD only.  No backpatch,
  since it doesn't seem like there is a safe way to fix the issue without
  including a new version of the pageinspect extension (HEAD/Postgres 13 already
  introduced a new version of the extension).  Besides, the oldest_xact issue
  has been around since the release of Postgres 11, and we haven't heard any
  complaints about it before now.  Also, throw an error when we detect a
  bt_metap() declaration that must be from an old version of the pageinspect
  extension by examining the number of attributes from the tuple descriptor for
  the return tuples. It seems better to throw an error in a reliable and obvious
  way following a Postgres upgrade, rather than letting bt_metap() fail
  unpredictably.  The problem is fundamentally with the CREATE FUNCTION declared
  data types themselves, so I see no sensible alternative.  Reported-By: Victor
  Yegorov Bug: #16285 Discussion:
  https://postgr.es/m/16285-df8fc1000ab3d5fc@postgresql.org
  https://git.postgresql.org/pg/commitdiff/691e8b2e1889d61df47ae76601fa9db6cbac6f1c

Michaël Paquier pushed:

- Handle logical decoding in multi-insert for catalog tuples. The code path for
  multi-insert decoding is not stressed yet for catalogs (a future patch may
  introduce this capability), so no back-patch is needed.  Author: Daniel
  Gustafsson Discussion:
  https://postgr.es/m/9690D72F-5C4F-4016-9572-6D16684E1D87@yesql.se
  https://git.postgresql.org/pg/commitdiff/12c5cad76f9247f39b6e542ef1c6255912c2adda

- Fix command-line colorization on Windows with VT100-compatible environments.
  When setting PG_COLOR to "always" or "auto" in a Windows terminal
  VT100-compatible, the colorization output was not showing up correctly because
  it is necessary to update the console's output handling mode. This fix allows
  to detect automatically if the environment is compatible with VT100.  Hence,
  PG_COLOR=auto is able to detect and handle both compatible and non-compatible
  environments.  The behavior of PG_COLOR=always remains unchanged, as it
  enforces the use of colorized output even if the environment does not allow
  it.  This fix is based on an initial suggestion from Thomas Munro.
  Reported-by: Haiying Tang Author: Juan José Santamaría Flecha Reviewed-by:
  Michail Nikolaev, Michael Paquier, Haiying Tang Discussion:
  https://postgr.es/m/16108-134692e97146b7bc@postgresql.org Backpatch-through:
  12
  https://git.postgresql.org/pg/commitdiff/3b77dce863d94de2de40b2a302c0f58248655e6c

- Preserve pg_index.indisclustered across REINDEX CONCURRENTLY. If the flag
  value is lost, a CLUSTER query following REINDEX CONCURRENTLY could fail.
  Non-concurrent REINDEX is already handling this case consistently.  Author:
  Justin Pryzby Discussion:
  https://postgr.es/m/20200229024202.GH29456@telsasoft.com Backpatch-through: 12
  https://git.postgresql.org/pg/commitdiff/d79fb88ac738e0854e84a6c9445babfa5b2504b0

- Fix assertion failure with ALTER TABLE ATTACH PARTITION and indexes. Using
  ALTER TABLE ATTACH PARTITION causes an assertion failure when attempting to
  work on a partitioned index, because partitioned indexes cannot have partition
  bounds.  The grammar of ALTER TABLE ATTACH PARTITION requires partition
  bounds, but not ALTER INDEX, so mixing ALTER TABLE with partitioned indexes is
  confusing.  Hence, on HEAD, prevent ALTER TABLE to attach a partition if the
  relation involved is a partitioned index.  On back-branches, as applications
  may rely on the existing behavior, just remove the culprit assertion.
  Reported-by: Alexander Lakhin Author: Amit Langote, Michael Paquier
  Discussion: https://postgr.es/m/16276-5cd1dcc8fb8be7b5@postgresql.org
  Backpatch-through: 11
  https://git.postgresql.org/pg/commitdiff/0b48f1335dddb7141160e392cccac98edfb3fa85

- Fix more issues with dependency handling at swap phase of REINDEX
  CONCURRENTLY. When canceling a REINDEX CONCURRENTLY operation after swapping
  is done, a drop of the parent table would leave behind old indexes.  This is a
  consequence of 68ac9cf, which fixed the case of pg_depend bloat when repeating
  REINDEX CONCURRENTLY on the same relation.  In order to take care of the
  problem without breaking the previous fix, this uses a different strategy,
  possible even with the exiting set of routines to handle dependency changes.
  The dependencies of/on the new index are additionally switched to the old one,
  allowing an old invalid index remaining around because of a cancellation or a
  failure to use the dependency links of the concurrently-created index.  This
  ensures that dropping any objects the old invalid index depends on also drops
  the old index automatically.  Reported-by: Julien Rouhaud Author: Michael
  Paquier Reviewed-by: Julien Rouhaud Discussion:
  https://postgr.es/m/20200227080735.l32fqcauy73lon7o@nol Backpatch-through: 12
  https://git.postgresql.org/pg/commitdiff/fbcf0871123b464fef7f957301dcc57377cde9c5

- Avoid -Wconversion warnings when using checksum_impl.h. This does not matter
  much when compiling Postgres proper as many warnings exist when enabling this
  compilation flag, but it can be annoying for external modules willing to use
  both.  Author: David Steele Discussion:
  https://postgr.es/m/91d86c8a-11fc-7b88-43eb-5ca3f6fb8bd3@pgmasters.net
  https://git.postgresql.org/pg/commitdiff/0065174324a97c0f39ccf0823a81fb674fb49cca

- Fix page-level checksum calculation in checksum_impl.h. Issue introduced by
  me, as of 0065174.  Reported-by: David Steele Discussion:
  https://postgr.es/m/1cf30561-7dad-dc6e-9fc3-5c456948cfeb@pgmasters.net
  https://git.postgresql.org/pg/commitdiff/addd034ae1795d0a99305b294e4dce44c6b1dfd8

Peter Eisentraut pushed:

- Remove long unused code behind a #if 0. Author: Vignesh C
  <vignesh21@gmail.com> Discussion:
  https://www.postgresql.org/message-id/flat/CALDaNm3sn4yOq-4rogb-CfE0EYw6b3mVzz8+DnS9BNRwPnhngw@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/d433b79b89c7d429ab69cb00857a8aca45d0ad47

- Update Microsoft documentation link. Reported-by: Juan José Santamaría Flecha
  <juanjo.santamaria@gmail.com> Discussion:
  https://www.postgresql.org/message-id/CAC%2BAXB1EDXiRPmiVfh%2BWX79x5vXJDU17k0GkDjfyPgOWO4Y5og%40mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/ed0d8837658946de4c965a55bf0ea73fd2682d7f

- pg_standby: Don't use HAVE_WORKING_LINK. HAVE_WORKING_LINK is meant to
  indicate support for hard links, mainly for Windows.  Here it is used for soft
  links on Unix, and the functionality is optional anyway, so we can just make
  it error out normally if needed.  Discussion:
  https://www.postgresql.org/message-id/flat/72fff73f-dc9c-4ef4-83e8-d2e60c98df48%402ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/1810ca18bfad9072facc548417630115b078483e

- Move pg_upgrade's Windows link() implementation to AC_REPLACE_FUNCS. This way
  we can make use of it in other components as well, and it fits better with the
  rest of the build system.  Discussion:
  https://www.postgresql.org/message-id/flat/72fff73f-dc9c-4ef4-83e8-d2e60c98df48%402ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/0ad6f848eef267489d4aee7306c16f96454b7a64

- Fix typo.
  https://git.postgresql.org/pg/commitdiff/8d7def5c27c18c85deaf4e55c39a074600f36b48

- doc: Add information about new SQL part SQL/MDA.
  https://git.postgresql.org/pg/commitdiff/33e27c3785c5ce8a3264d6af2550ec5adcebc517

- doc: Remove unused ids. Some reference pages contained id attributes on
  refname elements. These were apparently copied around from ancient times, but
  they don't serve a purpose.  FOP issues minor warnings about them.  So it's
  easiest to just remove them.
  https://git.postgresql.org/pg/commitdiff/7e39b968f118c6444bd3a3bd59c3e9d73e652e0c

Tom Lane pushed:

- Blacklist port/win32_msvc/utime.h in cpluspluscheck and headerscheck. Since
  commit 481c8e923 it tends to produce "error: sys/utime.h: No such file or
  directory" on non-Windows platforms.
  https://git.postgresql.org/pg/commitdiff/7b425a5283cb2c8a452c2e79d6218e41373fd641

- Fix possibly-uninitialized variable. Thinko in 2f9661311.  Per buildfarm, as
  well as warning seen locally.
  https://git.postgresql.org/pg/commitdiff/91f3bd732cea7e25e53eaceae88232d0ab984434

- Allow to_date/to_timestamp to recognize non-English month/day names. to_char()
  has long allowed the TM (translation mode) prefix to specify output of
  translated month or day names; but that prefix had no effect in input format
  strings.  Now it does.  to_date() and to_timestamp() will now recognize the
  same month or day names that to_char() would output for the same format code.
  Matching is case-insensitive (per the active collation's notion of what that
  means), just as it has always been for English month/day names without the TM
  prefix.  (As per the discussion thread, there are lots of cases that this
  feature will not handle, such as alternate day names.  But being able to
  accept what to_char() will output seems useful enough.)  In passing, fix some
  shaky English and violations of message style guidelines in jsonpath errors
  for the .datetime() method, which depends on this code.  Juan José Santamaría
  Flecha, reviewed and modified by me, with other commentary from Alvaro
  Herrera, Tomas Vondra, Arthur Zakirov, Peter Eisentraut, Mark Dilger.
  Discussion:
  https://postgr.es/m/CAC+AXB3u1jTngJcoC1nAHBf=M3v-jrEfo86UFtCqCjzbWS9QhA@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/d67755049388526cd8673aa826dc794b97345eb3

- Introduce macros for typalign and typstorage constants. Our usual practice for
  "poor man's enum" catalog columns is to define macros for the possible values
  and use those, not literal constants, in C code.  But for some reason lost in
  the mists of time, this was never done for typalign/attalign or
  typstorage/attstorage.  It's never too late to make it better though, so let's
  do that.  The reason I got interested in this right now is the need to
  duplicate some uses of the TYPSTORAGE constants in an upcoming ALTER TYPE
  patch. But in general, this sort of change aids greppability and readability,
  so it's a good idea even without any specific motivation.  I may have missed a
  few places that could be converted, and it's even more likely that pending
  patches will re-introduce some hard-coded references.  But that's not fatal
  --- there's no expectation that we'd actually change any of these values.  We
  can clean up stragglers over time.  Discussion:
  https://postgr.es/m/16457.1583189537@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/3ed2005ff595d349276e5b2edeca1a8100b08c87

- Remove ancient support for upgrading pre-7.3 foreign key constraints. Before
  7.3, foreign key constraints had no explicit catalog representation, so that
  what pg_dump produced for them was (usually) a set of three CREATE CONSTRAINT
  TRIGGER commands.  Commit a2899ebdc and some follow-on fixes added an ugly
  hack in CreateTrigger() to recognize that pattern and reconstruct the foreign
  key definition. However, we've never had any test coverage for that code, so
  that it's legitimate to wonder if it still works; and having to maintain it in
  the face of upcoming trigger-related patches seems rather pointless. Let's
  decree that its time has passed, and drop it.  This is part of a group of
  patches removing various server-side kluges for transparently upgrading
  pre-8.0 dump files.  Since we've had few complaints about dropping pg_dump's
  support for dumping from pre-8.0 servers (commit 64f3524e2), it seems okay to
  now remove these kluges.  Daniel Gustafsson  Discussion:
  https://postgr.es/m/805874E2-999C-4CDA-856F-1AFBD9DFE933@yesql.se
  https://git.postgresql.org/pg/commitdiff/e58a5997528794687e40ec64b3c4d95a4e6cd0b0

- Remove ancient hacks to ignore certain opclass names in CREATE INDEX. Twenty
  years ago, we removed certain operator classes in favor of letting indexes
  over their data types be built with some other binary-compatible, more
  standard opclass.  As a hack to allow existing index definitions to be dumped
  and reloaded, we made CREATE INDEX ignore the removed opclass names, so that
  such indexes would fall back to the new default opclass for their data types.
  This was never intended to be a long-lived thing; it carries the obvious risk
  of breaking some future developer's attempt to re-use those old opclass names.
  Since all of the cases in question are for opclasses that were removed before
  PG 8.0, it seems okay to get rid of these hacks now.  This is part of a group
  of patches removing various server-side kluges for transparently upgrading
  pre-8.0 dump files.  Since we've had few complaints about dropping pg_dump's
  support for dumping from pre-8.0 servers (commit 64f3524e2), it seems okay to
  now remove these kluges.  Discussion:
  https://postgr.es/m/3685.1583422389@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/84eca14bc4bdf71911cceb3a6286bc47db3a5a06

- Remove the "opaque" pseudo-type and associated compatibility hacks. A long
  time ago, it was necessary to declare datatype I/O functions, triggers, and
  language handler support functions in a very type-unsafe way involving a
  single pseudo-type "opaque".  We got rid of those conventions in 7.3, but
  there was still support in various places to automatically convert such
  functions to the modern declaration style, to be able to transparently re-load
  dumps from pre-7.3 servers. It seems unnecessary to continue to support that
  anymore, so take out the hacks; whereupon the "opaque" pseudo-type itself is
  no longer needed and can be dropped.  This is part of a group of patches
  removing various server-side kluges for transparently upgrading pre-8.0 dump
  files.  Since we've had few complaints about dropping pg_dump's support for
  dumping from pre-8.0 servers (commit 64f3524e2), it seems okay to now remove
  these kluges.  Discussion: https://postgr.es/m/4110.1583255415@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/bb03010b9f0766e10399174fe850b2506907c4e4

- Allow ALTER TYPE to change some properties of a base type. Specifically, this
  patch allows ALTER TYPE to: * Change the default TOAST strategy for a
  toastable base type; * Promote a non-toastable type to toastable; * Add/remove
  binary I/O functions for a type; * Add/remove typmod I/O functions for a type;
  * Add/remove a custom ANALYZE statistics functions for a type.  The first of
  these can be done by the type's owner; all the others require superuser
  privilege since misuse could cause problems.  The main motivation for this
  patch is to allow extensions to upgrade the feature sets of their data types,
  so the set of alterable properties is biased towards that use-case.  However
  it's also true that changing some other properties would be a lot harder, as
  they get baked into physical storage and/or stored expressions that depend on
  the type.  Along the way, refactor GenerateTypeDependencies() to make it
  easier to call, refactor DefineType's volatility checks so they can be shared
  by AlterType, and teach typcache.c that it might have to reload data from the
  type's pg_type row, a scenario it never handled before. Also rearrange
  alter_type.sgml a bit for clarity (put the composite-type operations
  together).  Tomas Vondra and Tom Lane  Discussion:
  https://postgr.es/m/20200228004440.b23ein4qvmxnlpht@development
  https://git.postgresql.org/pg/commitdiff/fe30e7ebfa3846416f1adeb7cf611006513a4ee0

- Allow Unicode escapes in any server encoding, not only UTF-8. SQL includes
  provisions for numeric Unicode escapes in string literals and identifiers.
  Previously we only accepted those if they represented ASCII characters or the
  server encoding was UTF-8, making the conversion to internal form trivial.
  This patch adjusts things so that we'll call the appropriate encoding
  conversion function in less-trivial cases, allowing the escape sequence to be
  accepted so long as it corresponds to some character available in the server
  encoding.  This also applies to processing of Unicode escapes in JSONB.
  However, the old restriction still applies to client-side JSON processing,
  since that hasn't got access to the server's encoding conversion
  infrastructure.  This patch includes some lexer infrastructure that simplifies
  throwing errors with error cursors pointing into the middle of a string (or
  other complex token).  For the moment I only used it for errors relating to
  Unicode escapes, but we might later expand the usage to some other cases.
  Patch by me, reviewed by John Naylor.  Discussion:
  https://postgr.es/m/2393.1578958316@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/a6525588b7c21fd8539e9a43ec9c5c245ed1cc91

- Create contrib/bool_plperl to provide a bool transform for PL/Perl[U].
  plperl's default handling of bool arguments or results is not terribly
  satisfactory, since Perl doesn't consider the string 'f' to be false. Ideally
  we'd just fix that, but the backwards-compatibility hazard would be
  substantial.  Instead, build a TRANSFORM module that can be optionally applied
  to provide saner semantics.  Perhaps usefully, this is also about the minimum
  possible skeletal example of a plperl transform module; so it might be a
  better starting point for user-written transform modules than hstore_plperl or
  jsonb_plperl.  Ivan Panchenko  Discussion:
  https://postgr.es/m/1583013317.881182688@f390.i.mail.ru
  https://git.postgresql.org/pg/commitdiff/36058a3c55d2c42a513a53da8140b07cf0893afb

- Simplify/speed up assertion cross-check in ginCompressPostingList(). I noticed
  while testing some other stuff that the CHECK_ENCODING_ROUNDTRIP logic in
  ginCompressPostingList could account for over 50% of the runtime of an INSERT
  with a GIN index.  While that's not relevant to production performance, it's
  still kind of annoying in a debug build.  Replacing the loop around short
  memcmp's with one long memcmp works just as well and is significantly faster,
  at least on my machine.
  https://git.postgresql.org/pg/commitdiff/ea7dace2aa21e79a7a8eb23c493bcd2057d9bd7e

- Tab completion: offer parens as appropriate in CREATE/ALTER TEXT SEARCH. Jeff
  Janes, Georgios Kokolatos  Discussion:
  https://postgr.es/m/CAMkU=1wU=vgxnvwy2HswLUVvoawrkrjZYeKXMr3w3p=_NNbGhQ@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/b9c3de62cbc9c6993ceac0de99985cf051e91c88

Álvaro Herrera pushed:

- Represent command completion tags as structs. The backend was using strings to
  represent command tags and doing string comparisons in multiple places, but
  that's slow and unhelpful.  Create a new command list with a supporting
  structure to use instead; this is stored in a tag-list-file that can be
  tailored to specific purposes with a caller-definable C macro, similar to what
  we do for WAL resource managers.  The first first such uses are a new
  CommandTag enum and a CommandTagBehavior struct.  Replace numerous occurrences
  of char *completionTag with a QueryCompletion struct so that the code no
  longer stores information about completed queries in a cstring.  Only at the
  last moment, in EndCommand(), does this get converted to a string.
  EventTriggerCacheItem no longer holds an array of palloc’d tag strings in
  sorted order, but rather just a Bitmapset over the CommandTags.  Author: Mark
  Dilger, with unsolicited help from Álvaro Herrera Reviewed-by: John Naylor,
  Tom Lane Discussion:
  https://postgr.es/m/981A9DB4-3F0C-4DA5-88AD-CB9CFF4D6CAD@enterprisedb.com
  https://git.postgresql.org/pg/commitdiff/2f9661311b83dc481fc19f6e3bda015392010a40

- Remove RangeIOData->typiofunc. We used to carry the I/O function OID in
  RangeIOData, but it's not used for anything.  Since the struct is not exposed
  to the world anyway, we can simplify it a bit.  Also, rename the FmgrInfo
  member to match the accompanying 'typioparam' and put them in a more sensible
  order.  Reviewed by Tom Lane and Paul Jungwirth.  Discussion:
  https://postgr.es/m/20200304215711.GA8732@alvherre.pgsql
  https://git.postgresql.org/pg/commitdiff/a77315fdf2a197a925e670be2d8b376c4ac02efc

Fujii Masao pushed:

- Report progress of streaming base backup. This commit adds
  pg_stat_progress_basebackup view that reports the progress while an
  application like pg_basebackup is taking a base backup. This uses the progress
  reporting infrastructure added by c16dc1aca5e0, adding support for streaming
  base backup.  Bump catversion.  Author: Fujii Masao Reviewed-by: Kyotaro
  Horiguchi, Amit Langote, Sergei Kornilov Discussion:
  https://postgr.es/m/9ed8b801-8215-1f3d-62d7-65bff53f6e94@oss.nttdata.com
  https://git.postgresql.org/pg/commitdiff/e65497df8f85ab9b9084c928ff69f384ea729b24

- Fix the name of the first WAL segment file, in docs. Previously the
  documentation explains that WAL segment files start at
  000000010000000000000000. But the first WAL segment file that initdb creates
  is 000000010000000000000001 not 000000010000000000000000. This change was
  caused by old commit 8c843fff2d, but the documentation had not been updated a
  long time.  Back-patch to all supported branches.  Author: Fujii Masao
  Reviewed-by: David Zhang Discussion:
  https://postgr.es/m/CAHGQGwHOmGe2OqGOmp8cOfNVDivq7dbV74L5nUGr+3eVd2CU2Q@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/54a4f52a9258198243c53fceaf8da70546ebd652

- Fix typo in monitoring.sgml. Author: Noriyoshi Shinoda
  https://git.postgresql.org/pg/commitdiff/61b73940452b1f6871a1d73f35216fb052a7a5ab

- Fix issues around .pgpass file. This commit fixes the following two issues
  around .pgpass file.  (1) If the length of a line in .pgpass file was larger
  than 319B,         libpq silently treated each 319B in the line as a separate
  setting line.  (2) The document explains that a line beginning with # is
  treated         as a comment in .pgpass. But there was no code doing such
  special handling. Whether a line begins with # or not, libpq         just
  checked that the first token in the line match with the host.  For (1), this
  commit makes libpq warn if the length of a line is larger than 319B, and throw
  away the remaining part beginning from 320B position.  For (2), this commit
  changes libpq so that it treats any lines beginning with # as comments.
  Author: Fujii Masao Reviewed-by: Hamid Akhtar Discussion:
  https://postgr.es/m/c0f0c01c-fa74-9749-2084-b73882fd5465@oss.nttdata.com
  https://git.postgresql.org/pg/commitdiff/2eb3bc58814fa1ab86308a3658ddb76081080db3

Jeff Davis pushed:

- Extend ExecBuildAggTrans() to support a NULL pointer check. Optionally push a
  step to check for a NULL pointer to the pergroup state.  This will be
  important for disk-based hash aggregation in combination with grouping sets.
  When memory limits are reached, a given tuple may find its per-group state for
  some grouping sets but not others. For the former, it advances the per-group
  state as normal; for the latter, it skips evaluation and the calling code will
  have to spill the tuple and reprocess it in a later batch.  Add the NULL check
  as a separate expression step because in some common cases it's not needed.
  Discussion:
  https://postgr.es/m/20200221202212.ssb2qpmdgrnx52sj%40alap3.anarazel.de
  https://git.postgresql.org/pg/commitdiff/c954d49046504bde0a80b5fec53f4321dd88f1ea

Alexander Korotkov pushed:

- Show opclass and opfamily related information in psql. This commit provides
  psql commands for listing operator classes, operator families and its contents
  in psql.  New commands will be useful for exploring capabilities of both
  builtin opclasses/opfamilies as well as opclasses/opfamilies defined in
  extensions.  Discussion:
  https://postgr.es/m/1529675324.14193.5.camel%40postgrespro.ru Author: Sergey
  Cherkashin, Nikita Glukhov, Alexander Korotkov Reviewed-by: Michael Paquier,
  Alvaro Herrera, Arthur Zakirov Reviewed-by: Kyotaro Horiguchi, Andres Freund
  https://git.postgresql.org/pg/commitdiff/b0b5e20cd8d1a58a8782d5dc806a5232db116e2f

== Pending Patches ==

Krasiyan Andreev sent in two more revisions of a patch to implement IGNORE NULLS
in windowing functions.

Pavel Stěhule sent in a patch to add \gf to psql for formatting the output of
queries.

Amit Langote sent in another revision of a patch to fix a partition routing
layering violation in nodeModifyTable.c.

Thomas Munro sent in another revision of a patch to implement WAL prefetching.

Peter Eisentraut sent in a patch to silence compiler warnings with Python 3.9.

Cary Huang sent in a patch to fix a documentation bug around TLS certificates.

Mike Palmiotto sent in two more revisions of a patch to introduce a subprocess
infrastructure and use same to refactor some crufty bits of the code.

Jesse Zhang sent in another revision of a patch to use LZCOUNT when possible.

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

Daniel Gustafsson sent in another revision of a patch to use heap_multi_insert()
for pg_attribute/depend insertions.

Hamid Akhtar sent in another revision of a patch to add some GUCs and
infrastructure for handling orphan prepared transactions.

Nikita Glukhov sent in two more revisions of a patch to implement more SQL/JSON
functions.

Andy Fan sent in two more revisions of a patch to Erase the distinct path if the
result is unique by catalog.

Fujii Masao and Noriyoshi Shinoda traded patches to implement a
pg_stat_progress_basebackup view.

Chris Bandy sent in five revisions of a patch to add tests for integrity
violation error fields and add object names to partition integrity violations.

Ashutosh Bapat sent in another revision of a patch to implement a better
partition matching algorithm for partition-wise join.

Soumyadeep Chakraborty sent in a patch to jit which eliminates a const pointer
to fmgrinfo.

Andres Freund sent in a patch to add CSNs.

Tels sent in another revision of a patch to improve the performance of sqrt on
NUMERICs.

Justin Pryzby sent in two more revisions of a patch to show the block being
processed in vacuum errcontext.

Tomáš Vondra sent in a patch to assign subtransaction xids to the top level xid
if the record has that information.

Masahiko Sawada sent in two more revisions of a patch to implement a key
management system.

Zeng Wenjing sent in three more revisions of a patch to implement global
temporary tables.

Laurenz Albe sent in four revisions of a patch to add
autovacuum_vacuum_insert_threshold and autovacuum_vacuum_insert_scale_factor
GUCs/reloptions.

Michaël Paquier sent in three revisions of a patch to fix some infelicities in
reindex dependencies.

Peter Geoghegan sent in another revision of a patch to avoid a pipeline stall in
_bt_compare() and inline it.

Julien Rouhaud sent in another revision of a patch to add queryId to
pg_stat_activity.

Dilip Kumar sent in another revision of a patch to add a fastpath for sending
changes to output plugin in logical decoding.

Kyotaro HORIGUCHI sent in another revision of a patch to fix the WAL-skipping
feature.

Julien Rouhaud sent in another revision of a patch to implement collation
versioning.

Peter Eisentraut sent in another revision of a patch to remove
HAVE_WORKING_LINK.

Dmitry Dolgov sent in another revision of a patch to implement generic type
subscripting.

Fujii Masao sent in another revision of a patch to fix an issue in .pgpass where
lines were silently being split if they were too long.

Michaël Paquier sent in another revision of a patch to pg_rewind which adds
options to use the restore_command from recovery.conf or the command line.

Arseny Sher sent in two more revisions of a patch to fix some logical
copy_replication_slot issues.

Michaël Paquier sent in two more revisions of a patch to fix the documentation
for PG_COLOR.

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

Jeff Davis sent in another revision of a patch to add LogicalTapeSetExtend() to
logtape.c.

Mahendra Singh sent in two more revisions of a patch to add a Conflict EXTENTION
lock in group member, and add an Assert to verify that we never try to take any
heavyweight lock after acquiring relation Extension lock.

Masahiko Sawada sent in another revision of a patch to identify user-created
objects.

Masahiko Sawada sent in two more revisions of a patch to fix double updating ps
title when recovery conflict resolution with lock, and update the process title
during conflict resolution with buffer-pin and database.

Álvaro Herrera sent in another revision of a patch to implement multiranges.

Tomáš Vondra sent in another revision of a patch to add support for IN and @> in
functional-dependency statistics use.

Mark Dilger sent in a patch to implement the cmdstats subsystem.

Kyotaro HORIGUCHI sent in another revision of a patch to make end-of-recovery
error less scary.

Peter Eisentraut sent in another revision of a patch to preserve the replica
identity index across ALTER TABLE rewrite operations.

Daniel Gustafsson sent in a patch to add a test for add a test for large object
updates.

Ibrar Ahmed sent in another revision of a patch to ensure that COPY FREEZE
actually freezes right.

David Zhang sent in a patch to add a couple of tests for GSSAPI auth.

Robert Haas sent in another revision of a patch to implement backup manifests.

Kyotaro HORIGUCHI and Fujii Masao traded patches to add a TAP test for a crash
bug, tidy up XLogSource usage, and fix a crash bug in targeted promotion.

Ivan Kartyshov sent in two more revisions of a patch to make async replicas wait
for lsn to be replayed.

James Coleman sent in two more revisions of a patch to implement incremental
sort.

Julien Rouhaud sent in two more revisions of a patch to prevent reindexing
invalid indexes on TOAST tables.

Justin Pryzby sent in three more revisions of a patch to make pg_ls_tmpdir show
directories and shared filesets.

Asif Rehman and Pavel Stěhule traded patches to implement schema variables.

Ibrar Ahmed sent in another revision of a patch to add tab completion to psql
for ALTER .. DEPENDS ON EXTENSION.

Fujii Masao sent in a patch to prefer promote to pause.

Álvaro Herrera sent in a patch to have range_deserialize have an out param
for flags (replacing "empty"). Callers can examine "IsEmpty" from
that using a macro accessor.

Justin Pryzby sent in a patch to make explain show tuplehash bucket and memory
stats.

John Dent sent in another revision of a patch to implement UNNEST(REFCURSOR).

Julien Rouhaud sent in a patch to add an optional timeout value to
isolationtester steps, and add regression tests for failed REINDEX TABLE
CONCURRENTLY.

Tomáš Vondra sent in two more revisions of a patch to support using extended
stats for parts of OR clauses, support clauses of the form Var op Var, and
support extended statistics on expressions.

Nikita Glukhov sent in another revision of a patch to improve the ltree syntax.

Fabien COELHO sent in another revision of a patch to make it possible to connect
asynchronously in pgbench.

Fabien COELHO sent in another revision of a patch to add barriers to pgbench.

Peter Eisentraut sent in another revision of a patch to refactor ps_status.c
API, unify several ways to tracking backend type, add backend type to csvlog and
optionally log_line_prefix, and replace am_syslogger global variable with
MyBackendType.

Peter Eisentraut sent in a patch to remove utils/acl.h from
catalog/objectaddress.h.

Tom Lane sent in another revision of a patch to fix a bug in pg_restore with
EventTrigger in parallel mode.

James Coleman sent in another revision of a patch to improve pg_rewind
explanation and warnings.




pgsql-announce by date:

Previous
From: Paul Ramsey
Date:
Subject: pg_tileserv for PostgreSQL/PostGIS
Next
From: Damien Clochard
Date:
Subject: PostgreSQL Anonymizer 0.6: Pseudonymization and Improved AnonymousExports