Re: pgsql: Clarify use of temporary tables within partition trees
Amit Langote <langote_amit_f8@lab.ntt.co.jp>
From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: David Rowley <david.rowley@2ndquadrant.com>,
Michael Paquier <michael@paquier.xyz>
Cc: Robert Haas <robertmhaas@gmail.com>,
Postgres hackers <pgsql-hackers@postgresql.org>
Date: 2018-07-03T06:29:36Z
Lists: pgsql-hackers
On 2018/07/03 15:16, David Rowley wrote:
> On 3 July 2018 at 18:11, Michael Paquier <michael@paquier.xyz> wrote:
>> On Tue, Jul 03, 2018 at 06:00:46PM +1200, David Rowley wrote:
>>> I think it should be backpatched to v11 and v10. Your original commit
>>> went there too. I don't see any reason to do any different here than
>>> what you did with the original commit.
>>
>> expand_partitioned_rtentry is new as of v11. Or you mean to tweak
>> expand_inherited_rtentry() perhaps? I am not sure that it is worth it
>> as the code has already diverged between 10 and 11.
>
> Oh right. I'd forgotten that changed in v11. I think the v10 code is
> fine as is then.
Sorry for jumping in late here. I have a comment on the patch.
+ /* if there are no partitions then treat this as non-inheritance case. */
+ if (partdesc->nparts == 0)
+ {
+ parentrte->inh = false;
+ return;
+ }
+
Why is this not near the beginning of expand_partitioned_rtentry()?
Also, ISTM, this code would be unreachable because
expand_inherited_rtentry would not call here if the above if statement is
true, no?
I see the following two blocks in expand_inherited_rtentry before one gets
to the call to expand_partitioned_rtentry:
if (!has_subclass(parentOID))
{
/* Clear flag before returning */
rte->inh = false;
return;
}
and
if (list_length(inhOIDs) < 2)
{
/* Clear flag before returning */
rte->inh = false;
return;
}
Thanks,
Amit
Commits
-
Remove dead code for temporary relations in partition planning
- 5fca035903a2 11.0 landed
- fc057b2b8fc3 12.0 landed
-
Clarify use of temporary tables within partition trees
- 5862174ec78a 10.5 cited
-
Expand partitioned table RTEs level by level, without flattening.
- 0a480502b092 11.0 cited