Re: Typo in 15.3.4 - Mailing list pgsql-docs

From David G. Johnston
Subject Re: Typo in 15.3.4
Date
Msg-id CAKFQuwbEHTKwAcJ=Xq4VGYQ-Ump4hwnNOcgQ9GHFszbwy_d_FQ@mail.gmail.com
Whole thread Raw
In response to Typo in 15.3.4  (PG Doc comments form <noreply@postgresql.org>)
Responses Re: Typo in 15.3.4
List pgsql-docs
On Thu, Jul 25, 2024 at 9:50 AM PG Doc comments form <noreply@postgresql.org> wrote:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/16/parallel-plans.html
Description:

In section 15.3.4, I believe "multiple results sets" is a typo for "multiple
result sets". It says:

> Plans that involve appending multiple results sets can therefore achieve
coarse-grained parallelism even when efficient partial plans are not
available.

It's also possible this should say "multiple results" rather than "multiple
result sets".

Good catch, and an acceptable solution.

However, I'm inclined to write: "multiple inputs" at that spot:

Plans that involve appending multiple inputs can therefore achieve...

Using the term "result set" here just feels off, though that is a mostly uninformed (as to precedent) opinion.

 
I'm unsure what exactly this sentence is trying to
communicate, possibly because I'm only learning Postgres (by reading the
docs), and I don't understand what partial and non-partial children mean
from the previous sentences in the context of this section. (Perhaps that
should also be improved on? Unless it was already explained previously and
I've merely forgotten, but I couldn't find that phrasing elsewhere in the
documentation.)

Earlier on that page:

"Instead, the parallel portion of the plan must be what is known internally to the query optimizer as a partial plan; that is, it must be constructed so that each process that executes the plan will generate only a subset of the output rows..."

The plan structure is previously defined to be a tree - parent/child.  A partial child is one that is actively executing a partial component of the overall plan.

The main point being communicated here is that some nodes have multiple children whose structurally identical result sets (i.e., same columns) are combined.  Those children need not be partial children in order for the parent node to implement parallelism - rather, two or more of the non-partial children can operate in parallel with each other, operating on different parts of the database (in this case separate partitions of a partitioned table).

It is only when two children need to work on the same area/object that they need to be partial children that know how share.

David J.

pgsql-docs by date:

Previous
From: PG Doc comments form
Date:
Subject: Typo in 15.3.4
Next
From: PG Doc comments form
Date:
Subject: INSERT ... RETURNING documentation