Re: Hybrid Hash/Nested Loop joins and caching results from subplans
David Rowley <dgrowleyml@gmail.com>
From: David Rowley <dgrowleyml@gmail.com>
To: "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
Cc: PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>,
Andres Freund <andres@anarazel.de>, Andy Fan <zhihui.fan1213@gmail.com>,
Alvaro Herrera <alvherre@alvh.no-ip.org>, Tom Lane <tgl@sss.pgh.pa.us>, Zhihong Yu <zyu@yugabyte.com>
Date: 2021-04-02T01:15:40Z
Lists: pgsql-hackers
On Thu, 1 Apr 2021 at 23:41, houzj.fnst@fujitsu.com <houzj.fnst@fujitsu.com> wrote: > > > I've attached the updated patch. I'll let the CFbot grab this to ensure it's > > happy with it before I go looking to push it again. > > Hi, > > I took a look into the patch and noticed some minor things. > > 1. > + case T_ResultCache: > + ptype = "ResultCache"; > + subpath = ((ResultCachePath *) path)->subpath; > + break; > case T_UniquePath: > ptype = "Unique"; > subpath = ((UniquePath *) path)->subpath; > should we use "case T_ResultCachePath" here? > > 2. > Is it better to add ResultCache's info to " src/backend/optimizer/README " ? > Something like: > NestPath - nested-loop joins > MergePath - merge joins > HashPath - hash joins > + ResultCachePath - Result cache Thanks for pointing those two things out. I've pushed the patch again with some updates to EXPLAIN to fix the issue from yesterday. I also disabled result cache in the partition_prune tests as I suspect that the parallel tests there might just be a bit too unstable in the buildfarm. The cache hit/miss/eviction line might disappear if the main process does not get a chance to do any work. Well, it's now time to watch the buildfarm again... David
Commits
-
Add Result Cache executor node (take 2)
- 9eacee2e62d8 14.0 landed
-
Add Result Cache executor node
- b6002a796dc0 14.0 landed
-
Allow estimate_num_groups() to pass back further details about the estimation
- ed934d4fa30f 14.0 landed
-
Allow users of simplehash.h to perform direct deletions
- ff53d7b159b9 14.0 landed
-
Cache if PathTarget and RestrictInfos contain volatile functions
- f58b230ed0db 14.0 landed
-
Fix pull_varnos' miscomputation of relids set for a PlaceHolderVar.
- 55dc86eca70b 14.0 cited