== PostgreSQL Weekly News - July 06 2015 ==

From: David Fetter <david(at)fetter(dot)org>
To: PostgreSQL Announce <pgsql-announce(at)postgresql(dot)org>
Subject: == PostgreSQL Weekly News - July 06 2015 ==
Date: 2015-07-07 03:31:45
Message-ID: 20150707033145.GA22974@fetter.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-announce

== PostgreSQL Weekly News - July 06 2015 ==

The CommitFest schedule for the 9.6 cycle is planned as follows:
CF1: July 1 to July 31 2015
CF2: Sept 1 to Sept 30 2015
CF3: November 1 to November 30 2015
CF4: Jan 2 to Jan 31 2016
CF5: March 1 to March 31 2016, to end on time (sudden death patch rejection)
Feature Freeze (committer freeze): April 15
https://wiki.postgresql.org/wiki/PgCon_2015_Developer_Meeting#9.6_Schedule

PostgreSQL 9.5 Alpha 1 Released. Test!
http://www.postgresql.org/about/news/1595/

PostgreSQL Conference Europe 2015 will be held on October 27-30 in the
Vienna Marriott Hotel, in Vienna, Austria. The CfP is open until
August 7.
http://2015.pgconf.eu/

== PostgreSQL Product News ==

SQL Tabs v0.4, a client tool for PostgreSQL, released.
http://www.sqltabs.com/

Version 2.22.0 of check_postgres, a Postgres monitoring tool, released.
http://bucardo.org/wiki/Check_postgres
Role::Pg::Roles 0.002, a Perl module for manipulating roles, released.
https://metacpan.org/pod/Role::Pg::Roles

Role::Pg::Sequences 0.002, a Perl module for manipulating sequences, released.
https://metacpan.org/pod/Role::Pg::Roles

Role::Pg::Notify 0.001, a Perl module for manipulating NOTIFY, released.
https://metacpan.org/pod/Role::Pg::Roles

Job::Machine 0.22, a Perl module for creating and using job queues, released.
https://metacpan.org/pod/Job::Machine

== PostgreSQL Jobs for July ==

http://archives.postgresql.org/pgsql-jobs/2015-07/

== PostgreSQL Local ==

PGDay UK, Conference will be taking place on 7th July 2015 – it is aimed at
the UK PostgreSQL Community.
http://www.postgresqlusergroup.org.uk

PGDay Campinas 2015 will take place in Campinas on August 7.
http://pgdaycampinas.com.br/english/

PostgresOpen 2015 will being held in Dallas, Texas September 16-18.
http://2015.postgresopen.org/

PostgreSQL Session #7, will be held September 24th, 2015 in Paris,
France,
http://www.postgresql-sessions.org/7/about

PostgreSQL Conference Europe 2015 will be held on October 27-30 in the
Vienna Marriott Hotel, in Vienna, Austria. The CfP is open until
August 7.
http://2015.pgconf.eu/

PGConf Silicon Valley 2015 is November 17-18 at the South San
Francisco Convention Center.
http://www.pgconfsv.com

PGBR2015 (The Brazilian PostgreSQL Conference) will take place in Porto
Alegre, Rio Grande do Sul, on November 18, 19 and 20.
The CfP is open through July 15.
http://pgbr.postgresql.org.br/2015/en/#call-for-papers

== 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) Spanish language
to pwn(at)arpug(dot)com(dot)ar(dot)

== Applied Patches ==

Heikki Linnakangas pushed:

- Also trigger restartpoints based on max_wal_size on standby. When
archive recovery and restartpoints were initially introduced,
checkpoint_segments was ignored on the grounds that the files
restored from archive don't consume any space in the recovery
server. That was changed in later releases, but even then it was
arguably a feature rather than a bug, as performing restartpoints as
often as checkpoints during normal operation might be excessive, but
you might nevertheless not want to waste a lot of space for
pre-allocated WAL by setting checkpoint_segments to a high value.
But now that we have separate min_wal_size and max_wal_size
settings, you can bound WAL usage with max_wal_size, and still avoid
consuming excessive space usage by setting min_wal_size to a lower
value, so that argument is moot. There are still some issues with
actually limiting the space usage to max_wal_size: restartpoints in
recovery can only start after seeing the checkpoint record, while a
checkpoint starts flushing buffers as soon as the redo-pointer is
set. Restartpoint is paced to happen at the same leisurily speed,
determined by checkpoint_completion_target, as checkpoints, but
because they are started later, max_wal_size can be exceeded by upto
one checkpoint cycle's worth of WAL, depending on
checkpoint_completion_target. But that seems better than not trying
at all, and max_wal_size is a soft limit anyway. The documentation
already claimed that max_wal_size is obeyed in recovery, so this
just fixes the behaviour to match the docs. However, add some
weasel-words there to mention that max_wal_size may well be exceeded
by some amount in recovery.
http://git.postgresql.org/pg/commitdiff/d661532e27b34e9c89d0700c6ce246731e70072c

