== PostgreSQL Weekly News - September 17, 2018 ==

From: David Fetter <david(at)fetter(dot)org>
To: PostgreSQL Announce <pgsql-announce(at)postgresql(dot)org>
Subject: == PostgreSQL Weekly News - September 17, 2018 ==
Date: 2018-09-18 04:55:47
Message-ID: 20180918045547.GA18342@fetter.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-announce

== PostgreSQL Weekly News - September 17, 2018 ==

== PostgreSQL Product News ==

pgBadger v10.1, a PostgreSQL log analyzer and graph tool written in
Perl, released.
https://github.com/dalibo/pgbadger/releases/

Postgres-XL 10R1Beta1, a fork of PostgreSQL featuring massively parallel
processing, released.
https://www.postgres-xl.org/

PostGIS 2.5.0rc2 the industry standard geographic information
system package for PostgreSQL, released.
http://postgis.net/2018/09/16/postgis-2.5.0rc2/

pgFormatter 3.1, a formatter/beautifier for SQL code, released.
http://sqlformat.darold.net/

== PostgreSQL Local ==

PostgresConf South Africa 2018 will take place in Johannesburg on October 9, 2018
https://postgresconf.org/conferences/SouthAfrica2018

PostgreSQL Conference Europe 2018 will be held on October 23-26, 2018 at the
Lisbon Marriott Hotel in Lisbon, Portugal.
https://2018.pgconf.eu/

2Q PGConf will be on December 4-5, 2018 in Chicago, IL.
http://www.2qpgconf.com/

PGConf.ASIA 2018 will take place on December 10-12, 2018 in Akihabara, Tokyo,
Japan.
http://www.pgconf.asia/EN/2018/

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

Tom Lane pushed:

- Hide a static inline from FRONTEND code. For some reason pg_waldump is
including tuptable.h, and the recent addition of a static inline function to
it is causing problems on older buildfarm members that fail to optimize such
functions away completely. I wonder if this situation doesn't mean that some
header refactoring is called for ... but as a band-aid, wrap the static
function in "#ifndef FRONTEND". Discussion:
https://postgr.es/m/20180824154237.mabsv6fsz5q37bma@alap3.anarazel.de
https://git.postgresql.org/pg/commitdiff/14ea36520389dbb1b48524223cf09389154a0f2e

- Use -Bsymbolic for shared libraries on HP-UX and Solaris. These platforms are
also subject to the mis-linking problem addressed in commit e3d77ea6b. It's
not clear whether we could solve it with a solution equivalent to GNU ld's
version scripts, but -Bsymbolic appears to fix it, so let's use that. Like
the previous commit, back-patch as far as v10. Discussion:
https://postgr.es/m/153626613985.23143.4743626885618266803@wrigleys.postgresql.org
https://git.postgresql.org/pg/commitdiff/4fa3741d1cfb3898c3ff7b01fa873383108e1fe3

- Remove ruleutils.c's special case for BIT [VARYING] literals. Up to now,
get_const_expr() insisted on prefixing BIT and VARBIT literals with 'B'.
That's not really necessary, because we always append explicit-cast syntax to
identify the constant's type. Moreover, it's subtly wrong for VARBIT, because
the parser will interpret B'...' as '...'::"bit"; see make_const() which
explicitly assigns type BITOID for a T_BitString literal. So what had been a
simple VARBIT literal is reconstructed as ('...'::"bit")::varbit, which is not
the same thing, at least not before constant folding. This results in odd
differences after dump/restore, as complained of by the patch submitter, and
it could result in actual failures in partitioning or inheritance DDL
operations (see commit 542320c2b, which repaired similar misbehaviors for some
other data types). Fixing it is pretty easy: just remove the special case and
let the default code path handle these types. We could have kept the special
case for BIT only, but there seems little point in that. Like the previous
patch, I judge that back-patching this into stable branches wouldn't be a good
idea. However, it seems not quite too late for v11, so let's fix it there.
Paul Guo, reviewed by Davy Machado and John Naylor, minor adjustments by me
Discussion:
https://postgr.es/m/CABQrizdTra=2JEqA6+Ms1D1k1Kqw+aiBBhC9TreuZRX2JzxLAA@mail.gmail.com
https://git.postgresql.org/pg/commitdiff/fedc97cdfd834a2137d9c5aa8e7f89e39546fc6b

- Add PQresultMemorySize function to report allocated size of a PGresult. This
number can be useful for application memory management, and the overhead to
track it seems pretty trivial. Lars Kanis, reviewed by Pavel Stehule, some
mods by me Discussion:
https://postgr.es/m/fa16a288-9685-14f2-97c8-b8ac84365a4f@greiz-reinsdorf.de
https://git.postgresql.org/pg/commitdiff/2970afa6cf1057107c998bf3cdd1fbf6dc78cf6c

- Minor fixes for psql tab completion. * Include partitioned tables in what's
offered after ANALYZE. * Include toast_tuple_target in what's offered after
ALTER TABLE ... SET|RESET. * Include HASH in what's offered after PARTITION
BY. This is extracted from a larger patch; these bits seem like
uncontroversial bug fixes for v11 features, so back-patch them into v11.
Justin Pryzby Discussion:
https://postgr.es/m/20180529000623.GA21896@telsasoft.com
https://git.postgresql.org/pg/commitdiff/7046d30246057b65dd7ad735fd89058684e782cd

- Attempt to identify system timezone by reading /etc/localtime symlink. On
many modern platforms, /etc/localtime is a symlink to a file within the IANA
database. Reading the symlink lets us find out the name of the system
timezone directly, without going through the brute-force search embodied in
scan_available_timezones(). This shortens the runtime of initdb by some tens
of ms, which is helpful for the buildfarm, and it also allows us to reliably
select the same zone name the system was actually configured for, rather than
possibly choosing one of IANA's many zone aliases. (For example, in a system
configured for "Asia/Tokyo", the brute-force search would not choose that name
but its alias "Japan", on the grounds of the latter string being shorter.
More surprisingly, "Navajo" is preferred to either "America/Denver" or
"US/Mountain", as seen in an old complaint from Josh Berkus.) If
/etc/localtime doesn't exist, or isn't a symlink, or we can't make sense of
its contents, or the contents match a zone we know but that zone doesn't match
the observed behavior of localtime(), fall back to the brute-force search.
Also, tweak initdb so that it prints the zone name it selected. In passing,
replace the last few references to the "Olson" database in code comments with
"IANA", as that's been our preferred term since commit b2cbced9e. Patch by
me, per a suggestion from Robert Haas; review by Michael Paquier Discussion:
https://postgr.es/m/7408.1525812528@sss.pgh.pa.us
https://git.postgresql.org/pg/commitdiff/23bd3cec6eb1ffb80ed2601c13f89d89e658fcc1

- Improve parallel scheduling logic in pg_dump/pg_restore. Previously, the way
this worked was that a parallel pg_dump would re-order the TABLE_DATA items in
the dump's TOC into decreasing size order, and separately re-order (some of)
the INDEX items into decreasing size order. Then pg_dump would dump the items
in that order. Later, parallel pg_restore just followed the TOC order. This
method had lots of deficiencies: * TOC ordering randomly differed between
parallel and non-parallel dumps, and was hard to predict in the former case,
causing problems for building stable pg_dump test cases. * Parallel restore
only followed a well-chosen order if the dump had been done in parallel; in
particular, this never happened for restore from custom-format dumps. * The
best order for restore isn't necessarily the same as for dump, and it's not
really static either because of locking considerations. * TABLE_DATA and
INDEX items aren't the only things that might take a lot of work during
restore. Scheduling was particularly stupid for the BLOBS item, which might
require lots of work during dump as well as restore, but was left to the end
in either case. This patch removes the logic that changed the TOC order,
fixing the test instability problem. Instead, we sort the parallelizable
items just before processing them during a parallel dump. Independently of
that, parallel restore prioritizes the ready-to-execute tasks based on the
size of the underlying table. In the case of dependent tasks such as index,
constraint, or foreign key creation, the largest relevant table is used as the
metric for estimating the task length. (This is pretty crude, but it should
be enough to avoid the case we want to avoid, which is ending the run with
just a few large tasks such that we can't make use of all N workers.) Patch by
me, responding to a complaint from Peter Eisentraut, who also reviewed the
patch. Discussion:
https://postgr.es/m/5137fe12-d0a2-4971-61b6-eb4e7e8875f8@2ndquadrant.com
https://git.postgresql.org/pg/commitdiff/548e50976ce721b5e927d42a105c2f05b51b52a6

- Fix failure with initplans used conditionally during EvalPlanQual rechecks.
The EvalPlanQual machinery assumes that any initplans (that is, uncorrelated
sub-selects) used during an EPQ recheck would have already been evaluated
during the main query; this is implicit in the fact that execPlan pointers are
not copied into the EPQ estate's es_param_exec_vals. But it's possible for
that assumption to fail, if the initplan is only reached conditionally. For
example, a sub-select inside a CASE expression could be reached during a
recheck when it had not been previously, if the CASE test depends on a column
that was just updated. This bug is old, appearing to date back to my rewrite
of EvalPlanQual in commit 9f2ee8f28, but was not detected until Kyle Samson
reported a case. To fix, force all not-yet-evaluated initplans used within
the EPQ plan subtree to be evaluated at the start of the recheck, before
entering the EPQ environment. This could be inefficient, if such an initplan
is expensive and goes unused again during the recheck --- but that's piling
one layer of improbability atop another. It doesn't seem worth adding more
complexity to prevent that, at least not in the back branches. It was
convenient to use the new-in-v11 ExecEvalParamExecParams function to implement
this, but I didn't like either its name or the specifics of its API, so revise
that. Back-patch all the way. Rather than rewrite the patch to avoid
depending on bms_next_member() in the oldest branches, I chose to back-patch
that function into 9.4 and 9.3. (This isn't the first time back-patches have
needed that, and it exhausted my patience.) I also chose to back-patch some
test cases added by commits 71404af2a and 342a1ffa2 into 9.4 and 9.3, so that
the 9.x versions of eval-plan-qual.spec are all the same. Andrew Gierth
diagnosed the problem and contributed the added test cases, though the actual
code changes are by me. Discussion:
https://postgr.es/m/A033A40A-B234-4324-BE37-272279F7B627@tripadvisor.com
https://git.postgresql.org/pg/commitdiff/1f4a920b7309499d2d0c4ceda5e6356e10bc51da

- In v11, disable JIT by default (it's still enabled by default in HEAD). Per
discussion, JIT isn't quite mature enough to ship enabled-by-default. I
failed to resist the temptation to do a bunch of copy-editing on the related
documentation. Also, clean up some inconsistencies in which section of
config.sgml the JIT GUCs are documented in vs. what guc.c and
postgresql.config.sample had. Discussion:
https://postgr.es/m/20180914222657.mw25esrzbcnu6qlu@alap3.anarazel.de
https://git.postgresql.org/pg/commitdiff/8f32bacc006692e63f137924d5849b3cb9f2d4d3

- Add outfuncs.c support for RawStmt nodes. I noticed while poking at a report
from Andrey Lepikhov that the recent addition of RawStmt nodes at the top of
raw parse trees makes it impossible to print any raw parse trees whatsoever,
because outfuncs.c doesn't know RawStmt and hence fails to descend into it.
While we generally lack outfuncs.c support for utility statements, there is
reasonably complete support for what you can find in a raw SELECT statement.
It was not my intention to make that all dead code ... so let's add support
for RawStmt. Back-patch to v10 where RawStmt appeared.
https://git.postgresql.org/pg/commitdiff/3844adbf3c2521c0956064c1c27096c96ca92201

- Fix pgbench lexer's "continuation" rule to cope with Windows newlines. Our
general practice in frontend code is to accept input with either Unix-style
newlines (\n) or DOS-style (\r\n). pgbench was mostly down with that, but its
rule for line continuations (backslash-newline) was not. This had been masked
on Windows buildfarm machines before commit 0ba06e0bf by use of Windows text
mode to read files. We could have fixed it by forcing text mode again, but
it's better to fix the parsing code so that Windows-style text files on Unix
systems don't cause problems. Back-patch to v10 where pgbench grew line
continuations. Discussion: https://postgr.es/m/17194.1537191697@sss.pgh.pa.us
https://git.postgresql.org/pg/commitdiff/db37ab2c60b877b977f531bcd680848ee4511537

- Remove dead code from pop_next_work_item(). The pref_non_data heuristic has
been dead code for nearly ten years, and as far as I can tell was dead code
even when it was first committed. I'm tired of silencing Coverity complaints
about it, so get rid of it. If anyone is ever interested in pursuing the
concept, they can get the code out of our git history.
https://git.postgresql.org/pg/commitdiff/789ba5029a8aea8256d20780410cfa2872637f15

- Fix parsetree representation of XMLTABLE(XMLNAMESPACES(DEFAULT ...)). The
original coding for XMLTABLE thought it could represent a default namespace by
a T_String Value node with a null string pointer. That's not okay, though; in
particular outfuncs.c/readfuncs.c are not on board with such a representation,
meaning you'll get a null pointer crash if you try to store a view or rule
containing this construct. To fix, change the parsetree representation so
that we have a NULL list element, instead of a bogus Value node. This isn't
really a functional limitation since default XML namespaces aren't yet
implemented in the executor; you'd just get "DEFAULT namespace is not
supported" anyway. But crashes are not nice, so back-patch to v10 where this
syntax was added. Ordinarily we'd consider a parsetree representation change
to be un-backpatchable; but since existing releases would crash on the way to
storing such constructs, there can't be any existing views/rules to be
incompatible with. Per report from Andrey Lepikhov. Discussion:
https://postgr.es/m/3690074f-abd2-56a9-144a-aa5545d7a291@postgrespro.ru
https://git.postgresql.org/pg/commitdiff/07a3af0ff81d8ac6d2e787e13ca10de36313aa51

Andrew Gierth pushed:

- Repair double-free in SP-GIST rescan (bug #15378). spgrescan would first
reset traversalCxt, and then traverse a potentially non-empty stack containing
pointers to traversalValues which had been allocated in those contexts,
freeing them a second time. This bug originates in commit ccd6eb49a where
traversalValue was introduced. Repair by traversing the stack before the
context reset; this isn't ideal, since it means doing retail pfree in a
context that's about to be reset, but the freeing of a stack entry is also
done in other places in the code during the scan so it's not worth trying to
refactor it further. Regression test added. Backpatch to 9.6 where the
problem was introduced. Per bug #15378; analysis and patch by me, originally
from a report on IRC by user velix; see also PostGIS ticket #4174; review by
Alexander Korotkov. Discussion:
https://postgr.es/m/153663176628.23136.11901365223750051490@wrigleys.postgresql.org
https://git.postgresql.org/pg/commitdiff/500d49794f1f61cb20f485bd5c5052c122e58cf9

- Repair bug in regexp split performance improvements. Commit c8ea87e4b
introduced a temporary conversion buffer for substrings extracted during
regexp splits. Unfortunately the code that sized it was failing to ignore the
effects of ignored degenerate regexp matches, so for regexp_split_* calls it
could under-size the buffer in such cases. Fix, and add some regression test
cases (though those will only catch the bug if run in a multibyte encoding).
Backpatch to 9.3 as the faulty code was. Thanks to the PostGIS project,
Regina Obe and Paul Ramsey for the report (via IRC) and assistance in
analysis. Patch by me.
https://git.postgresql.org/pg/commitdiff/b7f6bcbffcc0b41d783c0c9c61766428159969ff

- Order active window clauses for greater reuse of Sort nodes. By sorting the
active window list lexicographically by the sort clause list but putting
longer clauses before shorter prefixes, we generate more chances to elide Sort
nodes when building the path. Author: Daniel Gustafsson (with some
editorialization by me) Reviewed-by: Alexander Kuzmenkov, Masahiko Sawada, Tom
Lane Discussion:
https://postgr.es/m/124A7F69-84CD-435B-BA0E-2695BE21E5C2%40yesql.se
https://git.postgresql.org/pg/commitdiff/728202b63cdcd7fb73fdba114903ed235eb02f3a

- Fix out-of-tree build for transform modules. Neither plperl nor plpython
installed sufficient header files to permit transform modules to be built
out-of-tree using PGXS. Fix that by installing all plperl and plpython header
files (other than those with special purposes such as generated data tables),
and also install plpython's special .mk file for mangling regression tests.
(This commit does not fix the windows install, which does not currently
install _any_ plperl or plpython headers.) Also fix the existing transform
modules for hstore and ltree so that their cross-module #include directives
work as anticipated by commit df163230b9 et seq. This allows them to serve as
working examples of how to reference other modules when doing separate
out-of-tree builds. Discussion:
https://postgr.es/m/87o9ej8bgl.fsf%40news-spur.riddles.org.uk
https://git.postgresql.org/pg/commitdiff/60f6756f92251d7325d58a048f7e9a81881f8d41

Bruce Momjian pushed:

- doc: adjust PG 11 release notes. Fixes for channel binding, SQL procedures,
and pg_trgm. Backpatch-through: 11
https://git.postgresql.org/pg/commitdiff/0d45cd96fd0f3387d1bcf7e6f873c73c4f251df8

- doc: clarify pg_basebackup's -C/--create-slot description. The previous text
was overly complex. Backpatch-through: 11
https://git.postgresql.org/pg/commitdiff/da1db404358ebc2d4f1abcee712405cd888148de

Michaël Paquier pushed:

- Parse more strictly integer parameters from connection strings in libpq The
following parameters have been parsed in lossy ways when specified in a
connection string processed by libpq: - connect_timeout - keepalives -
keepalives_count - keepalives_idle - keepalives_interval - port. Overflowing
values or the presence of incorrect characters were not properly checked,
leading to libpq trying to use such values and fail with unhelpful error
messages. This commit hardens the parsing of those parameters so as it is
possible to find easily incorrect values. Author: Fabien Coelho Reviewed-by:
Peter Eisentraut, Michael Paquier Discussion:
https://postgr.es/m/alpine.DEB.2.21.1808171206180.20841@lancre
https://git.postgresql.org/pg/commitdiff/e7a2217978d9cbb2149bfcb4ef1e45716cfcbefb

- Simplify static function in extension.c. An extra argument for the filename
defining the extension script location was present, aimed at being used for
error reporting, but has never been used. This was around since extensions
have been added in d9572c4. Author: Yugo Nagata Reviewed-by: Tatsuo Ishii
Discussion:
https://postgr.es/m/20180907180504.1ff19e1675bb44a67e9c7ab1@sraoss.co.jp
https://git.postgresql.org/pg/commitdiff/514a731ddcd8449d8a7bfb96f138c72c694a7ef8

- Improve autovacuum logging for aggressive and anti-wraparound runs. A log
message was being generated when log_min_duration is reached for autovacuum on
a given relation to indicate if it was an aggressive run, and missed the point
of mentioning if it is doing an anti-wrapround run. The log message generated
is improved so as one, both or no extra details are added depending on the
option set. Author: Sergei Kornilov Reviewed-by: Masahiko Sawada, Michael
Paquier Discussion:
https://postgr.es/m/11587951532155118@sas1-19a94364928d.qloud-c.yandex.net
https://git.postgresql.org/pg/commitdiff/28a8fa984c63fd525ab03c469f293e957619654b

- Allow concurrent-safe open() and fopen() in frontend code for Windows
PostgreSQL uses a custom wrapper for open() and fopen() which is
concurrent-safe, allowing multiple processes to open and work on the same
file. This has a couple of advantages: - pg_test_fsync does not handle
O_DSYNC correctly otherwise, leading to false claims that disks are unsafe. -
TAP tests can run into race conditions when a postmaster and pg_ctl. open
postmaster.pid, fixing some random failures in the buildfam. pg_upgrade is
one frontend tool using workarounds to bypass file locking issues with the log
files it generates, however the interactions with pg_ctl are proving to be
tedious to get rid of, so this is left for later. Author: Laurenz Albe
Reviewed-by: Michael Paquier, Kuntal Ghosh Discussion:
https://postgr.es/m/1527846213.2475.31.camel@cybertec.at Discussion:
https://postgr.es/m/16922.1520722108@sss.pgh.pa.us
https://git.postgresql.org/pg/commitdiff/0ba06e0bfb8cfd24ff17aca92aa72245ddd6c4d7

Peter Eisentraut pushed:

- ecpg: Change --version output to common style. When we removed the
ecpg-specific versions, we also removed the "(PostgreSQL)" from the --version
output, which we show in other programs. Reported-by: Ioseph Kim
<pgsql-kr(at)postgresql(dot)kr>
https://git.postgresql.org/pg/commitdiff/ba37349cff781120f61b2778257f594f0d10253c

- Simplify index tuple descriptor initialization. We have two code paths for
initializing the tuple descriptor for a new index: For a normal index, we copy
the tuple descriptor from the table and reset a number of fields that are not
applicable to indexes. For an expression index, we make a blank tuple
descriptor and fill in the needed fields based on the provided expressions.
As pg_attribute has grown over time, the number of fields that we need to
reset in the first case is now bigger than the number of fields we actually
want to copy, so it's sensible to do it the other way around: Make a blank
descriptor and copy just the fields we need. This also allows more code
sharing between the two branches, and it avoids having to touch this code for
almost every unrelated change to the pg_attribute structure. Reviewed-by:
Arthur Zakirov <a(dot)zakirov(at)postgrespro(dot)ru>
https://git.postgresql.org/pg/commitdiff/e5f1bb92cfa724ba50f5b42a9cd3f8ab544b960a

- Message style improvements. Fix one untranslatable string concatenation in
pg_rewind. Fix one message in pg_verify_checksums to use a style use
elsewhere and avoid plural issues. Fix one gratuitous abbreviation in psql.
https://git.postgresql.org/pg/commitdiff/f48fa2bc8b6252ae8fccc69729a3bddb6863b8f1

- Add list of acknowledgments to release notes. This contains all individuals
mentioned in the commit messages during PostgreSQL 11 development. current
through 7a2f70f0e5e83871d091ee479abea4b8f850dd29
https://git.postgresql.org/pg/commitdiff/f9907c6ac2e9817baffe37c9087bedc8df3e9625

Amit Kapila pushed:

- Attach FPI to the first record after full_page_writes is turned on.
XLogInsert fails to attach a required FPI to the first record after
full_page_writes is turned on by the last checkpoint. This bug got introduced
in 9.5 due to code rearrangement in commits 2c03216d83 and 2076db2aea. Fix it
by ensuring that XLogInsertRecord performs a recomputation when the given
record is generated with FPW as off but found that the flag has been turned on
while actually inserting the record. Reported-by: Kyotaro Horiguchi Author:
Kyotaro Horiguchi Reviewed-by: Amit Kapila Backpatch-through: 9.5 where this
problem was introduced Discussion:
https://postgr.es/m/20180420.151043.74298611.horiguchi.kyotaro@lab.ntt.co.jp
https://git.postgresql.org/pg/commitdiff/bc153c941d2ec4e605b1e79be9478abc3d166a18

- Don't allow LIMIT/OFFSET clause within sub-selects to be pushed to workers.
Allowing sub-select containing LIMIT/OFFSET in workers can lead to
inconsistent results at the top-level as there is no guarantee that the row
order will be fully deterministic. The fix is to prohibit pushing
LIMIT/OFFSET within sub-selects to workers. Reported-by: Andrew Fletcher Bug:
15324 Author: Amit Kapila Reviewed-by: Dilip Kumar Backpatch-through: 9.6
Discussion:
https://postgr.es/m/153417684333.10284.11356259990921828616@wrigleys.postgresql.org
https://git.postgresql.org/pg/commitdiff/75f9c4ca5a8047d7a9cfbc7d51a610933d04dc7f

Andres Freund pushed:

- Detect LLVM 7 without specifying binaries explicitly. Before this commit LLVM
7 was supported, but only if one explicitly provided LLVM_CONFIG= and CLANG=
paths. As LLVM 7 is the first version that includes our upstreamed debugging
and profiling features, and as debian is planning to default to 7 due to wider
architecture support, it seems good to support auto-detecting that version.
Author: Christoph Berg Discussion:
https://postgr.es/m/20180912124517.GD24584@msg.df7cb.de Backpatch: 11, where
LLVM was introduced
https://git.postgresql.org/pg/commitdiff/240d40db88ec0e6f98ac547759bac8e331f3ba89

Álvaro Herrera pushed:

- Fix ALTER/TYPE on columns referenced by FKs in partitioned tables. When ALTER
TABLE ... SET DATA TYPE affects a column referenced by constraints and
indexes, it drop those constraints and indexes and recreates them afterwards,
so that the definitions match the new data type. The original code did this
by dropping one object at a time (commit 077db40fa1f3 of May 2004), which
worked fine because the dependencies between the objects were pretty
straightforward, and ordering the objects in a specific way was enough to make
this work. However, when there are foreign key constraints in partitioned
tables, the dependencies are no longer so straightforward, and we were getting
errors when attempted: ERROR: cache lookup failed for constraint 16398 This
can be fixed by doing all the drops in one pass instead, using
performMultipleDeletions (introduced by df18c51f2955 of Aug 2006). With this
change we can also remove the code to carefully order the list of objects to
be deleted. Reported-by: Rajkumar Raghuwanshi
<rajkumar(dot)raghuwanshi(at)enterprisedb(dot)com> Reviewed-by: Tom Lane
<tgl(at)sss(dot)pgh(dot)pa(dot)us> Discussion:
https://postgr.es/m/CAKcux6nWS_m+s=1Udk_U9B+QY7pA-Ac58qR5BdUfOyrwnWHDew@mail.gmail.com
https://git.postgresql.org/pg/commitdiff/20bef2c3110af295501919bac463b87ac58876de

- Move PartitionDispatchData struct definition to execPartition.c. There's no
reason to expose the struct definition, so don't. Author: Amit Langote
<Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> Discussion:
https://postgr.es/m/d3fa24c1-bc65-7133-81df-6474387ccc4f@lab.ntt.co.jp
https://git.postgresql.org/pg/commitdiff/6b78231d918bba1b99d15e0bf19753bd8f826222

== Pending Patches ==

Haribabu Kommi sent in another revision of a patch to limit memory used by the
COPY FROM because of slotification, remove the Bulk Insert API, and add CREATE
AS ... USING grammar support.

Amit Khandekar sent in two revisions of a patch to accumulate the per-worker jit
counters into the leader process.

Amit Khandekar sent in another revision of a patch to slotify partition tuple
conversion.

Konstantin Knizhnik sent in another revision of a patch to skip redundant
partition quals.

Jesper Pedersen and Dmitry Dolgov traded patches to implement index skip scan.

Marina Polyakova sent in another revision of a patch to fix pgbench
serialization and deadlock errors.

Michael Banck sent in a patch to fix a bug in the pg_restore help output.

Peter Geoghegan sent in another revision of a patch to make all nbtree index
tuples have unique keys.

Tom Lane sent in another revision of a patch to speed up snprintf.

Nikolay Shaplov sent in another revision of a patch to add an enum relation
option type.

Amit Langote sent in two revisions of a patch to fix a bug that manifested as
could not open file "base/13164/t3_16388" with partition table with ON COMMIT.

Tom Lane sent in another revision of a patch to create a strerror wrapper.

Amit Langote sent in three more revisions of a patch to improve executor
relation handling.

Fabien COELHO sent in two more revisions of a patch to a pseudo-random
permutation function to pgbench.

Dmitry Dolgov sent in another revision of a patch to improve the partition
matching algorithm for partition-wise joins.

Artur Zakirov sent in another revision of a patch to update the snowball
stemmers.

Kyotaro HORIGUCHI sent in another revision of a patch to add a WAL relief vent
for replication slots, add two columns, "status" and "remain", to
pg_replication_slot, a TAP test for the feature, and document same.

Kyotaro HORIGUCHI sent in another revision of a patch to remove catcache entries
that haven't been used for a certain time.

Andres Freund sent in a patch to error out for clang on x86-32 without SSE2
support, no -fexcess-precision.

Sergei Kornilov sent in another revision of a patch to indicate anti-wraparound
autovacuum in log_autovacuum_min_duration.

Kyotaro HORIGUCHI sent in a patch to ensure that only one lock for the same
object can be created by XLOG_STANDBY_LOCK logs.

Amit Langote sent in another revision of a patch to speed up planning for
partitions.

Etsuro Fujita sent in another revision of a patch to fix foreign modify
behavior.

Antonin Houska sent in another revision of a patch to implement data encryption
at rest.

Andres Freund sent in a patch to fix a logical decoding bug when mapped relation
with TOAST contents is rewritten repeatedly.

Michaël Paquier sent in a patch to extend the lookup routines for FDW and
foreign server with NULL handling, refactor the routines for subscription and
publication lookups, and eliminate user-visible cache lookup errors for objaddr
SQL functions.

Nikolay Shaplov sent in another revision of a patch to replace StdRdOptions with
individual binary reloptions representation for each relation kind.

Pavel Stěhule sent in three more revisions of a patch to implement schema
variables.

Michaël Paquier sent in another revision of a patch to fix UpdateFullPageWrites
concurrency.

Masahiko Sawada sent in a patch to fix a problem where, when set
track_commit_timestamp is on, the database system aborts at startup.

Fabien COELHO sent in another revision of a patch to pgbench to add an option to
build using ppoll() for larger connection counts.

Jonathan Katz sent in three revisions of a patch to update the major
improvements section of the release nodes for 11.

Noah Misch sent in a patch to ensure that srandom is called early enough in the
startup process.

Alexander Korotkov sent in another revision of a patch to add kNN support for
SP-GiST indexes.

Matheus de Oliveira sent in another revision of a patch to add support for ON
UPDATE/DELETE actions to ALTER CONSTRAINT.

David Rowley sent in another revision of a patch to speed up INSERT and UPDATE
on partitioned tables.

lexander Kukushkin sent in another revision of a patch to add a
replication_reserved_connections GUC.

Tomáš Vondra and Thomas Munro traded patches to prevent an infinite loop in
parallel hash joins / DSA / get_best_segment.

Thomas Munro and Chris Travers traded patches to fix a condition that could
cause an infinite signal loop in parallel scan.

Amit Khandekar sent in another revision of a patch to add instrumentation for
JITed workers.

Browse pgsql-announce by date

  From Date Subject
Next Message Dave Page 2018-09-18 10:27:45 Code of Conduct
Previous Message Monica Real Amores 2018-09-17 13:32:24 Postgres-XL 10R1Beta1 Now Available