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-24T08:17:34Z
Lists: pgsql-hackers

Attachments

From: houzj.fnst@fujitsu.com <houzj.fnst@fujitsu.com>
Sent: Monday, May 24, 2021 3:58 PM
> 
> From: Tsunakawa, Takayuki <mailto:tsunakawa.takay@fujitsu.com>
> Sent: Monday, May 24, 2021 3:34 PM
> >
> > From: mailto:houzj.fnst@fujitsu.com <mailto: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 ?

Ah, Maybe I found the issue.
Attaching a new patch, please have a try on this patch.

Best regards,
houzj

Commits

  1. Have ExecFindPartition cache the last found partition

  2. Fix publish_as_relid with multiple publications