- Initialize GIN metapage correctly when replaying metapage-update WAL
record. I broke this with my WAL format refactoring patch. Before
that, the metapage was read from disk, and modified in-place
regardless of the LSN. That was always a bit silly, as there's no
need to read the old page version from disk disk when we're
overwriting it anyway. So that was changed in 9.5, but I failed to
add a GinInitPage call to initialize the page-headers correctly.
Usually you wouldn't notice, because the metapage is already in the
page cache and is not zeroed. One way to reproduce this is to
perform a VACUUM on an already vacuumed table (so that the vacuum
has no real work to do), immediately after a checkpoint, and then
perform an immediate shutdown. After recovery, the page headers of
the metapage will be incorrectly all-zeroes. Reported by Jeff Janes
http://git.postgresql.org/pg/commitdiff/47fe4d25d57c81b9d7b2ac88783a12ee487db220

- Don't call PageGetSpecialPointer() on page until it's been
initialized. After calling XLogInitBufferForRedo(), the page might
be all-zeros if it was not in page cache already.
btree_xlog_unlink_page initialized the page correctly, but it called
PageGetSpecialPointer before initializing it, which would lead to a
corrupt page at WAL replay, if the unlinked page is not in page
cache. Backpatch to 9.4, the bug came with the rewrite of B-tree
page deletion.
http://git.postgresql.org/pg/commitdiff/fdf28853ae6a397497b79fea69f89f4f7b9aa991

- Add assertion to check the special size is sane before dereferencing
it. This seems useful to catch errors of the sort I just fixed,
where PageGetSpecialPointer is called before initializing the page.
http://git.postgresql.org/pg/commitdiff/302ac7f27197855afa8c89fae36c85c124ae156b

- Use American spelling for "behavior". For consistency with the rest
of the docs. Michael Paquier
http://git.postgresql.org/pg/commitdiff/5b1b6bf49b44f9b26f0c9eb6d97e84973e71a0ae

- Fix name of argument to pg_stat_file. It's called "missing_ok" in
the docs and in the C code. I refrained from doing a catversion
bump for this, because the name of an input argument is just
documentation, it has no effect on any callers. Michael Paquier
http://git.postgresql.org/pg/commitdiff/7931622d1d942dbbba8d0eab77f18f69f1ce5de0

- Use appendStringInfoString/Char et al where appropriate. Patch by
David Rowley. Backpatch to 9.5, as some of the calls were new in
9.5, and keeping the code in sync with master makes future
backpatching easier.
http://git.postgresql.org/pg/commitdiff/f92d6a540ac443f85f0929b284edff67da14687a

- Don't emit a spurious space at end of line in pg_dump of event
triggers. Backpatch to 9.3 and above, where event triggers were
added.
http://git.postgresql.org/pg/commitdiff/7b156c1e0746a46d083d7dbcd28afb303b3484ef

- Replace obsolete autoconf macros with their modern replacements.
AC_TRY_COMPILE(...) -> AC_COMPILE_IFELSE([AC_LANG_PROGRAM(...)])
AC_TRY_LINK(...) -> AC_LINK_IFELSE([AC_LANG_PROGRAM(...)])
AC_TRY_RUN(...) -> AC_RUN_IFELSE([AC_LANG_PROGRAM(...)])
AC_LANG_SAVE/RESTORE -> AC_LANG_PUSH/POP AC_DECL_SYS_SIGLIST ->
AC_CHECK_DECLS(...) (per snippet in autoconf manual) Also use
AC_LANG_SOURCE instead of AC_LANG_PROGRAM, where the main() function
is not needed. With these changes, autoconf -Wall doesn't complain
anymore. Andreas Karlsson
http://git.postgresql.org/pg/commitdiff/a2edb023d08778c3346bbbf4ca82ef7f6e9283eb

- Plug some trivial memory leaks in pg_dump and pg_upgrade. There's
no point in trying to free every small allocation in these programs
that are used in a one-shot fashion, but these ones seems like an
improvement on readability grounds. Michael Paquier, per Coverity
report.
http://git.postgresql.org/pg/commitdiff/f712289ffad7c3fb6eb3be4f81adb0aa0981c9f7

- Remove "const" from convertTSFunction()'s return type. There's no
particular reason to mark it as such. The other convert* functions
have no const either.
http://git.postgresql.org/pg/commitdiff/a3fd7afe3090a5098f93408d47da70b47fb59e7b

- Remove obsolete heap_formtuple/modifytuple/deformtuple functions.
These variants used the old-style 'n'/' ' NULL indicators. The
new-style functions have been available since version 8.1. That
should be long enough that if there is still any old external code
using these functions, they can just switch to the new functions
without worrying about backwards compatibility. Peter Geoghegan
http://git.postgresql.org/pg/commitdiff/726117243022178e72966cbffdfb9147ec6dbbcc

- Lift the limitation that # of clients must be a multiple of # of
threads. Fabien Coelho
http://git.postgresql.org/pg/commitdiff/ba3deeefb0fb9e8810b454bc7b41f27965c24aa8

- Fix pgbench progress report behaviour when pgbench or a query gets
stuck. There were two issues here. First, if a query got stuck so
that it took e.g. 5 seconds, and progress interval was 1 second, no
progress reports were printed until the query returned. Fix so that
we wake up specifically to print the progress report. Secondly, if
pgbench got stuck so that it would nevertheless not print a progress
report on time, and enough time passes that it's already time to
print the next progress report, just skip the one that was missed.
Before this patch, it would print the missed one with 0 TPS
immediately after the previous one. Fabien Coelho. Backpatch to
9.4, where progress reports were added.
http://git.postgresql.org/pg/commitdiff/9031ff91a110f29e8bd4b74ddf2b5ced3ecbeaf4

- Remove thread-emulation support from pgbench. You can no longer use
pgbench with multiple threads when compiled without
--enable-thread-safety. That's an acceptable limitation these days;
it still works fine with -j1, and all modern platforms support
threads anyway. This makes future maintenance and development of
the code easier. Fabien Coelho
http://git.postgresql.org/pg/commitdiff/1bc90f7a7b7441a88e2c6d4a0e9b6f9c1499ad30

- Don't set SO_SNDBUF on recent Windows versions that have a bigger
default. It's unnecessary to set it if the default is higher in the
first place. Furthermore, setting SO_SNDBUF disables the so-called
"dynamic send buffering" feature, which hurts performance further.
This can be seen especially when the network between the client and
the server has high latency. Chen Huajun
http://git.postgresql.org/pg/commitdiff/4f33621f3f50286e607a3cdcc1f7a7d51075af95

- Call getsockopt() on the correct socket. We're interested in the
buffer size of the socket that's connected to the client, not the
one that's listening for new connections. It happened to work, as
default buffer size is the same on both, but it was clearly not
wrong. Spotted by Tom Lane
http://git.postgresql.org/pg/commitdiff/8e33fc1784cbd657a7238ab5639ee1f8f54a3ec0

- Turn install.bat into a pure one line wrapper fort he perl script.
Build.bat and vcregress.bat got similar treatment years ago. I'm not
sure why install.bat wasn't treated at the same time, but it seems
like a good idea anyway. The immediate problem with the old
install.bat was that it had quoting issues, and wouldn't work if the
target directory's name contained spaces. This fixes that problem.
http://git.postgresql.org/pg/commitdiff/6c534fd68568452adcc9ccecb557eff74f6f0f4d

Tom Lane pushed:

