]> granicus.if.org Git - postgresql/commit
Fix tablespace handling for partitioned tables
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 17 Dec 2018 18:37:40 +0000 (15:37 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 17 Dec 2018 18:37:40 +0000 (15:37 -0300)
commitca4103025dfe26eaaf6a500dec9170fbb176eebc
tree8ef17f3b2b9ed1c3f5fbcf8215a302b01156c42d
parent1e6240a3fe919e19676875927681a861e13f93c2
Fix tablespace handling for partitioned tables

When partitioned tables were introduced, we failed to realize that by
copying the tablespace handling for other relation kinds with no
physical storage we were causing the secondary effect that their
partitions would not automatically inherit the tablespace setting.  This
is surprising and unhelpful, so change it to adopt the behavior
introduced in pg11 (commit 33e6c34c3267) for partitioned indexes: the
parent relation remembers the tablespace specification, which is then
used for any new partitions that don't declare one.

Because this commit changes behavior of the TABLESPACE clause for
partitioned tables (it's no longer a no-op), it is not backpatched.

Author: David Rowley, Álvaro Herrera
Reviewed-by: Michael Paquier
Discussion: https://postgr.es/m/CAKJS1f9SxVzqDrGD1teosFd6jBMM0UEaa14_8mRvcWE19Tu0hA@mail.gmail.com
doc/src/sgml/ref/create_table.sgml
src/backend/catalog/heap.c
src/backend/commands/tablecmds.c
src/include/catalog/pg_class.h
src/test/regress/input/tablespace.source
src/test/regress/output/tablespace.source