Re: Plan weirdness. A sort produces more rows than the node beneath it

Dane Foster <studdugie@gmail.com>

From: Dane Foster <studdugie@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: psql-performance <pgsql-performance@postgresql.org>
Date: 2023-08-04T15:15:40Z
Lists: pgsql-performance
> If the sort is the inner input to a merge join, this could reflect
> mark-and-restore rescanning of the sort's output.  Are there a
> whole lot of duplicate keys on the merge's other side?

Yes. The course_id column's values repeat a LOT on the merge side.

Dane


On Fri, Aug 4, 2023 at 11:10 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:

> Dane Foster <studdugie@gmail.com> writes:
> > I'm trying to understand a bit of weirdness in a plan output. There is a
> > sort node above a sequential scan node where the scan node produces
> 26,026
> > rows yet the sort node above it produces 42,995,408. How is it possible
> to
> > sort more data than you received?
>
> If the sort is the inner input to a merge join, this could reflect
> mark-and-restore rescanning of the sort's output.  Are there a
> whole lot of duplicate keys on the merge's other side?
>
>                         regards, tom lane
>