== PostgreSQL Weekly News - February 9, 2020 ==

From: David Fetter <david(at)fetter(dot)org>
To: PostgreSQL Announce <pgsql-announce(at)postgresql(dot)org>
Subject: == PostgreSQL Weekly News - February 9, 2020 ==
Date: 2020-02-09 18:42:42
Message-ID: 20200209184242.GA15303@fetter.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-announce

== PostgreSQL Weekly News - February 9, 2020 ==

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

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

pg_sqlog 1.0, an extension that provides SQL interface to the PostgreSQL logs,
released,
https://github.com/kouber/pg_sqlog

Database Lab 0.2.0, a tool for fast cloning of large PostgreSQL databases to
build non-production environments, released:
https://gitlab.com/postgres-ai/database-lab

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

pgspider, a cluster engine for distributed data based on PostgreSQL foreign
data wrappers, released.
https://github.com/pgspider/pgspider

== PostgreSQL Jobs for February ==

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

== PostgreSQL Local ==

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

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

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

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

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

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

PGCon 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/

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/

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

Michaël Paquier pushed:

- Add declaration-level assertions for compile-time checks. Those new assertions
can be used at file scope, outside of any function for compilation checks.
This commit provides implementations for C and C++, and fallback
implementations. Author: Peter Smith Reviewed-by: Andres Freund, Kyotaro
Horiguchi, Dagfinn Ilmari Mannsåker, Michael Paquier Discussion:
https://postgr.es/m/201DD0641B056142AC8C6645EC1B5F62014B8E8030@SYD1217
https://git.postgresql.org/pg/commitdiff/f1f10a1ba9e17e606a7b217ccccdd3cc4d8cb771

- Fix fuzzy error handling in pg_basebackup when opening gzFile. First, this
code did not bother checking for a failure when calling dup(). Then, per
zlib, gzerror() returns NULL for a NULL input, which can happen if passing
down to gzdopen() an invalid file descriptor or if there was an allocation
failure. No back-patch is done as this would unlikely be a problem in the
field. Per Coverity. Reported-by: Tom Lane
https://git.postgresql.org/pg/commitdiff/177be9edf4bb966400db7769d61e479aa0fe0201

- Add leader_pid to pg_stat_activity. This new field tracks the PID of the group
leader used with parallel query. For parallel workers and the leader, the
value is set to the PID of the group leader. So, for the group leader, the
value is the same as its own PID. Note that this reflects what PGPROC stores
in shared memory, so as leader_pid is NULL if a backend has never been
involved in parallel query. If the backend is using parallel query or has
used it at least once, the value is set until the backend exits. Author:
Julien Rouhaud Reviewed-by: Sergei Kornilov, Guillaume Lelarge, Michael
Paquier, Tomas Vondra Discussion:
https://postgr.es/m/CAOBaU_Yy5bt0vTPZ2_LUM6cUcGeqmYNoJ8-Rgto+c2+w3defYA@mail.gmail.com
https://git.postgresql.org/pg/commitdiff/b025f32e0b5d7668daec9bfa957edf3599f4baa8

- Revert "Add GUC checks for ssl_min_protocol_version and
ssl_max_protocol_version". This reverts commit 41aadee, as the GUC checks
could run on older values with the new values used, and result in incorrect
errors if both parameters are changed at the same time. Per complaint from
Tom Lane. Discussion: https://postgr.es/m/27574.1581015893@sss.pgh.pa.us
Backpatch-through: 12
https://git.postgresql.org/pg/commitdiff/414c2fd1e1c0ccd1af1cad046bef1264e3f4347f

- Revert "Prevent running pg_basebackup as root". This reverts commit 7bae0ad,
as this is not ideal with the tar format, and we may want to explore more
options like what is done by tar with some equivalents of --owner and --group,
but for pg_basebackup. Per complaints from Magnus Hagander and Stephen Frost.
Discussion: https://postgr.es/m/20200205172259.GW3195@tamriel.snowman.net
https://git.postgresql.org/pg/commitdiff/dcddc3f813ff39d0e33c2b7c77092a6c0b0e9d0b

- Fix typo in proc.c. Author: Julien Rouhaud Discussion:
https://postgr.es/m/20200206082333.GA95343@nol
https://git.postgresql.org/pg/commitdiff/5ac4e9a12c6543414891cd8972b2cd36a08e40cc

