From: | David Rowley <dgrowleyml(at)gmail(dot)com> |
---|---|
To: | Amit Langote <amitlangote09(at)gmail(dot)com> |
Cc: | "houzj(dot)fnst(at)fujitsu(dot)com" <houzj(dot)fnst(at)fujitsu(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Skip partition tuple routing with constant partition key |
Date: | 2021-05-20 00:31:13 |
Message-ID: | CAApHDvq7MBMLDjhn4C+UtNZNyZfEqZ1aFzpg+hMXZTh9WtZ3pw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, 20 May 2021 at 01:17, Amit Langote <amitlangote09(at)gmail(dot)com> wrote:
> I gave a shot to implementing your idea and ended up with the attached
> PoC patch, which does pass make check-world.
I only had a quick look at this.
+ if ((dispatch->key->strategy == PARTITION_STRATEGY_RANGE ||
+ dispatch->key->strategy == PARTITION_STRATEGY_RANGE))
+ dispatch->lastPartInfo = rri;
I think you must have meant to have one of these as PARTITION_STRATEGY_LIST?
Wondering what your thoughts are on, instead of caching the last used
ResultRelInfo from the last call to ExecFindPartition(), to instead
cached the last looked up partition index in PartitionDescData? That
way we could cache lookups between statements. Right now your caching
is not going to help for single-row INSERTs, for example.
For multi-level partition hierarchies that would still require looping
and checking the cached value at each level.
I've not studied the code that builds and rebuilds PartitionDescData,
so there may be some reason that we shouldn't do that. I know that's
changed a bit recently with DETACH CONCURRENTLY. However, providing
the cached index is not outside the bounds of the oids array, it
shouldn't really matter if the cached value happens to end up pointing
to some other partition. If that happens, we'll just fail the
ExecPartitionCheck() and have to look for the correct partition.
David
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Langote | 2021-05-20 00:32:25 | Re: Subscription tests fail under CLOBBER_CACHE_ALWAYS |
Previous Message | tsunakawa.takay@fujitsu.com | 2021-05-20 00:20:16 | RE: Skip partition tuple routing with constant partition key |