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:49:44Z
Lists: pgsql-hackers
Just realized something...

On 2018/07/03 15:29, Amit Langote wrote:
> 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()?

This one still stands I think.

> Also, ISTM, this code would be unreachable because
> expand_inherited_rtentry would not call here if the above if statement is
> true, no?

I forgot that expand_partitioned_rtentry() will recursively call itself if
a partition is itself a partitioned table, in which case the above code helps.

Thanks,
Amit



Commits

  1. Remove dead code for temporary relations in partition planning

  2. Clarify use of temporary tables within partition trees

  3. Expand partitioned table RTEs level by level, without flattening.