== PostgreSQL Weekly News - March 8, 2020 ==

From: David Fetter <david(at)fetter(dot)org>
To: PostgreSQL Announce <pgsql-announce(at)postgresql(dot)org>
Subject: == PostgreSQL Weekly News - March 8, 2020 ==
Date: 2020-03-08 22:08:33
Message-ID: 20200308220833.GA26266@fetter.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)fetter(dot)org(dot)

== 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(at)gmail(dot)com> Discussion:
https://www.postgresql.org/message-id/flat/CALDaNm3sn4yOq-4rogb-CfE0EYw6b3mVzz8+DnS9BNRwPnhngw(at)mail(dot)gmail(dot)com
https://git.postgresql.org/pg/commitdiff/d433b79b89c7d429ab69cb00857a8aca45d0ad47

- Update Microsoft documentation link. Reported-by: Juan José Santamaría Flecha
<juanjo(dot)santamaria(at)gmail(dot)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.

Browse pgsql-announce by date

  From Date Subject
Next Message Damien Clochard 2020-03-09 13:23:18 PostgreSQL Anonymizer 0.6: Pseudonymization and Improved Anonymous Exports
Previous Message Paul Ramsey 2020-03-05 23:13:02 pg_tileserv for PostgreSQL/PostGIS