users/gsingh/postgres.git
4 years agoFix two typos in a comment
Alvaro Herrera [Fri, 22 May 2020 21:39:16 +0000 (17:39 -0400)]
Fix two typos in a comment

They were introduced in 898e5e3290a7; backpatch to 12.

5 years agodoc: Add note about I/O timing information in EXPLAIN and pg_stat_database.
Fujii Masao [Fri, 22 May 2020 14:33:58 +0000 (23:33 +0900)]
doc: Add note about I/O timing information in EXPLAIN and pg_stat_database.

Explain that the followings are tracked only when track_io_timing GUC
is enabled.

- blk_read_time and blk_write_time in pg_stat_database
- time spent reading and writing data file blocks in EXPLAIN output
   with BUFFERS option

Whther track_io_timing is enabled affects also blk_read_time and
blk_write_time in pg_stat_statements, but which was already documented.

Author: Atsushi Torikoshi
Reviewed-by: Fujii Masao
Discussion: https://postgr.es/m/CACZ0uYHo_NwbxpLH76OGF-O=13tkR0ZM0zeyGEhZ+JEXZVRyCA@mail.gmail.com

5 years agoRemove unnecessary cast
Peter Eisentraut [Fri, 22 May 2020 08:36:49 +0000 (10:36 +0200)]
Remove unnecessary cast

Probably copied from nearby calls where it is necessary.  But this one
also casts away constness, so it was doubly annoying.

5 years agoAdjust indentation in src/backend/optimizer/README.
Etsuro Fujita [Fri, 22 May 2020 06:45:00 +0000 (15:45 +0900)]
Adjust indentation in src/backend/optimizer/README.

The previous indentation of optimizer functions was unclear; adjust the
indentation dashes so that a deeper level of indentation indicates that
the outer optimizer function calls the inner one.

Author: Richard Guo, with additional change by me
Reviewed-by: Kyotaro Horiguchi
Discussion: https://postgr.es/m/CAMbWs4-U-ogzpchGsP2BBMufCss1hktm%2B%2BeTJK_dUC196pw0cQ%40mail.gmail.com

5 years agodoc: PG 13 relnotes: Improve FETCH link
Bruce Momjian [Fri, 22 May 2020 02:07:17 +0000 (22:07 -0400)]
doc:  PG 13 relnotes:  Improve FETCH link

Reported-by: Erwin Brandstetter
Discussion: https://postgr.es/m/CAGHENJ4X626ZfYhondXSP4sQgC5zDtsp_LNg1QaD+U7vfgYXQQ@mail.gmail.com

Backpatch-through: head

5 years agodoc: PG 13 relnotes: fix FETCH FIRST ... WITH TIES xreflabel
Bruce Momjian [Fri, 22 May 2020 00:34:37 +0000 (20:34 -0400)]
doc:  PG 13 relnotes:  fix FETCH FIRST ... WITH TIES xreflabel

Reported-by: Erwin Brandstetter
Discussion: https://postgr.es/m/CAGHENJ4X626ZfYhondXSP4sQgC5zDtsp_LNg1QaD+U7vfgYXQQ@mail.gmail.com

Backpatch-through: head

5 years agodoc: suggest 1.1 as a random_page_cost value for SSDs
Bruce Momjian [Fri, 22 May 2020 00:28:38 +0000 (20:28 -0400)]
doc:  suggest 1.1 as a random_page_cost value for SSDs

Reported-by: yigong hu
Discussion: https://postgr.es/m/CAOxFffcourucFqSk+tZA13ErS3XRYkDy6EeaPff4AvHGiEEuug@mail.gmail.com

Backpatch-through: 9.5

5 years agodoc: Simplify mention of unique indexes for NULL control
Bruce Momjian [Thu, 21 May 2020 23:49:30 +0000 (19:49 -0400)]
doc:  Simplify mention of unique indexes for NULL control

Discussion: https://postgr.es/m/2304.1586532634@sss.pgh.pa.us

Backpatch-through: 9.5

5 years agoDoc: Describe CREATE INDEX deduplication strategy.
Peter Geoghegan [Thu, 21 May 2020 20:36:45 +0000 (13:36 -0700)]
Doc: Describe CREATE INDEX deduplication strategy.

The B-Tree index deduplication strategy used during CREATE INDEX and
REINDEX differs from the lazy strategy used by retail inserts.  Make
that clear by adding a new paragraph to the B-Tree implementation
section of the documentation.

In passing, do some copy-editing of nearby deduplication documentation.

5 years agoClear some style deviations.
Noah Misch [Thu, 21 May 2020 15:31:16 +0000 (08:31 -0700)]
Clear some style deviations.

5 years agoUse explicit_bzero() when clearing sslpassword in libpq
Michael Paquier [Thu, 21 May 2020 06:49:20 +0000 (15:49 +0900)]
Use explicit_bzero() when clearing sslpassword in libpq

Since 74a308c, any security-sensitive information gets cleared from
memory this way.  This was forgotten in 4dc6355.

Author: Daniel Gustafsson
Reviewed-by: Peter Eisentraut, Michael Paquier
Discussion: https://postgr.es/m/935443BA-D42E-4CE0-B181-1AD79E6DD45A@yesql.se

5 years agoFix MSVC installations with multiple "configure" files detected
Michael Paquier [Thu, 21 May 2020 05:41:15 +0000 (14:41 +0900)]
Fix MSVC installations with multiple "configure" files detected

When installing binaries and libraries using the MSVC installation
routines, the operation gets done after moving to the root folder, whose
location is detected by checking if "configure" exists two times in a
row.  So, calling the installation script from src/tools/msvc/ with an
extra "configure" file four levels up the root path of the code tree
causes the execution to go further up, leading to a failure in finding
the builds.  This commit fixes the issue by moving to the root folder of
the code tree only once, when necessary.

Author: Arnold Müller
Reviewed-by: Daniel Gustafsson
Discussion: https://postgr.es/m/16343-f638f67e7e52b86c@postgresql.org
Backpatch-through: 9.5

5 years agodoc: Adding a partition does not require Access Exclusive lock
Alvaro Herrera [Wed, 20 May 2020 18:35:39 +0000 (14:35 -0400)]
doc: Adding a partition does not require Access Exclusive lock

This doc update was missed in 898e5e3290a7.  Backpatch to 12.

Pointed out by Pavel Luzanov
Discussion: https://postgr.es/m/642e9fbc-b832-698b-9a8f-d626afd7014d@postgrespro.ru

5 years agoDoc: Fix description of pg_class.relreplident
Michael Paquier [Wed, 20 May 2020 05:20:50 +0000 (14:20 +0900)]
Doc: Fix description of pg_class.relreplident

The description missed a comma and lacked an explanation of what happens
with REPLICA IDENTITY USING INDEX when the dependent index is dropped.

Author: Marina Polyakova
Reviewed-by: Daniel Gustafsson, Michael Paquier
Discussion: https://postgr.es/m/ad1a0badc32658b1bbb07aa312346a1d@postgrespro.ru
Backpatch-through: 9.5