- Improve design and implementation of pg_file_settings view. As
first committed, this view reported on the file contents as they
were at the last SIGHUP event. That's not as useful as reporting on
the current contents, and what's more, it didn't work right on
Windows unless the current session had serviced at least one SIGHUP.
Therefore, arrange to re-read the files when pg_show_all_settings()
is called. This requires only minor refactoring so that we can pass
changeVal = false to set_config_option() so that it won't actually
apply any changes locally. In addition, add error reporting so that
errors that would prevent the configuration files from being loaded,
or would prevent individual settings from being applied, are visible
directly in the view. This makes the view usable for pre-testing
whether edits made in the config files will have the desired effect,
before one actually issues a SIGHUP. I also added an "applied"
column so that it's easy to identify entries that are superseded by
later entries; this was the main use-case for the original design,
but it seemed unnecessarily hard to use for that. Also fix a 9.4.1
regression that allowed multiple entries for a PGC_POSTMASTER
variable to cause bogus complaints in the postmaster log. (The
issue here was that commit bf007a27acd7b2fb unintentionally reverted
3e3f65973a3c94a6, which suppressed any duplicate entries within
ParseConfigFp. However, since the original coding of the
pg_file_settings view depended on such suppression *not* happening,
we couldn't have fixed this issue now without first doing something
with pg_file_settings. Now we suppress duplicates by marking them
"ignored" within ProcessConfigFileInternal, which doesn't hide them
in the view.) Lesser changes include: Drive the view directly off
the ConfigVariable list, instead of making a basically-equivalent
second copy of the data. There's no longer any need to hang onto
the data permanently, anyway. Convert show_all_file_settings() to
do its work in one call and return a tuplestore; this avoids risks
associated with assuming that the GUC state will hold still over the
course of query execution. (I think there were probably latent bugs
here, though you might need something like a cursor on the view to
expose them.) Arrange to run SIGHUP processing in a short-lived
memory context, to forestall process-lifespan memory leaks. (There
is one known leak in this code, in ProcessConfigDirectory; it seems
minor enough to not be worth back-patching a specific fix for.)
Remove mistaken assignment to ConfigFileLineno that caused line
counting after an include_dir directive to be completely wrong. Add
missed failure check in AlterSystemSetConfigFile(). We don't really
expect ParseConfigFp() to fail, but that's not an excuse for not
checking.
http://git.postgresql.org/pg/commitdiff/62d16c7fc5614d9f4d0dd1a9f164b232c273c128

- Run the C portions of guc-file.l through pgindent. Yeah, I know,
pretty anal-retentive of me. But we oughta find some way to
automate this for the .y and .l files.
http://git.postgresql.org/pg/commitdiff/2bdc51a2946f9a66688eb705cd0cb584ebd8240a

