Re: pgsql: Clarify use of temporary tables within partition trees

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: David Rowley <david.rowley@2ndquadrant.com>
Cc: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>, Robert Haas <robertmhaas@gmail.com>, Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>, pgsql-committers <pgsql-committers@postgresql.org>
Date: 2018-07-03T11:31:27Z
Lists: pgsql-hackers
On Tue, Jul 03, 2018 at 11:16:55PM +1200, David Rowley wrote:
> Oh okay. Yeah, you can hit that with a partitionless sub-partitioned
> table.

Thanks for the patch and fixing the typo ;)

+create table list_parted_tbl (a int,b int) partition by list (a);
+create table list_parted_tbl1 partition of list_parted_tbl for values
in(1) partition by list(b);
+select * from list_parted_tbl;
+explain (costs off) select * from list_parted_tbl;

I am not sure if it is much interesting to keep around this table set
for pg_upgrade, so I would drop it.  Except for that, the result looks
fine.  I'll double-check and wrap it tomorrow on HEAD and REL_11_STABLE.
The optimizations mentioned sound interesting, though I would recommend
to not risk the stability of v11 at this point, so let's keep them for
v12~.
--
Michael

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.