Re: Should consider materializing the cheapest inner path in consider_parallel_nestloop()

Fujii.Yuki@df.MitsubishiElectric.co.jp <fujii.yuki@df.mitsubishielectric.co.jp>

From: "Fujii.Yuki@df.MitsubishiElectric.co.jp" <Fujii.Yuki@df.MitsubishiElectric.co.jp>
To: Tender Wang <tndrwang@gmail.com>
Cc: Tomasz Rybak <tomasz.rybak@post.pl>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>, "robertmhaas@gmail.com" <robertmhaas@gmail.com>, Richard Guo <guofenglinux@gmail.com>, David Rowley <dgrowleyml@gmail.com>, "Fujii.Yuki@df.MitsubishiElectric.co.jp" <Fujii.Yuki@df.MitsubishiElectric.co.jp>
Date: 2024-06-11T10:40:14Z
Lists: pgsql-hackers
Hi. Tender.

> From: Tender Wang <tndrwang@gmail.com>
> Sent: Tuesday, June 11, 2024 5:11 PM
> 
> 	> From: Tender Wang <tndrwang@gmail.com <mailto:tndrwang@gmail.com> >
> 	> Sent: Tuesday, June 4, 2024 7:51 PM
> 	>       Please add more tests.  Especially please add some negative tests;
> 	>       current patch checks that it is safe to apply materialization. It would
> 	>       be helpful to add tests checking that materialization is not applied
> 	>       in both checked cases:
> 	>       1. when inner join path is not parallel safe
> 	>       2. when matpath is not parallel safe
> 	>
> 	>
> 	>
> 	> I added a test case that inner rel is not parallel safe. Actually,
> 	> matpath will not create if inner rel is not parallel safe. So I didn't add test case for the second  scenario.
> 	Is there case in which matpath is not parallel safe and inner rel is parallel safe?
> 	If right, I think that it would be suitable to add a negative test in a such case.
> 
> 
> 
> I looked through create_xxx_path(), and I found that almost path.parallel_safe is assigned from
> RelOptiInfo.consider_parallel.
> Some pathes take subpath->parallel_safe into account(e.g. Material path). In most cases, Material is parallel_safe if rel is
> parallel safe. Now I haven't come up a query plan that material is un parallel-safe but rel is parallel-safe.
Thank you for looking into the source code. I understand the situation now.

Sincerely yours,
Yuki Fujii

--
Yuki Fujii
Information Technology R&D Center Mitsubishi Electric Corporation

Commits

  1. Fix unstable test in select_parallel.sql

  2. Consider materializing the cheapest inner path in parallel nestloop

  3. doc PG 17 relnotes: adjust IN wording

  4. Support parallel joins, and make related improvements.