- Code + docs review for escaping of option values (commit 11a020eb6).
Avoid memory leak from incorrect choice of how to free a StringInfo
(resetStringInfo doesn't do it). Now that pg_split_opts doesn't
scribble on the optstr, mark that as "const" for clarity. Attach
the commentary in protocol.sgml to the right place, and add
documentation about the user-visible effects of this change on
postgres' -o option and libpq's PGOPTIONS option.
http://git.postgresql.org/pg/commitdiff/cbc8d65639344c390a1d1a7f646c186ff3ad8693

- Desultory review of 9.5 release notes. Minor corrections and
clarifications. Notably, for stuff that got moved out of contrib,
make sure it's documented somewhere other than "Additional Modules".
I'm sure these need more work, but that's all I have time for today.
http://git.postgresql.org/pg/commitdiff/85c25fdbd7d624928bb8a1f1fd1e5043ec35dd74

- Stamp 9.5alpha1.
http://git.postgresql.org/pg/commitdiff/f78329d594c2fe893f9174d5b3da7d3fbc6dd8b6

- Remove useless check for NULL subexpression. Coverity rightly
gripes that it's silly to have a test here when the adjacent
ExecEvalExpr() would choke on a NULL expression pointer. Petr
Jelinek
http://git.postgresql.org/pg/commitdiff/131926a52da0fbd77678cbd887914c83b48faa2d

- Stamp HEAD as 9.6devel. Let the hacking begin ...
http://git.postgresql.org/pg/commitdiff/cf8d65de10ebd026f6534eeb275cae46d7bffb4f

- Stamp shared-library minor version numbers for 9.6.
http://git.postgresql.org/pg/commitdiff/019f7813da69da05484faa63b6a29a8df773d19b

- Fix broken link in documentation. HP's web server has apparently
become case-sensitive sometime recently. Per bug #13479 from Daniel
Abraham. Corrected link identified by Alvaro.
http://git.postgresql.org/pg/commitdiff/7f32dbcd73b9a75d09db386fa81c31f42e6f0d3a

- Make sampler_random_fract() actually obey its API contract. This
function is documented to return a value in the range (0,1), which
is what its predecessor anl_random_fract() did. However, the new
version depends on pg_erand48() which returns a value in [0,1). The
possibility of returning zero creates hazards of division by zero or
trying to compute log(0) at some call sites, and it might well break
third-party modules using anl_random_fract() too. So let's change
it to never return zero. Spotted by Coverity. Michael Paquier,
cosmetically adjusted by me
http://git.postgresql.org/pg/commitdiff/d7c19d68550eb6018e8581a73a351905f4cc435c

- Don't leave pg_hba and pg_ident data lying around in running
backends. Free the contexts holding this data after we're done
using it, by the expedient of attaching them to the
PostmasterContext which we were already taking care to delete (and
where, indeed, this data used to live before commits
e5e2fc842c418432 and 7c45e3a3c682f855). This saves a
probably-usually-negligible amount of space per running backend. It
also avoids leaving potentially-security-sensitive data lying around
in memory in processes that don't need it. You'd have to be
unusually paranoid to think that that amounts to a live security
bug, so I've not gone so far as to forcibly zero the memory; but
there surely isn't a good reason to keep this data around. Arguably
this is a memory management bug in the aforementioned commits, but
it doesn't seem important enough to back-patch.
http://git.postgresql.org/pg/commitdiff/1e24cf645d24aab3ea39a9d259897fd0cae4e4b6

- Add an optional missing_ok argument to SQL function
current_setting(). This allows convenient checking for existence of
a GUC from SQL, which is particularly useful when dealing with
custom variables. David Christensen, reviewed by Jeevan Chalke
http://git.postgresql.org/pg/commitdiff/10fb48d66de76e7dc1e36ef18af502ed9600352f

- Fix misuse of TextDatumGetCString().
"TextDatumGetCString(PG_GETARG_TEXT_P(x))" is formally wrong: a
text* is not a Datum. Although this coding will accidentally fail
to fail on all known platforms, it risks leaking memory if a detoast
step is needed, unlike "TextDatumGetCString(PG_GETARG_DATUM(x))"
which is what's used elsewhere. Make pg_get_object_address() fall
in line with other uses. Noted while reviewing two-arg
current_setting() patch.
http://git.postgresql.org/pg/commitdiff/ac50f84866b22f239025bf37c9c7492cc4ce2dfd

- Make numeric form of PG version number readily available in
Makefiles. Expose PG_VERSION_NUM (e.g., "90600") as a Make
variable; but for consistency with the other Make variables holding
similar info, call the variable just VERSION_NUM not PG_VERSION_NUM.
There was some discussion of making this value available as a
pg_config value as well. However, that would entail substantially
more work than this two-line patch. Given that there was not
exactly universal consensus that we need this at all, let's just do
a minimal amount of work for now. Michael Paquier, reviewed by
Pavel Stehule
http://git.postgresql.org/pg/commitdiff/a5d489ccb7e613c7ca3be6141092b8c1d2c13fa7

- Improve pg_restore's -t switch to match all types of relations. -t
will now match views, foreign tables, materialized views, and
sequences, not only plain tables. This is more useful, and also
more consistent with the behavior of pg_dump's -t switch, which has
always matched all relation types. We're still not there on
matching pg_dump's behavior entirely, so mention that in the docs.
Craig Ringer, reviewed by Pavel Stehule
http://git.postgresql.org/pg/commitdiff/5671aaca87c47128f6a1e0556ce9c7512096ad87

- Add psql \ev and \sv commands for editing and showing view
definitions. These are basically just like the \ef and \sf commands
for functions. Petr Korobeinikov, reviewed by Jeevan Chalke, some
changes by me
http://git.postgresql.org/pg/commitdiff/8eb6407aaeb6cbd972839e356b436bb698f51cff

- Add documentation and regression tests concerning rounding of
numerics. Michael Paquier, reviewed by Fabien Coelho
http://git.postgresql.org/pg/commitdiff/5e7c3d91bf24a212b42c912234c6cb37d75e0292

- Fix bad grammar in brin.sgml. Christoph Berg
http://git.postgresql.org/pg/commitdiff/252404625aa98fa5f93a45a8dcffdc179981820a

- Further reduce overhead for passing plpgsql variables to the
executor. This builds on commit
21dcda2713656a7483e3280ac9d2ada20a87a9a9 by keeping a plpgsql
function's shared ParamListInfo's entries for simple variables
(PLPGSQL_DTYPE_VARs) valid at all times. That adds a few cycles to
each assignment to such variables, but saves significantly more
cycles each time they are used; so except in the pathological case
of many dead stores, this should always be a win. Initial testing
says it's good for about a 10% speedup of simple calculations; more
in large functions with many datums. We can't use this method for
row/record references unfortunately, so what we do for those is
reset those ParamListInfo slots after use; which we can skip doing
unless some of them were actually evaluated during the previous
evaluation call. So this should frequently be a win as well, while
worst case is that it's similar cost to the previous approach.
Also, closer study suggests that the previous method of
instantiating a new ParamListInfo array per evaluation is actually
probably optimal for cursor-opening executor calls. The reason is
that whatever is visible in the array is going to get copied into
the cursor portal via copyParamList. So if we used the function's
main ParamListInfo for those calls, we'd end up with all of its
DTYPE_VAR vars getting copied, which might well include large
pass-by-reference values that the cursor actually has no need for.
To avoid a possible net degradation in cursor cases, go back to
creating and filling a private ParamListInfo in those cases (which
therefore will be exactly the same speed as before 21dcda271365).
We still get some benefit out of this though, because this approach
means that we only have to defend against copyParamList's
try-to-fetch-every-slot behavior in the case of an unshared
ParamListInfo; so plpgsql_param_fetch() can skip testing
expr->paramnos in the common case. To ensure that the main
ParamListInfo's image of a DTYPE_VAR datum is always valid, all
assignments to such variables are now funneled through
assign_simple_var(). But this makes for cleaner and shorter code
anyway.
http://git.postgresql.org/pg/commitdiff/6c82d8d1fdb1f1265f93d89640edcbd0ae22c627

- Fix some typos in regression test comments. Back-patch to avoid
unnecessary cross-branch differences. CharSyam
http://git.postgresql.org/pg/commitdiff/551654977022097ac408b483b3be9887a99f0ce0

- Make a editorial pass over pgbench's error messages. The lack of
consistency, and lack of attention to our message style guidelines,
was a bit striking. Try to make 'em better.
http://git.postgresql.org/pg/commitdiff/22ba5563adacd162d97ff3c80eac4893574f1e17

Peter Eisentraut pushed:

- Translation updates. Source-Git-URL:
git://git.postgresql.org/git/pgtranslation/messages.git
Source-Git-Hash: fb7e72f46cfafa1b5bfe4564d9686d63a1e6383f
http://git.postgresql.org/pg/commitdiff/c5e5d444de85a7caff462443c5915544d4406a62

Andres Freund pushed:

- Replace ia64 S_UNLOCK compiler barrier with a full memory barrier.
_Asm_sched_fence() is just a compiler barrier, not a memory barrier.
But spinlock release on IA64 needs, at the very least, release
semantics. Use a full barrier instead. This might be the cause for
the occasional failures on buildfarm member anole. Discussion:
20150629101108(dot)GB17640(at)alap3(dot)anarazel(dot)de
http://git.postgresql.org/pg/commitdiff/07cb8b02ab4c8b65bb2e3b87ad2402fdc6cce978

- Improve 9.5 release notes. 1) Add sgml comments referencing
commits. This is useful to search for missing items etc. The
comments containing the commit notes are an excerpt from: git log
--date=short \ --pretty='format:%cd [%h] %<(8,trunc)%cN:
%<(48,trunc)%s%n%n%w(,4,4)%b%n' \ $(git merge-base origin/master
%upstream/REL9_4_STABLE)..origin/master 2) Improve a handful of
%existing notes 3) Add missing entries about a couple features. 4)
%Add a bunch of straight-forward FIXMEs
%http://git.postgresql.org/pg/commitdiff/c0b0501925eacbf2d9c10cd231bf8a14e7c9ef4c

