Have CLUSTER ignore partitions not owned by caller
authorAlvaro Herrera
Thu, 14 Apr 2022 20:11:06 +0000 (22:11 +0200)
committerAlvaro Herrera
Thu, 14 Apr 2022 20:11:06 +0000 (22:11 +0200)
commit3f19e176ae0f55a653d62e1504dbe5ad8c1006a0
tree2d8cd38e77dc359d0ce5d6df25afeb85c141c94f
parent275e719d910459db747346a51d56185e2440763b
Have CLUSTER ignore partitions not owned by caller

If a partitioned table has partitions owned by roles other than the
owner of the partitioned table, don't include them in the to-be-
clustered list.  This is similar to what VACUUM FULL does (except we do
it sooner, because there is no reason to postpone it).  Add a simple
test to verify that only owned partitions are clustered.

While at it, change memory context switch-and-back to occur once per
partition instead of outside of the loop.

Author: Justin Pryzby 
Reviewed-by: Zhihong Yu
Reviewed-by: Michael Paquier
Discussion: https://postgr.es/m/20220411140609[email protected]
src/backend/commands/cluster.c
src/test/regress/expected/cluster.out
src/test/regress/sql/cluster.sql