Replace SYSTEMQUOTEs with Windows-specific wrapper functions.

It's easy to forget using SYSTEMQUOTEs when constructing command strings
for system() or popen(). Even if we fix all the places missing it now, it is
bound to be forgotten again in the future. Introduce wrapper functions that
do the the extra quoting for you, and get rid of SYSTEMQUOTEs in all the
callers.

We previosly used SYSTEMQUOTEs in all the hard-coded command strings, and
this doesn't change the behavior of those. But user-supplied commands, like
archive_command, restore_command, COPY TO/FROM PROGRAM calls, as well as
pgbench's \shell, will now gain an extra pair of quotes. That is desirable,
but if you have existing scripts or config files that include an extra
pair of quotes, those might need to be adjusted.

Reviewed by Amit Kapila and Tom Lane
Assert that pre/post-fix updated tuples are on the same page during replay.

If they were not 'oldtup.t_data' would be dereferenced while set to NULL
in case of a full page image for block 0.

Do so primarily to silence coverity; but also to make sure this prerequisite
isn't changed without adapting the replay routine as that would appear to
work in many cases.

Andres Freund
Use Size instead of uint32 to store result of sizeof()

Silences coverity and is more consistent with other functions in the
same file.

Andres Freund
Don't leak memory after connection aborts in pg_recvlogical.

Andres Freund, noticed by coverity.
Pass sensible value to memset() when randomizing reorderbuffer's tuple slab.

This is entirely harmless, but still wrong. Noticed by coverity.

Andres Freund
doc: In FDW handler docs, mark up scan_clauses with <literal>.

Etsuro Fujita
Update 9.4 release notes with feedback from the hackers list
Update "huge pages" description in the 9.4 release notes
Fix case of pg_dump -Fc to an unseekable file (such as a pipe).

This was accidentally broken in commits cfa1b4a711/5e8e794e3b.
It saves a line or so to call ftello unconditionally in _CloseArchive,
but we have to expect that it might fail if we're not in hasSeek mode.
Per report from Bernd Helmle.

In passing, improve _getFilePos to print an appropriate message if
ftello fails unexpectedly, rather than just a vague complaint about
"ftell mismatch".
Add SGML markup tags to 9.4 release notes
Fix pg_type.typlen for newly-revived line type.

Commit 261c7d4b653bc3e44c31fd456d94f292caa50d8f removed the "m" field
from struct LINE, but neglected to make pg_type.h's idea of the type's
size match.  This resulted in reading past the end of palloc'd LINE
values when inserting them into tuples etc.  In principle that could
cause a SIGSEGV, though the odds of detectable problems seem low.

Bump catversion since this makes an incompatible on-disk format change.
Note that if the line type had been in use in the field, this would
break pg_upgrade'ability of databases containing line values; but
it seems unlikely that there are any (they'd have had to be compiled
with -DENABLE_LINE_TYPE).

Spotted by Andres Freund.
Fix possible cache invalidation failure in ReceiveSharedInvalidMessages.

Commit fad153ec45299bd4d4f29dec8d9e04e2f1c08148 modified sinval.c to reduce
the number of calls into sinvaladt.c (which require taking a shared lock)
by keeping a local buffer of collected-but-not-yet-processed messages.
However, if processing of the last message in a batch resulted in a
recursive call to ReceiveSharedInvalidMessages, we could overwrite that
message with a new one while the outer invalidation function was still
working on it.  This would be likely to lead to invalidation of the wrong
cache entry, allowing subsequent processing to use stale cache data.
The fix is just to make a local copy of each message while we're processing
it.

Spotted by Andres Freund.  Back-patch to 8.4 where the bug was introduced.
Add doc links to 9.4 release notes, and add major features list
Improve JSONB 9.4 release text
In 9.4 release notes, add detail to pg_stat_statements items
Move pg_stat_statements into its on 9.4 release note section
Run autoconf in wake of commit a692ee5870f0f442565b4c4bff367094599e9bdf.

Heikki updated configure.in but evidently forgot to include the updated
configure script in the commit.  Per buildfarm.
Update 9.4 release notes for queryid control
Properly detect read and write errors in pg_dump/dumpall, and pg_restore

Previously some I/O errors were ignored.
Fix handling of array of char pointers in ecpglib.

When array of char * was used as target for a FETCH statement returning more
than one row, it tried to store all the result in the first element. Instead it
should dump array of char pointers with right offset, use the address instead
of the value of the C variable while reading the array and treat such variable
as char **, instead of char * for pointer arithmetic.

Patch by Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>