- Bump catalog version for the addition of leader_pid in pg_stat_activity.
Oversight in commit b025f32. Per private report from Julien Rouhaud.
https://git.postgresql.org/pg/commitdiff/c4f3b63caba02b087519d58cb9bf4990b9c8ec45

Álvaro Herrera pushed:

- Add missing break out seqscan loop in logical replication. When replica
identity is FULL (an admittedly unusual case), the loop that searches for
tuples in execReplication.c didn't stop scanning the table when once a
matching tuple was found. Add the missing 'break'. Note slight behavior
change: we now return the first matching tuple rather than the last one. They
are supposed to be indistinguishable anyway, so this shouldn't matter.
Author: Konstantin Knizhnik Discussion:
https://postgr.es/m/379743f6-ae91-b866-f7a2-5624e6d2b0a4@postgrespro.ru
https://git.postgresql.org/pg/commitdiff/1c7a0b387d18c517d45e2f6ec7d8b7d1b2d5fe13

- ALTER SUBSCRIPTION / REFRESH docs: explain copy_data. The docs are ambiguous
as to which tables would be copied over when the copy_data parameter is true
in ALTER SUBSCRIPTION ... REFRESH PUBLICATION. Make it clear that it only
applies to tables which are new in the publication. Author: David Christensen
(reword by Álvaro Herrera) Discussion:
https://postgr.es/m/95339420-7F09-4F8C-ACC0-8F1CFAAD9CD7@endpoint.com
https://git.postgresql.org/pg/commitdiff/75cdf24ec3f812b2c52e0f47286665f9c8ced24b

- Make vacuum buffer counters 64 bits wide. Using 32 bit counters means they can
now realistically wrap around when vacuuming extremely large tables. Because
they're signed integers, stats printed by vacuum look very odd when they do.
We'd love to backpatch this, but refrain because the variables are exported
and could cause third-party code to break. Reviewed-by: Julien Rouhaud, Tom
Lane, Michael Paquier Discussion:
https://postgr.es/m/20200131205926.GA16367@alvherre.pgsql
https://git.postgresql.org/pg/commitdiff/15d13e82911f7cc9f04f0bf419a96fd827fd1a9d

- Fix TRUNCATE .. CASCADE on partitions. When running TRUNCATE CASCADE on a
child of a partitioned table referenced by another partitioned table, the
truncate was not applied to partitions of the referencing table; this could
leave rows violating the constraint in the referencing partitioned table.
Repair by walking the pg_constraint chain all the way up to the topmost
referencing table. Note: any partitioned tables containing FKs that reference
other partitioned tables should be checked for possible violating rows, if
TRUNCATE has occurred in partitions of the referenced table. Reported-by:
Christophe Courtois Author: Jehan-Guillaume de Rorthais Discussion:
https://postgr.es/m/20200204183906.115f693e@firost
https://git.postgresql.org/pg/commitdiff/9710d3d4a87f428a10f63015a0d75ccf028dd137

- Fix failure to create FKs correctly in partitions. On a multi-level partioned
table, when adding a partition not directly connected to the root table,
foreign key constraints referencing the root were not cloned to the new
partition, leading to the FK being possibly inadvertently violated later on.
This was caused by fuzzy thinking in CloneFkReferenced (commit f56f8f8da6af):
it was skipping constraints marked as having parents on the theory that
cloning those would create duplicates; but that's only correct for the top
level of the partitioning hierarchy. For levels below that one, such
constraints must still be considered and only skipped if later on we see that
we'd create duplicates. Apparently, I (Álvaro) wrote the comments right but
the code implemented something slightly different. Author: Jehan-Guillaume de
Rorthais Discussion: https://postgr.es/m/20200206004948.238352db@firost
https://git.postgresql.org/pg/commitdiff/55173d2e663fbe32430665ce7bd65a47856dc237

Tom Lane pushed:

- Fix handling of "Subplans Removed" field in EXPLAIN output. Commit 499be013d
added this field in a rather poorly-thought-through manner, with the result
being that rather than being a field of the Append or MergeAppend plan node as
intended (and as it seems to be, in text format), it was actually an element
of the "Plans" subgroup. At least in JSON format, that's flat out invalid
syntax, because "Plans" is an array not an object. While it's not hard to
move the generation of the field so that it appears where it's supposed to,
this does result in a visible change in field order in text format, in cases
where a Append or MergeAppend plan node has any InitPlans attached. That's
slightly annoying to do in stable branches; but the alternative of continuing
to emit broken non-text formats seems worse. Also, since the set of fields
emitted is not supposed to be data-dependent in non-text formats, make sure
that "Subplans Removed" appears in Append and MergeAppend nodes even when it's
zero, in those formats. (The previous coding made it look like it could
appear in some other node types such as BitmapAnd, but we don't actually
support runtime pruning there, so don't emit it in those cases.) Per bug
#16171 from Mahadevan Ramachandran. Fix by Daniel Gustafsson and Tom Lane,
reviewed by Hamid Akhtar. Back-patch to v11 where this code came in.
Discussion: https://postgr.es/m/16171-b72259ab75505fa2@postgresql.org
https://git.postgresql.org/pg/commitdiff/7d91b604d9b5d6ec8c19c57a9ffd2f27129cdd94

- Store the deletion horizon XID for a deleted GIN page on the right page.
Commit b10714080 moved the GinPageSetDeleteXid() call to a spot where the
"page" variable was pointing to the wrong page, causing the XID to be inserted
on a page that's not being deleted, thus allowing later GinPageIsRecyclable
tests to recycle the deleted page too soon. It might be a good idea to stop
using the single "page" variable for multiple purposes in this function. But
for the moment I just moved the GinPageSetDeleteXid() call down beside the
GinPageSetDeleted() call, which seems like a more logical place for it anyway.
Back-patch to v11, as the faulty patch was. (Fortunately, the bug hasn't made
it into any release yet.) Discussion:
https://postgr.es/m/21620.1581098806@sss.pgh.pa.us
https://git.postgresql.org/pg/commitdiff/4093ff573702e9f157507340593680dc2c75e88e

Thomas Munro pushed:

- Handle lack of DSM slots in parallel btree build, take 2. Commit 74618e77
added a new check intended to fix a bug, but put it in the wrong place so that
parallel btree build was always disabled. Do the check after we've actually
tried to create a DSM segment. Back-patch to 11, like the earlier commit.
Reviewed-by: Peter Geoghegan Discussion:
https://postgr.es/m/CAH2-WzmDABkJzrNnvf%2BOULK-_A_j9gkYg_Dz-H62jzNv4eKQTw%40mail.gmail.com
https://git.postgresql.org/pg/commitdiff/d9fe702a2c9843af71419ad0df069859e5581694

- Add kqueue(2) support to the WaitEventSet API. Use kevent(2) to wait for
events on the BSD family of operating systems and macOS. This is similar to
the epoll(2) support added for Linux by commit 98a64d0bd. Author: Thomas
Munro Reviewed-by: Andres Freund, Marko Tiikkaja, Tom Lane Tested-by: Mateusz
Guzik, Matteo Beccati, Keith Fiske, Heikki Linnakangas, Michael Paquier, Peter
Eisentraut, Rui DeSousa, Tom Lane, Mark Wong Discussion:
https://postgr.es/m/CAEepm%3D37oF84-iXDTQ9MrGjENwVGds%2B5zTr38ca73kWR7ez_tA%40mail.gmail.com
https://git.postgresql.org/pg/commitdiff/815c2f0972c8386aba7c606f1ee6690d13b04db2

Noah Misch pushed:

- When a TAP file has non-zero exit status, retain temporary directories.
PostgresNode already retained base directories in such cases. Stop using
$SIG{__DIE__}, which is redundant with the exit status check, in lieu of
proliferating it to TestLib. Back-patch to 9.6, where commit
88802e068017bee8cea7a5502a712794e761c7b5 introduced retention on failure.
Reviewed by Daniel Gustafsson. Discussion:
https://postgr.es/m/20200202170155.GA3264196@rfd.leadboat.com
https://git.postgresql.org/pg/commitdiff/bf989aaf35613ed2c2a66e120ca600e7b9da4f82

Andrew Gierth pushed:

- Force tuple conversion when the source has missing attributes. Tuple
conversion incorrectly concluded that no conversion was needed as long as all
the attributes lined up. But if the source tuple has a missing attribute (from
addition of a column with default), then the destination tupdesc might not
reflect the same default. The typical symptom was that the affected columns
would be unexpectedly NULL. Repair by always forcing conversion if the source
has missing attributes, which will be filled in by the deform operation. (In
theory we could optimize for when the destination has the same default, but
that seemed overkill.) Backpatch to 11 where missing attributes were added.
Per bug #16242. Vik Fearing (discovery, code, testing) and me (analysis,
testcase). Discussion:
https://postgr.es/m/16242-d1c9fca28445966b@postgresql.org
https://git.postgresql.org/pg/commitdiff/bf6cc19e347d4cb8dfc8f05a59171ac06e18b5e5