- Fix typo and omission in my earlier 9.5 release notes commit.
http://git.postgresql.org/pg/commitdiff/1561b541fd43b492ed9fe1b5c907bd88f54d1053

Robert Haas pushed:

- In bttext_abbrev_convert, move pfree to the right place. Without
this, we might access memory that's already been freed, or leak
memory if in the C locale. Peter Geoghegan
http://git.postgresql.org/pg/commitdiff/b48ecf862b3896631660ee8d38054aded82a4f8b

Álvaro Herrera pushed:

- Test -lrt for sched_yield. Apparently, this is needed in some
Solaris versions. Author: Oskari Saarenmaa
http://git.postgresql.org/pg/commitdiff/ab93f90cd3a4fcdd891cee9478941c3cc65795b8

Fujii Masao pushed:

- Make XLogFileCopy() look the same as in 9.4. XLogFileCopy() was
changed heavily in commit de76884. However it was partially reverted
in commit 7abc685 and most of those changes to XLogFileCopy() were
no longer needed. Then commit 7cbee7c removed those unnecessary
code, but XLogFileCopy() looked different in master and 9.4 though
the contents are almost the same. This patch makes XLogFileCopy()
look the same in master and back-branches, which makes back-patching
easier, per discussion on pgsql-hackers. Back-patch to 9.5.
Discussion: 55760844(dot)7090703(at)iki(dot)fi Michael Paquier
http://git.postgresql.org/pg/commitdiff/8217370864c950ea28c7f940442fe48c701461c2

