diff options
Diffstat (limited to 'src/backend/commands/subscriptioncmds.c')
-rw-r--r-- | src/backend/commands/subscriptioncmds.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c index b80af275da5..265f2efd622 100644 --- a/src/backend/commands/subscriptioncmds.c +++ b/src/backend/commands/subscriptioncmds.c @@ -33,6 +33,8 @@ #include "commands/event_trigger.h" #include "commands/subscriptioncmds.h" +#include "executor/executor.h" + #include "nodes/makefuncs.h" #include "replication/logicallauncher.h" @@ -417,6 +419,10 @@ CreateSubscription(CreateSubscriptionStmt *stmt, bool isTopLevel) relid = RangeVarGetRelid(rv, AccessShareLock, false); + /* Check for supported relkind. */ + CheckSubscriptionRelkind(get_rel_relkind(relid), + rv->schemaname, rv->relname); + SetSubscriptionRelState(subid, relid, table_state, InvalidXLogRecPtr); } @@ -529,6 +535,11 @@ AlterSubscription_refresh(Subscription *sub, bool copy_data) Oid relid; relid = RangeVarGetRelid(rv, AccessShareLock, false); + + /* Check for supported relkind. */ + CheckSubscriptionRelkind(get_rel_relkind(relid), + rv->schemaname, rv->relname); + pubrel_local_oids[off++] = relid; if (!bsearch(&relid, subrel_local_oids, |