Fujii Masao pushed:

- Fix bug in LWLock statistics mechanism. Previously PostgreSQL built with
-DLWLOCK_STATS could report more than one LWLock statistics entries for the
same backend process and the same LWLock. This is strange and only one
statistics should be output in that case, instead. The cause of this issue is
that the key variable used for LWLock stats hash table was not fully
initialized. The key consists of two fields and they were initialized. But the
following 4 bytes allocated in the key variable for the alignment was not
initialized. So even if the same key was specified, hash_search(HASH_ENTER)
could not find the existing entry for that key and created new one. This
commit fixes this issue by initializing the key variable with zero. As the
side effect of this commit, the volume of LWLock statistics output would be
reduced very much. Back-patch to v10, where commit 3761fe3c20 introduced the
issue. Author: Fujii Masao Reviewed-by: Julien Rouhaud, Kyotaro Horiguchi
Discussion:
https://postgr.es/m/26359edb-798a-568f-d93a-6aafac49752d@oss.nttdata.com
https://git.postgresql.org/pg/commitdiff/3ccc66dac65e12b8f19d0766b00feabd55433854

- Fix bug in Tid scan. Commit 147e3722f7 changed Tid scan so that it calls
table_beginscan() and uses the scan option for seq scan. This change caused
two issues. (1) The change caused Tid scan to take a predicate lock on the
entire relation in serializable transaction even when relation-level
lock is not necessary. This could lead to an unexpected serialization
error. (2) The change caused Tid scan to increment the number of seq_scan
in pg_stat_*_tables views even though it's not seq scan. This could
confuse the users. This commit adds the scan option for Tid scan and makes
Tid scan use it, to avoid those issues. Back-patch to v12, where the bug was
introduced. Author: Tatsuhito Kasahara Reviewed-by: Kyotaro Horiguchi,
Masahiko Sawada, Fujii Masao Discussion:
https://postgr.es/m/CAP0=ZVKy+gTbFmB6X_UW0pP3WaeJ-fkUWHoD-pExS=at3CY76g@mail.gmail.com
https://git.postgresql.org/pg/commitdiff/cb5b28613d553b1c750622e91cbc96c83f052a63

Amit Kapila pushed:

- Fix typo. Reported-by: Amit Langote Author: Amit Langote Backpatch-through:
9.6, where it was introduced Discussion:
https://postgr.es/m/CA+HiwqFNADeukaaGRmTqANbed9Fd81gLi08AWe_F86_942Gspw@mail.gmail.com
https://git.postgresql.org/pg/commitdiff/cac8ce4a738a6fbc6cda4759c056f89a5b603bfc

Jeff Davis pushed:

- Logical Tape Set: use min heap for freelist. Previously, the freelist of
blocks was tracked as an occasionally-sorted array. A min heap is more
resilient to larger freelists or more frequent changes between reading and
writing. Discussion:
https://postgr.es/m/97c46a59c27f3c38e486ca170fcbc618d97ab049.camel%40j-davis.com
https://git.postgresql.org/pg/commitdiff/c02fdc9223015c5c386abfa00c47fc7f4c845161

- Refactor hash_agg_entry_size(). Consolidate the calculations for hash table
size estimation. This will help with upcoming Hash Aggregation work that will
add additional call sites.
https://git.postgresql.org/pg/commitdiff/7d4395d0a11589aa450a073d658c49b420f4493f

