Re: Typo in 15.3.4

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: grantgryczan(at)gmail(dot)com, pgsql-docs(at)lists(dot)postgresql(dot)org
Subject: Re: Typo in 15.3.4
Date: 2024-07-25 17:07:22
Message-ID: CAKFQuwbEHTKwAcJ=Xq4VGYQ-Ump4hwnNOcgQ9GHFszbwy_d_FQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

On Thu, Jul 25, 2024 at 9:50 AM PG Doc comments form <noreply(at)postgresql(dot)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.

In response to

Browse pgsql-docs by date

  From Date Subject
Next Message Tom Lane 2024-07-25 20:00:17 Re: Add minimal C example and SQL registration example for custom table access methods.
Previous Message PG Doc comments form 2024-07-25 03:47:28 Typo in 15.3.4