- Make use of xlog_internal.h's macros in WAL-related utilities.
Commit 179cdd09 added macros to check if a filename is a WAL segment
or other such file. However there were still some instances of the
strlen + strspn combination to check for that in WAL-related
utilities like pg_archivecleanup. Those checks can be replaced with
the macros. This patch makes use of the macros in those utilities
and which would make the code a bit easier to read. Back-patch to
9.5. Michael Paquier
http://git.postgresql.org/pg/commitdiff/fb174687f7a730edcf301949785a6ac0dbfd70d0

- Make WAL-related utilities handle .partial WAL files properly.
Commit de76884 changed an archive recovery so that the last WAL
segment with old timeline was renamed with suffix .partial. It
should have updated WAL-related utilities so that they can handle
such .paritial WAL files, but we forgot that. This patch changes
pg_archivecleanup so that it can clean up even archived WAL files
with .partial suffix. Also it allows us to specify .partial WAL file
name as the command-line argument "oldestkeptwalfile". This patch
also changes pg_resetxlog so that it can remove .partial WAL files
in pg_xlog directory. pg_xlogdump cannot handle .partial WAL files.
Per discussion, we decided only to document that limitation instead
of adding the fix. Because a user can easily work around the
limitation (i.e., just remove .partial suffix from the file name)
and the fix seems complicated for very narrow use case. Back-patch
to 9.5 where the problem existed. Review by Michael Paquier.
Discussion:
http://www.postgresql.org/message-id/CAHGQGwGxMKnVHGgTfiig2Bt_2djec0in3-DLJmtg7+nEiidFdQ@mail.gmail.com
http://git.postgresql.org/pg/commitdiff/8650d161ae4369ec64a6fc7b7cbd0e6e55c3a7aa

- Remove incorrect warning from pg_archivecleanup document. The
.backup file name can be passed to pg_archivecleanup even if it
includes the extension which is specified in -x option. However,
previously the document incorrectly warned a user not to do that.
Back-patch to 9.2 where pg_archivecleanup's -x option and the
warning were added.
http://git.postgresql.org/pg/commitdiff/906e9249494bda975914b78fdd743609e1f83016

Andrew Dunstan pushed:

- Allow MSVC's contribcheck and modulescheck to run independently.
These require a temp install to have been done, so we now make sure
it is done before proceeding. Michael Paquier.
http://git.postgresql.org/pg/commitdiff/d5d00294b05a54396f83db8abdf37c379a739794

Joe Conway pushed:

- Whitespace fix - replace tab with spaces in CREATE TABLE command.
http://git.postgresql.org/pg/commitdiff/1fd0d5ec0373666fe00db4f641490d9e82f53e01

- Make RLS related error messages more consistent and compliant. Also
updated regression expected output to match. Noted and patch by
Daniele Varrazzo.
http://git.postgresql.org/pg/commitdiff/02eac01f91923592f93abf8d325ab806b058f948