- Introduce TupleHashTableHash() and LookupTupleHashEntryHash(). Expose two new
entry points: one for only calculating the hash value of a tuple, and another
for looking up a hash entry when the hash value is already known. This will be
useful for disk-based Hash Aggregation to avoid recomputing the hash value for
the same tuple after saving and restoring it from disk. Discussion:
https://postgr.es/m/37091115219dd522fd9ed67333ee8ed1b7e09443.camel%40j-davis.com
https://git.postgresql.org/pg/commitdiff/4eaea3db150af56aa2e40efe91997fd25f3b6d73

Peter Eisentraut pushed:

- Ensure relcache consistency around generated columns. In certain transient
states, it's possible that a table has attributes with attgenerated set but no
default expressions in pg_attrdef yet. In that case, the old code path would
not set relation->rd_att->constr->has_generated_stored, unless
relation->rd_att->constr was also populated for some other reason. There was
probably no practical impact, but it's better to keep this consistent.
Reported-by: Andres Freund <andres(at)anarazel(dot)de> Discussion:
https://www.postgresql.org/message-id/flat/20200115181105.ad6ab6dlgyww3lb6%40alap3.anarazel.de
https://git.postgresql.org/pg/commitdiff/fc7a5e9eaa2fa34b053ffe52e0e57f1fd6b1f939

Andres Freund pushed:

- expression eval, jit: Minor code cleanups. This mostly consists of using C99
style for loops, moving variables into narrower scopes, and a smattering of
other minor improvements. Done separately to make it easier to review patches
with actual functional changes. Author: Andres Freund Discussion:
https://postgr.es/m/20191023163849.sosqbfs5yenocez3@alap3.anarazel.de
https://git.postgresql.org/pg/commitdiff/1ec7679f1b67e84be688a311dce234eeaa1d5de8

- jit: Reference functions by name in IOCOERCE steps. Previously we used
constant function pointer addresses, which prevents inlining and other related
optimizations. Author: Andres Freund Discussion:
https://postgr.es/m/20191023163849.sosqbfs5yenocez3@alap3.anarazel.de
https://git.postgresql.org/pg/commitdiff/8c2769405ff1f4617b0d3af50760b1ee357733ef

- expression eval: Don't redundantly keep track of AggState. It's already
tracked via ExprState->parent, so we don't need to also include it in
ExprEvalStep. When that code originally was written ExprState->parent didn't
exist, but it since has been introduced in 6719b238e8f. Author: Andres Freund
Discussion:
https://postgr.es/m/20191023163849.sosqbfs5yenocez3@alap3.anarazel.de
https://git.postgresql.org/pg/commitdiff/1fdb7f9789c4550204cd62d1746a7deed1dc4c29

- jit: Remove redundancies in expression evaluation code generation. This merges
the code emission for a number of opcodes by handling the behavioural
difference more locally. This reduces code, and also improves the generated
code a bit in some cases, by removing redundant constants. Author: Andres
Freund Discussion:
https://postgr.es/m/20191023163849.sosqbfs5yenocez3@alap3.anarazel.de
https://git.postgresql.org/pg/commitdiff/e6f86f8dd9835b18890fd8e9868884dec37e3bd7

- jit: Reference expression step functions via llvmjit_types. The main benefit
of doing so is that this allows llvm to ensure that types match - previously
that'd only be detected by a crash within the called function. There were a
number of cases where we passed a superfluous parameter... To avoid needing
to add all the functions to llvmjit.{c,h}, instead get them from the llvm
module for llvmjit_types.c. Also use that for the functions from llvmjit_types
already in llvmjit.h. Author: Soumyadeep Chakraborty and Andres Freund
Discussion:
https://postgr.es/m/CADwEdooww3wZv-sXSfatzFRwMuwa186LyTwkBfwEW6NjtooBPA@mail.gmail.com
https://git.postgresql.org/pg/commitdiff/b059d2f45685a946da061ee15692fa306bd67f12

== Pending Patches ==

Thomas Munro sent in a patch to prefetch cache lines while building hash join
table.

Fujii Masao and Amit Langote traded patches to implement
pg_stat_progress_basebackup.

Jeff Davis sent in five more revisions of a patch to refactor logtape handling
and implement memory-bounded hash aggregation atop that.

Konstantin Knizhnik sent in two more revisions of a patch to implement global
temporary tables.

Mark Dilger sent in three more revisions of a patch to make Portal->commandTag
into an enum.

Kirk Jamison sent in another revision of a patch to optimize dropping of
relation buffers using dlist.

Rémi Lapeyre sent in another revision of a patch to add a HEADER option to COPY
in text format.

Takuma Hoshiai sent in another revision of a patch to implement incremental
maintenance of materialized views.

Takeshi Ideriha sent in another revision of a patch to implement a memory
context for global system catalog cache and relation cache backed by DSA, and
use same to implement the aforementioned global system catalog.

Kirill Bychik sent in a patch to enable gathering of per-statement WAL
generation statistics, similar to how it is done for buffer usage and use same
in pg_stat_statements.

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

Nathan Bossart sent in another revision of a patch to add MAIN_RELATION_CLEANUP
and TOAST_TABLE_CLEANUP options to VACUUM.

Masahiko Sawada sent in a patch to implement an SQL function pg_is_user_object()
that returns true if the given oid is user object oid, that is greater than or
equal to FirstNormalObjectId.

Jeff Janes and Fujii Masao traded patches to fix some bad logging around broken
implementations of restore_command.

Dilip Kumar sent in another revision of a patch to fix an infelicity between
logical_work_mem and logical streaming of large in-progress transactions.

Etsuro Fujita sent in another revision of a patch to improve the partition
matching algorithm for partition-wise join.

Kasahara Tatsuhito sent in six revisions of a patch to fix some tidscan issues.

Amit Langote and Justin Pryzby traded patches to make "cluster" a property of
tables in pg_index.

Antonin Houska sent in a patch to fix some assumptions about the number of
parallel workers.

Masahiko Sawada sent in another revision of a patch to move relation extension
locks out of heavyweight lock.

Justin Pryzby sent in three revisions of a patch to fix some typos in comments
in the user documentation.

Keisuke Kuroda, Emre Hasegeli, and Tels traded patches to bring back the
CHECKFLOATVAL() macro.

Andy Fan sent in another revision of a patch to remove the distinctClause if the
result is unique by definition.

Eka Palamadai sent in a patch to fix a bug that manifested as replica sends an
incorrect epoch in its hot standby feedback to the origin.

Michaël Paquier sent in another revision of a patch to improve errors when
setting incorrect bounds for SSL protocols.

Thomas Munro sent in a patch to use pg_pread() and pg_pwrite() in slru.c, use
pg_pwrite() in rewriteheap.c, and use pg_pwrite() in walreceiver.c.

Peter Geoghegan sent in another revision of a patch to add deduplication to
nbtree.

Craig Ringer sent in a patch to PGXS to add support for built control files.

Kyotaro HORIGUCHI sent in a patch to fix the handling of tentative state after
changing synchronous_standby_names.

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

Thomas Munro sent in a patch to introduce a SegmentNumber typedef for relation
segment numbers.

Alexey Bashtanov sent in a patch to add a GUC to control the maximum length of
parameter values logged.

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

Robert Haas sent in a patch to make it possible for front-end code to use the
backend's hashing functions.

Thomas Munro sent in another revision of a patch to reduce WaitEventSet syscall
churn.

Alexey Bashtanov sent in another revision of a patch to improve the transparency
of bitmap-only heap scans.

Dmitry Dolgov sent in another revision of a patch to implement index skip scan.

Kuntal Ghosh and Andres Freund traded patches to restrict memory allocation in
reorderbuffer context.

Andres Freund sent in a patch to fix an infelicity in the tests for speculative
insert abort.

Justin Pryzby sent in another revision of a patch to ensure that the vacuum
errcontext shows the block being processed, and adds functions to initialize
errcontext.

Joe Nelson sent in a patch to implement a rational type.

Browse pgsql-announce by date

  From Date Subject
Next Message Jonathan S. Katz 2020-02-13 13:34:39 PostgreSQL 12.2, 11.7, 10.12, 9.6.17, 9.5.21, and 9.4.26 Released!
Previous Message Nikolay Samokhvalov 2020-02-06 22:31:39 Database Lab 0.2.0: fast cloning of large PostgreSQL databases to build non-production environments