pg_upgrade docs:  mention need to set parameters for vacuumdb.
Document auto_explain.log_timing.

Tomas Vondra
pgindent run for release 9.3
This is the first run of the Perl-based pgindent script.  Also update
pgindent instructions.
postgresql.conf.sample: Improve whitespace
Minor spell checking
Remove whitespace from end of lines
doc: Fix claim that query is passed as ASCII text

Ian Lawrence Barwick
Add new source files to nls.mk
Don't emit non-canonical empty arrays in array_remove().

Dean Rasheed
doc: Remove paragraph about typesetting conventions

They no longer match reality with the web site style sheets, and it is
difficult to keep the up to date in a CSS world.
Post-pgindent cleanup

Make slightly better decisions about indentation than what pgindent
is capable of.  Mostly breaking out long function calls into one
line per argument, with a few other minor adjustments.

No functional changes- all whitespace.
pgindent ran cleanly (didn't change anything) after.
Passes all regressions.
Minor spelling fixes

Fix a few spelling mistakes.

Per bug report #8193 from Lajos Veres.
Fix unportable usage of isspace().

Must cast char argument to unsigned to avoid doing the wrong thing
with high-bit-set characters.  Oversight in commit
30b5ede7157e34e77c7914b8ecfd55aa8da6edc3.
Fix whitespace issues in the man pages

See 00b0c73f1f2b98a7d09de63aaa14d6498ac521ae for an explanation.
Another man page whitespace fix
Allow type_func_name_keywords in some places where they weren't before.

This change makes type_func_name_keywords less reserved than they were
before, by allowing them for role names, language names, EXPLAIN and COPY
options, and SET values for GUCs; which are all places where few if any
actual keywords could appear instead, so no new ambiguities are introduced.

The main driver for this change is to allow "COPY ... (FORMAT BINARY)"
to work without quoting the word "binary".  That is an inconsistency that
has been complained of repeatedly over the years (at least by Pavel Golub,
Kurt Lidl, and Simon Riggs); but we hadn't thought of any non-ugly solution
until now.

Back-patch to 9.0 where the COPY (FORMAT BINARY) syntax was introduced.
Code review of recycling WAL segments in a restartpoint.

Seems cleaner to get the currently-replayed TLI in the same call to
GetXLogReplayRecPtr that we get the WAL position. Make it more clear in the
comment what the code does when recovery has already ended
(RecoveryInProgress() will set ThisTimeLineID in that case). Finally, make
resetting ThisTimeLineID afterwards more explicit.
Additional spelling corrections

A few more minor spelling corrections, no functional changes.

Thom Brown
Put back allow_system_table_mods check in heap_create().

This reverts commit a475c6036752c26dca538632b68fd2cc592976b7.

Erik Rijkers reported back in January 2013 that after the patch, if you do
"pg_dump -t myschema.mytable" to dump a single table, and restore that in
a database where myschema does not exist, the table is silently created in
pg_catalog instead. That is because pg_dump uses
"SET search_path=myschema, pg_catalog" to set schema the table is created
in. While allow_system_table_mods is not a very elegant solution to this,
we can't leave it as it is, so for now, revert it back to the way it was
previously.
Add semicolons to eval'd strings to hide a minor Perl behavioral change.

"eval q{foo}" used to complain that the error was on line 2 of the eval'd
string, because eval internally tacked on "\n;" so that the end of the
erroneous command was indeed on line 2.  But as of Perl 5.18 it more
sanely says that the error is on line 1.  To avoid Perl-version-dependent
regression test results, use "eval q{foo;}" instead in the two places
where this matters.  Per buildfarm.

Since people might try to use newer Perl versions with older PG releases,
back-patch as far as 9.0 where these test cases were added.