RE: Skip partition tuple routing with constant partition key

Zhijie Hou (Fujitsu) <houzj.fnst@fujitsu.com>

From: "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
To: "tsunakawa.takay@fujitsu.com" <tsunakawa.takay@fujitsu.com>
Cc: Amit Langote <amitlangote09@gmail.com>, David Rowley <dgrowleyml@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-05-24T07:58:03Z
Lists: pgsql-hackers
From: Tsunakawa, Takayuki <tsunakawa.takay@fujitsu.com>
Sent: Monday, May 24, 2021 3:34 PM
> 
> From: houzj.fnst@fujitsu.com <houzj.fnst@fujitsu.com>
> > I think this patch can solve the performance degradation of key
> > expression after applying the [Save the last partition] patch.
> > Besides, this could be a separate patch which can improve some more cases.
> > Thoughts ?
> 
> Thank you for proposing an impressive improvement so quickly!  Yes, I'm in
> the mood for adopting Amit-san's patch as a base because it's compact and
> readable, and plus add this patch of yours to complement the partition key
> function case.

Thanks for looking into this.

> But ...
> 
> * Applying your patch alone produced a compilation error.  I'm sorry I
> mistakenly deleted the compile log, but it said something like "There's a
> redeclaration of PartKeyContext in partcache.h; the original definition is in
> partdef.h"

It seems a little strange, I have compiled it alone in two different linux machine and did
not find such an error. Did you compile it on a windows machine ?

> * Hmm, this may be too much to expect, but I wonder if we can make the patch
> more compact...

Of course, I will try to simplify the patch.

Best regards,
houzj

Commits

  1. Have ExecFindPartition cache the last found partition

  2. Fix publish_as_relid with multiple publications