== Rejected Patches (for now) ==

No one was disappointed this week :-)

== Pending Patches ==

Amit Langote sent in a patch to adjust the errorcode for the error
related to checking the flag bgw_flags in
BackgroundWorkerInitializeConnection*() functions so that it matches
the treatment in SanityCheckBackgroundWorker().

Jeff Janes sent in a patch to that implements the vm scan for
truncation.

Michael Paquier and Heikki Linnakangas traded patches to fix some
infelicities exposed by pg_rewind.

Amit Kapila sent in a patch to reduce ProcArrayLock contention by
adding a mechanism to GroupClear the Xid during ProcArrayEndTransaction().

Jeff Janes sent in a patch to make a crash scenario he'd found easier
to reproduce.

Franck Verrot sent in a patch to mention column name in error
messages.

Peter Geoghegan sent in a patch to fix a bug in
bttext_abbrev_convert().

Andres Freund sent in a patch to rework the way multixact truncations
work.

Michael Paquier sent in a patch to add a couple of return value checks
that were missing for JsonbIteratorNext in jsonfuncs.c.

Michael Paquier sent in a patch to add missing checks on return value
of timestamp2tm in datetime.c.

Amit Kapila sent in a patch to extend pg_stat_activity to include
wait_event.

Michael Paquier and Petr Jelinek traded fix a possible NULL pointer
dereferernce in tablesample.c

Jeff Janes sent in another revision of a patch to update pg_trgm to
use more modern facilities for a speed boost.

Michael Paquier sent in a patch to remove an unneeded NULL-pointer
check in FreeSpaceMapTruncateRel.

Peter Eisentraut sent in a patch to allow the -X stream method to
specify a replication slot and create it in the same run if needed.

Simon Riggs sent in a patch to reduce ClogControlLock contention at
commit time.

Rahila Syed sent in a POC patch to allow tracking VACUUM progress.

Amit Kapila sent in two more revisions of a patch to rename mapfile if
backupfile not present.

SAWADA Masahiko sent in three more revisions of a patch to add a
"frozen" bit to the visibility map.

Kyotaro HORIGUCHI sent in another revision of a patch to allow
asynchronous execution on a FDW.

Etsuro Fujita sent in a patch to fix an issue it's possible that the
result of SELECT ... ORDER BY ... FOR UPDATE is not sorted correctly
due to concurrent updates' having replaced the sort key columns with
new values.

Robbie Harwood sent in a patch to add GSSAPI encryption support.

Amit Kapila sent in another revision of a patch to allow assessing
parallel-safety.

Fabien COELHO sent in another revision of a patch to allow
backslash-continuations in custom pgbench scripts.

Peter Geoghegan sent in a patch to make sorting text under a non-C
locale faster than in 9.5.

Noah Misch sent in a patch to fix some strxfrm overflow bugs.

Michael Paquier sent in two revisions of a patch to fix an issue where
table constraints and other objects were not being persisted over
ALTERs.

Jan de Visser sent in another revision of a patch to let pg_ctl check
the result of a postmaster config reload.

Amit Kapila sent in another revision of a patch to implement parallel
seq scan.

Noah Misch sent in two revisions of a patch to implement xlc atomics.

Marco Atzeri sent in a patch to fix a 9.5alpha1 build failure with
Perl 5.22.

Julien Rouhaud sent in a patch to allow using the PID of the backend
in psql.

David Rowley sent in a patch to fix some infelicities in an as yet
uncommitted memory accounting patch.

Joe Conway and Michael Paquier traded patches to add polymorphic
functions to dblink.

Uriy Zhuravlev sent in another revision of a patch to enhance ALTER
OPERATOR to allow setting some of the operator's parameters.

David Christensen sent in a patch to add \ddp to the tab completions
in psql.

Pavel Stehule sent in another revision of a patch to allow raw output
from COPY.

Browse pgsql-announce by date

  From Date Subject
Next Message Jeff Ferguson 2015-07-07 18:10:26 Open-Source Streaming-SQL Database PipelineDB Now Available!
Previous Message Marco Atzeri 2015-07-06 07:44:11 Re: PostgreSQL 9.5 Alpha 1 build fail with perl 5.22