5 years agoDoc: Replace reference to pg_stat_wal_receiver.received_lsn by flushed_lsn
Michael Paquier [Wed, 20 May 2020 00:12:52 +0000 (09:12 +0900)]
Doc: Replace reference to pg_stat_wal_receiver.received_lsn by flushed_lsn

Oversight in 2c8dd05d, where the view's column has been renamed.

Reported-by: Fujii Masao
Discussion: https://postgr.es/m/c049ffcf-d2fe-90f7-c8ba-0741035aa6a7@oss.nttdata.com

5 years agopart_strategy does not need its very own keyword classification.
Tom Lane [Wed, 20 May 2020 00:09:59 +0000 (20:09 -0400)]
part_strategy does not need its very own keyword classification.

This should be plain old ColId.  Making it so makes the grammar less
complicated, and makes the compiled tables a kilobyte or so smaller
(likely because they don't have to deal with a keyword classification
that's not used anyplace else).

5 years agoReconsider nbtree page deletion assertion.
Peter Geoghegan [Tue, 19 May 2020 22:04:34 +0000 (15:04 -0700)]
Reconsider nbtree page deletion assertion.

Commit 624686abcf8 added an assertion that verified that _bt_search
successfully relocated the leaf page undergoing deletion.  Page deletion
cannot deal with the case where the descent stack is to the right of the
page, so this seemed critical (deletion can only handle the case where
the descent stack is to the left of the leaf/target page).  However, the
assertion went a bit too far.

Since only a buffer pin is held on the leaf page throughout the call to
_bt_search, nothing guarantees that it can't have split during this
small window.  And if does actually split, _bt_search may end up
"relocating" a page to the right of the original target leaf page.  This
scenario seems extremely unlikely, but it must still be considered.
Remove the assertion, and document how we cope in this scenario.

5 years agoWITH TIES: number of rows is optional and defaults to one
Alvaro Herrera [Mon, 18 May 2020 23:28:46 +0000 (19:28 -0400)]
WITH TIES: number of rows is optional and defaults to one

FETCH FIRST .. ONLY implements this correctly, but we missed to include
it for FETCH FIRST .. WITH TIES in commit 357889eb17bb.

Author: Vik Fearing
Discussion: https://postgr.es/m/6aa690ef-551d-e24f-2690-c38c2442947c@postgresfriends.org

5 years agoStamp 13beta1.
Tom Lane [Mon, 18 May 2020 20:09:19 +0000 (16:09 -0400)]
Stamp 13beta1.

5 years agoRemove unused variables.
Tom Lane [Mon, 18 May 2020 17:21:36 +0000 (13:21 -0400)]
Remove unused variables.

g_comment_start and g_comment_end have been unused since commit
30ab5bd43d8f2082659191de8ae19be98c960ad7.

Daniel Gustafsson

Discussion: https://postgr.es/m/2CA1BA9F-CDF9-41BE-96A1-2EFD2A3EA6CA@yesql.se

5 years agodoc: PG 13 relnotes: fix typos
Bruce Momjian [Mon, 18 May 2020 14:20:09 +0000 (10:20 -0400)]
doc:  PG 13 relnotes:  fix typos

Reported-by: Daniel Gustafsson
Discussion: https://postgr.es/m/0A9D816E-F49C-470B-A23F-8B4AF999382B@yesql.se

5 years agoTranslation updates
Peter Eisentraut [Mon, 18 May 2020 10:49:30 +0000 (12:49 +0200)]
Translation updates

Source-Git-URL: https://git.postgresql.org/git/pgtranslation/messages.git
Source-Git-Hash: 031ca65d7825c3e539a3e62ea9d6630af12e6b6b

5 years agoFix typos in README
Magnus Hagander [Mon, 18 May 2020 09:55:11 +0000 (11:55 +0200)]
Fix typos in README

Author: Daniel Gustafsson

5 years agoFix comment in slot.c.
Amit Kapila [Mon, 18 May 2020 02:23:26 +0000 (07:53 +0530)]
Fix comment in slot.c.

Reported-by: Sawada Masahiko
Author: Sawada Masahiko
Reviewed-by: Amit Kapila
Backpatch-through: 9.5
Discussion: https://postgr.es/m/CA+fd4k4Ws7M7YQ8PqSym5WB1y75dZeBTd1sZJUQdfe0KJQ-iSA@mail.gmail.com

5 years agoCosmetic improvement for psql opfamily-related information
Alexander Korotkov [Sun, 17 May 2020 10:02:16 +0000 (13:02 +0300)]
Cosmetic improvement for psql opfamily-related information

 * Rename column "Opfamily Name" to "Operator family" for uniformity.
 * Rename column alias from "t1" to "t".

5 years agoFix translate_columns[] arrays in opfamily-related psql functions
Alexander Korotkov [Sun, 17 May 2020 09:53:34 +0000 (12:53 +0300)]
Fix translate_columns[] arrays in opfamily-related psql functions

Make number of translate_columns elements match the number of output columns.
The only "true" value, which was previously specified, seems to be intended
for opfamily operator "purpose" column.  But that column has already translated
values substituted.  So, all elements in translate_columns[] should be "false".

5 years agoImprove ordering for \dAo and \dAp psql commands
Alexander Korotkov [Sun, 17 May 2020 09:41:19 +0000 (12:41 +0300)]
Improve ordering for \dAo and \dAp psql commands

This commit changes ORDER BY clause for \dAo and \dAp psql commands in
the following way.
 * Operators for the same types are grouped together.
 * Same-class operators and procedures are listed before cross-class operators
   and procedures.

Modification of ORDER BY clause for \dAp required removing DISTINCT clause,
which doesn't seem to affect anything.

Discussion: https://postgr.es/m/20200511210856.GA18368%40alvherre.pgsql
Author: Alvaro Herrera revised by me
Reviewed-by: Alexander Korotkov, Nikita Glukhov
5 years agoFix more typos and grammar problems in the glossary
Alvaro Herrera [Sun, 17 May 2020 02:19:02 +0000 (22:19 -0400)]
Fix more typos and grammar problems in the glossary

Author: Erik Rijkers <er@xs4all.nl>
Discussion: https://postgr.es/m/508f2fb1764c3bd518ee96a4f2247d6f@xs4all.nl

5 years agoMop-up for wait event naming issues.
Tom Lane [Sun, 17 May 2020 01:00:05 +0000 (21:00 -0400)]
Mop-up for wait event naming issues.

Synchronize the event names for parallel hash join waits with other
event names, by getting rid of the slashes and dropping "-ing"
suffixes.  Rename ClogGroupUpdate to XactGroupUpdate, to match the
new SLRU name.  Move the ProcSignalBarrier event to the IPC category;
it doesn't belong under IO.

Also a bit more wordsmithing in the wait event documentation tables.

Discussion: https://postgr.es/m/4505.1589640417@sss.pgh.pa.us

5 years agoMake pg_stat_wal_receiver consistent with the WAL receiver's shmem info
Michael Paquier [Sun, 17 May 2020 00:22:07 +0000 (09:22 +0900)]
Make pg_stat_wal_receiver consistent with the WAL receiver's shmem info

d140f2f3 has renamed receivedUpto to flushedUpto, and has added
writtenUpto to the WAL receiver's shared memory information, but
pg_stat_wal_receiver was not consistent with that.  This commit renames
received_lsn to flushed_lsn, and adds a new column called written_lsn.

Bump catalog version.

Author: Michael Paquier
Reviewed-by: Álvaro Herrera
Discussion: https://postgr.es/m/20200515090817.GA212736@paquier.xyz

5 years agoFix bugs in OpenSSL hook renaming.
Tom Lane [Sat, 16 May 2020 23:44:49 +0000 (19:44 -0400)]
Fix bugs in OpenSSL hook renaming.

libpq's exports.txt was overlooked in commit 36d108761, which the
buildfarm is quite unhappy about.

Also, I'd gathered that the plan included renaming PQgetSSLKeyPassHook
to PQgetSSLKeyPassHook_OpenSSL, but that didn't happen in the patch
as committed.  I'm taking it on my own authority to do so now, since
the window before beta1 is closing fast.

5 years agoRename PQsetSSLKeyPassHook and friends
Andrew Dunstan [Sat, 16 May 2020 20:20:43 +0000 (16:20 -0400)]
Rename PQsetSSLKeyPassHook and friends

4dc6355210 provided a way for libraries and clients to modify how libpq
handles client certificate passphrases, by installing a hook. However,
these routines are quite specific to how OpenSSL works, so it's
misleading and not future-proof to have these names not refer to OpenSSL.
Change all the names to add "_OpenSSL" after "Hook", and fix the docs
accordingly.

Author: Daniel Gustafsson

Discussion: https://postgr.es/m/981DE552-E399-45C2-9F60-3F0E3770CC61@yesql.se

5 years agoFix typo in glossary
Alvaro Herrera [Sat, 16 May 2020 19:10:36 +0000 (15:10 -0400)]
Fix typo in glossary

Reported privately by Justin Pryzby

5 years agoRun pgindent with new pg_bsd_indent version 2.1.1.
Tom Lane [Sat, 16 May 2020 15:54:51 +0000 (11:54 -0400)]
Run pgindent with new pg_bsd_indent version 2.1.1.

Thomas Munro fixed a longstanding annoyance in pg_bsd_indent, that
it would misformat lines containing IsA() macros on the assumption
that the IsA() call should be treated like a cast.  This improves
some other cases involving field/variable names that match typedefs,
too.  The only places that get worse are a couple of uses of the
OpenSSL macro STACK_OF(); we'll gladly take that trade-off.

Discussion: https://postgr.es/m/20200114221814.GA19630@alvherre.pgsql

5 years agoFinal pgindent run with pg_bsd_indent version 2.1.
Tom Lane [Sat, 16 May 2020 15:49:14 +0000 (11:49 -0400)]
Final pgindent run with pg_bsd_indent version 2.1.

This is just to provide a clean basis for comparison of the results
of the new version.  I did fix a typo that crept into 242dfcbaf.

Discussion: https://postgr.es/m/20200114221814.GA19630@alvherre.pgsql

5 years agoFix assertion with relation using REPLICA IDENTITY FULL in subscriber
Michael Paquier [Sat, 16 May 2020 09:15:18 +0000 (18:15 +0900)]
Fix assertion with relation using REPLICA IDENTITY FULL in subscriber

In a logical replication subscriber, a table using REPLICA IDENTITY FULL
which has a primary key would try to use the primary key's index
available to scan for a tuple, but an assertion only assumed as correct
the case of an index associated to REPLICA IDENTITY USING INDEX.  This
commit corrects the assertion so as the use of a primary key index is a
valid case.

Reported-by: Dilip Kumar
Analyzed-by: Dilip Kumar
Author: Euler Taveira
Reviewed-by: Michael Paquier, Masahiko Sawada
Discussion: https://postgr.es/m/CAFiTN-u64S5bUiPL1q5kwpHNd0hRnf1OE-bzxNiOs5zo84i51w@mail.gmail.com
Backpatch-through: 10

5 years agoChange locktype "speculative token" to "spectoken".
Tom Lane [Sat, 16 May 2020 01:47:21 +0000 (21:47 -0400)]
Change locktype "speculative token" to "spectoken".

It's just weird that this name wasn't chosen to look like an
identifier.  The suspicion that it wasn't thought about too
hard is reinforced by the fact that it wasn't documented in
the pg_locks view (until I did so, a day or two back).

Update, and add a comment reminding future adjusters of this
array to fix the docs too.

Do some desultory wordsmithing on various entries in the wait
events tables.

Discussion: https://postgr.es/m/24595.1589326879@sss.pgh.pa.us

5 years agoFix walsender error cleanup code
Alvaro Herrera [Fri, 15 May 2020 23:59:29 +0000 (19:59 -0400)]
Fix walsender error cleanup code

In commit 850196b610d2 I (Álvaro) failed to handle the case of walsender
shutting down on an error before setting up its 'xlogreader' pointer;
the error handling code dereferences the pointer, causing a crash.
Fix by testing the pointer before trying to dereference it.

Kyotaro authored the code fix; I adopted Nathan's test case to be used
by the TAP tests and added the necessary PostgresNode change.

Reported-by: Nathan Bossart <bossartn@amazon.com>
Author: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://postgr.es/m/C04FC24E-903D-4423-B312-6910E4D846E5@amazon.com

5 years agoDrop the redundant "Lock" suffix from LWLock wait event names.
Tom Lane [Fri, 15 May 2020 23:55:56 +0000 (19:55 -0400)]
Drop the redundant "Lock" suffix from LWLock wait event names.

This was mostly confusing, especially since some wait events in
this class had the suffix and some did not.

While at it, stop exposing MainLWLockNames[] as a globally visible
name; any code using that directly is almost certainly wrong, as
its name has been misleading for some time.
(GetLWLockIdentifier() is what to use instead.)

Discussion: https://postgr.es/m/28683.1589405363@sss.pgh.pa.us

5 years agoFix bogus initialization of replication origin shared memory state.
Tom Lane [Fri, 15 May 2020 23:05:39 +0000 (19:05 -0400)]
Fix bogus initialization of replication origin shared memory state.

The previous coding zeroed out offsetof(ReplicationStateCtl, states)
more bytes than it was entitled to, as a consequence of starting the
zeroing from the wrong pointer (or, if you prefer, using the wrong
calculation of how much to zero).

It's unsurprising that this has not caused any reported problems,
since it can be expected that the newly-allocated block is at the end
of what we've used in shared memory, and we always make the shmem
block substantially bigger than minimally necessary.  Nonetheless,
this is wrong and it could bite us someday; plus it's a dangerous
model for somebody to copy.

This dates back to the introduction of this code (commit 5aa235042),
so back-patch to all supported branches.

5 years agoRename assorted LWLock tranches.
Tom Lane [Fri, 15 May 2020 22:11:03 +0000 (18:11 -0400)]
Rename assorted LWLock tranches.

Choose names that fit into the conventions for wait event names
(particularly, that multi-word names are in the style MultiWordName)
and hopefully convey more information to non-hacker users than the
previous names did.

Also rename SerializablePredicateLockListLock to
SerializablePredicateListLock; the old name was long enough to cause
table formatting problems, plus the double occurrence of "Lock" seems
confusing/error-prone.

Also change a couple of particularly opaque LWLock field names.

Discussion: https://postgr.es/m/28683.1589405363@sss.pgh.pa.us

5 years agoAdd comments linking pg_strftime to timestamptz_to_str
Alvaro Herrera [Fri, 15 May 2020 22:05:34 +0000 (18:05 -0400)]
Add comments linking pg_strftime to timestamptz_to_str

5 years agoAvoid killing btree items that are already dead
Alvaro Herrera [Fri, 15 May 2020 20:50:34 +0000 (16:50 -0400)]
Avoid killing btree items that are already dead

_bt_killitems marks btree items dead when a scan leaves the page where
they live, but it does so with only share lock (to improve concurrency).
This was historicall okay, since killing a dead item has no
consequences.  However, with the advent of data checksums and
wal_log_hints, this action incurs a WAL full-page-image record of the
page.  Multiple concurrent processes would write the same page several
times, leading to WAL bloat.  The probability of this happening can be
reduced by only killing items if they're not already dead, so change the
code to do that.

The problem could eliminated completely by having _bt_killitems upgrade
to exclusive lock upon seeing a killable item, but that would reduce
concurrency so it's considered a cure worse than the disease.

Backpatch all the way back to 9.5, since wal_log_hints was introduced in
9.4.

Author: Masahiko Sawada <masahiko.sawada@2ndquadrant.com>
Discussion: https://postgr.es/m/CA+fd4k6PeRj2CkzapWNrERkja5G0-6D-YQiKfbukJV+qZGFZ_Q@mail.gmail.com

5 years agoRename SLRU structures and associated LWLocks.
Tom Lane [Fri, 15 May 2020 18:28:19 +0000 (14:28 -0400)]
Rename SLRU structures and associated LWLocks.

Originally, the names assigned to SLRUs had no purpose other than
being shmem lookup keys, so not a lot of thought went into them.
As of v13, though, we're exposing them in the pg_stat_slru view and
the pg_stat_reset_slru function, so it seems advisable to take a bit
more care.  Rename them to names based on the associated on-disk
storage directories (which fortunately we *did* think about, to some
extent; since those are also visible to DBAs, consistency seems like
a good thing).  Also rename the associated LWLocks, since those names
are likewise user-exposed now as wait event names.

For the most part I only touched symbols used in the respective modules'
SimpleLruInit() calls, not the names of other related objects.  This
renaming could have been taken further, and maybe someday we will do so.
But for now it seems undesirable to change the names of any globally
visible functions or structs, so some inconsistency is unavoidable.

(But I *did* terminate "oldserxid" with prejudice, as I found that
name both unreadable and not descriptive of the SLRU's contents.)

Table 27.12 needs re-alphabetization now, but I'll leave that till
after the other LWLock renamings I have in mind.

Discussion: https://postgr.es/m/28683.1589405363@sss.pgh.pa.us

5 years agoReview of the glossary
Alvaro Herrera [Fri, 15 May 2020 17:24:22 +0000 (13:24 -0400)]
Review of the glossary

Add some more terms, clarify some definitions, remove redundant terms,
move a couple of terms to keep alphabetical order.

Co-authored-by: Jürgen Purtz <juergen@purtz.de>
Co-authored-by: Erik Rijkers <er@xs4all.nl>
Co-authored-by: Laurenz Albe <laurenz.albe@cybertec.at>
Discussion: https://postgr.es/m/7b9b469e804777ac9df4d37716db935e@xs4all.nl

5 years agodoc: PG 13 rels: use xref labels referencing ref/*.sgml files
Bruce Momjian [Fri, 15 May 2020 16:47:07 +0000 (12:47 -0400)]
doc:  PG 13 rels:  use xref labels referencing ref/*.sgml files

This avoids using <link> and supplied text.

5 years agodocs: add xreflabel entries for autovacuum, SP-GiST, and TOAST
Bruce Momjian [Fri, 15 May 2020 16:38:40 +0000 (12:38 -0400)]
docs:  add xreflabel entries for autovacuum, SP-GiST, and TOAST

This is for use by the PG 13 release notes, but might be used for minor
release notes in the future.

Backpatch-through: 9.5

5 years agodoc: add missing xreflabels to the main docs (not refs)
Bruce Momjian [Fri, 15 May 2020 16:05:43 +0000 (12:05 -0400)]
doc:  add missing xreflabels to the main docs (not refs)

Add missing xreflabels for index types, geqo, libpq, spi, server-side
languages, ecpg, and vaacuumlo.

Backpatch-through: 9.5

5 years agodoc: PG 13 relnotes: adjust UUID item, again
Bruce Momjian [Fri, 15 May 2020 15:21:43 +0000 (11:21 -0400)]
doc: PG 13 relnotes:  adjust UUID item, again

5 years agodoc: PG 13 relnotes: fix uuid item
Bruce Momjian [Fri, 15 May 2020 14:57:14 +0000 (10:57 -0400)]
doc:  PG 13 relnotes:  fix uuid item

5 years agodoc: PG 13 relnotes: final SGML indenting adjustments
Bruce Momjian [Fri, 15 May 2020 14:40:09 +0000 (10:40 -0400)]
doc:  PG 13 relnotes:  final SGML indenting adjustments

5 years agodoc: remove extra blank line at the top of SGML files
Bruce Momjian [Fri, 15 May 2020 13:55:43 +0000 (09:55 -0400)]
doc:  remove extra blank line at the top of SGML files

Backpatch-through: 9.5

5 years agodoc: make ref/*.sgml file header comment layout consistent
Bruce Momjian [Fri, 15 May 2020 12:52:24 +0000 (08:52 -0400)]
doc:  make ref/*.sgml file header comment layout consistent

5 years agodoc: PG 13 relnotes: fix xref link and remove extra word
Bruce Momjian [Fri, 15 May 2020 12:29:57 +0000 (08:29 -0400)]
doc:  PG 13 relnotes:  fix xref link and remove extra word

5 years agoMake COPY TO keep locks until the transaction end.
Amit Kapila [Fri, 15 May 2020 02:40:00 +0000 (08:10 +0530)]
Make COPY TO keep locks until the transaction end.

COPY TO released the ACCESS SHARE lock immediately when it was done rather
than holding on to it until the end of the transaction.

This breaks the case where a REPEATABLE READ transaction could see an
empty table if it repeats a COPY statement and somebody truncated the
table in the meantime.

Before 4dded12faad the lock was also released after COPY FROM, but the
commit failed to notice the irregularity in COPY TO.

This is old behavior but doesn't seem important enough to backpatch.

Author: Laurenz Albe, based on suggestion by Robert Haas and Tom Lane
Reviewed-by: Amit Kapila
Discussion: https://postgr.es/m/7bcfc39d4176faf85ab317d0c26786953646a411.camel@cybertec.at

5 years agodocs: PG 13 relnotes: add links and SGML formatting
Bruce Momjian [Fri, 15 May 2020 02:36:21 +0000 (22:36 -0400)]
docs:  PG 13 relnotes:  add links and SGML formatting

5 years agoRemove duplicated comment block in event_trigger.c
Michael Paquier [Thu, 14 May 2020 23:19:30 +0000 (08:19 +0900)]
Remove duplicated comment block in event_trigger.c

The reasons why event triggers are disabled in standalone mode are
documented in the code path of ddl_command_start, and other places
checking if standalone mode is enabled or not mention to refer to the
comment for ddl_command_start, except for table_rewrite that duplicated
the same explanation.

Reported-by: David G. Johnston
Discussion: https://postgr.es/m/CAKFQuwYqHtXpvr2mBJRwH9f+Y5y1GXw3rhbaAu0Dk2MoNevsmA@mail.gmail.com

5 years agoDoc: hack on table 26.1 till it fits in PDF format.
Tom Lane [Thu, 14 May 2020 22:44:18 +0000 (18:44 -0400)]
Doc: hack on table 26.1 till it fits in PDF format.

I abbreviated the heck out of the column headings, and made a few
small wording changes, to get it to build warning-free.  I can't
say that the result is pretty, but it's probably better than
removing this table entirely.

As of this commit, we have zero "exceed the available area" warnings
in a US-letter PDF build, and one such warning (about an 863-millipoint
overrun) in an A4 build.  I expect to get rid of that one by renaming
wait events, so I'm not doing anything about it at the formatting
level.

Discussion: https://postgr.es/m/6916.1589146280@sss.pgh.pa.us

5 years agoDoc: tweak examples to silence line-too-long PDF build warnings.
Tom Lane [Thu, 14 May 2020 22:13:08 +0000 (18:13 -0400)]
Doc: tweak examples to silence line-too-long PDF build warnings.

In one or two places it seemed reasonable to modify the example so as
to shorten its output slightly; but for the most part I just added a
&zwsp; after 67 characters, which is the most we can fit on a line
of monospace text in A4 format.

Discussion: https://postgr.es/m/6916.1589146280@sss.pgh.pa.us

5 years agoInitial pgindent and pgperltidy run for v13.
Tom Lane [Thu, 14 May 2020 17:06:38 +0000 (13:06 -0400)]
Initial pgindent and pgperltidy run for v13.

Includes some manual cleanup of places that pgindent messed up,
most of which weren't per project style anyway.

Notably, it seems some people didn't absorb the style rules of
commit c9d297751, because there were a bunch of new occurrences
of function calls with a newline just after the left paren, all
with faulty expectations about how the rest of the call would get
indented.

5 years agodoc: PG 13 relnotes: move docbook version change to doc sect.
Bruce Momjian [Thu, 14 May 2020 15:51:09 +0000 (11:51 -0400)]
doc:  PG 13 relnotes:  move docbook version change to doc sect.

5 years agoCollect built-in LWLock tranche names statically, not dynamically.
Tom Lane [Thu, 14 May 2020 15:10:31 +0000 (11:10 -0400)]
Collect built-in LWLock tranche names statically, not dynamically.

There is little point in using the LWLockRegisterTranche mechanism for
built-in tranche names.  It wastes cycles, it creates opportunities for
bugs (since failing to register a tranche name is a very hard-to-detect
problem), and the lack of any centralized list of names encourages
sloppy nonconformity in name choices.  Moreover, since we have a
centralized list of the tranches anyway in enum BuiltinTrancheIds, we're
certainly not buying any flexibility in return for these disadvantages.

Hence, nuke all the backend-internal LWLockRegisterTranche calls,
and instead provide a const array of the builtin tranche names.

(I have in mind to change a bunch of these names shortly, but this
patch is just about getting them into one place.)

Discussion: https://postgr.es/m/9056.1589419765@sss.pgh.pa.us

5 years agoDoc: Fix some inconsistencies with markups
Michael Paquier [Thu, 14 May 2020 11:14:58 +0000 (20:14 +0900)]
Doc: Fix some inconsistencies with markups

This addresses some whitespace issues with programlisting, and corrects
the spelling of "Enter PEM pass phrase" to be consistent with the code.

Author: Daniel Gustafsson
Discussion: https://postgr.es/m/401F9024-20EA-4239-83C4-6B7AD35F94BD@yesql.se

5 years agoFix typo in comment on OpenSSL PEM password callback type name.
Heikki Linnakangas [Thu, 14 May 2020 10:53:16 +0000 (13:53 +0300)]
Fix typo in comment on OpenSSL PEM password callback type name.

The type is called "pem_password_cb", not "pem_passwd_cb".

Author: Daniel Gustafsson
Discussion: https://www.postgresql.org/message-id/22108CF6-228B-45CF-9CDA-5C5F658DCC22@yesql.se

5 years agoFix amcheck for page checks concurrent to replay of btree page deletion
Alexander Korotkov [Thu, 14 May 2020 09:44:44 +0000 (12:44 +0300)]
Fix amcheck for page checks concurrent to replay of btree page deletion

amcheck expects at least hikey to always exist on leaf page even if it is
deleted page.  But replica reinitializes page during replay of page deletion,
causing deleted page to have no items.  Thus, replay of page deletion can
cause an error in concurrent amcheck run.

This commit relaxes amcheck expectation making it tolerate deleted page with
no items.

Reported-by: Konstantin Knizhnik
Discussion: https://postgr.es/m/CAPpHfdt_OTyQpXaPJcWzV2N-LNeNJseNB-K_A66qG%3DL518VTFw%40mail.gmail.com
Author: Alexander Korotkov
Reviewed-by: Peter Geoghegan
Backpatch-through: 11

5 years agoMove check for fsync=off so that pendingOps still gets cleared.
Heikki Linnakangas [Thu, 14 May 2020 05:39:26 +0000 (08:39 +0300)]
Move check for fsync=off so that pendingOps still gets cleared.

Commit 3eb77eba5a moved the loop and refactored it, and inadvertently
changed the effect of fsync=off so that it also skipped removing entries
from the pendingOps table. That was not intentional, and leads to an
assertion failure if you turn fsync on while the server is running and
reload the config.

Backpatch-through: 12-
Reviewed-By: Thomas Munro
Discussion: https://www.postgresql.org/message-id/3cbc7f4b-a5fa-56e9-9591-c886deb07513%40iki.fi

5 years agoFix the MSVC build for versions 2015 and later.
Amit Kapila [Thu, 14 May 2020 03:53:56 +0000 (09:23 +0530)]
Fix the MSVC build for versions 2015 and later.

Visual Studio 2015 and later versions should still be able to do the same
as Visual Studio 2012, but the declaration of locale_name is missing in
_locale_t, causing the code compilation to fail, hence this falls back
instead on to enumerating all system locales by using EnumSystemLocalesEx
to find the required locale name.  If the input argument is in Unix-style
then we can get ISO Locale name directly by using GetLocaleInfoEx() with
LCType as LOCALE_SNAME.

In passing, change the documentation references of the now obsolete links.

Note that this problem occurs only with NLS enabled builds.

Author: Juan José Santamaría Flecha, Davinder Singh and Amit Kapila
Reviewed-by: Ranier Vilela and Amit Kapila
Backpatch-through: 9.5
Discussion: https://postgr.es/m/CAHzhFSFoJEWezR96um4-rg5W6m2Rj9Ud2CNZvV4NWc9tXV7aXQ@mail.gmail.com

5 years agoFix pg_recvlogical avoidance of superfluous Standby Status Update.
Noah Misch [Thu, 14 May 2020 03:42:09 +0000 (20:42 -0700)]
Fix pg_recvlogical avoidance of superfluous Standby Status Update.

The defect suppressed a Standby Status Update message when bytes flushed
to disk had changed but bytes received had not changed.  If
pg_recvlogical then exited with no intervening Standby Status Update,
the next pg_recvlogical repeated already-flushed records.  The defect
could also cause superfluous messages, which are functionally harmless.
Back-patch to 9.5 (all supported versions).

Discussion: https://postgr.es/m/20200502221647.GA3941274@rfd.leadboat.com

5 years agoIn successful pg_recvlogical, end PGRES_COPY_OUT cleanly.
Noah Misch [Thu, 14 May 2020 03:42:09 +0000 (20:42 -0700)]
In successful pg_recvlogical, end PGRES_COPY_OUT cleanly.

pg_recvlogical merely called PQfinish(), so the backend sent messages
after the disconnect.  When that caused EPIPE in internal_flush(),
before a LogicalConfirmReceivedLocation(), the next pg_recvlogical would
repeat already-acknowledged records.  Whether or not the defect causes
EPIPE, post-disconnect messages could contain an ErrorResponse that the
user should see.  One properly ends PGRES_COPY_OUT by repeating
PQgetCopyData() until it returns a negative value.  Augment one of the
tests to cover the case of WAL past --endpos.  Back-patch to v10, where
commit 7c030783a5bd07cadffc2a1018bc33119a4c7505 first appeared.  Before
that commit, pg_recvlogical never reached PGRES_COPY_OUT.

Reported by Thomas Munro.

Discussion: https://postgr.es/m/CAEepm=1MzM2Z_xNe4foGwZ1a+MO_2S9oYDq3M5D11=JDU_+0Nw@mail.gmail.com

5 years agoDoc: split up wait_event table.
Tom Lane [Thu, 14 May 2020 03:36:58 +0000 (23:36 -0400)]
Doc: split up wait_event table.

The previous design for this table didn't really work in narrow views,
such as PDF output; besides which its reliance on large morerows
values made it a pain to maintain (cf ab3e4fbd5, for example).

I experimented with a couple of ways to fix it, but the best and
simplest is to split it up into a separate table for each event
type category.

I also rearranged the event ordering to be strictly alphabetical,
as nobody would ever be able to find entries otherwise.

There is work afoot to revise the set of event names described
in this table, but this commit just changes the layout, not the
contents.

In passing, add a missing entry to pg_locks.locktype,
and cross-reference that to the related wait event list.

Discussion: https://postgr.es/m/6916.1589146280@sss.pgh.pa.us

5 years agoDoc: reformat catalog/view description tables.
Tom Lane [Thu, 14 May 2020 03:03:39 +0000 (23:03 -0400)]
Doc: reformat catalog/view description tables.

This changes our catalog and view descriptions to use a style inspired
by the new format for function/operator tables: each table entry is
formatted roughly like a <varlistentry>, with the column name and type
on the first line and then an indented description.  This provides much
more room for expansive descriptions than we had before, and thereby
eliminates a passel of PDF build warnings.

Discussion: https://postgr.es/m/12984.1588643549@sss.pgh.pa.us

5 years agoFix async.c to not register any SLRU stats counts in the postmaster.
Tom Lane [Thu, 14 May 2020 02:48:09 +0000 (22:48 -0400)]
Fix async.c to not register any SLRU stats counts in the post

Previously, AsyncShmemInit forcibly initialized the first page of the
async SLRU, to save dealing with that case in asyncQueueAddEntries.
But this is a poor tradeoff, since many installations do not ever use
NOTIFY; for them, expending those cycles in AsyncShmemInit is a
complete waste.  Besides, this only saves a couple of instructions
in asyncQueueAddEntries, which hardly seems likely to be measurable.

The real reason to change this now, though, is that now that we track
SLRU access stats, the existing code is causing the postmaster to
accumulate some access counts, which then get inherited into child
processes by fork(), messing up the statistics.  Delaying the
initialization into the first child that does a NOTIFY fixes that.

Hence, we can revert f3d23d83e, which was an incorrect attempt at
fixing that issue.  Also, add an Assert to pgstat.c that should
catch any future errors of the same sort.

Discussion: https://postgr.es/m/8367.1589391884@sss.pgh.pa.us

5 years agodoc: PG 13 relnotes: adjust wal_skip_threshold wording
Bruce Momjian [Thu, 14 May 2020 02:48:11 +0000 (22:48 -0400)]
doc:  PG 13 relnotes:  adjust wal_skip_threshold wording

5 years agoDial back -Wimplicit-fallthrough to level 3
Alvaro Herrera [Wed, 13 May 2020 19:31:14 +0000 (15:31 -0400)]
Dial back -Wimplicit-fallthrough to level 3

The additional pain from level 4 is excessive for the gain.

Also revert all the source annotation changes to their original
wordings, to avoid back-patching pain.

Discussion: https://postgr.es/m/31166.1589378554@sss.pgh.pa.us

5 years agoImprove management of SLRU statistics collection.
Tom Lane [Wed, 13 May 2020 17:08:12 +0000 (13:08 -0400)]
Improve management of SLRU statistics collection.

Instead of re-identifying which statistics bucket to use for a given
SLRU on every counter increment, do it once during shmem initialization.
This saves a fair number of cycles, and there's no real cost because
we could not have a bucket assignment that varies over time or across
backends anyway.

Also, get rid of the ill-considered decision to let pgstat.c pry
directly into SLRU's shared state; it's cleaner just to have slru.c
pass the stats bucket number.

In consequence of these changes, there's no longer any need to store
an SLRU's LWLock tranche info in shared memory, so get rid of that,
making this a net reduction in shmem consumption.  (That partly
reverts fe702a7b3.)

This is basically code review for 28cac71bd, so I also cleaned up
some comments, removed a dangling extern declaration, fixed some
things that should be static and/or const, etc.

Discussion: https://postgr.es/m/3618.1589313035@sss.pgh.pa.us

5 years agoAdjust walsender usage of xlogreader, simplify APIs
Alvaro Herrera [Wed, 13 May 2020 16:17:08 +0000 (12:17 -0400)]
Adjust walsender usage of xlogreader, simplify APIs

* Have both physical and logical walsender share a 'xlogreader' state
  struct for tracking state.  This replaces the existing globals sendSeg
  and sendCxt.

* Change WALRead not to receive XLogReaderState->seg and ->segcxt as
  separate arguments anymore; just use the ones from 'state'.  This is
  made possible by the above change.

* have the XLogReader segment_open contract require the callbacks to
  install the file descriptor in the state struct themselves instead of
  returning it.  xlogreader was already ignoring any possible failed
  return from the callbacks, relying solely on them never returning.

  (This point is not altogether excellent, as it means the callbacks
  have to know more of XLogReaderState; but to really improve on that
  we would have to pass back error info from the callbacks to
  xlogreader.  And the complexity would not be saved but instead just
  transferred to the callers of WALRead, which would have to learn how
  to throw errors from the open_segment callback in addition of, as
  currently, from pg_pread.)

* segment_open no longer receives the 'segcxt' as a separate argument,
  since it's part of the XLogReaderState argument.

Per comments from Kyotaro Horiguchi.

Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://postgr.es/m/20200511203336.GA9913@alvherre.pgsql

5 years agoUse proper GetDatum function in pg_stat_get_slru().
Fujii Masao [Wed, 13 May 2020 13:20:37 +0000 (22:20 +0900)]
Use proper GetDatum function in pg_stat_get_slru().

This commit changes pg_stat_get_slru() so that it uses
TimestampTzGetDatum() for stats_reset field because that field
stores the timestamp with time zone value. Previously
Int64GetDatum() was used.

Author: Fujii Masao
Reviewed-by: Tomas Vondra
Discussion: https://postgr.es/m/b8784fe6-1401-ab35-aa14-d57b5bb8e312@oss.nttdata.com

5 years agoInitialize SLRU stats entries to zero.
Fujii Masao [Wed, 13 May 2020 13:19:25 +0000 (22:19 +0900)]
Initialize SLRU stats entries to zero.

Previously since SLRUStats was not initialized, SLRU stats counters
could begin with non-zero value. Which could lead to incorrect results
in pg_stat_slru view.

Author: Fujii Masao
Reviewed-by: Tomas Vondra
Discussion: https://postgr.es/m/976bbb73-a112-de3c-c488-b34b64609793@oss.nttdata.com

5 years agodocs: PG 13 relnotes: adjust wal_skip_threshold and UTF8 items
Bruce Momjian [Tue, 12 May 2020 21:17:12 +0000 (17:17 -0400)]
docs:  PG 13 relnotes:  adjust wal_skip_threshold and UTF8 items

5 years agoFix straggler
Alvaro Herrera [Tue, 12 May 2020 20:15:55 +0000 (16:15 -0400)]
Fix straggler

contrib/pgcrypto did contain an unedited fall-through marker after all.

5 years agoAdd -Wimplicit-fallthrough to CFLAGS and CXXFLAGS
Alvaro Herrera [Tue, 12 May 2020 20:01:52 +0000 (16:01 -0400)]
Add -Wimplicit-fallthrough to CFLAGS and CXXFLAGS

Use it at level 4, a bit more restrictive than the default level, and
tweak our commanding comments to FALLTHROUGH.

(However, leave zic.c alone, since it's external code; to avoid the
warnings that would appear there, change CFLAGS for that file in the
Makefile.)

Author: Julien Rouhaud <rjuju123@gmail.com>
Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/20200412081825.qyo5vwwco3fv4gdo@nol
Discussion: https://postgr.es/m/flat/E1fDenm-0000C8-IJ@gemulon.postgresql.org

5 years agoRework EXPLAIN format for incremental sort
Tomas Vondra [Tue, 12 May 2020 18:04:39 +0000 (20:04 +0200)]
Rework EXPLAIN format for incremental sort

The explain format used by incremental sort was somewhat inconsistent
with other nodes, making it harder to parse and understand. This commit
addresses that by

 - adding an extra space to better separate groups of values

 - using colons instead of equal signs to separate key/value

 - properly capitalizing first letter of a key

 - using separate lines for full and pre-sorted groups

These changes were proposed by Justin Pryzby and mostly copy the final
explain format used to report WAL usage.

Author: Justin Pryzby
Reviewed-by: James Coleman
Discussion: https://postgr.es/m/20200419023625.GP26953@telsasoft.com

5 years agoFix typos and improve incremental sort comments
Tomas Vondra [Tue, 12 May 2020 17:37:13 +0000 (19:37 +0200)]
Fix typos and improve incremental sort comments

Author: Justin Pryzby, James Coleman
Discussion: https://postgr.es/m/20200419023625.GP26953@telsasoft.com

5 years agoDo pre-release housekeeping on catalog data.
Tom Lane [Tue, 12 May 2020 17:03:43 +0000 (13:03 -0400)]
Do pre-release housekeeping on catalog data.

Run renumber_oids.pl to move high-numbered OIDs down, as per pre-beta
tasks specified by RELEASE_CHANGES.  For reference, the command was
./renumber_oids.pl --first-mapped-oid=8000 --target-oid=5032

Also run reformat_dat_file.pl while I'm here.

Renumbering recently-added types changed some results in the opr_sanity
test.  To make those a bit easier to eyeball-verify, change the queries
to show regtype not just bare type OIDs.  (I think we didn't have
regtype when these queries were written.)

5 years agoRemove unnecessary #include.
Etsuro Fujita [Tue, 12 May 2020 10:55:55 +0000 (19:55 +0900)]
Remove unnecessary #include.

My oversight in commit c8434d64c.

5 years agoFix comment in xlogutils.c
Michael Paquier [Tue, 12 May 2020 05:43:57 +0000 (14:43 +0900)]
Fix comment in xlogutils.c

The existing callers of XLogReadDetermineTimeline() performing recovery
need to check a replay LSN position when determining on which timeline
to read a WAL page.  A portion of the comment describing this function
said exactly that, while referring to a routine for fetching a write
LSN, something not available in recovery.

Author: Kyotaro Horiguchi
Discussion: https://postgr.es/m/20200511.101619.2043820539323292957.horikyota.ntt@gmail.com

5 years agoCorrect standbycheck regression test output.
Fujii Masao [Tue, 12 May 2020 04:56:19 +0000 (13:56 +0900)]
Correct standbycheck regression test output.

Commit 2eb34ac369 changed error messages emit when commands are
rejected during recovery. But it forgot to update the standbycheck
regression test output with those error message changes.

Reported-by: Michail Nikolaev
Author: Michail Nikolaev
Reviewed-by: Fujii Masao
Discussion: https://postgr.es/m/CANtu0ojFPgcspH=0nNZ+qmu0XD69sXKtVttuSoYKHawRADSQGg@mail.gmail.com

5 years agodoc: PG 13 relnotes: add documentation section and reformat
Bruce Momjian [Tue, 12 May 2020 02:58:47 +0000 (22:58 -0400)]
doc:  PG 13 relnotes:  add documentation section and reformat

Add section about function table reformatting.

5 years agoDoc: hack table 13.2 "Conflicting Lock Modes" till it fits in PDF.
Tom Lane [Tue, 12 May 2020 00:41:06 +0000 (20:41 -0400)]
Doc: hack table 13.2 "Conflicting Lock Modes" till it fits in PDF.

I can't see any way to make this table fit in PDF column width
without either a fundamental redesign or abbreviating EXCLUSIVE.
So I did the latter.

It'd be nicer if the abbreviating didn't leak into the HTML output
as well; but the hackery required to make the output different
seems like more trouble than it's really worth.

Discussion: https://postgr.es/m/6916.1589146280@sss.pgh.pa.us

5 years agodoc: PG 13 relnotes: add duplicate btree optimization details
Bruce Momjian [Tue, 12 May 2020 01:24:08 +0000 (21:24 -0400)]
doc:  PG 13 relnotes:  add duplicate btree optimization details

5 years agodoc: PG 13 relnotes: cumulative fixes from email feedback
Bruce Momjian [Tue, 12 May 2020 01:19:57 +0000 (21:19 -0400)]
doc:  PG 13 relnotes:  cumulative fixes from email feedback

5 years agoDoc: fix remaining over-length entries in SQL keywords table.
Tom Lane [Tue, 12 May 2020 00:03:55 +0000 (20:03 -0400)]
Doc: fix remaining over-length entries in SQL keywords table.

Even after the tweaking I did in commit 5545b69ae, some of the
longer keywords mentioned in the SQL standard don't fit the
available space in PDF output.

I experimented with various solutions like putting such keywords
on their own table lines, but everything looked ugly or confusing
or both; worse, the weirdness also appeared in the HTML version,
which (normally) doesn't need it.

The best answer seems to be to insert &zwsp; into long keywords
so that they can be broken into two lines when, and only when,
needed.  It doesn't look too awful if the break happens after
an underscore --- and fortunately, all the problematic keywords
have underscores.

Discussion: https://postgr.es/m/6916.1589146280@sss.pgh.pa.us

5 years agoDoc: fix "Unresolved ID reference" warnings, clean up man page cross-refs.
Tom Lane [Mon, 11 May 2020 18:15:49 +0000 (14:15 -0400)]
Doc: fix "Unresolved ID reference" warnings, clean up man page cross-refs.

Use xreflabel attributes instead of endterm attributes to control the
appearance of links to subsections of SQL command reference pages.
This is simpler, it matches what we do elsewhere (e.g. for GUC variables),
and it doesn't draw "Unresolved ID reference" warnings from the PDF
toolchain.

Fix some places where the text was absolutely dependent on an <xref>
rendering exactly so, by using a <link> around the required text
instead.  At least one of those spots had already been turned into
bad grammar by subsequent changes, and the whole idea is just too
fragile for my taste.  <xref> does NOT have fixed output, don't write
as if it does.

Consistently include a page-level link in cross-man-page references,
because otherwise they are useless/nonsensical in man-page output.
Likewise, be consistent about mentioning "below" or "above" in same-page
references; we were doing that in about 90% of the cases, but now it's
100%.

Also get rid of another nonfunctional-in-PDF idea, of making
cross-references to functions by sticking ID tags on <row> constructs.
We can put the IDs on <indexterm>s instead --- which is probably not any
more sensible in abstract terms, but it works where the other doesn't.
(There is talk of attaching cross-reference IDs to most or all of
the docs' function descriptions, but for now I just fixed the two
that exist.)

Discussion: https://postgr.es/m/14480.1589154358@sss.pgh.pa.us

5 years agoAdjust "root of to-be-deleted subtree" function.
Peter Geoghegan [Mon, 11 May 2020 18:01:07 +0000 (11:01 -0700)]
Adjust "root of to-be-deleted subtree" function.

Restructure the function that locates the root of the to-be-deleted
subtree during nbtree page deletion.  Handle the conditions that make
page deletion unsafe in a slightly more uniform way, and acknowledge the
fact that the behavior with incomplete splits on internal pages is
different (as pointed out in the nbtree README as of commit 35bc0ec7).
Also invent new terminology that avoids ambiguity around which pages are
about to be deleted.  Consistently use the term "to-be-deleted subtree",
not the ambiguous term "branch".

We were calling the subtree parent page the "top parent page", but that
was quite misleading.  The top parent page usually refers to a page
unlinked from its siblings and marked deleted (during the second stage
of page deletion).  There was one kind of top parent page that we merely
removed a downlink from, and another kind of top parent page that we
actually marked deleted.  Eliminate the ambiguity by inventing a new
term ("subtree parent page") that refers to the former kind of page
only.

5 years agoFix obsolete references to "XLogRead"
Alvaro Herrera [Mon, 11 May 2020 16:46:41 +0000 (12:46 -0400)]
Fix obsolete references to "XLogRead"

The one in xlogreader.h was pointed out by Antonin Houska; I (Álvaro) noticed the
others by grepping.

Author: Antonin Houska <ah@cybertec.at>
Discussion: https://postgr.es/m/28250.1589186654@antos

5 years agoTranslation updates
Peter Eisentraut [Mon, 11 May 2020 11:14:32 +0000 (13:14 +0200)]
Translation updates

Source-Git-URL: https://git.postgresql.org/git/pgtranslation/messages.git
Source-Git-Hash: 80d8f54b3c5533ec036404bd3c3b24ff4825d037

5 years agoDoc: marginal hacking to remove some PDF build warnings.
Tom Lane [Sun, 10 May 2020 20:20:28 +0000 (16:20 -0400)]
Doc: marginal hacking to remove some PDF build warnings.

This patch eliminates a few more "exceed the available area" warnings
whose causes aren't particularly connected to anything else.

The only one really worthy of comment is that I increased the space
allowed for an <orderedlist>'s numbers, because the default of 1em
doesn't quite work for more than one digit.  The rest are one-off
insertions of &zwsp; and suchlike tweaks, in places where they
shouldn't do any damage to the material.  (In particular, although
I split some long identifiers with zwsp's, there are other nearby
occurrences of each one; so those changes shouldn't hurt greppability
of the document sources.)

5 years agoRemove smgrdounlink() in smgr.c from the code tree
Michael Paquier [Sun, 10 May 2020 01:58:54 +0000 (10:58 +0900)]
Remove smgrdounlink() in smgr.c from the code tree

The last caller of this routine was removed in b416691, and as a wise
man said one day, dead code tends to silently break.

Per discussion between Fujii Masao, Peter Geoghegan, Vignesh C and me.

Reported-by: Peter Geoghegan
Discussion: https://postgr.es/m/CAH2-Wz=sg5H8-vG4d5UmAofdcRMpeTDt2K-NUWp4GSfhenRGAQ@mail.gmail.com

5 years agoDoc: fix assorted misstatements of fact in catalog & system view docs.
Tom Lane [Sat, 9 May 2020 23:09:44 +0000 (19:09 -0400)]
Doc: fix assorted misstatements of fact in catalog & system view docs.

I made up a very crude hack to compare the docs with reality (as
embodied in the system catalogs) ... and indeed they don't match
everywhere.  Missing oid columns, wrong data types, wrong "references"
links, columns listed in the wrong order.  None of this seems quite
important enough to back-patch.

5 years agoFix findoidjoins to recognize oidvector columns.
Tom Lane [Sat, 9 May 2020 20:28:09 +0000 (16:28 -0400)]
Fix findoidjoins to recognize oidvector columns.

Somehow we'd never noticed this oversight, even though it means
that such basic columns as pg_proc.proargtypes were not being
validated by the oidjoins test.  Correct the query and update
the test script with the newly-found dependencies.