Commit ad9f08f7 authored by Tom Lane's avatar Tom Lane

Fix ATSimpleRecursion() to allow recursion from a foreign table.

This is necessary in view of the changes to allow foreign tables to be
full members of inheritance hierarchies, but I (tgl) unaccountably missed
it in commit cb1ca4d8.

Noted by Amit Langote, patch by Etsuro Fujita
parent d3821e70
......@@ -4367,10 +4367,12 @@ ATSimpleRecursion(List **wqueue, Relation rel,
AlterTableCmd *cmd, bool recurse, LOCKMODE lockmode)
{
/*
* Propagate to children if desired. Non-table relations never have
* children, so no need to search in that case.
* Propagate to children if desired. Only plain tables and foreign tables
* have children, so no need to search for other relkinds.
*/
if (recurse && rel->rd_rel->relkind == RELKIND_RELATION)
if (recurse &&
(rel->rd_rel->relkind == RELKIND_RELATION ||
rel->rd_rel->relkind == RELKIND_FOREIGN_TABLE))
{
Oid relid = RelationGetRelid(rel);
ListCell *child;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment