== PostgreSQL Weekly News - April 02 2017 ==

From: David Fetter <david(at)fetter(dot)org>
To: PostgreSQL Announce <pgsql-announce(at)postgresql(dot)org>
Subject: == PostgreSQL Weekly News - April 02 2017 ==
Date: 2017-04-02 22:50:15
Message-ID: 20170402225015.GC10244@fetter.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-announce

== PostgreSQL Weekly News - April 02 2017 ==

PGDay UK 2017 - Registration and CFP are open
http://www.pgconf.uk

== PostgreSQL Product News ==

postgresql-unit 3.0, an extension which implements a PostgreSQL datatype for SI
units, some non-SI units and bytes, released.
https://github.com/ChristophBerg/postgresql-unit

== PostgreSQL Jobs for April ==

http://archives.postgresql.org/pgsql-jobs/2017-04/

== PostgreSQL Local ==

PGCon 2017 will take place in Ottawa on 23-26 May.
http://www.pgcon.org/2017/

Postgres Vision will take place in Boston, June 26 - 28, 2017.
http://postgresvision.com/

Swiss PGDay in Rapperswil will take place June 30, 2017.
The CfP is open through April 14, 2017.
http://www.pgday.ch/2017/

PostgresOpen will occur September 6-8, 2017 in San Francisco.
The CfP is open until May 30, 2017.
https://2017.postgresopen.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 Pacific time.
Please send English language ones to david(at)fetter(dot)org, German language
to pwn(at)pgug(dot)de, Italian language to pwn(at)itpug(dot)org(dot)

== Applied Patches ==

Tom Lane pushed:

- Fix unportable disregard of alignment requirements in RADIUS code. The
compiler is entitled to store a char[] local variable with no particular
alignment requirement. Our RADIUS code cavalierly took such a local variable
and cast its address to a struct type that does have alignment requirements.
On an alignment-picky machine this would lead to bus errors. To fix, declare
the local variable honestly, and then cast its address to char * for use in
the I/O calls. Given the lack of field complaints, there must be very few if
any people affected; but nonetheless this is a clear portability issue, so
back-patch to all supported branches. Noted while looking at a Coverity
complaint in the same code.
http://git.postgresql.org/pg/commitdiff/4c051c41d63e8462971c13956a38030de9c35c51

- Fix some minor resource leaks in PerformRadiusTransaction(). Failure to free
serveraddrs pointed out by Coverity, failure to close socket noted by
code-reading. These bugs seem to be quite old, but given the low probability
of taking these error-exit paths and the minimal consequences of the leaks
(since the process would presumably exit shortly anyway), it doesn't seem
worth back-patching. Michael Paquier and Tom Lane
http://git.postgresql.org/pg/commitdiff/7cbd944662854a0a5264895bcba3ce7f9bfd1c1f

- Fix typos in logical replication support for initial data copy. Fix an
incorrect assert condition (noted by Coverity), and spell the new name of the
function correctly. Typos introduced in commit 7c4f52409. Michael Paquier
http://git.postgresql.org/pg/commitdiff/5459cfd3ad52b87a1e2ed293ae55e733c6964715

- Use ExecPrepareExpr in place of ExecPrepareCheck where appropriate. Change
one more place where ExecInitCheck/ExecPrepareCheck's insistence on getting
implicit-AND-format quals wasn't really helpful, because the caller had to do
make_ands_implicit() for no reason that it cared about. Using ExecPrepareExpr
directly simplifies the code and saves cycles. The only remaining use of
these functions is to process resultRelInfo->ri_PartitionCheck quals.
However, implicit-AND format does seem to be what we want for that, so leave
it alone.
http://git.postgresql.org/pg/commitdiff/9b95f2fa1e2684fa209a3594db2254b8841bf380

- Improve performance of ExecEvalWholeRowVar. In commit b8d7f053c, we needed to
fix ExecEvalWholeRowVar to not change the state of the slot it's copying. The
initial quick hack at that required two rounds of tuple construction, which is
not very nice. To fix, add another primitive to tuptoaster.c that does
precisely what we need. (I initially tried to do this by refactoring one of
the existing functions into two pieces; but it looked like that might hurt
performance for the existing case, and the amount of code that could be shared
is not very large, so I gave up on that.) Discussion:
https://postgr.es/m/26088.1490315792@sss.pgh.pa.us
http://git.postgresql.org/pg/commitdiff/2f0903ea196503fc8af373a9de46b1e01a23508c

- Show ignored constants as "$N" rather than "?" in pg_stat_statements. The
trouble with the original choice here is that "?" is a valid (and indeed used)
operator name, so that you could end up with ambiguous statement texts like
"SELECT ? ? ?". With this patch, you instead see "SELECT $1 ? $2", which
seems significantly more readable. The numbers used for this purpose begin
after the last actual $N parameter in the particular query. The conflict with
external parameters has its own potential for confusion of course, but it was
agreed to be an improvement over the previous behavior. Lukas Fittl
Discussion:
https://postgr.es/m/CAP53PkxeaCuwYmF-A4J5z2-qk5fYFo5_NH3gpXGJJBxv1DMwEw@mail.gmail.com
http://git.postgresql.org/pg/commitdiff/a6f22e83562d8b78293229587cd3d9430d16d466

- Suppress implicit-conversion warnings seen with newer clang versions. We were
assigning values near 255 through "char *" pointers. On machines where char
is signed, that's not entirely kosher, and it's reasonable for compilers to
warn about it. A better solution would be to change the pointer type to
"unsigned char *", but that would be vastly more invasive. For the moment,
let's just apply this simple backpatchable solution. Aleksander Alekseev
Discussion: https://postgr.es/m/20170220141239.GD12278@e733.localdomain
Discussion: https://postgr.es/m/2839.1490714708@sss.pgh.pa.us
http://git.postgresql.org/pg/commitdiff/8cfeaecfc76a7366b336272bc76e96e09281b133

- Make new expression eval code reject references to dropped columns. Formerly,
a Var referencing an already-dropped column was allowed and would always
produce a NULL value. However, that behavior was implemented in slot_getattr
which the new expression code doesn't use; thus there is now a risk of
returning theoretically-deleted data. We had regression test cases that
purported to exercise this, but they failed to expose any problem, apparently
because plpgsql filters the dropped column and produces an output tuple that
has a NULL there already. Ideally the DROP or ALTER attempt in these test
cases would get rejected due to dependency checks; but until that happens,
let's modify the behavior so that we fail the query during executor start.
This was already true for the related case of a column having changed type
underneath us, and there's no obvious reason why we need to be laxer for
dropped columns. In passing, adjust the error messages in
CheckVarSlotCompatibility to include the composite type name. In the cases
shown in the regression tests this is always just "record", but it should be
more useful in actual stale-plan cases, where the slot tupdesc would be a
table's tupdesc directly. Discussion:
https://postgr.es/m/16803.1490723570@sss.pgh.pa.us
http://git.postgresql.org/pg/commitdiff/2c4debbd0f018aa7322b622c88424a7f68d3081d

- Support \if ... \elif ... \else ... \endif in psql scripting. This patch adds
nestable conditional blocks to psql. The control structure feature per se is
complete, but the boolean expressions understood by \if and \elif are pretty
primitive; basically, after variable substitution and backtick expansion, the
result has to be "true" or "false" or one of the other standard spellings of a
boolean value. But that's enough for many purposes, since you can always do
the heavy lifting on the server side; and we can extend it later. Along the
way, pay down some of the technical debt that had built up around
psql/command.c: * Refactor exec_command() into a function per command, instead
of being a 1500-line monstrosity. This makes the file noticeably longer
because of repetitive function header/trailer overhead, but it seems much more
readable. * Teach psql_get_variable() and psqlscanslash.l to suppress
variable substitution and backtick expansion on the basis of the conditional
stack state, thereby allowing removal of the OT_NO_EVAL kluge. * Fix the
no-doubt-once-expedient hack of sometimes silently substituting mainloop.c's
previous_buf for query_buf when calling HandleSlashCmds. (It's a bit
remarkable that commands like \r worked at all with that.) Recall of a
previous query is now done explicitly in the slash commands where that should
happen. Corey Huinker, reviewed by Fabien Coelho, further hacking by me
Discussion:
https://postgr.es/m/CADkLM=c94OSRTnat=LX0ivNq4pxDNeoomFfYvBKM5N_xfmLtAA@mail.gmail.com
http://git.postgresql.org/pg/commitdiff/e984ef5861df4bc9733b36271d05763e82de7c04

- Fix broken markup. Per buildfarm.
http://git.postgresql.org/pg/commitdiff/ab1e644005b6ef77dada51188d7b92905e2444d7

- For foreign keys, check REFERENCES privilege only on the referenced table. We
were requiring that the user have REFERENCES permission on both the referenced
and referencing tables --- but this doesn't seem to have any support in the
SQL standard, which says only that you need REFERENCES permission on the
referenced table. And ALTER TABLE ADD FOREIGN KEY has already checked that
you own the referencing table, so the check could only fail if a table owner
has revoked his own REFERENCES permission. Moreover, the symmetric
interpretation of this permission is unintuitive and confusing, as per
complaint from Paul Jungwirth. So let's drop the referencing-side check. In
passing, do a bit of wordsmithing on the GRANT reference page so that all the
privilege types are described in similar fashion. Discussion:
https://postgr.es/m/8940.1490906755@sss.pgh.pa.us
http://git.postgresql.org/pg/commitdiff/64d4da511c012faff8ac309595620938a43c6817

- Fix unstable regression test result. Commit e306df7f9 added a test case that
depends on "the" being a stop word, which it is not in non-English locales.
Since the point of the test is to check stopword behavior, fix by forcibly
selecting the 'english' configuration. Per buildfarm.
http://git.postgresql.org/pg/commitdiff/f1a285e21111f4d4d0c3f428ce2b3ae9e7f162c2

- Fix unstable regression test result. Whoops, missed that same test was made
for json as well as jsonb.
http://git.postgresql.org/pg/commitdiff/c281cd5fe178c946dc23eae4d4642be5ddbe3eb4

- Allow psql variable substitution to occur in backtick command strings.
Previously, text between backquotes in a psql metacommand's arguments was
always passed to the shell literally. That considerably hobbles the
usefulness of the feature for scripting, so we'd foreseen for a long time that
we'd someday want to allow substitution of psql variables into the shell
command. IMO the addition of \if metacommands has brought us to that point,
since \if can greatly benefit from some sort of client-side expression
evaluation capability, and psql itself is not going to grow any such thing in
time for v10. Hence, this patch. It allows :VARIABLE to be replaced by the
exact contents of the named variable, while :'VARIABLE' is replaced by the
variable's contents suitably quoted to become a single shell-command argument.
(The quoting rules for that are different from those for SQL literals, so this
is a bit of an abuse of the :'VARIABLE' notation, but I doubt anyone will be
confused.) As with other situations in psql, no substitution occurs if the
word following a colon is not a known variable name. That limits the risk of
compatibility problems for existing psql scripts; but the risk isn't zero, so
this needs to be called out in the v10 release notes. Discussion:
https://postgr.es/m/9561.1490895211@sss.pgh.pa.us
http://git.postgresql.org/pg/commitdiff/f833c847b8fa4782efab45c8371d3cee64292d9b

- Fix behavior of psql's \p to agree with \g, \w, etc. In commit e984ef586 I
(tgl) simplified the behavior of \p to just print the current query buffer;
but Daniel Vérité points out that this made it inconsistent with the behavior
of \g and \w. It should print the same thing \g would execute. Fix that, and
improve related comments. Daniel Vérité Discussion:
https://postgr.es/m/9b4ea968-753f-4b5f-b46c-d7d3bf7c8f90@manitou-mail.org
http://git.postgresql.org/pg/commitdiff/5dbc5da1187c1ddb6e091047194d364337ebf232

Peter Eisentraut pushed:

- Fix cpluspluscheck warning. Structure tag cannot be the same as a typedef
that is a pointer to that struct.
http://git.postgresql.org/pg/commitdiff/895f93701fd78b6faab6b437685357298a91dfe3

- Change default of log_directory to 'log'. The previous default 'pg_log' might
have indicated by its "pg_" prefix that it is an internal system directory.
The new default is more in line with the typical naming of directories with
user-facing log files. Together with the renaming of pg_clog and pg_xlog,
this should clear up that difference. Author: Andreas Karlsson
<andreas(at)proxel(dot)se>
http://git.postgresql.org/pg/commitdiff/3371e4d9b12455fe1f8d1516d0bd915aab86be17

- PL/Python: Add cursor and execute methods to plan object. Instead of plan =
plpy.prepare(...) res = plpy.execute(plan, ...) you can now write plan =
plpy.prepare(...) res = plan.execute(...) or even res =
plpy.prepare(...).execute(...) and similarly for the cursor() method. This is
more in object oriented style, and makes the hybrid nature of the existing
execute() function less confusing. Reviewed-by: Andrew Dunstan
<andrew(dot)dunstan(at)2ndquadrant(dot)com>
http://git.postgresql.org/pg/commitdiff/70ec3f1f8f0b753c38a1a582280a02930d7cac5f

- doc: Fix oldhtml/old PDF build again. Commit
e259e1f748c7a6d67e307a90d6c27b8ab8b90df8 was faulty and created some broken
output. This one fixes it better.
http://git.postgresql.org/pg/commitdiff/5196f13b2726eeabfe2c8b7a97fc05839766cdce

- doc: Improve rendering of notes/cautions using XSL-FO. Center title and put a
border around it, like the output that the DSSSL version gave.
http://git.postgresql.org/pg/commitdiff/6e31c3e13514be4404f716f152ac4c434adad03a

- Clean up Perl code according to perlcritic. Fix all perlcritic warnings of
severity level 5, except in src/backend/utils/Gen_dummy_probes.pl, which is
automatically generated. Reviewed-by: Dagfinn Ilmari Mannsåker
<ilmari(at)ilmari(dot)org> Reviewed-by: Daniel Gustafsson <daniel(at)yesql(dot)se>
http://git.postgresql.org/pg/commitdiff/facde2a98f0b5f7689b4e30a9e7376e926e733b8

- Fix Perl code which had broken the Windows build. The previous change wanted
to avoid modifying $_ in grep, but the code just made the change in a local
variable and then lost it. Rewrite the code using a separate map and grep,
which is clearer anyway. Author: Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org>
http://git.postgresql.org/pg/commitdiff/4d33a7f2e714848ca7b5b7ef8e244eead078ca13

- dblink: Fix error reporting. The conname variable was not initialized in some
code paths, resulting in error reports referring to the "unnamed" connection
rather than the correct connection name. Author: Rushabh Lathia
<rushabh(dot)lathia(at)gmail(dot)com>
http://git.postgresql.org/pg/commitdiff/85163641f8bdeb7734b37ae67faa224a029afe25

- Fix ssl tests. facde2a98f0b5f7689b4e30a9e7376e926e733b8 introduced a typo
during rebasing.
http://git.postgresql.org/pg/commitdiff/967a4b01e3637813365502b46499360b18b86725

- Change 'diag' to 'note' in TAP tests. Reduce noise from TAP tests by changing
'diag' to 'note', so output only goes to the test's log file not stdout,
unless in verbose mode. This also removes the junk on screen when running the
TAP tests in parallel. Author: Craig Ringer <craig(at)2ndquadrant(dot)com>
http://git.postgresql.org/pg/commitdiff/2e74e636bd7d90152d596530a17a3d0ff543cc97

- doc: Mention --enable-tap-tests in regression test chapter. Reported-by: Jeff
Janes <jeff(dot)janes(at)gmail(dot)com>
http://git.postgresql.org/pg/commitdiff/66b764341ba12206f01e2600713bdc3abdb070b3

- Cast result of copyObject() to correct type. copyObject() is declared to
return void *, which allows easily assigning the result independent of the
input, but it loses all type checking. If the compiler supports typeof or
something similar, cast the result to the input type. This creates a greater
amount of type safety. In some cases, where the result is assigned to a
generic type such as Node * or Expr *, new casts are now necessary, but in
general casts are now unnecessary in the normal case and indicate that
something unusual is happening. Reviewed-by: Mark Dilger
<hornschnorter(at)gmail(dot)com>
http://git.postgresql.org/pg/commitdiff/4cb824699e12c39fad97fb3d9085ced0d14c067c

- Improve Node vs Expr use a bit. Author: Mark Dilger <hornschnorter(at)gmail(dot)com>
http://git.postgresql.org/pg/commitdiff/e0eb5e0aeac7643c10b550e8067182cd08fc59a3

- Fix configure check for typeof.
http://git.postgresql.org/pg/commitdiff/ddce628971fb611f5ecd49d72e1612f983d99097

- Fix hardcoded typeof check result for Windows. The test result that I had
blindly stipulated didn't work out on the build farm, so disable the feature
in Windows MSVC for now.
http://git.postgresql.org/pg/commitdiff/3582b223d494cd505c6a22da98bcb49f99196645

- Update copyright year in recently added files. Author: Masahiko Sawada
<sawada(dot)mshk(at)gmail(dot)com>
http://git.postgresql.org/pg/commitdiff/4fdb8a82e3c6aaf6ca866c92ee066b6bde82c0b8

- pg_dump: Remove query truncation in error messages. Remove the behavior that
a query mentioned in an error message would be truncated to 128 characters.
The queries that pg_dump runs are often longer than that, and this behavior
makes analyzing failures harder unnecessarily. Discussion:
https://www.postgresql.org/message-id/flat/63201ef9-26fb-3f1f-664d-98531678cebc%402ndquadrant.com
http://git.postgresql.org/pg/commitdiff/5baf869f74d369319042132ef8cc2d8d4f5b71ce

Robert Haas pushed:

- Show more processes in pg_stat_activity. Previously, auxiliary processes and
background workers not connected to a database (such as the logical
replication launcher) weren't shown. Include them, so that we can see the
associated wait state information. Add a new column to identify the processes
type, so that people can filter them out easily using SQL if they wish.
Before this patch was written, there was discussion about whether we should
expose this information in a separate view, so as to avoid contaminating
pg_stat_activity with things people might not want to see. But putting
everything in pg_stat_activity was a more popular choice, so that's what the
patch does. Kuntal Ghosh, reviewed by Amit Langote and Michael Paquier. Some
revisions and bug fixes by me. Discussion:
http://postgr.es/m/CA+TgmoYES5nhkEGw9nZXU8_FhA8XEm8NTm3-SO+3ML1B81Hkww@mail.gmail.com
http://git.postgresql.org/pg/commitdiff/fc70a4b0df38bda6a13941f1581f25fbb643c7f3

- Fix comment. Cut-and-paste led to something silly. Ashutosh Sharma, reviewed
by Amit Kapila and by me Discussion:
http://postgr.es/m/CAE9k0PmUbvQSBY7kwN_OkuqBYyHRXBX-c1ZkuAgR5vgF0GeWzQ@mail.gmail.com
http://git.postgresql.org/pg/commitdiff/f0a6046bcb15c2fe48384ef547df2bfb5d7f0a89

- Pass DSA_ALLOC_HUGE when allocating a shared TIDBitmap. When creating an
unshared TIDBitmap, we pass MCXT_ALLOC_HUGE to allow allocations >1GB, so by
analogy we pass DSA_ALLOC_HUGE for a shared TIDBitmap. Bug introduced by
commit 98e6e89040a0534ca26914c66cae9dd49ef62ad9. Report by Rafia Sabih, fix
by Dilip Kumar, adjusted by me. Discussion:
http://postgr.es/m/CAOGQiiPpSnkuKq+oUK_bvQFg2EPGFPN8RwgxTgBa6HU_kQa3EA@mail.gmail.com
http://git.postgresql.org/pg/commitdiff/a171f01501e11a2ef65d437ac2397a0050892d88

- Allow ON CONFLICT .. DO NOTHING on a partitioned table. ON CONFLICT .. DO
UPDATE still doesn't work, for lack of a way of enforcing uniqueness across
partitions, but we can still allow this case. Amit Langote, per discussion
with Peter Geoghegan. Additional wordsmithing by me. Discussion:
http://postgr.es/m/CAA-aLv7Z4uygtq-Q5CvDi9Y=VZxUyEnuWjL=EwCfOof=L04hgg@mail.gmail.com
http://git.postgresql.org/pg/commitdiff/8355a011a0124bdf7ccbada206a967d427039553

- Fix improper NULL handling in list partitioning code. The previous logic was
wrong when the value was NULL but there was no partition for NULL. Amit
Langote, reviewed by Jeevan Ladhe Discussion:
http://postgr.es/m/d64f8498-70eb-3c88-b56d-c54fd3b0500f@lab.ntt.co.jp
http://git.postgresql.org/pg/commitdiff/7ecb7143589f38d679bb566311dfa9be1a650fd5

- Tidy up the CREATE TABLE documentation for partitioning. Remove some <note>
tags that make this too "loud". Fix some typos. Amit Langote, with a few
minor corrections by me Discussion:
http://postgr.es/m/a6f99cdb-21e7-1d65-1381-91f2cfa156e2@lab.ntt.co.jp
http://git.postgresql.org/pg/commitdiff/4785e377f9c3189c06051ece7ebb112220f365f6

- Improve documentation of how NOT NULL works with partitioning. Amit Langote
Discussion:
http://postgr.es/m/a6f99cdb-21e7-1d65-1381-91f2cfa156e2@lab.ntt.co.jp
http://git.postgresql.org/pg/commitdiff/d65561464f45d325e82ad91918bcd4e2881ce567

- Still more code review for single-page hash vacuuming. Most seriously, fix
use of incorrect block ID, per a report from Jeff Janes that it causes a crash
and a diagnosis from Amit Kapila. Improve consistency between the hash and
btree versions of this code by adding back a PANIC that btree has, and by
registering data in the xlog record in the same way, per complaints from Jeff
Janes and Amit Kapila. Tidy up some minor cosmetic points, per complaints
from Amit Kapila. Patch by Ashutosh Sharma, reviewed by Amit Kapila, and
tested by Jeff Janes. Discussion:
http://postgr.es/m/CAMkU=1w-9Qe=Ff1o6bSaXpNO9wqpo7_9GL8_CVhw4BoVVHasqg@mail.gmail.com
http://git.postgresql.org/pg/commitdiff/c4c51541e22bf7f2da8ecf6986271687b0d7a90e

- Plug race in dsa_attach. With sufficiently bad luck, it was possible for a
parallel worker to attempt attach to a DSA area after all other backends have
detached from it, which is not legal. If the worker had waited a little
longer to get started, the DSM itself would have been destroyed, which is why
this wasn't noticed before. Thomas Munro, per a report from Andreas
Seltenreich Discussion: http://postgr.es/m/87h92g83t3.fsf@credativ.de
http://git.postgresql.org/pg/commitdiff/fddf45b38097d14301d249fbeebca32e40233bd2

- Mark more functions parallel-restricted. Commit
61c2e1a95f94bb904953a6281ce17a18ac38ee6d allowed parallel query to be used in
more places, revealing via buildfarm member mandrill that several functions
intended to be called from triggers were incorrectly marked parallel-safe
rather than parallel-restricted. Report by Tom Lane. Patch by Rafia Sabih.
Reviewed by me. Discussion: http://postgr.es/m/16061.1490479253@sss.pgh.pa.us
http://git.postgresql.org/pg/commitdiff/9a09527164311a5735e4a8a83d376a30427336cc

- postgres_fdw: Teach IMPORT FOREIGN SCHEMA about partitioning. Don't import
partitions. Do import partitioned tables which are not themselves partitions.
Report by Stephen Frost. Design and patch by Michael Paquier, reviewed by
Amit Langote. Documentation revised by me. Discussion:
http://postgr.es/m/20170309141531.GD9812@tamriel.snowman.net
http://git.postgresql.org/pg/commitdiff/f49bcd4ef3e9a75de210357a4d9bbe3e004db956

- Don't allocate storage for partitioned tables. Also, don't allow setting
reloptions on them, since that would have no effect given the lack of storage.
The patch does this by introducing a new reloption kind for which there are
currently no reloptions -- we might have some in the future -- so it adjusts
parseRelOptions to handle that case correctly. Bumped catversion. System
catalogs that contained reloptions for partitioned tables are no longer valid;
plus, there are now fewer physical files on disk, which is not technically a
catalog change but still a good reason to re-initdb. Amit Langote, reviewed
by Maksim Milyutin and Kyotaro Horiguchi and revised a bit by me. Discussion:
http://postgr.es/m/20170331.173326.212311140.horiguchi.kyotaro@lab.ntt.co.jp
http://git.postgresql.org/pg/commitdiff/c94e6942cefe7d20c5feed856e27f672734b1e2b

- Revert "Allow ON CONFLICT .. DO NOTHING on a partitioned table.". This
reverts commit 8355a011a0124bdf7ccbada206a967d427039553, which turns out to
have been a misguided effort. We can't really support this in a partitioning
hierarchy after all for exactly the reasons stated in the documentation
removed by that commit. It's still possible to use ON CONFLICT .. DO NOTHING
(or for that matter ON CONFLICT .. DO UPDATE) on individual partitions if
desired, but but to allow this on a partitioned table implies that we have
some way of evaluating uniqueness across the whole partitioning hierarchy,
which is false. Shinoda Noriyoshi noticed that the old code was crashing
(which we could fix, though not in a nice way) and Amit Langote realized that
this was indicative of a fundamental problem with the commit being reverted
here. Discussion:
http://postgr.es/m/ff3dc21d-7204-c09c-50ac-cf11a8c45c81@lab.ntt.co.jp
http://git.postgresql.org/pg/commitdiff/f05230752d53c4aa74cffa9b699983bbb6bcb118

- Improve documentation for table partitioning. Emphasize the new declarative
partitioning more, and compare and contrast it more clearly with
inheritance-based partitioning. Amit Langote, reviewed and somewhat revised
by me Discussion:
http://postgr.es/m/a6f99cdb-21e7-1d65-1381-91f2cfa156e2@lab.ntt.co.jp
http://git.postgresql.org/pg/commitdiff/8f18a880a5f138d4da94173d15514142331f8de6

- Fix typos. Brandur Leach
http://git.postgresql.org/pg/commitdiff/9a12ad042d26ba085f8ef72d030699b6f3d43b01

- Don't use bgw_main even to specify in-core bgworker entrypoints. On
EXEC_BACKEND builds, this can fail if ASLR is in use. Backpatch to 9.5. On
master, completely remove the bgw_main field completely, since there is no
situation in which it is safe for an EXEC_BACKEND build. On 9.6 and 9.5,
leave the field intact to avoid breaking things for third-party code that
doesn't care about working under EXEC_BACKEND. Prior to 9.5, there are no
in-core bgworker entrypoints. Petr Jelinek, reviewed by me. Discussion:
http://postgr.es/m/09d8ad33-4287-a09b-a77f-77f8761adb5e@2ndquadrant.com
http://git.postgresql.org/pg/commitdiff/2113ac4cbb12b815804e8873d761cade9ddf49b9

- Fix parallel query so it doesn't spoil row estimates above Gather. Commit
45be99f8cd5d606086e0a458c9c72910ba8a613d removed GatherPath's num_workers
field, but this is entirely bogus. Normally, a path's parallel_workers flag
is supposed to indicate the number of workers that it wants, and should be 0
for a non-partial path. In that commit, I mistakenly thought that GatherPath
could also use that field to indicate the number of workers that it would try
to start, but that's disastrous, because then it can propagate up to higher
nodes in the plan tree, which will then get incorrect rowcounts because the
parallel_workers flag is involved in computing those values. Repair by
putting the separate field back. Report by Tomas Vondra. Patch by me,
reviewed by Amit Kapila. Discussion:
http://postgr.es/m/f91b4a44-f739-04bd-c4b6-f135bd643669@2ndquadrant.com
http://git.postgresql.org/pg/commitdiff/7d8f6986b83c9a56f6ea11c959cdd8f52e1b543d

- Avoid GatherMerge crash when there are no workers. It's unnecessary to return
an actual slot when we have no tuple. We can just return NULL, which avoids
the risk of indexing into an array that might not contain any elements.
Rushabh Lathia, per a report from Tomas Vondra Discussion:
http://postgr.es/m/6ecd6f17-0dcf-1de7-ded8-0de7db1ddc88@2ndquadrant.com
http://git.postgresql.org/pg/commitdiff/25dc142a49c60c3107480c487cd8444dc83f9bdf

Andrew Gierth pushed:

- Support hashed aggregation with grouping sets. This extends the Aggregate
node with two new features: HashAggregate can now run multiple hashtables
concurrently, and a new strategy MixedAggregate populates hashtables while
doing sorted grouping. The planner will now attempt to save as many sorts as
possible when planning grouping sets queries, while not exceeding work_mem for
the estimated combined sizes of all hashtables used. No SQL-level changes are
required. There should be no user-visible impact other than the new EXPLAIN
output and possible changes to result ordering when ORDER BY was not used
(which affected a few regression tests). The enable_hashagg option is
respected. Author: Andrew Gierth Reviewers: Mark Dilger, Andres Freund
Discussion: https://postgr.es/m/87vatszyhj.fsf@news-spur.riddles.org.uk
http://git.postgresql.org/pg/commitdiff/b5635948ab165b6070e7d05d111f966e07570d81

- Attempt to stabilize grouping sets regression test plans. Per buildfarm
members dromedary and arapaima.
http://git.postgresql.org/pg/commitdiff/de4da168d57de812bb30d359394b7913635d21a9

Teodor Sigaev pushed:

- Improve performance of find_tabstat_entry()/get_tabstat_entry(). Patch
introduces a hash map reloid -> PgStat_TableStatus which improves performance
in case of large number of tables/partitions. Author: Aleksander Alekseev
Reviewed-by: Andres Freund, Anastasia Lubennikova, Tels, me
https://commitfest.postgresql.org/13/1058/
http://git.postgresql.org/pg/commitdiff/090010f2ec9b1f9ac1124dc628b89586f911b641

- Improve performance of find_all_inheritors(). Previous coding uses three
nested loops which obviously were a pain for large number of table's children.
Patch replaces inner loop with a hashmap. Author: Aleksander Alekseev
Reviewed-by: me https://commitfest.postgresql.org/13/1058/
http://git.postgresql.org/pg/commitdiff/827d6f977940952ebef4bd21fb0f97be4e20c0c4

- Fsync directory after creating or unlinking file. If file was created/deleted
just before powerloss it's possible that file system will miss that. To
prevent it, call fsync() where creating/ unlinkg file is critical. Author:
Michael Paquier Reviewed-by: Ashutosh Bapat, Takayuki Tsunakawa, me
http://git.postgresql.org/pg/commitdiff/1b02be21f271db6bd3cd43abb23fa596fcb6bac3

- Altering default privileges on schemas. Extend ALTER DEFAULT PRIVILEGES
command to schemas. Author: Matheus Oliveira Reviewed-by: Petr Jelínek,
Ashutosh Sharma https://commitfest.postgresql.org/13/887/
http://git.postgresql.org/pg/commitdiff/ab89e465cb2032017c4888399f47a76ac16eaf40

- Implement SortSupport for macaddr data type. Introduces a scheme to produce
abbreviated keys for the macaddr type. Bump catalog version. Author: Brandur
Leach Reviewed-by: Julien Rouhaud, Peter Geoghegan
https://commitfest.postgresql.org/13/743/
http://git.postgresql.org/pg/commitdiff/f90d23d0c51895e0d7db7910538e85d3d38691f0

Álvaro Herrera pushed:

- Rework the stats_ext test. As suggested by Tom Lane, avoid printing specific
estimated cost values, because they vary across architectures; instead, verify
plan shapes (in this case, HashAggregate vs. GroupAggregate), as we do in
other planner tests. We can now remove expected/stats_ext_1.out. Author:
Tomas Vondra
http://git.postgresql.org/pg/commitdiff/bed9ef5a16239d91d97a1fa2efd9309c3cbbc4b2

- Fix a couple of problems in pg_get_statisticsextdef. There was a thinko
whereby we tested the wrong tuple after fetching it from cache; avoid that by
using generate_relation_name instead, which is simpler. Also, the statistics
name was not qualified, so add that. (It could be argued that qualification
should be conditional on the schema not being on search path. We can add that
later, but at least this form is correct.) Author: David Rowley, Álvaro
Herrera Discussion:
https://postgr.es/m/CAKJS1f8RjLeVZJ2+93pdQGuZJeBF-ifsHaFMR-q-6-Z0qxA8cA@mail.gmail.com
http://git.postgresql.org/pg/commitdiff/2c3e47527a6f53cd1d98887fdb9e770c118954ca

- Fix thinko in estimate_num_groups. The code for the reworked n-distinct
estimation on commit 7b504eb282 was written differently in a previous version
of the patch, prior to commit; on rewriting it, we missed updating an
initializer. This caused the code to (mistakenly) apply a fudge factor even
in the case where a single value is applied, leading to incorrect results.
This means that the 'relvarcount' variable name is now wrong. Add a comment
to try and make the situation clearer, and remove an incorrect comment I
added. Problem noticed, and code patch, by Tomas Vondra. Additional
commentary by Álvaro.
http://git.postgresql.org/pg/commitdiff/1f171a1803c28d3ae24636c9ca3352ec82c39e5f

- Fix uninitialized memory propagation mistakes. Valgrind complains that some
uninitialized bytes are being passed around by the extended statistics code
since commit 7b504eb282ca2f, as reported by Andres Freund. Silence it. Tomas
Vondra submitted a patch which he verified to fix the complaints in his
machine; however I messed with it a bit before pushing, so any remaining
problems are likely my (Álvaro's) fault. Author: Tomas Vondra Discussion:
https://postgr.es/m/20170325211031.4xxoptigqxm2emn2@alap3.anarazel.de
http://git.postgresql.org/pg/commitdiff/6462238f0d7b7c15eb3f54c2108573cee8fb24ba

- Remove direct uses of ItemPointer.{ip_blkid,ip_posid}. There are no
functional changes here; this simply encapsulates knowledge of the
ItemPointerData struct so that a future patch can change things without more
breakage. All direct users of ip_blkid and ip_posid are changed to use
existing macros ItemPointerGetBlockNumber and ItemPointerGetOffsetNumber
respectively. For callers where that's inappropriate (because they Assert
that the itempointer is is valid-looking), add
ItemPointerGetBlockNumberNoCheck and ItemPointerGetOffsetNumberNoCheck, which
lack the assertion but are otherwise identical. Author: Pavan Deolasee
Discussion:
https://postgr.es/m/CABOikdNnFon4cJiL=h1mZH3bgUeU+sWHuU4Yr8AB=j3A2p1GiA@mail.gmail.com
http://git.postgresql.org/pg/commitdiff/ce96ce60ca2293f75f36c3661e4657a3c79ffd61

- Allow DSM segments to be created as pinned. dsm_create and dsm_attach assumed
that a current resource owner was always in place. Exploration with the API
show that this is inconvenient: sometimes one must create a dummy resowner,
create/attach the DSM, only to pin the mapping later, which is wasteful.
Change create/attach so that if there is no current resowner, the dsm is
effectively pinned right from the start. Discussion:
https://postgr.es/m/20170324232710.32acsfsvjqfgc6ud@alvherre.pgsql Reviewed by
Thomas Munro.
http://git.postgresql.org/pg/commitdiff/767bc028e5f001351feb498acef9a87c123093d6

- Simplify check of modified attributes in heap_update. The old coding was
getting more complicated as new things were added, and it would be barely
tolerable with upcoming WARM updates and other future features such as
indirect indexes. The new coding incurs a small performance cost in synthetic
benchmark cases, and is barely measurable in normal cases. A much larger
benefit is expected from WARM, which could actually bolt its needs on top of
the existing coding, but it is much uglier and bug-prone than doing it on this
new code. Additional optimization can be applied on top of this, if need be.
Reviewed-by: Pavan Deolasee, Amit Kapila, Mithun CY Discussion:
https://postgr.es/m/20161228232018.4hc66ndrzpz4g4wn@alvherre.pgsql
https://postgr.es/m/CABOikdMJfz69dBNRTOZcB6s5A0tf8OMCyQVYQyR-WFFdoEwKMQ@mail.gmail.com
http://git.postgresql.org/pg/commitdiff/2fd8685e7fd9fddf16f99de1284a787d29781cc8

- Fix expected output. Previous commit had a thinko in the expected output for
new tests. Per buildfarm
http://git.postgresql.org/pg/commitdiff/3a82129a40a3a2987356d4051e017fd456876c8d

- BRIN de-summarization. When the BRIN summary tuple for a page range becomes
too "wide" for the values actually stored in the table (because the tuples
that were present originally are no longer present due to updates or deletes),
it can be useful to remove the outdated summary tuple, so that a future
summarization can install a tighter summary. This commit introduces a
SQL-callable interface to do so. Author: Álvaro Herrera Reviewed-by: Eiji
Seki Discussion:
https://postgr.es/m/20170228045643.n2ri74ara4fhhfxf@alvherre.pgsql
http://git.postgresql.org/pg/commitdiff/c655899ba9ae2a0d24e99c797167c33e0cfa0820

- BRIN auto-summarization. Previously, only VACUUM would cause a page range to
get initially summarized by BRIN indexes, which for some use cases takes too
much time since the inserts occur. To avoid the delay, have brininsert
request a summarization run for the previous range as soon as the first tuple
is inserted into the first page of the next range. Autovacuum is in charge of
processing these requests, after doing all the regular vacuuming/ analyzing
work on tables. This doesn't impose any new tasks on autovacuum, because
autovacuum was already in charge of doing summarizations. The only actual
effect is to change the timing, i.e. that it occurs earlier. For this reason,
we don't go any great lengths to record these requests very robustly; if they
are lost because of a server crash or restart, they will happen at a later
time anyway. Most of the new code here is in autovacuum, which can now be
told about "work items" to process. This can be used for other things such as
GIN pending list cleaning, perhaps visibility map bit setting, both of which
are currently invoked during vacuum, but do not really depend on vacuum taking
place. The requests are at the page range level, a granularity for which we
did not have SQL-level access; we only had index-level summarization requests
via brin_summarize_new_values(). It seems reasonable to add SQL-level access
to range-level summarization too, so add a function brin_summarize_range() to
do that. Authors: Álvaro Herrera, based on sketch from Simon Riggs.
Reviewed-by: Thomas Munro. Discussion:
https://postgr.es/m/20170301045823.vneqdqkmsd4as4ds@alvherre.pgsql
http://git.postgresql.org/pg/commitdiff/7526e10224f0792201e99631567bbe44492bbde4

Simon Riggs pushed:

- Cleanup slots during drop database. Automatically drop all logical
replication slots associated with a database when the database is dropped.
Previously we threw an ERROR if a slot existed. Now we throw ERROR only if a
slot is active in the database being dropped. Craig Ringer
http://git.postgresql.org/pg/commitdiff/ff539da31691f2cd2694360250571c5c5fb7415e

- Correct grammar in error message. "could not generate" rather than "could not
generation" from commit 818fd4a67d610991757b610755e3065fb99d80a5
http://git.postgresql.org/pg/commitdiff/a99f77021f0c8c1c221af4e36b64ca43abd04389

- Fix pgrowlocks minor coding oversight.
http://git.postgresql.org/pg/commitdiff/ceb3158abe743ddcb213457fc9fcd1a89812194f

- Default monitoring roles. Three nologin roles with non-overlapping privs are
created by default * pg_read_all_settings - read all GUCs. *
pg_read_all_stats - pg_stat_*, pg_database_size(), pg_tablespace_size() *
pg_stat_scan_tables - may lock/scan tables Top level role - pg_monitor
includes all of the above by default, plus others Author: Dave Page
Reviewed-by: Stephen Frost, Robert Haas, Peter Eisentraut, Simon Riggs
http://git.postgresql.org/pg/commitdiff/25fff40798fc4ac11a241bfd9ab0c45c085e2212

Andres Freund pushed:

- Remove support for version-0 calling conventions. The V0 convention is
failure prone because we've so far assumed that a function is V0 if
PG_FUNCTION_INFO_V1 is missing, leading to crashes if a function was coded
against the V1 interface. V0 doesn't allow proper NULL, SRF and toast
handling. V0 doesn't offer features that V1 doesn't. Thus remove V0 support
and obsolete fmgr README contents relating to it. Author: Andres Freund, with
contributions by Peter Eisentraut & Craig Ringer Reviewed-By: Peter
Eisentraut, Craig Ringer Discussion:
https://postgr.es/m/20161208213441.k3mbno4twhg2qf7g@alap3.anarazel.de
http://git.postgresql.org/pg/commitdiff/5ded4bd21403e143dd3eb66b92d52732fdac1945

- Move contrib/seg to only use V1 calling conventions. A later commit will
remove V0 support. Author: Andres Freund, with contributions by Craig Ringer
Reviewed-By: Peter Eisentraut, Craig Ringer Discussion:
https://postgr.es/m/20161208213441.k3mbno4twhg2qf7g@alap3.anarazel.de
http://git.postgresql.org/pg/commitdiff/389bb2818f404d5b967f21e1ac4f987f894e94bb

- Try to fix xml docs build broken in 5ded4bd. Apparently the sgml to xml
conversion treats non-closed <para>s differently than jade does.
http://git.postgresql.org/pg/commitdiff/ffae6733db1f9d4a3a75d737a00ee2a4a3e01849

- Based on the infrastructure added in b8d7f053c5c2b, this allows. expressions
in expensive queries to be compiled to native code. In TPC-H this yields up
to 40% of speedups. Whenever a query has a total cost over
jit_expression_minimum, all expressions in it will be JIT compiled. That
allows to perform JIT compilation of all expressions in one go, which is a lot
more efficient. Originally slated for v11, discussions at pgconf.us convinced
me to add this to v10. Author: Andres Freund Reviewed-By: Robert Haas, Heikki
Linnakangas Discussion:
http://postgr.es/m/20161206034955.bh33paeralxbtluv@alap3.anarazel.de
http://git.postgresql.org/pg/commitdiff/d31084e9d1118b25fd16580d9d8c2924b5740dff

Fujii Masao pushed:

- Simplify the example of VACUUM in documentation. Previously a detailed
activity report by VACUUM VERBOSE ANALYZE was described as an example of
VACUUM in docs. But it had been obsolete for a long time. For example, commit
feb4f44d296b88b7f0723f4a4f3945a371276e0b updated the content of that activity
report in 2003, but we had forgotten to update the example. So basically we
need to update the example. But since no one cared about the details of VACUUM
output and complained about that mistake for such long time, per discussion on
hackers, we decided to get rid of the detailed activity report from the
example and simplify it. Back-patch to all supported versions. Reported by
Masahiko Sawada, patch by me. Discussion:
https://postgr.es/m/CAD21AoAGA2pB3p-CWmTkxBsbkZS1bcDGBLcYVcvcDxspG_XAfA@mail.gmail.com
http://git.postgresql.org/pg/commitdiff/ec19693014ed48fa1d8c7e0ce450795f752c4456

Magnus Hagander pushed:

- Fix typo in comment. Daniel Gustafsson
http://git.postgresql.org/pg/commitdiff/156d3882f89d2a224029e4c81adacd279eb1cdfc

- Write "waiting for checkpoint" on regular progress row. When reporting
progress, make the "waiting for checkpoint" test be overwritten by the
file-based progress once it's completed. This is more consistent with how we
report the rest of the progress. Suggested by Jeff Janes
http://git.postgresql.org/pg/commitdiff/7220c7b3e5c847227fbfe53bbaca326044674a6c

- Fix some typos and spelling errors in comments. Author: Erik Rijkers
http://git.postgresql.org/pg/commitdiff/130ae4a5478b3b3965779ece1436fa3611aa957f

Andrew Dunstan pushed:

- Transform or iterate over json(b) string values. Dmitry Dolgov, reviewed and
lightly edited by me.
http://git.postgresql.org/pg/commitdiff/c80b9920fcbcbf75e3d7e8fe092bf6e15d9d40b8

- Full Text Search support for json and jsonb. The new functions are
ts_headline() and to_tsvector. Dmitry Dolgov, edited and documented by me.
http://git.postgresql.org/pg/commitdiff/e306df7f9cd6b4433273e006df11bdc966b7079e

Kevin Grittner pushed:

- Add transition table support to plpgsql. Kevin Grittner and Thomas Munro
Reviewed by Heikki Linnakangas, David Fetter, and Thomas Munro with valuable
comments and suggestions from many others
http://git.postgresql.org/pg/commitdiff/59702716324ab9c07b02fb005dcf14c7f48c4632

- Add infrastructure to support EphemeralNamedRelation references. A
QueryEnvironment concept is added, which allows new types of objects to be
passed into queries from parsing on through execution. At this point, the
only thing implemented is a collection of EphemeralNamedRelation objects --
relations which can be referenced by name in queries, but do not exist in the
catalogs. The only type of ENR implemented is NamedTuplestore, but provision
is made to add more types fairly easily. An ENR can carry its own TupleDesc
or reference a relation in the catalogs by relid. Although these features can
be used without SPI, convenience functions are added to SPI so that ENRs can
easily be used by code run through SPI. The initial use of all this is going
to be transition tables in AFTER triggers, but that will be added to each PL
as a separate commit. An incidental effect of this patch is to produce a more
informative error message if an attempt is made to modify the contents of a
CTE from a referencing DML statement. No tests previously covered that
possibility, so one is added. Kevin Grittner and Thomas Munro Reviewed by
Heikki Linnakangas, David Fetter, and Thomas Munro with valuable comments and
suggestions from many others
http://git.postgresql.org/pg/commitdiff/18ce3a4ab22d2984f8540ab480979c851dae5338

- Try to fix breakage of sepgsql hooks by ENR patch. Turned up by buildfarm
animal rhinoceros. Fixing blind. Will have to wait for next run by
rhinoceros to know whether it worked.
http://git.postgresql.org/pg/commitdiff/01fd6f8f2d15a9369768921d6fc95ac481779430

- Fix two undocumented parameters to functions from ENR patch. On
ProcessUtility document the parameter, to match others. On CreateCachedPlan
drop the queryEnv parameter. It was not referenced within the function, and
had been added on the assumption that with some unknown future usage of
QueryEnvironment it might be useful to do something there. We have avoided
other "just in case" implementation of unused paramters, so drop it here. Per
gripe from Tom Lane
http://git.postgresql.org/pg/commitdiff/41bd155dd656e7f17c02855be7aff234843347cd

== Pending Patches ==

Kyotaro HORIGUCHI sent in a patch to add encoding_dumper and map_dumper.

Michaël Paquier sent in two more revisions of a patch to change detection of
corrupted 2PC files as FATAL and minimize window between history file and
end-of-recovery.

Nikhil Sontakke sent in another revision of a patch to speed up two-phase
transactions.

Stas Kelvich and Craig Ringer traded patches to implement logical decoding of
two-phase transactions.

Haribabu Kommi sent in three more revisions of a patch to implement a
pg_stat_wal_write statistics view.

Ashutosh Bapat sent in two more revisions of a patch to implement partition-wise
join for declaratively partitioned tables.

Kyotaro HORIGUCHI sent in a patch to fix a bug in physical replication slots.

Beena Emerson sent in another revision of a patch to allow increasing the
default WAL segment size.

Amit Khandekar sent in two more revisions of a patch to enable UPDATE of
partition key for declaratively partitioned tables.

Vaishnavi Prabakaran sent in two more revisions of a patch to implement
batch/pipelining support for libpq.

Pavan Deolasee sent in six more revisions of a patch to implement WARM.

Mithun Cy sent in eight more revisions of a patch to expand hash indexes more
efficiently.

Ashutosh Sharma sent in two more revisions of a patch to fix a failed assertion
found by sqlsmith in _hash_kill_items/MarkBufferDirtyHint.

Pavel Stěhule and Surafel Temesgen traded patches to add CORRESPONDING.

Dmitry Dolgov sent in three more revisions of a patch to implement generic type
subscripting.

Ashutosh Sharma sent in three more revisions of a patch to rewrite hash index
scans to work a page at a time, remove redundant function _hash_step() and some
of the unused members of HashScanOpaqueData, and improve the locking strategy
during VACUUM in hash index.

Jan Michálek sent in four more revisions of a patch to add markdown and rst to
psql's output formats.

Pavel Stěhule sent in a patch to add an xmltable doc fix and example for
XMLNAMESPACES.

Pavel Stěhule and Petr Jelínek traded patches to add a plan_cache control PRAGMA
to pl/pgsql.

Jeff Janes sent in a patch to fix an infelicity between free space map and
visibility map.

Claudio Freire sent in another revision of a patch for VACUUM which frees the
dead tuples array as early as possible.

Jim Nasby sent in a patch to fix a missing increment of
vacrelstats->pinskipped_pages.

Ashutosh Bapat and Amit Langote traded patches to fix a comment in
src/backend/optimizer/path/allpaths.c.

Haribabu Kommi sent in another revision of a patch to refactor handling of
database attributes between pg_dump and pg_dumpall.

Kyotaro HORIGUCHI sent in a patch to show vacuum aggressiveness in autovacuum
logs.

Alexander Law sent in a patch to remove trailing spaces in strings in the source
code.

Daniel Gustafsson sent in a patch to use American English spelling in pg_waldump
error message.

Nikhil Sontakke sent in another revision of a patch to move all am-related
reloption code into src/backend/access/[am-name] and get rid of relopt_kind for
custom AM.

Alexander Korotkov sent in another revision of a patch to implement incremental
sort.

Masahiko Sawada sent in another revision of a patch to implement support for
transactions involving multiple postgres foreign servers.

Daniel Gustafsson sent in a patch to error out more informatively when multiple
TO VERSION arguments are supplied to ALTER EXTENSION.

Takeshi Ideriha sent in another revision of a patch to implement DECLARE
STATEMENT setting up a connection in ECPG.

Peter Eisentraut sent in a patch to adjust min/max values when changing sequence
type.

Peter Eisentraut sent in another revision of a patch to implement IDENTITY
columns.

Michaël Paquier sent in three more revisions of a patch to allow interrupts on
waiting standby.

Vinayak Pokale sent in another revision of a patch to implement an ANALYZE
command progress checker.

Tomas Vondra sent in two more revisions of a patch to add page_checksum and
bt_page_items(bytea) to page_inspect.

Ashutosh Sharma sent in a patch to fix an issue that manifested as an
inconsistent page found on STANDBY server.

Takayuki Tsunakawa sent in another revision of a patch to implement huge pages
on Windows.

Kuntal Ghosh sent in a patch to fix some strange parallel query behavior after
OOM crashes.

David Rowley sent in two more revisions of a patch to fix functional
dependencies in materialized views in light of the extended statistics recently
committed.

Thomas Munro sent in another revision of a patch to implement [[Parallel]
Shared] Hash.

Anastasia Lubennikova and Teodor Sigaev traded patches to add covering + unique
indexes.

Michaël Paquier sent in another revision of a patch to implement SASLprep aka
NFKC for SCRAM authentication.

Aleksander Alekseev sent in a patch to remove an unused argument in
btree_xlog_split.

Etsuro Fujita sent in another revision of a patch to add epqpath support for
foreign joins.

Masahiko Sawada sent in a patch to remove some dead code from the table sync
worker.

Fabien COELHO sent in a patch to refactor psql's ef/ev and sf/sv handling
functions so they're not copypasta.

Feike Steenbergen sent in a patch to fix an issue where passwords in user
mappings were leaked by psql's \deu+ command.

Alexander Korotkov sent in another revision of a patch to implement a LWLock
optimization for multicore Power machines.

Takayuki Tsunakawa sent in a patch to fix an issue where savepoint-related
statements in a multi-command query terminates the connection unexpectedly.

Mike Palmiotto sent in two revisions of a patch to silence some sepgsql compiler
warnings and add partitioned table support to sepgsql.

Petr Jelínek sent in a patch to use weaker locks when updating subscription
relation state.

Dilip Kumar sent in a patch to ensure that parallel bitmapscan is exercised in
regression tests.

David Rowley sent in another revision of a patch to improve performance for
outer joins where the outer side is unique.

Browse pgsql-announce by date

  From Date Subject
Next Message David Fetter 2017-04-09 23:14:42 == PostgreSQL Weekly News - April 09 2017 ==
Previous Message Stephen Frost 2017-03-24 13:38:33 PostgresOpen SV 2017 in San Francisco - Call For Papers!