Thanks for copying me.
I didn't look closely yet, but this comment is wrong:
+ * Since these have no storage the tablespace can be updated with a simple
+ * metadata only operation to update the tablespace.
As I see it, AMs are a strong parallel to tablespaces. The default tablespace
is convenient: 1) explicitly specified tablespace; 2) tablespace of parent,
partitioned table; 3) DB tablespace; 4) default_tablespace:
https://www.postgresql.org/message-id/20190423222633.GA8364%40alvherre.pgsql
It'd be convenient if AMs worked the same way (and a bit odd that they don't).
Note that in v15, pg_dump/restore now allow --no-table-am, an exact parallel to
--no-tablespace.
--
Justin